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

» Autoplay Media Studio

Автор: GOOSE
Дата сообщения: 07.11.2006 22:38
maod
Открываем справку и смотрим, какие аргументы имеет функция File.Find...
Выясняем, что:

Цитата:

Аргументы
Folder
(строка) Путь к папке в которой будет осуществляться поиск.

Filename
(строка) Имя файла, который нужно найти. Вы можете использовать * и ? в этом поле для поиска файлов по маске.

Recurse
(булёвое) Искать ли рекурсивно:

Значение - Описание

true - Рекурсивно.

false - Без рекурсивности. (По умолчанию)

IncludeFolders
(булёвое) Включать ли (в результат) все пути к папкам, в которых происходил поиск.

CallbackFunction и FileFoundCallbackFunction можно опустить, они не нужны тебе.

Что же получается?
А получается то, что у тебя стоит параметр не применять рекурсивный поиск (т.е. не искать во вложенных папках), А файлы наверняка лежат в директории Book не самостоятельно, а в своих поддиректориях...

Добавлено:
ЗЫ Я всегда проверяю значения переменных, полученных скриптами...
Можно использовать отладочное окно, но мне проще вставить либо Label, либо Input и для проверки выводить в них полученный путь. Это многое проясняет
Добавь Label и допиши перед строкой с File.Run такой код:

Код:
Label.SetText("Label1", sFilePath);
Автор: tavria2
Дата сообщения: 08.11.2006 00:55
DenVl

Цитата:
Как сделать, чтобы на Click загружалась определенная область в этом рисунке?

IMHO штатными средствами этого не сделать, нужно использовать API.
Автор: GOOSE
Дата сообщения: 08.11.2006 01:32
DenVl
tavria2

Цитата:
IMHO штатными средствами этого не сделать, нужно использовать API.

А ежели поизголяться с масками? В зависимости от задачи, может что и получится...
Автор: UMode
Дата сообщения: 08.11.2006 06:17
DenVl
Будьте добры помедленней, я записываю...


Цитата:
Имеется рисунок *.bmp. Как сделать, чтобы на Click загружалась определенная область в этом рисунке?

Насколько определённая эта область и куда она должна загружаться?
Автор: maod
Дата сообщения: 08.11.2006 08:34
GOOSE


К сожалению, с путями все впорядке, книги находятся в папке (без вложений) в ListBox они отображаются нормально, с этим проблем нет.
Проблема в открытии выбранного файла через указанную программу (File.Run("AutoPlay\\Docs\\Tom.exe", sFilePath, "", SW_SHOWNORMAL, false);)

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

sDirectory = Dialog.FolderBrowse("Выбрать каталог","");

if sDirectory ~= 'CANCEL' then    

    tFiles = File.Find(sDirectory, "*.*", false, false, nil);    
    
    if tFiles then        
        for nIndex, sFilePath in tFiles do            
            sData = sFilePath;            
            sText = String.SplitPath(sFilePath).Filename;                
            ListBox.AddItem("LB_Files", sText, sData);
        end
    end
Автор: tavria2
Дата сообщения: 08.11.2006 09:02
GOOSE

Цитата:
ежели поизголяться с масками? В зависимости от задачи, может что и получится...

Да, наверное ты прав, но все действительно зависит от поставленной задачи. С масками должно получиться, если эти определенные области рисунка фиксированы. Меня сбил с толку пример, в котором можно было выделить любую область рисунка, а затем ее вырезать. Этот пример использовал API.
Автор: GOOSE
Дата сообщения: 08.11.2006 09:16
maod
Ну так все же... Ты сделал проверку? Какой путь выдает переменная?
Запости сюда.
...что то мне подсказывает, что проблема в путях...
Либо имена папок с пробелами, либо русские названия...
В общем, результат - в студию!

Добавлено:
А у тебя вообще в ЛистБоксе показываются файлы?
Дело в том, что переменную пути нужно объявлять так:

Код:
sDirectory = _SourceFolder .. "\\Autoplay\\Docs\\Book"
Автор: Dgikar
Дата сообщения: 08.11.2006 09:58
GOOSE & tavria2
Парни привет
Скажите плз, как мне правильно объявить глобальную переменную и/или процедуру, и самое главное, как мне обратиться к ней из кода программы...
Автор: tavria2
Дата сообщения: 08.11.2006 12:36
Dgikar

Цитата:
Скажите плз, как мне правильно объявить глобальную переменную и/или процедуру, и самое главное, как мне обратиться к ней из кода программы

