Quiero que mi código espere unos segundos antes de ejecutarse. Entonces, ¿hay alguna función similar a dormir en flexión?¿Hay alguna función de suspensión en flexión?
Respuesta
No hay función de reposo o retraso en ActionScript. Como JavaScript, puede utilizar setTimeout()
lugar como esto:
function trigger():void { setTimeout(doIt, 1000); }
function doIt():void { Alert.show("done!"); }
Una vez que enlace la función trigger()
a cualquier evento como un ‘clic’, cuando el evento ocurre cuadro de alerta se mostrará después de 1 seg.
También hay setInterval()
y clearlnterval()
funciones que puede utilizar para la repetición. Sin embargo, se recomienda utilizar la clase flash.utils.Timer
en ese caso.
private var myTimer:Timer;
private function init():void {
myTimer = new Timer(5000, 1);
myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, timerHandler);
myTimer.start();
}
public function timerHandler(event:TimerEvent):void {
Alert.show("I was delayed!");
}
Le recomendaría que haga un ejemplo con Timer y no con setTimeout. –
gracias por los comentarios que he actualizado mi respuesta. –
FYI si debe usar setTimeOut, asegúrese de llamar a clearTimeOut, o corre el riesgo de una pérdida de memoria. Sin embargo, no sería tan rápido para responder la pregunta aquí ... Sospecho que hay un malentendido subyacente de la naturaleza asincrónica de flash/flex que de otro modo tendríamos la oportunidad de aclarar. –
Siempre depende de lo que está tratando de hacer.
Veo que está utilizando Flex. Hay una característica clara en Flex que se llama callLater, que se implementa en UIComponent. Es similar a setTimeout en uso, pero la función se llamará automáticamente en el próximo ciclo de actualización en lugar de un intervalo de tiempo establecido. Supongamos que establece algunos datos en una cuadrícula de datos y en qué seleccionar una celda/fila específica. Utilizará callLater para asegurarse de que la cuadrícula de datos haya tenido tiempo de procesar los datos. He aquí un exemple:
protected function dummy():void
{
myComponent.callLater(myFunction, ["this is a message"])
}
protected function myFunction(message:String):void
{
Alert.show(message);
}
Si lo que desea es retrasar una ejecución una vez, setTimeout es el camino a seguir. Si desea ejecutar algo más de una vez a intervalos definidos, use el temporizador de hecho.
Si es para reaccionar ante alguna acción, como una función de guardado remoto, sugiero que use eventos en su lugar y escuche algo como un evento SAVE_COMPLETE.
+1 para al menos mencionar que los eventos son probablemente la manera de resolver lo que sucede con el problema subyacente que el OP está tratando de resolver. –
No hay función de reposo en ActionScript. Todo se ejecuta en un hilo, por lo que también bloquearía todas las interacciones de la interfaz de usuario, lo que comúnmente se percibe como un mal camino a seguir.
La opción más cercana es usar la clase del temporizador que solo se iniciará en la función en cuestión y "encender" el código que desea esperar después de que se complete su espera de 2 segundos.
en función de:
private function whereWeStartTimer():void{
//misc code that you always execute before starting your timer
var timer:Timer = new Timer(2000); // 2 second wait
timer.addEventListener(TimerEvent.TIMER,functionTimerFlagged);
timer.start();
}
private function functionTimerFlagged(event:TimerEvent):void{
var targetTimer:Timer = event.target as Timer;
targetTimer.removeEventListener(TimerEvent.TIMER,functionTimerFlagged);
targetTimer.stop();
//put your code here that you wanted to execute after two seconds
//force-ably destroy timer to ensure garbage collection(optional)
targetTimer = null;
}
Lo que si tuviera que ejecutar el botón del temporizador como en el siguiente condición? Tengo un evento de clic de mapa que muestra información en la ventana del mapa. Necesito buscar información de DB en el medio. Ahora, para mostrar la información obtenida en la ventana emergente de información, lleva tiempo.
Creo que es mejor inducir un sueño o un temporizador entre los clics del mapa y la información emergente, por lo que se pueden mostrar los datos obtenidos.
- 1. Función de suspensión en C++
- 2. jQuery función de suspensión?
- 3. Función de suspensión Visual Basic
- 4. Función de suspensión en Windows, usando C
- 5. Función de suspensión en el programa Android
- 6. ¿Hay señales de suspensión/reanudación en Linux?
- 7. hay alguna función como string.isnullorempty() en javascript
- 8. ¿Existe una función de suspensión alternativa en C a milisegundos?
- 9. ¿Hay alguna API Win32 para activar el modo de hibernación o suspensión en Windows?
- 10. ¿Hay alguna función de logaritmo GMP?
- 11. ¿Hay alguna manera de hacer una función atómica en C? .
- 12. En IDA Pro, ¿hay alguna manera de marcar una función?
- 13. ¿Hay alguna función de regresión lineal en SQL Server?
- 14. ¿Hay alguna forma de silenciar la función 'espera' en Matlab
- 15. ¿Hay alguna función en Perl similar a GetType() en C#?
- 16. La función de suspensión usa recursos del servidor?
- 17. Función de suspensión de plataforma cruzada para C++
- 18. ¿Hay alguna función para truncar un doble en java?
- 19. ¿hay alguna función como php explotar en jquery?
- 20. ¿Hay alguna función para agregar espacio en PL/SQL
- 21. ¿Hay alguna función de inserción de Excel para SUMPRODUCT IF?
- 22. cómo centro alinear un botón en un hbox en flexión?
- 23. Operación de suspensión en C++, plataforma: windows
- 24. ¿Hay alguna función de autocorrelación numpy con salida estandarizada?
- 25. ¿Hay alguna manera de "eliminar" una función virtual pura?
- 26. ¿Hay alguna forma de currying en C?
- 27. ¿Hay alguna función llamada después de la función OnInitDialog en MFC?
- 28. ¿Hay alguna manera de detener el tiempo. ¿Duerme en Windows?
- 29. ¿Hay alguna función que convierta HTML a texto sin formato?
- 30. ¿Hay alguna función como contiene desde Java para PHP?
[Timer] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/Timer.html) – RIAstar