Ru-Board.club
← Вернуться в раздел «Программы»

» Autoplay Media Studio

Автор: GOOSE
Дата сообщения: 03.05.2006 17:57
rouz777
Да там не сложно должно быть
- Добавляем на страницу объект дерева (имя оставил по умолчанию)
- Открываем его свойства
- В поле Item data пишем имя файла (я тестировал на текстовом файле)
- Идем на вкладку Script, On Double-Click
- Вставляем туда примерно следующее:


Код:
-- Получаем значения этого загадочного node
tblTreeProps = Tree.GetNode("Tree1", e_NodeIndex)

-- Если юзер сделал двойной клик, то делаем следующее
if tblTreeProps then

-- Получаем значение поля Item data для выделенного node
    ItemData = tblTreeProps.Data;

    -- Открываем нужный файл
File.Open("AutoPlay\\Docs\\"..ItemData, "", SW_SHOWNORMAL);

end
Автор: JekaKot
Дата сообщения: 03.05.2006 18:50

Цитата:
Lexua


Цитата:
В тот объект, который собственно будет выполнять запуск той или инной программы.


Это что, каждый файл так паковать, что ли???

Автор: GOOSE
Дата сообщения: 03.05.2006 21:52
JekaKot
Ты хоть немного представляешь работу с программой?
При чем тут "каждый файл" и "паковать"?

В моем коде речь идет об объекте ListBox, в который ОДИН раз и нужно вставить этот скрипт...
А вот в сам ListBox нужно либо ручками вписать имена файлов, либо написать функцию, что сложнее...
Автор: rouz777
Дата сообщения: 04.05.2006 08:28
GOOSE сенкс большой.
Хотя я уже реализовал данный список ... только у меня на это ушло 300 строк
а этот в 4
Автор: GOOSE
Дата сообщения: 04.05.2006 09:45
rouz777

Цитата:
у меня на это ушло 300 строк


Я тут прикидывал, прикидывал... У меня столько кода не получается
Ты там чего наворотил то?
Автор: UMode
Дата сообщения: 04.05.2006 10:28
Всем привет!

Вопрос:
Возможно ли перетаскивать пункты в ListBoxe мышью?
Автор: GOOSE
Дата сообщения: 04.05.2006 11:55
UMode
Насколько я знаю - нет.
Автор: UMode
Дата сообщения: 04.05.2006 12:53
GOOSE
Ну, я вообще-то, сам пытался сделать, чисто средствами AMS 6.0.
Даже кое-что получилось.
Единсвенная заморочка - ListBox реагирует только на отпускание клавиши мыши,
а нужно брать данные при нажатии.

Drag-n-Drop в приложение, например, с рабочего стола, это реально? Или забыть
и пользоваться Dialogами ?
Автор: GOOSE
Дата сообщения: 04.05.2006 13:24
UMode

Цитата:
Единсвенная заморочка - ListBox реагирует только на отпускание клавиши мыши,
а нужно брать данные при нажатии.

Ну так можно же взять данные при наведении? Или я не въехал?


Цитата:
Drag-n-Drop в приложение, например, с рабочего стола, это реально?

В приложении можно, а вот из сторонних или с рабочего стола...
Хз, не пробовал, думаю, что вряд-ли
Автор: UMode
Дата сообщения: 04.05.2006 13:53
GOOSE

Цитата:
Ну так можно же взять данные при наведении?


Если брать данные при наведении, то мог быть выделен другой пункт,
не тот который нужен.

При нажатии одновременно выделяется пункт и берутся его данные.
В этом весь гвоздь...
Автор: GOOSE
Дата сообщения: 04.05.2006 17:22
UMode

Цитата:
Если брать данные при наведении, то мог быть выделен другой пункт,
не тот который нужен.
При нажатии одновременно выделяется пункт и берутся его данные.
В этом весь гвоздь...

Да, наверное ты прав...
Я такую задачу не решал, не было надобности.
А насчет Drag and drop-а, то они только в шестерку такую фичу вставили, а для пользователя реализация этого пункта у них в планах, насколько я понял...
Автор: rouz777
Дата сообщения: 05.05.2006 12:46
Да у меня просто дерево было очень длинным ... вот я кажду строку и описывал:

        File.Open("AutoPlay\\Docs\\katalog\\html\\"..ItemData, "");
    
