怎么用as3.0外部.as代码控制动画的停止与播放

 我来答
张涛是你男神
2015-01-24 · TA获得超过3142个赞
知道大有可为答主
回答量:2820
采纳率:0%
帮助的人:4162万
展开全部
比如说你原来的影片剪辑有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);
dayinspring
高粉答主

推荐于2016-01-22 · 繁杂信息太多,你要学会辨别
知道大有可为答主
回答量:2.3万
采纳率:92%
帮助的人:3597万
展开全部
一、按钮控制播放、停止代码:
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 体验的重要部分。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式