Показать сообщение отдельно
Старый 21.05.2007, 16:29
Makak вне форума Посмотреть профиль Отправить личное сообщение для Makak Найти все сообщения от Makak
  № 1  
Ответить с цитированием
Makak
 
Аватар для Makak

Регистрация: May 2006
Адрес: РБ, Уфа ...
Сообщений: 75
По умолчанию Проблема с while

Хочу сделать зацыкленно плывущий объект на AS3

есть рабочий код на AS2:
Код:
var n:Number = 4;
var i = 0;
while (i < n)
{
    this.attachMovie("cloud", "c" + i, i, {_x: 800 * i, onEnterFrame: function ()
    {
        if (++this._x > 1600)
        {
            this._x = this._x - 800 * n;
        }
    }});
    ++i;
}
пытаюсь переписать его на AS3:
Код:
package
{
	import flash.display.*;
	import flash.events.*;
	import flash.display.Sprite;
	
	public class main extends Sprite
	{
		public function main()
		{
			var n:Number = 4;
			var i:Number = 0;
			
			while (i < n)
			{
				var clouds:cloud = new cloud()
				this.addChild(clouds);
				clouds.addEventListener(Event.ENTER_FRAME,enterFrame_handler);
				
			}
			++i;			
		}
		
		private function enterFrame_handler(e:Event):void
		{
			x++;
			if (x > 1600)
	  		{
				x = x - 800 * 4;
    	                 }
		}
	}
}
две проблемы:
1. ругается на то что цикл (while) выполняется слишком долго...
2. как сделать динамическое название переменной в AS3 (как в примере на AS2 "c" + i )...

p.s. может есть проще способ решить эту задачу?