estoy creando mi primer AS3 con FlashDevelop y yo no entendemos el significado de las instrucciones en el constructor:¿Qué significa "if (stage) init();" significa en 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
}
}
}
¿Qué significa if (stage) init();
? ¿Qué es Event.ADDED_TO_STAGE? ¿Por qué eliminar oyente en init()
?
Me sorprende no ver las respuestas aquí todavía, así que mientras estás esperando: Obtienes una lectura interesante si buscas "Event.ADDED_TO_STAGE", que sospecho que responderá a tu pregunta. (No lo sabría con certeza, no trabajo en ActionScript, por eso esta no es una respuesta. Pero los enlaces se ven bastante bien). Me parece que el efecto agregado es asegurar que 'init 'se invoca solo cuando su componente está en" etapa ": si ya lo está, lo llama inmediatamente. Si no lo eres, conectas un oyente para el evento que se activa cuando te suben al escenario (y luego lo quitas cuando se lo llaman). –
Solo una respuesta, pero excelente :) – user310291