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....
[flash] Wczesne wysłanie zmiennej do flasha
Re: [flash] Wczesne wysłanie zmiennej do flasha
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...
Re: [flash] Wczesne wysłanie zmiennej do flasha
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...
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...
Re: [flash] Wczesne wysłanie zmiennej do flasha
hmmm nie znam sie na JS ale czemu przesylasz zmienne po iles razy ??? nie mozna przeslac tego raz w ustalonej kolejnosci i po klopocie ?
Re: [flash] Wczesne wysłanie zmiennej do flasha
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)
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)
Re: [flash] Wczesne wysłanie zmiennej do flasha
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...
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...
Re: [flash] Wczesne wysłanie zmiennej do flasha
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)
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ć!
(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