elseif Tree.GetNode("Tree1", "1.1.2 ") then

        File.Open("AutoPlay\\Docs\\katalog\\html\\"..ItemData, "");
        
elseif Tree.GetNode("Tree1", "1.1.3 ") then

        File.Open("AutoPlay\\Docs\\katalog\\html\\"..ItemData, "");

elseif Tree.GetNode("Tree1", "1.1.4 ") then

    ну и так далее
Автор: GOOSE
Дата сообщения: 05.05.2006 22:56
rouz777

Цитата:
вот я кажду строку и описывал

Гигант!

ЗЫ Если есть готовые проекты или наработки, могу их положить у себя на сайте, если не против - стучись в ПМ
Автор: sakhsnake
Дата сообщения: 06.05.2006 03:55
Может кто подскажет как сделать вот такое. Есть листбокс со списком mp3-шек воспроизведение и переключение на предыдущий/следующий я сделал, а вот как сделать чтобы по окончании проигрывания mp3-шки стартовало воспроизведение следующей из списка? И еще один вопросик. Как сделать так чтобы воспроизведение шло определенное время? (Ну скажем секунд 20, а потом следующий файл).
Автор: UMode
Дата сообщения: 08.05.2006 11:51
GOOSE
Есть готовые недоработки! Немного, но есть. Нет, проги рабочие.
Просто всё время кажется, что что-то не доделал. Человек я такой.
Я думаю многие найдут там ответы и решения на кучу вопросов.
Был бы рад выложить. Куда?..
sakhsnake

Цитата:
Может кто подскажет как сделать вот такое. Есть листбокс со списком mp3-шек воспроизведение и переключение на предыдущий/следующий я сделал, а вот как сделать чтобы по окончании проигрывания mp3-шки стартовало воспроизведение следующей из списка?

"Свойства страницы>OnAudio"
if e_State == "Finish" and ind < ListBox.GetCount("ListBox1") then
ind = ind + 1;
ListBox.SelectItem("ListBox1", ind);
Audio.Load(CHANNEL_USER1, ListBox.GetItemData("ListBox1", ind), true, false);
end
--ind - индекс воспроизводимой песни
Примерно так.
Автор: sakhsnake
Дата сообщения: 08.05.2006 14:35
UMode

Спасибо за подсказку, а то я уперся в обработку события завершения проигрывания аудио и все тут.
Автор: GOOSE
Дата сообщения: 10.05.2006 13:50
UMode

Цитата:
Я думаю многие найдут там ответы и решения на кучу вопросов.
Был бы рад выложить. Куда?..

Ну дык, адрес у меня один http://gooseweb.ru
Стукнись в ПМ, обсудим, как их перекинуть.
Автор: Kindly
Дата сообщения: 11.05.2006 17:28
У меня возникла следующая проблема. Вобщем, создал авторан для игры. Обычно для игрового авторана требуется три значения, а при должном умении (которого у меня пока нету) и одного . Например, для Inno Setup:

[Registry]
Root: HKLM; Subkey: "Software\Painkiller"; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software\Painkiller"; ValueType: string; ValueName: "Path"; ValueData: "{app}"
Root: HKLM; Subkey: "Software\Painkiller"; ValueType: string; ValueName: "Run"; ValueData: "{app}\Bin\PAINKILLER.EXE"
Root: HKLM; Subkey: "Software\Painkiller"; ValueType: string; ValueName: "Uninstall"; ValueData: "{uninstallexe}"

Так вот - в кнопке "Играть" в событии "On Click" я пишу следующее:

