flash as3.0。想实现这样的功能:主画面有三个分支影片剪辑监听器,点击各自的图标去完成相应动画。
完成动画之后要回到主画面来。请问如何实现呢?谢谢两位的解答!我先采纳ningxi_wz的建议。zb6306的写法貌似很专业,但是我调试出错,所以,分给ningxi_wz,...
完成动画之后要回到主画面来。请问如何实现呢?
谢谢两位的解答!我先采纳 ningxi_wz的建议。zb6306的写法貌似很专业,但是我调试出错,所以,分给ningxi_wz,对不住了。 展开
谢谢两位的解答!我先采纳 ningxi_wz的建议。zb6306的写法貌似很专业,但是我调试出错,所以,分给ningxi_wz,对不住了。 展开
展开全部
追问:这个方法不靠谱。三个分支,如果1分支是2-30贞,2分支是31-50贞,3分支是51-70贞,当使用gotoandplay(1分支)的时候,完成之后会再次进入2分支和3分支。与我的构想不一致。
按照你的追问,其实使用gotoAndPlay是可以的,
在第一帧加3个按钮btn1,btn2,btn3,给他们添加事件侦听
stop();
btn1.addEventListener(MouseEvent.CLICK,function(){gotoAndPlay(2)});
btn2.addEventListener(MouseEvent.CLICK,function(){gotoAndPlay(31)});
btn3.addEventListener(MouseEvent.CLICK,function(){gotoAndPlay(51)});
让他们点击后跳到相应的分支去播放,
其次,在每个分支的最后一帧(即30、50、70帧),加上一个gotoAndStop(1);这样每播放完一个分支就会跳回到第一帧,而不会继续播放接下去的分支。
按照你的追问,其实使用gotoAndPlay是可以的,
在第一帧加3个按钮btn1,btn2,btn3,给他们添加事件侦听
stop();
btn1.addEventListener(MouseEvent.CLICK,function(){gotoAndPlay(2)});
btn2.addEventListener(MouseEvent.CLICK,function(){gotoAndPlay(31)});
btn3.addEventListener(MouseEvent.CLICK,function(){gotoAndPlay(51)});
让他们点击后跳到相应的分支去播放,
其次,在每个分支的最后一帧(即30、50、70帧),加上一个gotoAndStop(1);这样每播放完一个分支就会跳回到第一帧,而不会继续播放接下去的分支。
展开全部
首先说明,你这个制作方法不可取,更谈不上专业了。以下方法或许可以帮你解决问题。我们采取的方法是,增加一个脚本图层,在第一帧写上
addEventListener("esc",onPlay);
function onPlay(evt:Event):void
{
gotoAndStop(1);
}
stop(),
在每个分支的最后一帧写上
import flash.events.Event;
var myEvt:Event=new Event("esc");this.dispatchEvent(myEvt);
然后你可以写三个分剪辑的事件了假如你三个剪辑分别为mc0,mc1,mc2;
以下脚本加在时间轴的第一帧
var playNum:Array = [2,31,51];
for (var i:uint=0; i<3; i++)
{
this["mc" + i].addEventListener(MouseEvent.CLICK,onClick);
}
function onClick(evt:MouseEvent):void
{
for (var i:uint=0; i<3; i++)
{
if (evt.currentTarget == this["mc" + i])
{
gotoAndPlay(playNum[i]);
}
}
}
最后祝你成功,也建议你学学更好的面向对象之类的编程方法。
addEventListener("esc",onPlay);
function onPlay(evt:Event):void
{
gotoAndStop(1);
}
stop(),
在每个分支的最后一帧写上
import flash.events.Event;
var myEvt:Event=new Event("esc");this.dispatchEvent(myEvt);
然后你可以写三个分剪辑的事件了假如你三个剪辑分别为mc0,mc1,mc2;
以下脚本加在时间轴的第一帧
var playNum:Array = [2,31,51];
for (var i:uint=0; i<3; i++)
{
this["mc" + i].addEventListener(MouseEvent.CLICK,onClick);
}
function onClick(evt:MouseEvent):void
{
for (var i:uint=0; i<3; i++)
{
if (evt.currentTarget == this["mc" + i])
{
gotoAndPlay(playNum[i]);
}
}
}
最后祝你成功,也建议你学学更好的面向对象之类的编程方法。
追问
首先谢谢你详细的回答!小弟初学as3.0,很多方面不熟悉,
“在每个分支的最后一帧写上如下代码”
分支时间轴上有动画,不能加代码吧。还是我理解错了?我是这样的图层安排。
1--主画面
2--分支1影片剪辑图标
3--分支2影片剪辑图标
4--分支3影片剪辑图标
5--分支动画(2-30)
6--分支动画(31-50)
7--分支动画(51-70)
8---代码(监听鼠标)
9--代码(stop一句)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码嘛,gotoandplay
追问
这个方法不靠谱。三个分支,如果1分支是2-30贞,2分支是31-50贞,3分支是51-70贞,当使用gotoandplay(1分支)的时候,完成之后会再次进入2分支和3分支。与我的构想不一致。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询