2013-12-11 66 views
-1

如何获取下一个数组并将其显示在文本字段中,并在循环中一次又一次地显示,直到数组达到其最大值,并有一个计时器当影片剪辑触及空间(影片剪辑)被触发,然后定时器使氧气下井几十每次的定时器触发如何获取数组中的下一个元素并显示该

oTimer.addEventListener(TimerEvent.TIMER, O2); 
stage.addEventListener(Event.ENTER_FRAME, outerSpace); 

var oPercent:Array = ["100", "90", "80", "70", "60", "50", "40", "30", "20", "10", "0"] 
var txtFld:TextField = new TextField(); 
var oTimer:Timer = new Timer(); 
addChild(txtFld); 
txtFld.text = "Oxygen: " + oPercent[0]; 


function O2(evt:TimerEvent) 
{ 
    for(var i:int = 0; i < 10; i++) 
     {  
      oTimer.start(); 
      txtFld.text = "Oxygen: " + oPercent[]; 
     } 
} 

function outerSpace(evt:TimerEvent) 
{ 
    if(char.hitTestObject(Space)) 
    { 
     oTimer.start(); 
    { 
} 

回答

0

我希望将有可能帮助访问某个项目。我试图编辑一下你的代码,修正一些错误并实现你的想法。

const OXYGEN_DELAY:uint = 100; 

//creating a simple index control 
var oxygenControl:uint = 0; 
//Vector instead Array 
var oPercent:Vector.<String> = new <String>['100', '90', '80', '70', '60', '50', '40', '30', '20', '10', '0']; 
var oPercentLength:uint = oPercent.length - 1; 

//Timer Class has a mandatory parameter 'delay:Number' 
var oTimer:Timer = new Timer(OXYGEN_DELAY); 

var txtFld:TextField = new TextField(); 
addChild(txtFld); 
txtFld.text = "Oxygen: " + oPercent[oxygenControl]; 

oTimer.addEventListener(TimerEvent.TIMER, O2TimerHandler, false, 0, true); 
stage.addEventListener(Event.ENTER_FRAME, outerSpaceHandler, false, 0, true); 

function O2TimerHandler(event:TimerEvent):void 
{ 
    txtFld.text = (oxygenControl < oPercentLength) ? 'Oxygen: ' + oPercent[++oxygenControl] : gameOver(); 
} 

function gameOver():String 
{ 
//clean up and so on... 
oTimer.removeEventListener(TimerEvent.TIMER, O2TimerHandler); 
stage.removeEventListener(Event.ENTER_FRAME, outerSpaceHandler); 

return ':('; 
} 

function outerSpaceHandler(event:Event):void 
{ 
    (char.hitTestObject(space)) ? oTimer.start() : oTimer.stop(); 
} 
+0

非常感谢:) – Smadygrady

+0

不客气!你可以请,接受答案? 祝你好运! – gabriel

0

你想用Array.length为最大值。您可以在一个阵列通过Array[INDEX]

var i:uint; 
var l:uint = oPercent.length; //total number of items in array 

for (i = 0; i < l; i++) { 
    trace(oPercent[i]); // trace out this item in the array 
} 
+0

这立即使得txtFld文说0我希望字符串说100,然后再90 80 70,然后再然后60 50等 – Smadygrady

+0

然后,你需要建立一个'Timer'。你提到你的问题的方式,它看起来像你不知道如何使用循环和访问数组。 [LiveDocs](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/index.html)是您最好的朋友。 –

+0

是的,我说错了 – Smadygrady

相关问题