Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Delphi+Flash


Автор: Kesh 5.10.2002, 07:42
Как запустить флеш-ролик на компе, где флеш не установлен... Ну допустим я его скомпилил в *.exe, допустим могу запустить его через ShellExecute, но как мне его заставить перейти в полноэкранный режим и закрыть программку(сам ролик) после его окончания, ну или хотя бы как убрать LOOP?..

Заранее спасибо...

Автор: Vit 5.10.2002, 10:24
Цитата(kesh @ 04.10.2002, 15:42)
Как запустить флеш-ролик на компе, где флеш не установлен...

Установить и зарегистрировать его ActiveX

Автор: Oscar 5.10.2002, 12:27
Цитата(kesh @ 05.10.2002, 00:42)
как мне его заставить перейти в полноэкранный режим и закрыть программку(сам ролик) после его окончания, ну или хотя бы как убрать LOOP?..

Если внутри откомпилированной flash презентации, то есть такая команда fscommand, подробное описание найди у себя на компе в Flash, раздел ActionScript :)

Ссылка навскидку (правда у меня MX)
file:///C:/Program%20Files/Macromedia/Flash%20MX/Help/Flash/html/30_asd_05_f168.html

Если нужны контролы под ActiveX, там тоже есть полезные вещи.

Автор: Kesh 6.10.2002, 02:36
Цитата
Установить и зарегистрировать его ActiveX

Да не могу я поставить его ActiveX...
Дело в том, что сдавать программу мне в универе, а там даже разрешение монитора менять не дают, а уж тем более что-то ставить, тем более ActiveX... Вот и извращаемся как можем...

Цитата
Если внутри откомпилированной flash презентации, то есть такая команда fscommand, подробное описание найди у себя на компе в Flash, раздел ActionScript

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

Автор: Vit 6.10.2002, 03:54
Цитата(kesh @ 05.10.2002, 10:36)
Да не могу я поставить его ActiveX...
Дело в том, что сдавать программу мне в универе, а там даже разрешение монитора менять не дают, а уж тем более что-то ставить, тем более ActiveX... Вот и извращаемся как можем...

Теоретически можно обратиться к ActiveX без его регистрации, когда-то мы даже с Fantasist'ом обсуждали эту возможность - спроси у него, может он знает, т.е. теоретически ActiveX это та же DLL, т.е. надо сделать вызов Dispatch и плясать от туда, но боюсь что это работка ещё та - мне представляется она довольно сложной, а без ActiveX ты ничего не сделаешь...


Автор: Fantasist 6.10.2002, 05:43
В принципе не так сложно, если не использовать маршалинг и, как следствие, Automation. Как я уже тут писал, внутрипроцессорный ActiveX создается загрузкой библиотеки с этим ActiveX  в память (LoadLibrary или CoLoadLibrary) и вызовом функции DllGetClassObject. То есть примерно так:

var
ifc:IUnknown;
proc:function (clsid:TGUID; iid:TGUID;out Obj);

begin
 hMod:=LoadLibrary({имя файла с ActiveX});
 proc:=GetProcAddress(hMod,'DllGetClassObject');
 proc({нужный CLSID},IUnknown,ifc);
end;

Но может, Iunknown сразу и не дадут, тогда следует просить в начале IClassFactory. В общем, я где-то тут подробно писал. Ничего сложного, надо только знать, какие интерфейсы у объекта, как он может себя создать, и не использует ли он библиотеку маршалинга. Много можно выяснить опытным путем. Попробуй.

Автор: Fantasist 6.10.2002, 06:23
Да, забыл! Это же бубль-гум. То есть OCX. А значит нужен какой-нибудь OLE контейнер. Это уже хуже.

Автор: Kesh 8.10.2002, 02:36
Огромное спасибо... Буду пытаться...

Но почему-то никто не прореагировал на мою мысль скомпилить презентацию, а потом, как-нить через WinApi, жмакнуть в ней Ctrl+F...

Автор: Fantasist 8.10.2002, 05:25
Цитата(kesh @ 07.10.2002, 19:36)
Но почему-то никто не прореагировал на мою мысль скомпилить презентацию, а потом, как-нить через WinApi, жмакнуть в ней Ctrl+F...

А мы без понятия что это такое.  :)

Автор: Kesh 8.10.2002, 06:28
Цитата
А мы без понятия что это такое.  

Ну это когда в SWF зашивается исполняемый, пардон, исполняющий модуль( aka   player)  и ему ничего, кроме себя любимого не надо...

Автор: Dr_midon 4.12.2003, 17:21
Это-ж в манускриптах с флешей посылается!!! И делается оч. просто!!!

Нужно запустить свое детище, а затем из плеера-же и сохранить его как EXE фаил!!!!

Ешшо недавно поставил себе mProjector - вещь, скажу оболденная.... Без всякого знания
можно свой SWF превратить в EXE... Причем за что таскать будешь мона самому задавать!!!
Кроме этого он задает прозрачные/полупрозрачные области и весить будет твоя EXE как стандартный плеер поделенный на 2(т.е. 6-версия весит 800кг, а получается из нее 400) + флеша конечно....
Одно плохо: как ни пытался я его переделать под свой лад, а контекстное меню так и осталось на Ангильском языке с 4-мя пунктами, один из которых ==О mProjector`e==...
Видать сжатие EXE не стандартное(причем совсем!!!!!)

Автор: StayAtHome 26.1.2004, 02:38
Установил Флешовый ActiveX, успешно пользую, но есть проблемы:

- ActiveX-компонент не перерисовывается при изменении своих размеров,
пока не получит фокус ввода (а я, по некоторым причинам,
отдавать ему фокус не хочу). Причем отправка ему сообщений типа
WM_PAINT, WM_ERASEBKGND и т. д. не помогает.
- Когда фокус все-таки принадлежит SWF-компоненту, то мое окно не
получает нажатия клавиши Escape (похоже, что компонент перехватывает
сообщение WM_KEYDOWN с VK_Escape на себя).
Когда же фокус не на SWF-компоненте -- все нормально.

Автор: Cheba 26.1.2004, 12:05
А ты дай ему фокус, подожди пока нарисутся и отбери.

Автор: StayAtHome 28.1.2004, 03:33
Цитата
подожди пока нарисутся

То есть? Окуда я узнаю, что он нарисовался?

Автор: Cheba 28.1.2004, 12:00
Пробуй lineAnswer.
Чтобы узнать больше читай Telephony Application Programming Interface (TAPI) Programmer's Reference (Идет в компректк с Дэлфи, MS SDK).

Автор: StayAtHome 29.1.2004, 01:15
2 Cheba
smile.gif
Мне кажется, ты ошибся адресом...

Автор: UE 25.3.2004, 03:23
Народ, а существует компонент для Дельфей, чтобы флешки отображать? Т.е. без непосредственного юзания ocx'а?

Автор: Cheba 25.3.2004, 22:24
2 StayAtHome
Видать, так и есть... smile.gif
А теперь по вопросу. По идее если окошко получило сообщение и собралось его обработать, то это оно сделает до конца. Посему полагаю, что будет достаточно передать флэшке фокус, заставить перерисоваться и сразу же назад отобрать фокус ввода. Думаю, у флэшки просто не будт иного выхода и она все же начнет работать. smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)