PDA

Просмотр полной версии : Как программно зациклить баннер в actionscript 3


1456974563
09.08.2009, 20:13
Суть вопроса:
В банере последовательно по таймерам движутся и останавливается 4 объекта. А мне надо, чтобы они опять начали движение заново по циклу.

this.addEventListener(MouseEvent.CLICK, clickFunc);

var timer1:Timer=new Timer(500,0);
timer1.addEventListener(TimerEvent.TIMER, onTimer);
timer1.start();

var timer2:Timer=new Timer(1500,0);
timer2.addEventListener(TimerEvent.TIMER, onTimerB);
timer2.start();

var timer3:Timer=new Timer(2500,0);
timer3.addEventListener(TimerEvent.TIMER, onTimerC);
timer3.start();

var timer4:Timer=new Timer(3500,0);
timer4.addEventListener(TimerEvent.TIMER, onTimerD);
timer4.start();

}

function onTimer(event:TimerEvent):void {
var tween:Tween=new Tween(A,"y",None.easeNone,A.y,45,0.2,true);
new Tween(A,"alpha",None.easeNone,A.alpha,1.0,0.1,true);
}

function onTimerB(event:TimerEvent):void {
var tween:Tween=new Tween(B,"y",None.easeNone,B.y,30,0.2,true);
new Tween(B,"alpha",None.easeNone,B.alpha,1.0,0.1,true);
}

function onTimerC(event:TimerEvent):void {
var tween:Tween=new Tween(C,"y",None.easeNone,C.y,12,0.2,true);
new Tween(C,"alpha",None.easeNone,C.alpha,1.0,0.1,true);
}

function onTimerD(event:TimerEvent):void {
var tween:Tween=new Tween(D,"y",None.easeNone,D.y,-4,0.2,true);
new Tween(D,"alpha",None.easeNone,D.alpha,1.0,0.1,true);
}


Т.е. после выполнения onTimerD надо начать onTimer, а появившиеся объекты с поля убрать. Я только начинаю в actionscript ... :rolleyes: Подскажите плиз поконкретнее

ramshteks
09.08.2009, 20:20
извините конечно, я в этом ниче не понимаю, но нахрена программно то делать????
не проще вручную? на таймлайне, по старинке? или моветон?

1456974563
09.08.2009, 20:23
извините конечно, я в этом ниче не понимаю, но нахрена программно то делать????
не проще вручную? на таймлайне, по старинке? или моветон?

Еще вчера сделал - все работает отлично. НО! Я учу actionscript 3 - посему решил сделать тоже самое, но на actionscript 3. все сделал, но зациклить не могу... :(

ramshteks
09.08.2009, 20:27
я конечно понимаю... но задачу вы поставили что "надо".
Подписывайте свой последний таймре на событие окончания таймера (см TimerEvent) и собсна по наступлению очищать экран изаново стартуйте все таймеры. Ну вообще вы, конечно, извращенец, сэр))

cleptoman
09.08.2009, 20:44
а на один таймер не варик повесить все это, а потом через условие начать сначала?

private var counter:Number = 0;
private function timerHandler(e:TimerEvent){
counter ++;
switch(counter ){
case 5:
//
break;
case 15:
//
break;
case 25:
//
break;
case 35:
//
counter = 0;
break;
}
}
var timer:Timer=new Timer(100);
timer.addEventListener(TimerEvent.TIMER, timerHandler);
timer.start();

1456974563
09.08.2009, 21:01
так у меня 4 разных объекта и в разное время начинают движение

Добавлено через 53 секунды
:eek:я конечно понимаю... но задачу вы поставили что "надо".
Подписывайте свой последний таймре на событие окончания таймера (см TimerEvent) и собсна по наступлению очищать экран изаново стартуйте все таймеры. Ну вообще вы, конечно, извращенец, сэр))

А нельзя ли поконкретнее и поподробнее. Я начинающий и общие фразы не совсем понимаю... :rolleyes: :eek:

cleptoman
09.08.2009, 21:22
так у меня 4 разных объекта и в разное время начинают движение

ну и?..а условия я для чего навтыкал?

Добавлено через 4 минуты
private var counter:Number = 0;

private function createTween(mc:DisplayObject,finishValue:Number){
var tween:Tween=new Tween(mc,"y",None.easeNone,mc.y,finishValue,0.2,true);
new Tween(mc,"alpha",None.easeNone,mc.alpha,1.0,0.1,true);

}

private function timerHandler(e:TimerEvent){
counter ++;
switch(counter ){
case 5:
createTween(A,45);
break;
case 15:
createTween(B,30);
break;
case 25:
createTween(C,12);
break;
case 35:
createTween(D,-4);
counter = 0;
break;
}
}
var timer:Timer=new Timer(100);
timer.addEventListener(TimerEvent.TIMER, timerHandler);
timer.start();