Урок 24 C++ Builder + Flash(ActiveX)
May 2, 2006
в колонках играет OST Jay and Silent Bob
Одно время я увлекался тем, что делал во флеше игры.как-то я создал бродилку и там были такие прокачиваемые параметры, как опыт, сила и т.д.Всё было неплохо, но был один минус - нельзя было сохранять игру и загружать соответственно тоже..Однако при помощи Buildera эту задачу можно решить, так как можно сделать программу, которая будеть воспроизводить ролик и управлять всеми св-вами его объектов и значениями переменных..Я думаю этот урок будет очень полезен людям, которые активно используют Flash.
Сразу скажу, что у меня Macromedia Flash 8.Если у вас установлены более ранние версии flash, то наверное тоже будет работать, не проверял...Кстати, если у вас работает - напишите мне с какой версией, чтобы я потом мог подправить статью..Насколько мне известно, достаточно Flash Playera - а не полной программы Flash8.Если что, скачайте из инета, плеер весит вроде бы меньше 1 мб.
Мы будем использовать ActiveX-контролы.Звучит это наверное устрашающе, но не пугайтесь!Простым языком говоря при помощи этой технологии мы можем вставить в свою программу элементы управления от других программ, например flash или Internet Explorer(TCppWebBrowser), который кстати использует различные ActiveX-controls(тот же самый флеш).То есть в нашей программе появиться окно, в котором можно будет просматривать флеш-ролики или смотреть веб-страницы или ещёё что-нить..
Запустите C++ Builder.Нажмите сверху на Component - Import ActiveX Control.Через пару секунд появиться вот такое вот окошко.
Выберите из списка Shockwave Flash .Заметьте, в этом окошке указывается, как называется файл выбранного контрола, имена компонентов , которые будет содержать ActiveX control, если его установить.Palette Page - это имя вкладки на которую будет установлен новый компонент ActiveX Control. нажмите Кнопку Install.
Теперь на закладке ActiveX панели компонентов должен был появиться ещё один -ShockWaveFlash.Работать с ним можно точно так же как и со всеми остальными компонентами на палитре.
Откройте Flash и для первого кадра пропишиет вот такие действия в ActionScript
var s="Hello from Macromedia Flash!";
Нажмите Ctrl+Enter и сохраните получившийся ролик куда-нить под именем rolik.swf
Теперь создайте новый проект и киньте на форму компонент ShockWaveFlash, который должен быть на вкладке ActiveX и кнопку.
Св-ва ShockwaveFlash:
FrameNum-номер текущего фрейма
Loop-если true, то ролик воспроизводится бесконечное число раз
Menu-если true , то меню при нажатии на правую кнопку мыши показывается
Movie-имя файла с роликом.
Playing-показывает, проигрывается ли ролик
Quality-качество
Scale-увеличение
WMode-режим ролика, можно поставить transparent
Функции ShockwaveFlash:
ShockwaveFlash1->Play();//проиграть ролик
ShockwaveFlash1->Stop();//остановить воспроизведение
ShockwaveFlash1->GotoFrame(номер_фрейма);
ShockwaveFlash1->TotalFrames; //кол-во фреймов
WideString var1=ShockwaveFlash1->GetVariable(WideString("s"));//переменной var1 присвоится значение переменной s из вашего флеш-ролика
ShockwaveFlash1->SetVariable(WideString(имя_переменной),WideString(значение_переменной));//этой функцией можно поменять любые значения переменных, которые вы использовали в своём флеш-ролике.
ShockwaveFlash1->BrowseProperties();//показывает св-ва ролика, посмотрите, будет полезно, все св-ва оттуда можно менять программно.
ShockwaveFlash1->PaintTo(Form1->Canvas,10,10);//очень полезная функция, рисует текущий фрейм на любом объекте TCanvas с отступом слева и сверху, вместо Form1->Canvas вы можете использовать Image1->Canvas, PaintBox1->Canvas, и прочие..
ShockwaveFlash1->TGetProperty(WideString(target),int property);
ShockwaveFlash1->TSetProperty(WideString(target),int property,WideString(value));
Эти две функции позволяют смотреть и менять св-ва объектов во флеше, правда я до конца ещё не разобрался как с ним работать.( Кто разберётся - пишите..
Обратите внимание на функцию WideString(" "); Она позволяет конвертировать множество различных типов переменных
.Список действительно впечатляет...
Для ваших целей, надеюсь этих свойств и функций хватит, если же нет, то смотрите во всплывающей панели имена св-в и функций и пробуйте найти то, что вам нужно.
Если есть вопросы по этому материалу или вопросы в принципе, пишите на мыло,
ответы постараюсь выложить в последующих уроках.
Author of article - MA F*CKA CREW 2006
www.builderhelper.3dn.ru
builder.helper@rambler.ru