Z pogranicza

Dane z Flasha-2-Delphi

  • 2007-01-13 15:46
  • 3 komentarze
  • 579 odsłon
  • Oceń ten tekst jako pierwszy
Witam ponownie! Zastanawiałem się o czym ma być mój pierwszy, a właściwie drugi artykuł... Pomyślałem: "Skoro dział ma być o możliwościach Delphi i Flasha musi być możliwa komunikacja miedzy nimi (wymiana danych)" - i właśnie o tym będzie ten artykuł ;)

Warto wspomnieć o jednym... Nie będę pisał tu jak instalować AX'a (Active-X) Flasha
Ponieważ temat ten był już poruszany na forum i nie ma co się powtarzać... Za to podam
link do działu download, gdzie jest to ładnie i przystępnie opisane przez Adama Boducha:

http://www.4programmers.net/download.php?id=370
, a najnowszą wersję OCX'a można ściągnąć ze strony Macromedii (po ściągnięciu CAB'a rozpakuj go - tam jest OCX ;) )

http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab
  .
A tu są kursy flash'a (Ale najlepiej nauczyć się samemu metodą prób i błędów tak jak ja to robiłem ;) ):
http://www.4programmers.net/download.php?id=116
http://www.4programmers.net/download.php?id=82
Powracając do tematu... Jak przesłać dane z Flash'a do Delphi i odwrotnie?

Flash -> Delphi:
We flash'u jest funkcja - fscommand(command, parameters); - to ona będzie nam potrzebna
do przesyłania danych do delphi...
W Delphi w zakładce Events plug-inu flasha jest funkcja OnFSCommand.
Widzicie już o co mi chodzi? Jeśli nie to czytajcie dalej...
Powiedzmy, że mamy movie'ka flasha, a w nim pole tekstowe i prostego buttona,
chcemy, że aby po kliknięciu buttona pokazał się Message (w Delphi) z zawartością pola tekstowego jak to zrobić? Odpowiedź:
Jak już było powiedziane mamy pole tekstowe i buttona - polu tekstowemu nadajmy nazwę txt (we Flashu 5 - pole name; FlashMX - pole Var), a button'owi przypiszmy akcję:

on (release)
{
    fscommand("msg", txt);
}


Przypomnienie - fscommand(command, parameters);: command - nadałem nazwę msg  ale można wpisać co się komu podoba ;), parameters - wartość, parametry, dane, które chcemy przekazać do Delphi.
To na razie wszystko we Flashu. Teraz w delphi.

Flash musi być skompilowany do swf'a, a w polu movie [zakładka Properties] musi być wpisana dokładna ścieżka do swf'a.

Teraz dodajemy akcję we flashu (zakładka Events plug-inu flasha - funkcja OnFSCommand):
if command = 'msg' then
begin
    if args <> '' then
        ShowMessage(args)
    else
        ShowMessage('Wpisz dane!');
end;


W wartości argumentu command wpisałem msg ale może to być dowolna wartość tylko należy pamiętać aby zgadzała się z tą Flash'owską.
W ten oto łatwy sposób możemy przekazać dane z Flasha do Delphi!

Przykład można ściągnąć z:
http://www.4programmers.net/download.php?id=680
Następny artykuł: Przekazywanie danych z Delphi do Flasha

3 komentarze

Ktos 2007-01-13 15:53

Linki do 4p do downloadu trzeba poprawić.

Martini&Marcin 2003-03-24 14:07

--------->Może być<---------

Adam Boduch 2002-12-27 18:20

Troche nieczytelnie napisane. Miedzy kodami zrodlowymi rob linie przerwy.