Skocz do zawartości

Featured Replies

Napisano

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

  • Odpowiedzi 5
  • Wyświetleń 1,2k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

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
  • 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

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
  • Autor

Ha! działa! dzieki Thorgal :)

jeszcze nigdy sie tyle nie nakurwowalem nad taką błahostką.

 

pozdro

Napisano

jesli pomoglem to mozesz mi sie odwdzieczyc i podarowac mi punkcik reputacji :)

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności