Delphi и Flash

 
0
 
Delphi, Kylix and Pascal
ava
Perl_sapiens | 06.12.2008, 23:44
Приветствую форумчан! smile

Есть задача: замутить визуальный интерфейс в виде флешки, а вычислительные и другие механизмы разместить в коде Делфи.
Как вставить Flash в Delphi я и так знаю: импорт АктивИкс, бла-бла-бла и так далее. Этой начальной инфой весь инет загажен. Меня лишь мучают вопросы о передачи данных между Флешкой и Программой содержащую ее(делфи форма т.е.).
Метод Flash -> Delphi мне извесен - это fsCommand.
А вот метод Delphi -> Flash мне не совсем ясен, а именно то как действуют SetVariable и GetVariable в ActionScript 3.0? Ну вот к примеру почитав это. пришел к выводу что можно делать вот так:
В swf-ролике находится Dynamic Text с именем dtext. В кое делфи пытаюсь такое сделать

Memo1.Text:=Flash.GetVariable('dtext.text');

На что мне при выполнении программы выдаются окна с матами и ругательствами.
Где то прочел, что для всего этого лучше в AS3 использовать ExternalInterface, но везде примеры показаны для JS а как их реализовать в Delphi - не пойму smile

Помогите пожалуйста, ребята, очень надо
Ответы (1)
ava
Perl_sapiens | 07.12.2008, 20:23 #
Ответ найден:
Спасибо за ссылочку Rzer c flasher.ru ^_^
Привожу пример так, как сделал его я.

Во флеш, в AS3, в рут классе пишем примерно такое:

package {
import flash.display.Sprite;
import flash.external.ExternalInterface;

public class MainClass extends Sprite {
public function MainClass() {
ExternalInterface.addCallback("getFromDelphi", getFromDelphi);
ExternalInterface.call("sendToDelphi", "Delphi, Hello");
}
public function getFromDelphi(val:String):void {
dtext.text = val; // это в ролике у меня лежит Динамический текст с именем "dtext"
}
}
}


На форму в Delphi кидаем Flash проигрываетль в виде ActiveX(я его обозвал просто Flash) и пишем такое:

procedure TForm1.FormCreate(Sender: TObject);
begin
Flash.Movie:= ExtractFilePath(Application.ExeName)+'Untitled-1.swf';
end;
//***//
procedure TForm1.FlashFlashCall(ASender: TObject; const request: WideString);
begin
showmessage(request);
Flash.CallFunction('<invoke name="getFromDelphi"><arguments><string>Hi, Flash</string></arguments></invoke>');
end;

При запуске программы мы увидим такое сообщение:
Цитата
<invoke name="sendToDelphi" returntype="xml"><arguments><string>Delphi, Hello</string></arguments></invoke>
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить