| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Delphi+Flash |
| Автор: Kesh 5.10.2002, 07:42 |
| Как запустить флеш-ролик на компе, где флеш не установлен... Ну допустим я его скомпилил в *.exe, допустим могу запустить его через ShellExecute, но как мне его заставить перейти в полноэкранный режим и закрыть программку(сам ролик) после его окончания, ну или хотя бы как убрать LOOP?.. Заранее спасибо... |
| Автор: Vit 5.10.2002, 10:24 | ||
Установить и зарегистрировать его ActiveX |
| Автор: Oscar 5.10.2002, 12:27 | ||
Если внутри откомпилированной 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... Вот и извращаемся как можем...
Спасибо, обязательно посмотрю, только как передать-то эту команду... |
| Автор: Vit 6.10.2002, 03:54 | ||
Теоретически можно обратиться к 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 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 Мне кажется, ты ошибся адресом... |
| Автор: UE 25.3.2004, 03:23 |
| Народ, а существует компонент для Дельфей, чтобы флешки отображать? Т.е. без непосредственного юзания ocx'а? |
| Автор: Cheba 25.3.2004, 22:24 |
| 2 StayAtHome Видать, так и есть... А теперь по вопросу. По идее если окошко получило сообщение и собралось его обработать, то это оно сделает до конца. Посему полагаю, что будет достаточно передать флэшке фокус, заставить перерисоваться и сразу же назад отобрать фокус ввода. Думаю, у флэшки просто не будт иного выхода и она все же начнет работать. |