DIMATEUS |
Отправлено: 15.05.2004, 01:30 |
|
Не зарегистрирован
|
Уважаемые, подскажите пожалуйста, как в программу внедрить Flash ролик?
Но только так, что бы он работал как Animate.
Где-то читал, что можно c помощью OleContainer, но у меня нечего не вышло.
P.S. Если вас не затруднит то напишите какой нибуть пример.
В заранее благодарен.
|
|
OpeR |
Отправлено: 17.05.2004, 06:42 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
У меня установлен Flash MX, C++ Builder 6. В билде нажать меню Project ---> Import Type Library в списке выбрать FlashAccessibility (Vertion 1), нажать Install. После установки и компиляции на выбранной вкладке панели инструментов появится три компонента (один визуальный и два не визуальных). Создай новое приложение (или открой уже ранее созданное), выбери из вкладки компонент ShockwaveFlash и помести на форме. В место нахождения проекта перекопируй файлы, начинающиеся с ShockwaveFlashObjects*.*, из папки Program Files\Borland\CBuilder№\Imports.
по действию кнопки или ещё чему
ShockwaveFlash1->Movie = "d:\\globel.swf";
например:
#include
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "ShockwaveFlashObjects_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
ShockwaveFlash1->Movie = "d:\\globel.swf";
}
//---------------------------------------------------------------------------
|
|
DIMATEUS |
Отправлено: 21.05.2004, 02:51 |
|
Не зарегистрирован
|
С этим я у же разобрался! Но вот как реалезовывать нажатие на Flash кнопку, я не пойму! При нажатии открывает чистую страницу интернета.
Я предпологаю что нежно пописывать функции кнопки во Flash MX, но это так не удобно и многое теряется. |
|
klen |
Отправлено: 23.05.2004, 10:26 |
|
Машинист паровоза
Группа: Участник
Сообщений: 239
|
Я уже сдесь несколько раз об этом писал. Поищи поиском. Напомню — для того что ты хочешь надо использоать событие обьекта FlashPlaer -> FlashFSCommand? это событие возвращает кто нажался и "чего нажался". Вот пример из моего одного проекта.
CODE | //---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "uShell.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "ShockwaveFlashObjects_OCX"
#pragma resource "*.dfm"
TShell *Shell;
//---------------------------------------------------------------------------
__fastcall TShell::TShell(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TShell::FormActivate(TObject *Sender)
{
WindowState = wsMaximized;
}
//---------------------------------------------------------------------------
void __fastcall TShell::FormShow(TObject *Sender)
{
Flash -> Movie = GetCurrentDir () + "\\Data\\test.swf";
}
//---------------------------------------------------------------------------
void __fastcall TShell::FlashFSCommand(TObject *Sender,
BSTR command, BSTR args)
{
// ????
if ( AnsiString(command) == "Close" ) Close();
if ( AnsiString(command) == "Minimize") Application -> Minimize();
wchar_t Target[128];
AnsiString("_level0.NotifyHandler").WideChar( Target , 128);
wchar_t Label [128];
// ?????
if ( AnsiString(command) == "Action_0" )
{
AnsiString("Event_0").WideChar( Label , 128);
Flash -> TGotoLabel( Target , Label );
};
if ( AnsiString(command) == "Action_1" )
{
TStringList* ObjectList = new TStringList();
TStringList* SearchList = new TStringList();
ObjectList -> LoadFromFile ("Data\\Object.txt");
for ( int Obj = 0; Obj < ObjectList -> Count; Obj++ )
{
if ( ObjectList -> Strings[Obj].Pos(args) )
SearchList -> Add (ObjectList -> Strings[Obj]);
}
if ( SearchList -> Count == 0)
{
SearchList -> Add("Data=Not found");
SearchList -> SaveToFile ("Data\\Search.txt");
}
else
{
SearchList -> Strings[0] = "Data=" + SearchList -> Strings[0];
SearchList -> SaveToFile ("Data\\Search.txt");
}
delete ObjectList;
delete SearchList;
AnsiString("Event_1").WideChar( Label , 128);
Flash -> TGotoLabel( Target , Label );
};
if ( AnsiString(command) == "Action_2" )
{
AnsiString("Event_2").WideChar( Label , 128);
Flash -> TGotoLabel( Target , Label );
};
}
//--------------------------------------------------------------------------- | |
|
exp |
Отправлено: 23.05.2004, 21:58 |
|
Мастер участка
Группа: Участник
Сообщений: 304
|
А будет флэшка играть если Flash не установлен?
|
|
klen |
Отправлено: 25.05.2004, 21:40 |
|
Машинист паровоза
Группа: Участник
Сообщений: 239
|
Конечно будет , но надо записать на машину flash.ocx — флешовый сервер и зарегестрировать его. Это у же неоднократно писалось и обсуждалось, поищи поиском. Если не получится, пиши отвечу. |
|