Actionscript 3 循环3次,然后停止-闪烁AS3
这是我的主框架上的代码。我需要的页面只读取代码从上到下3次。即使你能想到我怎样才能让它停45秒。对不起,我已经脑死亡,不能再思考了。有什么建议吗Actionscript 3 循环3次,然后停止-闪烁AS3,actionscript-3,flash,loops,banner,Actionscript 3,Flash,Loops,Banner,这是我的主框架上的代码。我需要的页面只读取代码从上到下3次。即使你能想到我怎样才能让它停45秒。对不起,我已经脑死亡,不能再思考了。有什么建议吗 import com.greensock.*; import com.greensock.easing.*; import flash.utils.*; function doStuff() { //startValues box1.back.rotationY = -90; box1.back.alpha=0;
import com.greensock.*;
import com.greensock.easing.*;
import flash.utils.*;
function doStuff() {
//startValues
box1.back.rotationY = -90;
box1.back.alpha=0;
var flipSpeed:Number = .25;
var flipSpeedbea:Number = .04;
var tl:TimelineMax = new TimelineMax({delay:2});
tl.append(TweenMax.to(box1.front, flipSpeed, {rotationY:90, visible:false, ease:Linear.easeNone}))
tl.append(TweenMax.to(box1.back, 0, {alpha:1, immediateRender:false}))
tl.append(TweenMax.to(box1.back, flipSpeed, {rotationY:0, ease:Linear.easeNone}))
tl.append(TweenMax.to(box1.front, flipSpeed, {rotationY:0, visible:true, ease:Linear.easeNone}))
var tb:TimelineMax = new TimelineMax({delay:4});
box2.back2.rotationY = -90;
box2.back2.alpha=0;
tb.append(TweenMax.to(box2.front2, flipSpeed, {rotationY:90, visible:false, ease:Linear.easeNone}))
tb.append(TweenMax.to(box2.back2, 0, {alpha:1, immediateRender:false}))
tb.append(TweenMax.to(box2.back2, flipSpeed, {rotationY:0, ease:Linear.easeNone}))
tb.append(TweenMax.to(box2.front2, flipSpeed, {rotationY:0, visible:true, ease:Linear.easeNone}))
var ins:TimelineMax = new TimelineMax({delay:6});
box3.back3.rotationY = -90;
box3.back3.alpha=0;
ins.append(TweenMax.to(box3.front3, flipSpeed, {rotationY:90, visible:false, ease:Linear.easeNone}))
ins.append(TweenMax.to(box3.back3, 0, {alpha:1, immediateRender:false}))
ins.append(TweenMax.to(box3.back3, flipSpeed, {rotationY:0, ease:Linear.easeNone}))
ins.append(TweenMax.to(box3.front3, flipSpeed, {rotationY:0, visible:true, ease:Linear.easeNone}))
var per:TimelineMax = new TimelineMax({delay:7});
person.back_person.rotationY = -90;
person.back_person.alpha=0;
per.append(TweenMax.to(person.front_person, flipSpeed, {rotationY:90, visible:false, ease:Linear.easeNone}))
per.append(TweenMax.to(person.back_person, 0, {alpha:1, immediateRender:false}))
per.append(TweenMax.to(person.back_person, flipSpeed, {rotationY:0, ease:Linear.easeNone}));
var bea:TimelineMax = new TimelineMax({delay:7});
be_a.bea_back.rotationY = -90;
be_a.bea_back.alpha=0;
bea.append(TweenMax.to(be_a.bea_front, flipSpeedbea, {rotationY:90, visible:false, ease:Linear.easeNone}))
bea.append(TweenMax.to(be_a.bea_back, 0, {alpha:1, immediateRender:false}))
bea.append(TweenMax.to(be_a.bea_back, flipSpeedbea, {rotationY:0, ease:Linear.easeNone}));
bea.append(TweenMax.to(be_a.bea_front, flipSpeedbea, {rotationY:0, visible:true, ease:Linear.easeNone}))
stop();
setTimeout(doStuff, 15000);
}
doStuff();
是否可以将doStuff上的功能设置为仅继续运行45秒?基本上,我需要的功能“doStuff”发挥3次,每15秒 如果要每隔15秒调用
doStuff
3次,请从doStuff
内部删除对setTimeout
的调用,然后执行以下操作:
var stuffTimer:Timer = new Timer(15000, 2);
stuffTimer.addEventListener(TimerEvent.TIMER, doStuff)
doStuff(null);
stuffTimer.start();
您需要更改doStuff
方法以接受TimerEvent:
function doStuff(e:TimerEvent):void
{
[...]
}
与此无关,您应该将导入移出
doStuff
方法,并将它们与第一条导入语句一起分组。第一种解决方案是使用变量作为计数器,这样您就不需要使用计时器:
import com.greensock.*;
import com.greensock.easing.*;
import flash.utils.*;
var box1:Object;
var box2:Object;
var box3:Object;
var person:Object;
var be_a:Object;
function stop() {}
var stuffCount:uint = 0;
function doStuff() {
stuffCount++;
//startValues
box1.back.rotationY = -90;
box1.back.alpha=0;
var flipSpeed:Number = .25;
var flipSpeedbea:Number = .04;
var tl:TimelineMax = new TimelineMax({delay:2});
tl.append(TweenMax.to(box1.front, flipSpeed, {rotationY:90, visible:false, ease:Linear.easeNone}))
tl.append(TweenMax.to(box1.back, 0, {alpha:1, immediateRender:false}))
tl.append(TweenMax.to(box1.back, flipSpeed, {rotationY:0, ease:Linear.easeNone}))
tl.append(TweenMax.to(box1.front, flipSpeed, {rotationY:0, visible:true, ease:Linear.easeNone}))
var tb:TimelineMax = new TimelineMax({delay:4});
box2.back2.rotationY = -90;
box2.back2.alpha=0;
tb.append(TweenMax.to(box2.front2, flipSpeed, {rotationY:90, visible:false, ease:Linear.easeNone}))
tb.append(TweenMax.to(box2.back2, 0, {alpha:1, immediateRender:false}))
tb.append(TweenMax.to(box2.back2, flipSpeed, {rotationY:0, ease:Linear.easeNone}))
tb.append(TweenMax.to(box2.front2, flipSpeed, {rotationY:0, visible:true, ease:Linear.easeNone}))
var ins:TimelineMax = new TimelineMax({delay:6});
box3.back3.rotationY = -90;
box3.back3.alpha=0;
ins.append(TweenMax.to(box3.front3, flipSpeed, {rotationY:90, visible:false, ease:Linear.easeNone}))
ins.append(TweenMax.to(box3.back3, 0, {alpha:1, immediateRender:false}))
ins.append(TweenMax.to(box3.back3, flipSpeed, {rotationY:0, ease:Linear.easeNone}))
ins.append(TweenMax.to(box3.front3, flipSpeed, {rotationY:0, visible:true, ease:Linear.easeNone}))
var per:TimelineMax = new TimelineMax({delay:7});
person.back_person.rotationY = -90;
person.back_person.alpha=0;
per.append(TweenMax.to(person.front_person, flipSpeed, {rotationY:90, visible:false, ease:Linear.easeNone}))
per.append(TweenMax.to(person.back_person, 0, {alpha:1, immediateRender:false}))
per.append(TweenMax.to(person.back_person, flipSpeed, {rotationY:0, ease:Linear.easeNone}));
var bea:TimelineMax = new TimelineMax({delay:7});
be_a.bea_back.rotationY = -90;
be_a.bea_back.alpha=0;
bea.append(TweenMax.to(be_a.bea_front, flipSpeedbea, {rotationY:90, visible:false, ease:Linear.easeNone}))
bea.append(TweenMax.to(be_a.bea_back, 0, {alpha:1, immediateRender:false}))
bea.append(TweenMax.to(be_a.bea_back, flipSpeedbea, {rotationY:0, ease:Linear.easeNone}));
bea.append(TweenMax.to(be_a.bea_front, flipSpeedbea, {rotationY:0, visible:true, ease:Linear.easeNone}))
stop();
if (stuffCount < 3)
{
setTimeout(doStuff, 15000);
}
}
doStuff();
flash.utils.Timer:@thedark1978谢谢您的回复。目前,我正在使用一个计时器,将电影剪辑设置为每15秒重播一次。我很难理解到底是什么代码,以及我需要把代码放在哪里才能让整个电影在45秒后停止。再次返回以挽救这一天。谢谢,我把我的导入语句组合在一起,这应该是我的常识。每次我尝试电影now,我都会得到错误“1136:参数的数量不正确。预期为1”,它引用了第75行(),您需要使用
doStuff(null)调用您的方法现在需要争论了。你就是那个人!你和玛塞拉在激烈的竞争中成为所有堆栈溢出中的最高国王flash知识冠军,我只是希望它不会以一场动作脚本战斗而告终。再次感谢各位。
import com.greensock.;
import com.greensock.easing.*;
import flash.events.TimerEvent;
import flash.utils.*;
function doStuff() {
//startValues
box1.back.rotationY = -90;
box1.back.alpha=0;
var flipSpeed:Number = .25;
var flipSpeedbea:Number = .04;
var tl:TimelineMax = new TimelineMax({delay:2});
tl.append(TweenMax.to(box1.front, flipSpeed, {rotationY:90, visible:false, ease:Linear.easeNone}))
tl.append(TweenMax.to(box1.back, 0, {alpha:1, immediateRender:false}))
tl.append(TweenMax.to(box1.back, flipSpeed, {rotationY:0, ease:Linear.easeNone}))
tl.append(TweenMax.to(box1.front, flipSpeed, {rotationY:0, visible:true, ease:Linear.easeNone}))
var tb:TimelineMax = new TimelineMax({delay:4});
box2.back2.rotationY = -90;
box2.back2.alpha=0;
tb.append(TweenMax.to(box2.front2, flipSpeed, {rotationY:90, visible:false, ease:Linear.easeNone}))
tb.append(TweenMax.to(box2.back2, 0, {alpha:1, immediateRender:false}))
tb.append(TweenMax.to(box2.back2, flipSpeed, {rotationY:0, ease:Linear.easeNone}))
tb.append(TweenMax.to(box2.front2, flipSpeed, {rotationY:0, visible:true, ease:Linear.easeNone}))
var ins:TimelineMax = new TimelineMax({delay:6});
box3.back3.rotationY = -90;
box3.back3.alpha=0;
ins.append(TweenMax.to(box3.front3, flipSpeed, {rotationY:90, visible:false, ease:Linear.easeNone}))
ins.append(TweenMax.to(box3.back3, 0, {alpha:1, immediateRender:false}))
ins.append(TweenMax.to(box3.back3, flipSpeed, {rotationY:0, ease:Linear.easeNone}))
ins.append(TweenMax.to(box3.front3, flipSpeed, {rotationY:0, visible:true, ease:Linear.easeNone}))
var per:TimelineMax = new TimelineMax({delay:7});
person.back_person.rotationY = -90;
person.back_person.alpha=0;
per.append(TweenMax.to(person.front_person, flipSpeed, {rotationY:90, visible:false, ease:Linear.easeNone}))
per.append(TweenMax.to(person.back_person, 0, {alpha:1, immediateRender:false}))
per.append(TweenMax.to(person.back_person, flipSpeed, {rotationY:0, ease:Linear.easeNone}));
var bea:TimelineMax = new TimelineMax({delay:7});
be_a.bea_back.rotationY = -90;
be_a.bea_back.alpha=0;
bea.append(TweenMax.to(be_a.bea_front, flipSpeedbea, {rotationY:90, visible:false, ease:Linear.easeNone}))
bea.append(TweenMax.to(be_a.bea_back, 0, {alpha:1, immediateRender:false}))
bea.append(TweenMax.to(be_a.bea_back, flipSpeedbea, {rotationY:0, ease:Linear.easeNone}));
bea.append(TweenMax.to(be_a.bea_front, flipSpeedbea, {rotationY:0, visible:true, ease:Linear.easeNone}))
stop();
}
function onTimer(event:TimerEvent):void
{
doStuff();
}
var myTimer:Timer = new Timer(15000, 3);
myTimer.addEventListener(TimerEvent.TIMER, onTimer);
myTimer.start();
doStuff();