[flash] Wczesne wysłanie zmiennej do flasha

Technologia Flash, czyli animacja na potrzeby stron WWW to świat daleko odbiegły od zwykłego programowania i kodu. Zapytaj o pomoc i podziel się z nami Twoimi problemami z zakresu Flasha.
mrdarek
Nowy
Nowy
Posty: 34
Rejestracja: wt lip 16, 2002 10:34 am
Lokalizacja: Internet
Kontakt:

[flash] Wczesne wysłanie zmiennej do flasha

Post autor: mrdarek »

Mam sobie animację Flash. Następnie na www idzie javascript, który wysyła do flasha zmienną
jak to zrobić jest napisane tutaj: http://www.macromedia.com/support/flash ... t_comm.htm
Jest OK bo widzę tę zmienną w specjalnie zadeklarowanym polu tekstowym. Mogę ją obrabiać i wszystko gra.
Ale w momencie inicjalizacji animacji musi wykonac się kawałek action scriptu - powinien on skorzystać z tej zmiennej - ale jej jeszcze wtedy nie ma !!! Najpierw wyświetla się cały obiekt potem wysyłana jest zmienna i obiekt jest gotowy ją obrabiać - ale ja muszę skorzystać z tej zmiennej zaraz na początku - jak mam to zrobić, żeby ta zmienna była już we flashu dostępna na pierwsze zadziałanie kodu....
Nookie
Posty: 13
Rejestracja: wt sie 06, 2002 8:28 pm
Lokalizacja: ok. W-wa city

Re: [flash] Wczesne wysłanie zmiennej do flasha

Post autor: Nookie »

hmmm przeslij 2 zmienne ... jedna to ta ktora potrzebujesz a 2 to ta ktora potwierdzi ladowanie ( koniec = 1 ) . We flashu daj koniec = 0 ... do momentu az koniec nie bedzie 1 as nie bedzie wykonywany...
mrdarek
Nowy
Nowy
Posty: 34
Rejestracja: wt lip 16, 2002 10:34 am
Lokalizacja: Internet
Kontakt:

Re: [flash] Wczesne wysłanie zmiennej do flasha

Post autor: mrdarek »

Dokładnie tak zrobiłem - wysyłam do flasha zmienne javascriptem działającym w pętli czasowej. Javascript próbuje wysłać te zmienne co 3 sekundy. We flashu działa Interval który co pół sekundy bada czy zmienna nadeszła. Po nadejściu zmiennej warunek wyłącza interwal - i zaczyna działać właściwy "film", a zmienna już jest. Teraz jeszcze flash powinien powiadomić javascript, żeby zaprzestał dalszych wysyłań zmiennej, ale kod który to robi jest bardzo skomplikowany i długi, więc sobie darowałem. Powoduje to jednak ustawiczne problemy - zmienna jest wciąż dostarczana do flasha i wciąż przyjmuje początkową wartość. W dodatku dostarczana zmienna przez javascript jest "łańcuchem", a nie "cyfrą" - dodatkowe przekształcenia wydłużają kod. Ale ma to też swoje zalety - działa very cool :)
Jak się komu chce może pooglądać screeny z gier na mojej stronie prezentowane we flash. Tam właśnie działa ten mechanizm...
Nookie
Posty: 13
Rejestracja: wt sie 06, 2002 8:28 pm
Lokalizacja: ok. W-wa city

Re: [flash] Wczesne wysłanie zmiennej do flasha

Post autor: Nookie »

hmmm nie znam sie na JS ale czemu przesylasz zmienne po iles razy ??? nie mozna przeslac tego raz w ustalonej kolejnosci i po klopocie ?
mrdarek
Nowy
Nowy
Posty: 34
Rejestracja: wt lip 16, 2002 10:34 am
Lokalizacja: Internet
Kontakt:

Re: [flash] Wczesne wysłanie zmiennej do flasha

Post autor: mrdarek »

Nie można "raz". Gdy ładuje się strona i javascript i flash nigdy nie wiadomo co będzie załadowane pierwsze. Dlatego javascript cały czas musi sprawdzać czy może wysłać zmienną - sprawdzać "nie ma fizycznej możliwości" więc musi ustawicznie wysyłać - najlepiej co pewien czas, żeby nie opóźnić działania samej strony.
Flash ładuje się "gotowy" na zmienną. Gdy tylko się załaduje - na pewno otrzyma zmienną bo script cały czas próbuje ją wysłać.
Jest to dla mnie jasne - choć wiem, że nieefektywne. Ale gdy javascript wysyłał zmienną "raz" to często jeszcze flash się nie załadował, więc się nie da inaczej. Ten flash bez dostarczonej zmiennej nie ruszy...
Też nie znam się na javascript - ale scrypt na czasowe wysyłanie znalazłem na jakiejś bardzo mądrej stronce. Dowiedziałem się z niej między innymi, że pętle czasowe w javascript musżą być wywoływane rekurencyjnie (dla laików: program wywołuje sam siebie)
Nookie
Posty: 13
Rejestracja: wt sie 06, 2002 8:28 pm
Lokalizacja: ok. W-wa city

Re: [flash] Wczesne wysłanie zmiennej do flasha

Post autor: Nookie »

hmmmm to zrob co takiego... przesylaj sobie 2 zmienne i daj dla jakiejs klatki ktora bedzie odegrana tylo raz cos takiego ze
inna_zmienna_we_flashu = twoja_zmienna_ktora_dostales_od_JS
takie przyrownanie niech odbedzie sie tylko raz a potem w dalszej czesci projektu korzystaj z inna_zmienna_we_flashu a tamta nie sie zmienia...
mrdarek
Nowy
Nowy
Posty: 34
Rejestracja: wt lip 16, 2002 10:34 am
Lokalizacja: Internet
Kontakt:

Re: [flash] Wczesne wysłanie zmiennej do flasha

Post autor: mrdarek »

Mój dotychczasowy początkowy kod Action:
(kto chce wiedzieć jaki jest kod javascript wysyłający nie sobie przeanalizuje źródło moich stron)

Kod: Zaznacz cały

// inicjalizacja - otrzymywane dane z javascript to startuj i ile
// conect - film startowy
// Number - zmienia łańcuch na cyfrę
var startuj = 0;
var ile = 1;
whichPic = 0;
dlastartuj._visible = false;
dlaile._visible = false;
// funkcja sprawdzajaca
function sprawdzstart() 
{
if (Number (startuj) <> 0) {
	whichPic = Number (startuj);
	conect.stop();
	conect._visible = false;
	inicjujglownyfilm();
	clearInterval( intervalID );
		    }
}
// ustaw wykrywanie na co pol sekundy
intervalID = setInterval( sprawdzstart, 500 ); 
// dalszy ciag kodu dzialajacy w filmie flownym
O - wiesz co - może nawet nie będę musiał inicjować nowego filmu - mam to wszystko w jednym globalnym Action. Przejmuję w nim co prawda zmienną startuj do zmiennej whichPic ale potem potrzebuję znów początkowej wartości (zmienna whichPic się zmienia). Teraz widzę, że wystarczy jeszcze raz przejąc ten startuj czyli np. realstartuj =Number (startuj); i będę miał stałą początkową. OK - wkrótce to sprawdzę i przetestuję (za parę dni), ale powinno zadziałać!
ODPOWIEDZ