В AMS есть 2 вида переменных: глобальные и локальные. Глобальные переменные доступны из любого места проекта и обычно объявляются в событии "Глобальные ф-ции", а локальные - доступны только там, где они объявлены. Как объявить переменную?!

Код: -- объявляем глобальные переменные
cStr1 = "";
cStr2 = "Тест";
nNum1 = 0;
lBool1 = true;

-- объявляем локальные переменные
local cStr3 = "";
local cStr4 = "переменных";
local nNum2 = 5;
local lBool2 = false;

-- использование переменных
cStr1 = cStr2.." "..cStr4; -- результатом будет "Тест переменных"
Автор: GOOSE
Дата сообщения: 08.11.2006 13:10
tavria2
Ё!!!
Это круто! Хорошим русским языком и доходчиво!
Насчет
Цитата:
хоть я и не нашел в справке упоминания об этом, может быть плохо искал.

действительно, плохо искал.
Вот, что я в свое время переводил для себя

Цитата:
В связи с этим возникает очень важный момент при создании скриптов в AutoPlay Media Studio. Функция не станет "частью" скрипта, пока явно не будет выполнена. Это означает, что если Вы определяете HelloWorld () в событии On Click кнопки, а пользователь на кнопке не кликнет, считайте что функция HelloWorld () не существует. Таким образом, Вы не сможете вызвать ее из другого места Вашего приложения.

Именно поэтому самым надежным способом является определение любых функций на вкладке глобальных параметров. (Чтобы войти, выберите Project > Global Functions в меню.)

А насчет памяти - не знал... Правда мне еще ни разу не удавалось достигнуть этого порога Я все больше по простым приложениям...
Автор: tavria2
Дата сообщения: 08.11.2006 13:27
GOOSE

Цитата:
действительно, плохо искал.
Вот, что я в свое время переводил для себя

Это не совсем то. Допустим есть 2 кнопки. В событии "Click" 1-й кнопки объявим ф-цию.
В событии "Click" 2-й кнопки попробуем вызвать эту ф-цию. Да получим ошибку, но если сначала сделать клик на 1-й кнопке , а за тем на второй, то все будет работать. Просто инициализация глобальной ф-ции произойдет в момент клика на 1-й кнопке. После чего она станет доступна из любого места проекта. Никакого отношения к локальной ф-ции - не имеет.

Автор: sergtax
Дата сообщения: 08.11.2006 13:43
Народ подскажите.
Проект создан и "скомпилирован" в Autoplay Media Studio 4.0, но сам исходник проекта утерян. Мрожно ли как то декомпилировать проекти внести в него изменения, или надо все заново делать?
Автор: Lexua
Дата сообщения: 08.11.2006 14:01
sergtax
Нелзя. Покрайней мере , чтоб получить проект.
Автор: maod
Дата сообщения: 08.11.2006 14:29
GOOSE

Все правильно дело оказалось в путях
Прога для открытия ломилась в директорию Autoplay\Docs\Book без буквы диска, поэтому выдовало ,что файл пустой.


Цитата:
sDirectory = _SourceFolder .. "\\Autoplay\\Docs\\Book"


Ваш вариант все исправил . Огромное Вам спасибо.

Скажите еще, а есть ли где русский вариант справки к 6 версии проги?
Автор: Dgikar
Дата сообщения: 08.11.2006 16:45
tavria2
Спасибо, как сказал GOOSE

Цитата:
Хорошим русским языком и доходчиво!

Автор: GOOSE
Дата сообщения: 08.11.2006 17:46
maod

Цитата:
а есть ли где русский вариант справки к 6 версии проги?

Такового в природе не существует, насколько мне известно...
В свое время начинал делать перевод для пятой версии... Перевел раздел Scripting_Guide, еще по мелочи, да так и оставил, отпала надобность
Так, конечно неплохо бы это сбить в кучку и положить на сайт, но времени, как и у всех почти - ёк...

Добавлено:
tavria2

Цитата:
Никакого отношения к локальной ф-ции - не имеет.

Согласен
Но, по сути, справка к программе, хоть и достаточно полная, все равно в случае чего отсылает к ВэбХелпу на оффсайте. Там они его поддерживают в актуальном состоянии
Автор: Toxaaa
Дата сообщения: 09.11.2006 22:47
Привет, зделал в проекте для просмотра домашнего видео и фото масштабирование кнопками +, -, а также при нажатии на правую кнопку мыши отображаются кнопки +,-, слайдшоу, закрыть. Слайдшоу получилось очень неудобным для просмотра, так как половину времени приходится смотреть на чорный екран в связи с тем что комп не может быстро обработать алгоритм открытия картинки. У меня возникает такая мысль а если зделать создание двох рисунков и по очереди вгружать в каждый из них фотку при этом первый делать видимым, а второй только после всего алгоритма установки размера сделать видимым, а первый невидимым, мне кажется что так можно убрать ефект чорного экрана.

