PDA

Просмотр полной версии : Вывод массива


TIЕSTO
14.08.2010, 21:50
Здравствуйте !!
никак не могу понять как вывести массив на экран ???
помогите !!!
: )

нужно вывести через каждую секунду число из массива 10 чисел.

вот мой неправильно работающий код .
при запуске выдает Get Ready! , а через секунду сразу 10 =(

package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.text.*;

public class Race extends Sprite {
private var startMsg:TextField;
public function Race ( ) {
stage.frameRate = 30;

var timer:Timer = new Timer(1000, 10); //
timer.addEventListener(TimerEvent.TIMER, timerListener);
timer.start( );

startMsg = new TextField( );
startMsg.autoSize = TextFieldAutoSize.LEFT;
startMsg.text = "Get Ready!";
addChild(startMsg);
}
private function timerListener (e:TimerEvent):void {
var numbers:Array = [1,2,3,4,5,6,7,8,9,10];
if ( startMsg.text !== numbers[9] ){
for ( var i:int = 0; i !== numbers[9]; i++ ){
startMsg.text = numbers[i];}




}
}
}
}

t4arty
14.08.2010, 21:56
эм.. ваш код странный =) я не вьеду в него :)

TIЕSTO
14.08.2010, 22:17
чем же он странный ?))

TWETTI
14.08.2010, 22:29
Вот так надо. Без цикла.
package
{
import flash.display.Sprite;
import flash.events.TimerEvent;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.utils.Timer;

public class Main extends Sprite
{
private var count:int = 0;
private var numbers:Array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
private var startMsg:TextField;

public function Main():void
{
startMsg = new TextField();
startMsg.autoSize = TextFieldAutoSize.LEFT;
startMsg.text = "Get Ready!";
addChild(startMsg);

var timer:Timer = new Timer(1000, 10);
timer.addEventListener(TimerEvent.TIMER, onTimer);
timer.start();
}

private function onTimer(e:TimerEvent):void
{
startMsg.text = numbers[count];
count ++;
if (count == 11)
{
e.target.removeEventListener(TimerEvent.TIMER, onTimer);
}

}

}

}
А вообще зачем вам массив? Можно и без него.

SilverToad
14.08.2010, 22:30
По всей видимости требовалось, что то типа этого:

package
{
import flash.display.Sprite;
import flash.text.TextField;

import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.text.*;

public class Race extends Sprite
{
private var startMsg:TextField;

public function Race()
{
stage.frameRate = 30;

var timer:Timer = new Timer(1000, 10); //
timer.addEventListener(TimerEvent.TIMER, timerListener);
timer.start();

startMsg = new TextField();
startMsg.autoSize = TextFieldAutoSize.LEFT;
startMsg.text = "Get Ready!";
addChild(startMsg);
}

private var count:uint = 0;
private function timerListener(e:TimerEvent):void
{
var numbers:Array = [1,2,3,4,5,6,7,8,9,10];
if (count != numbers.length)
{
startMsg.text = numbers[count];
count++;
}
}
}
}


Добавлено через 1 минуту
Оу.. Надо чаще страницу обновлять, не разглядел, что уже ответили +))

gr_crd
14.08.2010, 22:33
for ( var i:int = 0; i !== numbers[9]; i++ ){
startMsg.text = numbers[i];}
}

вот здесь вы ведь сами указали, чтобы он установил последнее число.

можно просто добавить переменную-счетчик = 0.
каждый раз при срабатывании таймера startMsg.text = numbers[счетчик];
а также счетчик++ и никаких циклов не нужно

UPD
:)) поздно пишу)

TIЕSTO
14.08.2010, 22:47
спасибо , помогли ..))

Добавлено через 5 минут
страницу можно и не обновлять и так работает.