tworzę moją pierwszą AS3 z FlashDevelop i nie rozumiem sensu instrukcją w konstruktorze:Co oznacza "if (stage) init();" w języku ActionScript?
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
}
}
}
if (stage) init();
Co oznacza? Co to jest Event.ADDED_TO_STAGE? Dlaczego warto usunąć słuchacza w init()
?
Jestem zaskoczony, że nie widzę tu jeszcze odpowiedzi, więc podczas oczekiwania: otrzymasz ciekawą lekturę, jeśli wyszukasz hasło "Event.ADDED_TO_STAGE", które, jak podejrzewam, odpowie na twoje pytanie. (Nie wiem na pewno, nie działam w ActionScripcie, dlatego nie jest to odpowiedź, ale linki wyglądają ładnie na celu.) Wydaje mi się, że efektem agregacji jest zapewnienie, że 'init 'jest wywoływane tylko wtedy, gdy twój komponent jest na" scenie ": jeśli już jesteś, natychmiast go wywołasz. Jeśli tak nie jest, podpinamy słuchacza zdarzenia, które zostanie wywołane, gdy zostaniesz postawiony na scenie (a następnie usuniesz go, gdy zostanie wywołany). –
Tylko jedna odpowiedź, ale świetna :) – user310291