Вот проект на сегодняшний день FVA 575,650 байт

Автор: GOOSE
Дата сообщения: 10.11.2006 07:56
Toxaaa
У меня не работает масштабирование... Точнее работает, но через секунду возвращает размер к нормальному состоянию...

В свойствах страницы на вкладке On Key зачем то написано так:

Код:
Page.StopTimer();
Page.StartTimer(4000);
Автор: tavria2
Дата сообщения: 10.11.2006 09:56
Toxaaa

Цитата:
Вот проект на сегодняшний день...

Если можно, то выкладывай в другое место. У меня скорость закачки не превышала 2 кб/сек, да и приходилось несколько раз перекачивать - то закачка заморозится, то битый файл приймет .

По поводу проекта - очень сырой нуждается в основательной доработке. Код к сожалению не смотрел - сейчас со временем туго. Вот обнаруженные баги и неудобства в полноэкранном режиме, которые сразу бросились в глаза:
При попытке перетащить картинку оригинального размера - картинка уходит в правый нижний угол
Меню появляется только после 2 клика правой кнопки мыши - не удобно
В режиме слайдов не отслеживается последняя картинка - не приятный эффект мигания
После запуска режима слайдов, желательно менять кнопку старт на паузу.
В режиме масштабирования не центруется изображение
Drag&Drop - работает не корректно, как ему захочется
При смене картинок колесиком мышки не отслеживаеются 1-я и последняя картинка, иногда вызывает ошибку в таймере - пустое значение индекса
Смена картинок колесиком мышки - работает не уверено и с большими тормозами, пробовал те же картинки в своем вьювере - так, у меня они просто летали
Цитата:
У меня возникает такая мысль а если зделать создание двох рисунков...

У меня возникала такая мысль - все нужно пробовать... Но сначала убери баги.

Автор: Toxaaa
Дата сообщения: 10.11.2006 20:07
GOOSE

Цитата:
В свойствах страницы на вкладке On Key зачем то написано так:


Цитата:
Код:

Page.StopTimer();
Page.StartTimer(4000);



Это задумывалось чтобы остановить таймер который отследывает скролинг мыши и запустить таймер слайдшоу, у слайд-шоу время больше.

Цитата:
У меня не работает масштабирование... Точнее работает, но через секунду возвращает размер к нормальному состоянию...

Не работает ни кнопками ни клавишами с клавиатуры? Правда там один и тотже код. У меня работает ну я попробую ещё разобраться.
tavria2

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

Хорошо в дальнейшем буду выкладывать кудато не сюда.
Половину этих багов я конечнознаю только не знаю как их оптимально ликвидировать.

Цитата:
Меню появляется только после 2 клика правой кнопки мыши - не удобно

С этим я продолбался так и не понял почему, точнее понял но запутался.

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

Это я учту, както сам недодумался.

Цитата:
Drag&Drop - работает не корректно, как ему захочется

Я не знаю что такое Drag&Drop...

Цитата:
так, у меня они просто летали

Сейчас попробую, а то у меня тоже тормоз не так чтобы черезчур но всёже.
GOOSEtavria2
Спасибо за отзывы, буду разбираться и пробывать улучшать...





Добавлено:
tavria2

Цитата:
Смена картинок колесиком мышки - работает не уверено и с большими тормозами, пробовал те же картинки в своем вьювере - так, у меня они просто летали

Попробывал на ImageViewer1_2 да действительно быстрее, возможно это связано с тем что при открытии картинки у меня меняется директория с min на riginal ???
Автор: GOOSE
Дата сообщения: 10.11.2006 21:08
Toxaaa

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

Ну так у тебя получился таймер на масштабирование

Цитата:
Не работает ни кнопками ни клавишами с клавиатуры? Правда там один и тотже код. У меня работает ну я попробую ещё разобраться.

Проверял только кнопки, с клавы нет.

Цитата:
Я не знаю что такое Drag&Drop

Так обзывается способность взять мышью какой либо объект, перетащить куда надо и отпустить
Автор: Toxaaa
Дата сообщения: 11.11.2006 07:41
GOOSE

Цитата:
Так обзывается способность взять мышью какой либо объект, перетащить куда надо и отпустить

Спасибо за инфрмацию.

Цитата:
Ну так у тебя получился таймер на масштабирование

