Показать сообщение отдельно
Старый 25.05.2010, 15:33
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 5  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Вот вам пример из хелпа, с передачей параметров в функцию (может, потом пригодится)

Код AS3:
package {
    import flash.display.Sprite;
    import flash.utils.*;
 
    public class SetTimeoutExample extends Sprite {
        private var delay:Number = 1000; // delay before calling myDelayedFunction
 
        public function SetTimeoutExample() {
            var intervalId:uint = setTimeout(myDelayedFunction, delay, "Hello", "World");
        }
 
        public function myDelayedFunction():void {
            trace(arguments[0] + " " + arguments[1]);
        }
    }
}
Применительно к вашему коду:
Код AS3:
addEventListener(Event.ENTER_FRAME,enterFrameListener);
нужно делать в функции beginTimer, иначе сразу начнет отрабатываться ENTER_FRAME.

Код AS3:
// делаем первую фигуру и запускаем ее анимацию
figure1:MyRectangle=new MyRectangle();
addChild(figure1);
figure1.addEventListener(Event.ENTER_FRAME,enterFrameListener);
 
// делаем вторую фигуру, но пока не анимируем.
figure2:MyRectangle=new MyRectangle();
addChild(figure2);
 
//запуск setTimerout
var intervalId:uint = setTimeout(beginTimer,1000);
 
function beginTimer():void{
//подписываем вторую фигуру на ENTER_FRAME - запускаем анимацию
figure2.addEventListener(Event.ENTER_FRAME,enterFrameListener);
}
 
function enterFrameListener(e:Event):void{
//часть кода, которая будет двигать прямоугольник по горизонтали
}
соответственно в хэндлере enterFrameListener доступ к объекту для его анимации делаете через e.target, чтобы анимировался именно нужный объект.

setTimeout удобен только в случае, если нужен одноразовый делэй, в остальных лучше пользоваться таймером, ну или твинерами, как было сказано выше.


Последний раз редактировалось Hidest; 25.05.2010 в 15:37.