Расширение проектора: Продолжение 7. Рабочая версия.
Выложил исходники, примеры, доки (AS2 и AS3).
Цитата:
Оболочка для стандартного флеш-проектора. Фичи:
- не требует установки никаких дополнительных компонент, в том числе и плеера (standalone application);
- обработка параметров запуска (cmdline parameters);
- стандартные диалоги;
- работа с файловой системой (в т.ч. и с сетевыми шарами, асинхронные операции);
- операции с файлами (read, write, seek);
- запуск сторонних приложений (в т.ч. расширенный с параметрами, асинхронный запуск);
- открытие файлов, документов (.doc, .pdf, .avi, etc)
- исполнение командных сценариев (в т.ч. синхронное);
- настройка внешнего вида окна( icon, border, shadow, regions, etc);
- исполнение скриптовых сценариев (VBS, JS, WSH, WMI);
- прослушка событий (window, mouse buttons, keyboard, drop files, tray, etc);
- управление мышью, расширенное управление клавиатурой;
- настройка менюшек (главное меню, контекстное меню);
- работа с системным треем(иконка, подсказки, анимация);
- доступ к функциям Windows MCI (Media Components Interface - CD/DVD, Sound etc);
- снапшоты, экспорт графики в популярные форматы (по-пиксельный экспорт);
- работа с системным реестром (чтение, запись, поиск);
- дополнительные графичские окна с динамическим наполнением;
- работа с ресурсами dll, exe;
- и еще много специальных фич, о которых спрашивают разработчики на форуме..
Оболочка имеет 16 классов, около 100 методов в сумме.
Совместимость:
FlashPlayer 9,10; Action Script 2.0, 3.0; FlashPlayer 10.1 только с Action Script 3.0.
а так же интеграция при разработке с FlashDevelop, IDE Flash 8, CS3, CS4, CS5 (только AS3-проекты).
Оболочка работает на ОС Windows 2000, XP, Vista, 7.
Проект развивается.
- не требует установки никаких дополнительных компонент, в том числе и плеера (standalone application);
- обработка параметров запуска (cmdline parameters);
- стандартные диалоги;
- работа с файловой системой (в т.ч. и с сетевыми шарами, асинхронные операции);
- операции с файлами (read, write, seek);
- запуск сторонних приложений (в т.ч. расширенный с параметрами, асинхронный запуск);
- открытие файлов, документов (.doc, .pdf, .avi, etc)
- исполнение командных сценариев (в т.ч. синхронное);
- настройка внешнего вида окна( icon, border, shadow, regions, etc);
- исполнение скриптовых сценариев (VBS, JS, WSH, WMI);
- прослушка событий (window, mouse buttons, keyboard, drop files, tray, etc);
- управление мышью, расширенное управление клавиатурой;
- настройка менюшек (главное меню, контекстное меню);
- работа с системным треем(иконка, подсказки, анимация);
- доступ к функциям Windows MCI (Media Components Interface - CD/DVD, Sound etc);
- снапшоты, экспорт графики в популярные форматы (по-пиксельный экспорт);
- работа с системным реестром (чтение, запись, поиск);
- дополнительные графичские окна с динамическим наполнением;
- работа с ресурсами dll, exe;
- и еще много специальных фич, о которых спрашивают разработчики на форуме..
Оболочка имеет 16 классов, около 100 методов в сумме.
Совместимость:
FlashPlayer 9,10; Action Script 2.0, 3.0; FlashPlayer 10.1 только с Action Script 3.0.
а так же интеграция при разработке с FlashDevelop, IDE Flash 8, CS3, CS4, CS5 (только AS3-проекты).
Оболочка работает на ОС Windows 2000, XP, Vista, 7.
Проект развивается.
Всего комментариев 58
Комментарии
![]() ![]() |
|
В doc_as2 при выборе FlrunEx полетела кодировка (IE8).
NB! Мдм-овцам пора мылить веревку... ))) |
![]() ![]() |
|
Прекрасная новость. Завтра на работе посмотрю.
|
![]() ![]() |
|
Цитата:
В doc_as2 при выборе FlrunEx полетела кодировка (IE8).
Заметил косяк на PTray, PFile, FlrunEx. Принудительно выствить кодировку в UTF-8 помогает. В АС3-шных доках вроде все нормально. Описания классов в обеих версиях, вобщем-то, совпадают. ЗЫ. Начал править баги. Пока мелочь, но все-таки. |
|
Обновил(-а) alexcon314 06.07.2010 в 11:11
|
![]() ![]() |
|
можно добавить события двойного клика средней и правой кнопки мышы - насколько я помню виндовс их генерирует
|
![]() ![]() |
|
добавил.
|
![]() ![]() |
|
Да, офигенно. Обнаружил, что при любом PScript`е на VBScript (JS не пробовал) по закрытию проектора вылетает ошибка.
Подробнее с кодом и текстом ошибке описано в теме http://www.flasher.ru/forum/showthread.php?t=142587 Твой баг или я делаю что-то неверно? |
![]() ![]() |
|
Добрый день Александр. Столкнулся с такой проблемой: функция writeUTF8String при записи символов - ²³½⅓⅔¼¾≠∞≤≥ записывает вопросы.
|
![]() ![]() |
|
Цитата:
я, думал, раз передаем в UTF8, то должен бы передаваться весь диапазон символов
|
|
Обновил(-а) alexcon314 25.08.2010 в 18:46
|
![]() ![]() |
|
![]() ![]() |
|
Как только заполучу 10,1,52,14, разберусь. Только с этим проблемы?
|
![]() ![]() |
|
Проверил, конечно, не все. Но больше проблем не обнаружил.
|
![]() ![]() |
|
Можете сказать в двух словах, что это такое вообще ? Для чего все это нужно ?
Это что - то типа AIR только без всяких заглушек от adobe team? |
![]() ![]() |
|
Типа AIR, да. Без заглушек, да.
Плюс - не надо устанавливать ничего, все в одном, запустил и все. Минус - функционал несколько меньше. Ну и, да, конечно, это сугубо под виндами только работает. Кроссплатформы нет, и, видимо, не будет. Собственно, можете примеры глянуть в предыдущих с записях. |
|
Обновил(-а) alexcon314 08.11.2010 в 09:47
|
![]() ![]() |
|
попробывал посмотреть на примеры, а че он от меня хочет?
flrunEx Can't find libavm file: W:\fd_ex\common\libavm.dll |
![]() ![]() |
|
Какой смотрели пример? fd_as3.zip с гугла?
Третьим аргументом должно быть название файла проектора, т.е. libavm.dll по договоренности. Перепроверил пеример fd_as3. Все работает. Если смотрте мои примеры, Вы не забыли положить плеер FlashPlayer_9.exe в папку output? Я не паковал его в архив в целях экономии веса. Можно использовать и 10-й плеер. Напомню, версии плеера должны быть не-дебуг. В архиве readme.txt есть на этот счет. Если что, плееры можно взять здесь. |
|
Обновил(-а) alexcon314 12.11.2010 в 08:47
|
![]() ![]() |
|
да, с гугла, плеер подложил самый свежий с адобы, назвал как в текстовике. щаз еще раз проверю на работе
|
![]() ![]() |
|
мистика. все получилось без проблем
![]() спасибо |
![]() ![]() |
|
С плеером 10.1 (из поставки CS5, к примеру) есть проблема. Сейчас как раз занимаюсь ее решением. Пока используйте плеер не старше 10.0.
|
![]() ![]() |
|
PSystem.exec(), PSystem.open(), PSystem.CreateProcess(), PSystem.createProcessAsync(), PSystem.execCmd()
|
![]() ![]() |
|
Спасибо)
|
![]() ![]() |
|
Пока реализованы только асинхронное копирование/перемещение папок/файлов с прогрессом в виде событий.
Запись/чтение - нет. В качестве альтернативы был в свое время реализован класс PFile с методами seek(), lock(), unlock(), ну и конечно, набор методов для чтения/записи с заданной позиции. Методами АС можно организовать цикл записи/чтения, с использованием отображение прогресса. К тому же, можно созать не один экземпляр данного класса (он не статический) и работать одновременно с несколькими файлами. У обертки обновился движок, внесены существенные изменения для АС3, тормозов при таком подходе быть не должно. Впрочем, если это не то, можно подумать над дополнениями. Было бы неплохо, если бы вы смогли сформулировать четко перечень необходимого. Реализация, думаю, много времени не займет, если, конечно, не размахиваться слишком широко. |
|
Обновил(-а) alexcon314 25.11.2010 в 15:21
|
![]() ![]() |
|
В общем попробовал, URLStream _очень_ плоха работает - делаю так:
public function start():void { inp = new URLStream(); var req:URLRequest = new URLRequest( path ); inp.addEventListener( ProgressEvent.PROGRESS , onProgress ); inp.load( req ); } protected function onProgress( e:ProgressEvent ):void { } Попробовал проделать всё с помощью PFile - create() возвращает 0 стабильно, как только не пробовал (даже абсолютный путь к файлу прописывал), в FlrunEx.getLastError() - стабильно descr = undefined , res = NaN. Кстати PFileSystem.exists() также стабильно возвращает false , при том, что этот же самый путь URLStream'ом открывается на ура... В чём может быть проблема? А насчёт асинхронного доступа к файлам - думаю это должно быть как то примерно как тут. А вообще, в идеале было круто прикрутить такую крутую фишку как многопоточность, хотя бы и урезанную (тогда и асинхронного доступа к файлам не требуется). Мне видится это как то так:
![]() Adobe офигеет ![]() |
![]() ![]() |
|
не уверен... виснет браузер это факт) а вот сам флэш плэер кое-какие операции точно в отдельных потоках выполняет (всё те же асинхронные Loader'ы и сокеты)...
|
![]() ![]() |
|
flash.utils.Timer
после перехода в соседнюю вкладку почти перестает выполнятся, так что потоки точно есть |
![]() ![]() |
|
2Nucer:
Выкладывайте ваш нерабочий пример. У меня корректно отрабатывает такой код: Код:
var f:PFile = new PFile(); f.create("d:\\video\\vvv.avi"); var t:PFile = new PFile(); t.create("d:\\video\\vvv2.avi"); var size:uint = f.size; var offset:uint = FlrunEx.MEMSIZEMAX/2; for (var i:uint = 0; i < size; i += offset) { var b:ByteArray = f.readBytes(offset); t.writeBytes(b); } var d:ByteArray = f.readBytes(size-i); t.writeBytes(d); f.close(); t.close(); Ваши идеи про многопоточность я покурю, спасибо. Навскидку, такое сделать практически очнь трудно. Код надо скомпилить в ABC, создать исполняющую среду(плеер), сунуть его туда, получить результат и еще типа эвентов что-то... трудно. Но покурить стоит. 2all: По потокам - проектор держит самое малое четыре потока. UPD: Вообще, у меня есть сомнения, стоит ли разом грузить 1.0~1.5 гига в память? Пусть даже 100 метров... насколько это целесообразно? Потом, вы пробовали создать ByteArray размером хотя бы 1 гиг? Не уверен, что такого рода операции вполне безопасны. Код:
var b:ByteArray = new ByteArray(); b.length = 1024*1024*1400; Хотя гиг выделялся, но это на моей системе, не факт, что оно сработает на любой. На максимальный размер загружаемого блока у меня сделан лимит 24 метра. На таких порядках все ок. Собственно, для того и был сделан seek(), дабы загружать по-блочно. Понимаю, что это не всегда удобно. Но разом выделять полтора гига - тоже далеко не айс. В винде есть ряд механизмов, позволяющих получить доступ к большим файлам, но они действую очень гибко, не в лоб. Их использовани, тем не менее, сопряжено с рядом трудностей. Возможно, есть смысл вынести какой-то функционал в оболочку, те же хеши, например. Насчет вашей ссылки про openAsync() (в AIR). У меня нет возможности пощупать эту штуку. Но я сильно сомневаюсь, что она заточена под такие объемы. |
|
Обновил(-а) alexcon314 26.11.2010 в 12:53
|
![]() ![]() |
|
Вы используете плеер 10.1 для создания проектора? Тогда надо обновиться: пакет классов оболочки и длл (core.zip, src_as3.zip от 17 ноября) на гугле. См. также http://flasher.ru/forum/blog.php?b=265
Цитата:
Так о загрузке больших файлов в память никто и не говорит..
Но у меня можно работать именно с блоками данных подгружая их синхронно по мере надобности, при этом загрузки всего файла в память не происходит. В этом отличие. Я отложил фичу асинхронных чтения/записи. Не вижу в ней смысла в настоящий момент. |
![]() ![]() |
|
Плеер какой используете (версия автономного проигрывателя)?
Не понимаю, в чем дело. Пример fd_as3new.zip работает "из коробки", надо только плеер в папку output положить. Только что проверил у коллег на CS4 пример ide9new.zip - все работает тоже "из коробки". |
|
Обновил(-а) alexcon314 07.12.2010 в 16:08
|
![]() ![]() |
|
Плеер последний 10.1, также пробовал 10.0 скаченный. Какой нужно??
|
![]() ![]() |
|
У меня работает на 10.1 (CS), 10.0(CS4), 9.0(CS3). (win 7 x64)
UPD. Да. Теперь вижу. На XP какие-то проблемы. Что-то я упустил. Буду разбираться. На ХР 9.0 работает нормально. |
|
Обновил(-а) alexcon314 09.12.2010 в 16:28
|
![]() ![]() |
|
Спасибо!)
У меня винхп сп3 х32, если что)) |
![]() ![]() |
|
Пофиксил багу. Файлы в гугле обновил.
|
![]() ![]() |
|
качаю fd_as3new.zip
кладу FP9 с переименовкой и запускаю, пишет не может найти libavm.dll, копирую с какого-то другого примера, запускаю, пустое окно прожектора, фаирволом разрешил доступ при первом запуске больше он меня не тревожил в примере с блокнотом есть строки где почему то вместо INT передается строка, соответственно компилятор ругается |
|
Обновил(-а) $mival 13.12.2010 в 14:39
|
![]() ![]() |
|
По-шагово:
- скачал fd_as3new.zip - распаковал в папку fd_as3new - захожу в fd_as3new\fd_as3 - захожу в папку output, помещаю туда автономный плеер (не-дебуг) FlashPlayer_9.exe - содержимое npmake.bat Цитата:
cd output
npmake.exe FlashPlayer_9.exe projector.swf ..\common\libavm.dll ..\common\flrunEx.exe -c bla-bla - жму build (построение проекта). - в output-панели вижу Цитата:
Running process: C:\Program Files (x86)\FlashDevelop\Tools\fdbuild\fdbuild.exe "D:\temp\fd_as3new\fd_as3\simpleFD_AS3.as3proj" -ipc 1ce274fd-2bc5-44b3-a92b-4dea82cd2be0 -compiler "C:\Flex" -library "C:\Program Files (x86)\FlashDevelop\Library"
Using the Flex Compiler Shell. Building simpleFD_AS3 mxmlc -load-config+=obj\simpleFD_AS3Config.xml -debug=true -incremental=true -benchmark=false -static-link-runtime-shared-libraries=true -o obj\simpleFD_AS3634133336020000000 INITIALIZING: Adobe Flex Compiler SHell (fcsh) Starting new compile. Loading configuration file C:\Flex\frameworks\flex-config.xml Loading configuration file D:\temp\fd_as3new\fd_as3\obj\simpleFD_AS3Config.xml obj\simpleFD_AS3634133336020000000 (49597 bytes) (fcsh)Running Post-Build Command Line... cmd: .\output\npmake.bat D:\temp\fd_as3new\fd_as3>cd output D:\temp\fd_as3new\fd_as3\output>npmake.exe FlashPlayer_9.exe projector.swf ..\common\libavm.dll D:\temp\fd_as3new\fd_as3\output>..\common\flrunEx.exe -c bla-bla Build succeeded Done(0) В примере Notepad надо заменить hkSave = PInput.registerHotKey(PInput.MOD_CONTROL, "S".charCodeAt(0)); во всех четырех строках. |
|
Обновил(-а) alexcon314 13.12.2010 в 15:31
|
![]() ![]() |
|
всё также, результат:
http://*************/s/FmI7 ... C:\Users\smival\Desktop\е«*¬\app\fd_as3>cd output C:\Users\smival\Desktop\е«*¬\app\fd_as3\output>npmake.exe FlashPlayer_9.exe projector.swf ..\common\libavm.dll Copy Error 2: The output file C:\Users\smival\Desktop\хлам\app\fd_as3\common\libavm.dll C:\Users\smival\Desktop\е«*¬\app\fd_as3\output>..\common\flrunEx.exe -c bla-bla |
![]() ![]() |
|
Убедитесь, что FlashPlayer_9.exe лежит в папке output. Имя этого файла должно совпадать с тем, что записано в npmake.bat.
|
![]() ![]() |
|
ок плеер два раза exe был
|
![]() ![]() |
|
Цитата:
Пофиксил багу. Файлы в гугле обновил.
Также как и раньше - запускается, не подавая признаков жизни висит в процессах как libavm.dll (( |
Последние записи от alexcon314
- Пишем свою оболочку для FP под Windows. Шаг 6. (19.05.2011)
- Пишем свою оболочку для FP под Windows. Шаг 5. (18.05.2011)
- Пишем свою оболочку для FP под Windows. Шаг 4. (18.05.2011)
- Пишем свою оболочку для FP под Windows. Шаг 3. (18.05.2011)
- Пишем свою оболочку для FP под Windows. Шаг 2. (17.05.2011)