Так дело в том что у меня работает и масштабирование и слайдшоу без проблем
Вот код:
ON KEY
if masctab == true then
if e_Key == 107 then
image_size = Image.GetSize("Img1");
Image.SetSize("Img1",(image_size.Width)*1.2, (image_size.Height)*1.2);
end
if e_Key == 109 then
image_size = Image.GetSize("Img1");
Image.SetSize("Img1",(image_size.Width)/1.2, (image_size.Height)/1.2);
end
if e_Key == 32 then
if Sl==true then Sl=false
else
if Sl==false then Sl=true
Page.StopTimer();
Page.StartTimer(4000);
end
end
end
end


On Timer

if masctab == true then
if (Sl == true) then
ThumbList.SelectItem("img_list", tIndexSel[1]+1);
tIndexSel = ThumbList.GetSelectedItems("img_list");
tblInfo = ThumbList.GetItemInfo("img_list", tIndexSel[1]);
tblInfo.filepath = String.Replace(tblInfo.filepath, "min", "original", false);
cImageName = tblInfo.filepath
Image.SetVisible("Img1", false);
SetImage("Img1");
Image.SetVisible("Img1", true);

end
В ON KEY я пишу if e_Key == 32 then
if Sl==true then Sl=false
e_Key == 32 это код пробела когда эго нажымать поочерёдности то переменной Sl будет присваиваться значение true или false поочереди
Во вкладке On Timer if (Sl == true) then значение переменной сравнивается и если истина то тогда идёт открытие фоток по очереди со значением таймера Page.StartTimer(4000);
Я не понимаю как может этот код сделать таймер на масштабирование ???
Автор: GOOSE
Дата сообщения: 11.11.2006 13:31
Toxaaa
У тебя в коде всего ДВЕ строчки по таймеру, и обе на вкладке ON KEY , причем первая ОСТАНАВЛИВАЕТ таймер, а вторая его ЗАПУСКАЕТ! Посему, кстати, первая у тебя не работает, потому как нельзя остановить то, что еще не запущено...
Короче, с логикой проблемы либо я чего то пропустил. Сейчас не проверить, не на чем, сорри
Автор: Toxaaa
Дата сообщения: 12.11.2006 14:21
GOOSE


Цитата:
Посему, кстати, первая у тебя не работает, потому как нельзя остановить то, что еще не запущено...

Неее запущено с глобальной функции function ShowFull() для скролинга фоток это я часть кода tavria2 взял.. просто смысл в том чтобы остановить таймер Page.StartTimer(1000); и запустить Page.StartTimer(4000); чтобы фотки не так быстро листались...
Автор: DenVl
Дата сообщения: 12.11.2006 16:24
tavria2
Картинка содержит ряд нарисованных в ней фрагментов 50*50, необходиммо, чтобы на Click загружался один из фрагментов в картинке в Image1, на Enter другой фрагмент
Автор: GOOSE
Дата сообщения: 12.11.2006 16:29
DenVl
Мне кажется, что если этих фрагментов немного, то есть смысл сделать каждый в своем объекте (Image1, Image2 и т.д.)
Автор: DenVl
Дата сообщения: 12.11.2006 16:32
Но фрагментов этих довольно таки много..Может все таки можно как-нить реализовать
Автор: GOOSE
Дата сообщения: 12.11.2006 17:54
DenVl
А загрузка должна быть в определенном или случайном порядке?
Автор: tavria2
Дата сообщения: 12.11.2006 23:19
Toxaaa
Посмотрел я на твой код..., в алгоритме работы разбираться не стал - может быть позже, сейчас действительно нет времени, но сразу бросается в глаза, что некоторые вещи ты делаешь не совсем понимая для чего это нужно.

Ну, что немного ликбеза!? Не нужно останавливать таймер перед запуском нового таймера, т.к. при его запуске происходит переинициализация, которая сама все сбросит.

В if (условиях) - ты недопонимаешь значение else. Что такое else - это противоположное условие относительно if, другими словами можно сказать "иначе" или "в противном случае". Что делаешь ты:
Код: if Sl==true then
-- код
else
if Sl==false then
-- код
end
end
Автор: Toxaaa
Дата сообщения: 13.11.2006 07:40
tavria2
Спасибо за подсказки, конечно не всё понимаю, точнее в AMS понимаю не много. Всё моё программирование закончилось не бейсике... Про else я знал но чото у меня тогда не получалось.
Сейчас пробую исправлять недоделки

Цитата:
Drag&Drop - работает не корректно, как ему захочется

У меня работает более мение, когда убираю ограничение на єкран, то тягается более уверено. А если ещё центрирование делать так то вообще тормозить будет...

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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