Autor Zpráva
Jaro
Profil *
preco to nefunguje

function efekt(bol:Boolean):void {
function onFrame(evt:Event):void {
trace("ok");
}
if (bol==true){
addEventListener(Event.ENTER_FRAME, onFrame);
}else{
removeEventListener("enterFrame", onFrame);
}
}

efekt(true);
but.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
function mouseDownHandler(event:MouseEvent):void {
efekt(false);
trace("koniec")
}
stop();
COBIS
Profil *
To je zajimave, ze kdyz doplnim do funkce onFrame trace(bol); tak to porad vypisuje true i kdyz je davno bol false.
function efekt(bol:Boolean):void {
	function onFrame(evt:Event):void {
		trace(bol);
		trace("ok");
	}
	if (bol==true) {
		addEventListener(Event.ENTER_FRAME, onFrame);
	} else {
		removeEventListener(Event.ENTER_FRAME, onFrame);
	}
}

efekt(true);
but.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
function mouseDownHandler(event:MouseEvent):void {
	efekt(false);
	trace("koniec");
}


ale ja bych to resil nejak takhle:
function onFrame(evt:Event):void {
	trace("ok");
}
function efekt(bol:Boolean):void {
	if (bol==true) {
		addEventListener(Event.ENTER_FRAME, onFrame);
	} else {
		removeEventListener(Event.ENTER_FRAME, onFrame);
	}
}

efekt(true);
but.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
function mouseDownHandler(event:MouseEvent):void {
	efekt(false);
	trace("koniec");
}
DoubleThink
Profil *
Dávat funkci do funkce mi přijde dost divoké. Připojením k listeneru ji sice nechá garbage collector na pokoji ale druhým zavoláním pravděpodobně nadeklaruješ novou (která nebude shodná s tou původní), takže ji asi removeEventListener nenajde. Nejsem si jistý.
Jaro
Profil *
DoubleThink:
ak das removeEventListener chned za add tak to funguje, tak ako to napisal Cobis som vedel ze to funguje ale potreboval som aby premenne z efekt (tu je to zjednodusene)boli dostupne aj pre onFrame. nakoniec som to vsetko dal do rootu tak ako to napisal Cobis.
Jaro
Profil *
www.proba.howto.cz/aton/

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0