-- Проверяем наличие требуемого значения
value_names = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\Painkiller", "Run", true);
if not (value_names ~= "") then
Dialog.Message("Ошибка запуска исходя из значений реестра", "Требуемый параметр присутствует, но он не содержит значения.\nДля запуска игры из меню следует переустановить ее заново.", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
Application.Exit(0);
else
-- Определяем прямой путь к файлу, включая сам EXE-файл
registry_value = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\Painkiller", "Run", true);
-- Определяем рабочую папку
registry_value2 = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\Painkiller", "Path", true);
-- Запускаем файл, исходя из значений реестра
File.Run(registry_value, "", registry_value2 .."\\Bin", SW_SHOWNORMAL, false);
error = Application.GetLastError();
if (error ~= 0) then
Dialog.Message("Ошибка запуска исходя из значений реестра", "Файл для запуска по указанному пути в реестре не обнаружен.\nДля запуска игры из меню следует переустановить ее заново.", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
Application.Exit(0);
end
end
Application.Exit(0);

Вся моя загвоздка в значении "registry_value2". С ним нет проблем, если главный исполняемый файл игры лежит в папке с игрой, а не в подпапке, как в данном случае. При нажатии считывается информация о рабочей папке. Инсталлятор прописал путь как, например: "D:\Painkiller BOOH", а сам экзешник находится в "D:\Painkiller BOOH\Bin". Как видите, пытаюсь дописать к существующему значению еще строку "Bin". Вроде так должно быть. Запускаю авторан - 1-ый раз запустил игру корректно, но на второй раз и далее игра не запустилась, показав лишь черный экран, что означает неверно заданную рабочую папку. Если ручками дописать в реестре рабочую папку (Path), то авторан без проблем будет запускать игру каждый раз. Но мне влом перекомпилить инсталлятор(ы), проще авторан подкорректировать. Так, собственно, какие могут быть еще варианты дописывания куска строки к считанному значению реестра? Или глюк программы. Но имейте ввиду, что тестировалась только эта игра, поэтому другая может без проблем запускаться. Для себя пока вижу один вариант - переделывать инсталлятор, дописывая еще одну строку "PathToExe".

p.s. сорри за большой пост
Автор: GOOSE
Дата сообщения: 12.05.2006 09:13
Kindly

Цитата:
Если ручками дописать в реестре рабочую папку (Path), то авторан без проблем будет запускать игру каждый раз.

Зачем ручками? Попробуй добавить в авторан строчку с внесением новой записи в реестр...
Хотя правильнее, конечно, перекомпилить инсталлятор
Автор: Kindly
Дата сообщения: 12.05.2006 16:49

Цитата:
Хотя правильнее, конечно, перекомпилить инсталлятор

Думаю, так и будет.

Цитата:
Попробуй добавить в авторан строчку с внесением новой записи в реестр...

Так а как добавить новую запись, если сам авторан может не знать, куда именно была установлена игра . А все-таки, это глюк или просто так нельзя добавлять кусок строки к переменной registry_value2, или это действует только при добавлении к константам, типа _ProgramFilesFolder .."\\bla-bla"...
Автор: Kindly
Дата сообщения: 13.05.2006 16:23
Ребят, ну я и лоханулся...
Авторан здесь не при чем. Оказалось глючит у меня хард, а не сама игра или авторан. Все же правильный пример дописывания я привел. Теперь для авторана мне нужна одна запись в реестре, убрал ненужные проверки, остальные данные дописываю ручками примерно так:

registry_value = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\Painkiller", "InstallPath", true);
Shell.Execute(registry_value .."\\Bin\\Painkiller.exe", "open", "", registry_value .."\\Bin", SW_SHOWNORMAL);
error = Application.GetLastError();
if (error ~= 0) then
Dialog.Message("Ошибка запуска", "Данные реестра нарушены, либо требуемый файл для запуска отсутствует.", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
end
Application.Exit(0);

Мдя, не ожидал такого, но хоть немного продвинулся .
Автор: tavria2
Дата сообщения: 14.05.2006 23:43
Почему...?
В скрипте странички "On Show" пытаюсь получить таблицу папок и таблицу файлов, с помощью "Folder.Find" и "File.Find". Почему-то значения получает только одна(первая) таблица, вторая получает "nil". Если оставить только "Folder.Find" или "File.Find" отрабатывают как положено, а вместе - не хотят.

P.S. AMS 6.0.2.0 Rus
Автор: GOOSE
Дата сообщения: 15.05.2006 08:56
tavria2
Ну так мы же не экстрасенсы
Ты код приведи тут, посмотрим.
Скорее всего ты не "связал" эти два действия, либо ошибся в синтаксисе... да мало ли что может быть!
Автор: tavria2
Дата сообщения: 15.05.2006 18:21
Где-то все таки я напортачил Попробовал в новом проекте - все работает, возможно открыто много переменных и нехватает ресурсов. Вообщем буду разбираться.
Кстати у меня AMS 6.0.2.0 при длительной работе вызывает виндовское сообщение о нехватке виртуальной памяти В AMS 5.0 такого не наблюдалось.

P.S. CPU: P4-3200, RAM: 512Mb
Автор: doc_green
Дата сообщения: 16.05.2006 12:12
1. где скачать шаблоны для 6 версии (и куда я могу вылажить свою без пантовую работу)
2. что за язык используется (в сценариях)
3. нужена кнопка "печать картинки " в сценарии (немогу сделать) определенного формата, допустим лежит фотка в папке, она 1024х768, при нажатии печать она виксированно будет делать тот формат который мне нужен!!!

Добавлено:

Цитата:
ЗЫ Если есть готовые проекты или наработки, могу их положить у себя на сайте, если не против - стучись в ПМ

а полную сылку можно

Зарание благодарен!!!

Добавлено:
GOOSE
наконец то я попал на твои разработки , в 2 местах на форуме битые сылки.
Прости я немогу щас найти
Дома скачаю проверю, тебе залить можно свою работу (если можно то куда), мне не жалко делиться !!!
Автор: tavria2
Дата сообщения: 16.05.2006 16:16

Цитата:
Почему...?
В скрипте странички "On Show" пытаюсь получить таблицу папок и таблицу файлов, с помощью "Folder.Find" и "File.Find". Почему-то значения получает только одна(первая) таблица, вторая получает "nil". Если оставить только "Folder.Find" или "File.Find" отрабатывают как положено, а вместе - не хотят.

Отвечу сам себе
Т.к. моя папка "Folder_SRC", из которой надо было получить таблицу файлов и папок, находилась в каталоге проекта CD_Root\Folder_SRC, то Autoplay поставил относительный путь "Folder_SRC". Проблема была решена так: _SourceFolder.."\\Folder_SRC".
Автор: GOOSE
Дата сообщения: 16.05.2006 16:43
doc_green

Цитата:
1. где скачать шаблоны для 6 версии

Шаблоны - это просто графические файлы, от версии не зависят

Цитата:
2. что за язык используется (в сценариях)

Язык Lua, смотреть подробнее (ну, или у Гагла с Яндексом спросить;))

Цитата:
3. Печать картинки заданного размера)

Используй сначала Image.SetSize ("Image", 800, 600); , а потом File.Print

Цитата:
а полную сылку можно

Можно, http://gooseweb.ru (надеюсь, что это не реклама)

Цитата:
наконец то я попал на твои разработки

Это почти все НЕ МОИ примеры. Просто я их собирал везде, где только мог
По поводу выкладывания своих примерчиков - стучись в ПМ
Автор: doc_green
Дата сообщения: 17.05.2006 09:56
GOOSE

тоесть вся эта программа ипользует язык Lua, незнаешь, есть книжки по этому языку, или ..., я английский плохо знаю, я скачал чтото и непонял что

и дурацкий вопрос, я в сметении, стучится в ПМ - это куда?
Автор: Alexander_B
Дата сообщения: 17.05.2006 10:56
doc_green

Цитата:
стучится в ПМ - это куда?

Это личный ящик, нажми - Сообщение
Автор: GOOSE
Дата сообщения: 17.05.2006 11:46
doc_green

Цитата:
тоесть вся эта программа ипользует язык Lua

Нет, не совсем так. Сам движек программы вроде самописный, а для расширительных скриптов используется Lua.

Цитата:
стучится в ПМ - это куда

Alexander_B объяснил. Нажмешь, появится окно, в нем пишешь сообщение, его смогу прочесть только я, аналог почты внутри форума. Когда у тебя есть новое сообщение справа вверху страницы мигает надпись, не заметить невозможно . Жмешь на нее и читаешь, что тебе прислали.
ПМ используется чтоб не засорять форум личной перепиской, которая неинтересна остальным пользователям.


Цитата:
есть книжки по этому языку

А я не знаю, поиск по инету поможет

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Matrix Screensaver


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.