怎么用as3.0外部.as代码控制动画的停止与播放
展开全部
比如说你原来的影片剪辑有10帧,第1帧上写了 trace("HELLO") ,第5帧写了trace(123),第10帧写了
stop(),然后你为它写了一个外部as脚本类,并且是确认两者之间的链接无误的话……
实现方法有2种:
上策是在原来有代码的各关键帧上写事件派发(dispatchEvent),每播放到该关键帧就会对外发送一次事件通知;在外部脚本类中写侦听,根据对应的事件通知来执行原来的代码。
在影片剪辑的第1帧上写
dispatchEvent(new Event("Frame1_Event"));
在影片剪辑的第5帧上写
dispatchEvent(new Event("Frame5_Event"));
在影片剪辑的第10帧上写
dispatchEvent(new Event("Frame10_Event"));
然后在外部as的构造函数中写
this.addEventListener("Frame1_Event",onFrame1);
this.addEventListener("Frame5_Event",onFrame5);
this.addEventListener("Frame10_Event",onFrame10);
再在构造函数的外面,class的里面写
private function onFrame1)(e:EVent):void
{
trace("HELLO");
}
private function onFrame5(e:EVent):void
{
trace(123);
}
private function onFrame10(e:EVent):void
{
stop();
}
这种方法最节省cpu和内存的消耗。
比较小白的方法:在外部监听帧事件(就是Event.ENTER_FRAME),判断当前时间轴播放到第几帧,然后执行对应方法。
你在外部类的构造函数里面写
this.addEventListener(Event.ENTER_FRAME,enterFrame);
然后再在构造函数的外部,class的内部写
private function enterFrame(e:Event):void
{
switch(this.currentFrame)
{
case 1:
trace("HELLO");
break;
case 2:
trace(123);
break;
case 10:
stop();
break;
}
}
这可是比较占资源的,不需要的时候记得移除事件侦听
this.removeEventListener(Event.ENTER_FRAME,enterFrame);
stop(),然后你为它写了一个外部as脚本类,并且是确认两者之间的链接无误的话……
实现方法有2种:
上策是在原来有代码的各关键帧上写事件派发(dispatchEvent),每播放到该关键帧就会对外发送一次事件通知;在外部脚本类中写侦听,根据对应的事件通知来执行原来的代码。
在影片剪辑的第1帧上写
dispatchEvent(new Event("Frame1_Event"));
在影片剪辑的第5帧上写
dispatchEvent(new Event("Frame5_Event"));
在影片剪辑的第10帧上写
dispatchEvent(new Event("Frame10_Event"));
然后在外部as的构造函数中写
this.addEventListener("Frame1_Event",onFrame1);
this.addEventListener("Frame5_Event",onFrame5);
this.addEventListener("Frame10_Event",onFrame10);
再在构造函数的外面,class的里面写
private function onFrame1)(e:EVent):void
{
trace("HELLO");
}
private function onFrame5(e:EVent):void
{
trace(123);
}
private function onFrame10(e:EVent):void
{
stop();
}
这种方法最节省cpu和内存的消耗。
比较小白的方法:在外部监听帧事件(就是Event.ENTER_FRAME),判断当前时间轴播放到第几帧,然后执行对应方法。
你在外部类的构造函数里面写
this.addEventListener(Event.ENTER_FRAME,enterFrame);
然后再在构造函数的外部,class的内部写
private function enterFrame(e:Event):void
{
switch(this.currentFrame)
{
case 1:
trace("HELLO");
break;
case 2:
trace(123);
break;
case 10:
stop();
break;
}
}
这可是比较占资源的,不需要的时候记得移除事件侦听
this.removeEventListener(Event.ENTER_FRAME,enterFrame);
展开全部
一、按钮控制播放、停止代码:
stop();
pbtn.addEventListener(MouseEvent.CLICK,bf);//播放按钮的实例名pbtn
function bf(me:MouseEvent){
this.play();
}
sbtn.addEventListener(MouseEvent.CLICK,tz);
function tz(me:MouseEvent){
this.stop();
mymc.stop();
}
二、简介:
ActionScript 3.0 是一种强大的面向对象编程语言,它标志着 Flash Player Runtime 演化过程中的一个重要阶段。设计 ActionScript 3.0 的意图是创建一种适合快速地构建效果丰富的互联网应用程序的语言,这种应用程序已经成为 Web 体验的重要部分。
stop();
pbtn.addEventListener(MouseEvent.CLICK,bf);//播放按钮的实例名pbtn
function bf(me:MouseEvent){
this.play();
}
sbtn.addEventListener(MouseEvent.CLICK,tz);
function tz(me:MouseEvent){
this.stop();
mymc.stop();
}
二、简介:
ActionScript 3.0 是一种强大的面向对象编程语言,它标志着 Flash Player Runtime 演化过程中的一个重要阶段。设计 ActionScript 3.0 的意图是创建一种适合快速地构建效果丰富的互联网应用程序的语言,这种应用程序已经成为 Web 体验的重要部分。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询