FlooX Napisano 19 Listopad 2006 Napisano 19 Listopad 2006 Witam! mam problem. Chciałbym zrobić takie coś że mam MovieClipa na scenie który jest czarnym kwadratem i zaczyna on łagodnie znikać, gdy alpha osiągnie 0 to ma sie zmienić kolor na czerwony, i ponownie ten MC sie łagodnie pojawić z nowym kolorem. Problem jest w tym że nie potrafie wychwycić momentu w którym alhpa będzie 0 :( nie potrafie stworzyć tego kodu. Grzebałem w helpie ale nic do nie dało. pomóżcie to kod który ja zrobiłem: klocek.onEnterFrame = function() { this._alpha-=5; if (this._alpha==0) { kolor(); alfa(); } } function kolor() { var kolorek:Color = new Color(klocek); kolorek.setRGB(0xcde2ea); alfa(); } function alfa() { klocek._alpha+=50; } Jeszcze jakbyście mogli to powiedzcie jak zrobić by cała akcja została wykonana dopiero po kliknięciu na ten kwadrat. ? danke
piotrek Napisano 19 Listopad 2006 Napisano 19 Listopad 2006 kliknięcie to jest mc.onClick = function() { ... } if (this._alpha == 0) { delete this.onEnterFrame; kolor(); } Nie mam aktualnie Flasha, więc nie mogę sprawdzić, czty działa, ale powino być dobrze. Czemu dwa razy wywołujesz funkcję alfa()?
FlooX Napisano 19 Listopad 2006 Autor Napisano 19 Listopad 2006 no niestety nie działa. Znowu obiekt znika ale sie już nie pojawia :/ Zmieniłem kod jak powiedziałeś: klocek.onRelease = function() { klocek.onEnterFrame = function() { this._alpha-=5; if (this._alpha == 0) { delete this.onEnterFrame; kolor(); } } } function kolor() { var kolorek:Color = new Color(klocek); kolorek.setRGB(0xcde2ea); alfa(); } function alfa() { klocek.onEnterFrame = function() { klocek._alpha+=5; } } Ale klocek nie pojawia sie spowrotem. Gdy zmienie warunek że jeśli alfa nie jest równa 0 to... (if (klocek._alpha !==0) to zaskakuje i działa, i w efekcie kolor zmienia sie odrazu bo wiadomo..ale czemu nie to co chce ?
thorgal Napisano 19 Listopad 2006 Napisano 19 Listopad 2006 funkcja _alpha we flashu bardzo kuleje, bdybys wytrejsowal (trace(this._alpha)) wartosci zobaczyl bys ze nie osiagnie ci zera, tylko jakies ulamki( dla tego warunek nie dziala) sproboj zminic znak "==" na " czyli klocek.onRelease = function() { klocek.onEnterFrame = function() { this._alpha -= 5; if (this._alpha delete this.onEnterFrame; kolor(); } }; }; function kolor() { var kolorek:Color = new Color(klocek); kolorek.setRGB(0xFF0000); alfa(); } function alfa() { klocek.onEnterFrame = function() { trace(this._alpha); this._alpha += 5; }; } 1
FlooX Napisano 19 Listopad 2006 Autor Napisano 19 Listopad 2006 Ha! działa! dzieki Thorgal :) jeszcze nigdy sie tyle nie nakurwowalem nad taką błahostką. pozdro
thorgal Napisano 19 Listopad 2006 Napisano 19 Listopad 2006 jesli pomoglem to mozesz mi sie odwdzieczyc i podarowac mi punkcik reputacji :)
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się