Temporizador para cargar el marco aleatorio que no funciona -- actionscript-3 camp Relacionados El problema

Timer to load random frame not working


0
vote

problema

Español

Tengo tres marcos con "800", "450", y "635"

Actualizé los códigos y solo salta a marcar para marcar cada 1 segundos ahora. Eso no es lo que necesito. Necesito el contador para llegar a 0 y salta a un marco y se detiene allí mismo. Eso es eso.

[ actualizado 2 ] Ver banner - > http://magnixsolutions.com/clients/OT/9995mb-scoreboard-april-160x600.swf

as3 -

  var fromFrame:int = 1; var myTimer:Timer = new Timer(1000, nCount); var frameNum:int = Math.ceil(Math.random() * mcYourScore.totalFrames)  timer_txt.text = nCount.toString(); myTimer.start();  myTimer.addEventListener(TimerEvent.TIMER, countdown);  function getRandomFromRange(minValue:Number, maxValue:Number):int { return Math.round(minValue + Math.random() * (maxValue - minValue)); }  function countdown(e:TimerEvent):void { //Display countdown timer_txt.text = String(myTimer.repeatCount - myTimer.currentCount); //if End of countdown, start from 2 frame fromFrame = (myTimer.repeatCount == myTimer.currentCount) ? 2 : 1; mcYourScore.gotoAndStop(getRandomFromRange(fromFrame, mcYourScore.totalFrames));  }   
Original en ingles

I have three frames with "800", "450", and "635"

I updated the codes and its just jumps to frame to frame every 1 seconds now. Thats not what I need. I need the counter to reach to 0 and it jumps to ONE frame and stops right there. Thats it.

[UPDATED 2] See banner - http://magnixsolutions.com/clients/OT/9995MB-Scoreboard-April-160x600.swf

AS3 -

var fromFrame:int = 1; var myTimer:Timer = new Timer(1000, nCount); var frameNum:int = Math.ceil(Math.random() * mcYourScore.totalFrames)  timer_txt.text = nCount.toString(); myTimer.start();  myTimer.addEventListener(TimerEvent.TIMER, countdown);  function getRandomFromRange(minValue:Number, maxValue:Number):int { return Math.round(minValue + Math.random() * (maxValue - minValue)); }  function countdown(e:TimerEvent):void { //Display countdown timer_txt.text = String(myTimer.repeatCount - myTimer.currentCount); //if End of countdown, start from 2 frame fromFrame = (myTimer.repeatCount == myTimer.currentCount) ? 2 : 1; mcYourScore.gotoAndStop(getRandomFromRange(fromFrame, mcYourScore.totalFrames));  } 
  

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

math.round (math.random ()) no tiene ningún sentido, devolverá solo 0 o 1 valores.

  var frameNum:int = Math.round(1 + Math.random() * (mcYourScore.totalFrames-1));   

Si desea visitar el marco aleatorio en cada garrapata, esta construcción debe ayudarlo:

  var seconds:int;  function getRandomFromRange(minValue:Number, maxValue:Number):int {     return Math.round(minValue + Math.random() * (maxValue - minValue)); }  function countdown(e:TimerEvent):void {     //Display countdown     seconds = myTimer.repeatCount - myTimer.currentCount;     timer_txt.text = seconds.toString();     //if End of countdown, start from 2 frame      mcYourScore.gotoAndStop(getRandomFromRange(((seconds == 0) ? 2 : 1), mcYourScore.totalFrames)); }   

Si desea visitar el marco aleatorio solo al final de la cuenta regresiva, puede usar TimerEvent.TIMER_COMPLETE MANTENILLO DE EVENTOS, O CAMBIAR countdown LOGIC:

  function countdown(e:TimerEvent):void {     //Display countdown     timer_txt.text = String(myTimer.repeatCount - myTimer.currentCount);     //if End of countdown, pick random frame, from 2 frame     if(myTimer.repeatCount == myTimer.currentCount){         mcYourScore.gotoAndStop(getRandomFromRange(2, mcYourScore.totalFrames));     } }   
 

Math.round(Math.random()) doesn't have any sense, it will return only 0 or 1 values.

var frameNum:int = Math.round(1 + Math.random() * (mcYourScore.totalFrames-1)); 

If you want to visit random frame on every tick, this construction should help you:

var seconds:int;  function getRandomFromRange(minValue:Number, maxValue:Number):int {     return Math.round(minValue + Math.random() * (maxValue - minValue)); }  function countdown(e:TimerEvent):void {     //Display countdown     seconds = myTimer.repeatCount - myTimer.currentCount;     timer_txt.text = seconds.toString();     //if End of countdown, start from 2 frame      mcYourScore.gotoAndStop(getRandomFromRange(((seconds == 0) ? 2 : 1), mcYourScore.totalFrames)); } 

If you want to visit random frame only at the end of countdown, you could use TimerEvent.TIMER_COMPLETE event handler, or change countdown logic:

function countdown(e:TimerEvent):void {     //Display countdown     timer_txt.text = String(myTimer.repeatCount - myTimer.currentCount);     //if End of countdown, pick random frame, from 2 frame     if(myTimer.repeatCount == myTimer.currentCount){         mcYourScore.gotoAndStop(getRandomFromRange(2, mcYourScore.totalFrames));     } } 
 
 
         
         

Relacionados problema

0  ¿Constructor para asignar el nombre de la instancia de Súper constante al agregar instancia en Flash IDE?  ( Constructor to assign instance name from super constant when adding instance in ) 
Tengo un objeto de biblioteca ( SomethingMC ) que extiende una clase personalizada ( Something ). Something , a su vez, extiende MovieClip . Si agrega So...

0  Problemas de clonación de un bytearray extendido  ( Trouble cloning an extended bytearray ) 
He extendido la clase BYTEARRARY, como esta: [RemoteClass(alias="MyByteArray")] public class MyByteArray extends ByteArray {} y se clonó una instancia ...

23  Getters / Setters en Java  ( Getters setters in java ) 
Soy nuevo en Java, pero tengo alguna experiencia de Oop con ActionScript 3, así que estoy tratando de migrar confiando en cosas que conozco. En ActionScript...

3  AS3 Programación FTP y las clases de socket y bytearray  ( As3 ftp programming and the socket and bytearray classes ) 
Perdón por la línea de asunto que suena como un título incluso nerdier Harry Potter. Estoy tratando de usar la clase de socket de AS3 para escribir un progr...

10  ¿Cómo eliminar a todos los oyentes de eventos de un objeto de pantalla?  ( How to remove all event listeners from a display object ) 
¿Hay alguna manera de determinar qué oyentes de eventos están registrados con un objeto de pantalla? Quiero eliminar a todos los oyentes de eventos de un obje...

93  ¿Cómo descargar un bytearray usando ActionScript 3?  ( How to unload a bytearray using actionscript 3 ) 
¿Cómo descargo en la fuerza un ByteArray de la memoria usando ActionScript 3? He intentado lo siguiente: AF_INET0 ...

1  Google Maps en Flex Componente  ( Google maps in flex component ) 
Estoy incorporando la API Flash de Google Maps en Flex y se ejecuta bien localmente con la marca de agua, etc. Cuando la subo al servidor (Flex.MyDomain.com),...

0  Flex - ¿Cómo funciona nativeApplication.icon?  ( Flex how does nativeapplication icon work ) 
NativeApplication.nativeApplication.icon.bitmaps = bitmapData(); Estoy tratando de editar los mapas de bits para el icono de la bandeja del sistema, pero...

50  Sqlstatement.execute () - consultas múltiples en una declaración  ( Sqlstatement execute multiple queries in one statement ) 
He escrito un script de generación de bases de datos en sql y quiero ejecutarlo en mi < un href = "http://en.wikipedia.org/wiki/adobe_integrated_runtime" re...

2  ¿Hay algún buen programa para ActionScript / Flex que cuenten líneas de código, número de funciones, archivos, paquetes, etc  ( Are there any good programs for actionscript flex thatll count lines of code n ) 
Doug McCune había creado algo que era exactamente lo que necesitaba ( http://dougmccune.com/blog/2007/05/10/analyze-your-actionscript-code-with-this-apollo-ap...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos