Napisano 19 Listopad 200618 l 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
Napisano 19 Listopad 200618 l 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()?
Napisano 19 Listopad 200618 l Autor 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 ?
Napisano 19 Listopad 200618 l 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; }; }
Napisano 19 Listopad 200618 l Autor Ha! działa! dzieki Thorgal :) jeszcze nigdy sie tyle nie nakurwowalem nad taką błahostką. pozdro
Napisano 19 Listopad 200618 l jesli pomoglem to mozesz mi sie odwdzieczyc i podarowac mi punkcik reputacji :)
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto