Question

how do i get the next array in this and display it in the text field again and again in a loop until the array reaches its max value there is a timer that gets triggered when a movie clip touches space (movieclip) and then the timer makes the oxygen go down in tens everytime the the timer is triggered

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();
    {
}
Was it helpful?

Solution

I hope will be possible to help. I tried to edit a bit your code, fix some bugs and implement your idea.

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();
}

OTHER TIPS

You want to use Array.length as the max value. You can access an item in an array via 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
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top