2011-04-12 19 views

Respuesta

4

Según lo indicado por Alex here:

ActionScript es de un solo subproceso, si pasa mucho tiempo haciendo pesada computación, la interfaz de usuario no puede actualizarse mientras estás haciendo que computación para que aparezca su aplicación atascado o los efectos no se ejecutan sin problemas.

De forma similar, tampoco hay cedencia ni bloqueo en Actionscript. Si se supone que se debe ejecutar la siguiente línea de código, no puede evitar la ejecución de la siguiente línea de código . Eso significa que cuando llame a Alert.show(), , la siguiente línea de código siguiente se ejecutará de inmediato.

En muchos otros tiempos de ejecución, la ventana Alerta debe cerrarse antes de que continúe la próxima línea de código . Threading puede ser una característica de Actionscript algún día, pero hasta entonces, tiene que vivir con el hecho de que no existe tal cosa en este momento.

4

ActionScript 3 tiene un solo hilo.

Lo que puedes hacer es cortar el trabajo en rodajas lo suficientemente pequeñas como para que la capacidad de respuesta no se vea demasiado afectada. Por ejemplo:

private var _long_process_work_object:LongProcessWorkClass; 
private var _long_process_timer:Timer; 

private function startSomeLongAndIntensiveWork():void 
{ 
    _long_process_work_object = new LongProcessWorkClass(); 

    _long_process_timer = new Timer(10); 
    _long_process_timer.addEventListener("timer", longProcessTimerHandler); 
    _long_process_timer.start(); 
} 

private function longProcessTimerHandler(event:TimerEvent):void 
{ 
    _long_process_timer.stop(); 

    // do the next slice of work: 
    // you'll want to calibrate how much work a slice contains to maximize 
    // performance while not affecting responsiveness excessively 
    _long_process_work_object.doSomeOfTheWork(); 

    if (!_long_process_work_object.Done) { 
     // long process is not done, start timer again 
     _long_process_timer.start(); 
     return; 
    } 

    // long process work is done, do whatever comes after 
} 
0

Flex 3 se basa en ActionScript 3. ActionScript 3 no es compatible con multihilo (no se puede escribir código destinado a la ejecución de múltiples hilos). Una aplicación flexible compilada se ejecuta en la plataforma de Flash Player. Adobe Flash Player 11.4 y hasta más soporte para multihilo.