2015-07-20 41 views
0

我正在学习Flash和ActionScript 3.0,用于一生中的组合项目。这是一个相当的学习曲线。目前,我一直在试图找出如何创建和调用具有我想要关注的动画片段名称的变量。ActionScript 3.0变量来存储MovieClip名称

我在舞台上有两个项目。首先是一个动画片段(Animation01),它具有我想要展示的主要内容。第二个是嵌套在动画片段(MovPlayStop)中的播放按钮(BtnPlay)和停止按钮(BtnStop)。播放/停止按钮允许用户控制是以自己的步调手动移动项目还是播放自动项目动画。

当用户点击播放按钮(BtnPlay),根据用户的选择被存储在主时间轴的变量(自动播放)。然后,它起着位于主时间轴上的影片剪辑(Animation01):

//Play Button Function 
import flash.events.MouseEvent; 
stop(); 

BtnPlay.addEventListener(MouseEvent.CLICK, PlayBtn); 
function PlayBtn(event:MouseEvent):void{ 
    MovieClip(root).AutoPlay = true;//Stores Autoplay value in the main timeline 
    MovieClip(this.parent).Animation01.play();//Plays the movieclip on the main timeline 
    gotoAndStop(2);//Switches the Play button to the Stop button 
} 

这非常适用于当前的影片剪辑。但是,我组织了我的项目,以便当动画片段(动画01)结束时,它将移动到主时间轴中的下一帧,该帧具有该系列中的下一个动画片段(Animation02)。 Movieclip(Animation02)完成后,我们移动到主时间轴中的下一帧,并使用下一个动画片段......等等,然后......如何创建具有我想要关注的动画片段路径的变量?基本上我想创建这行代码的变量:

MovieClip(this.parent).Animation01.play(); 

我试图创建在主时间轴中的帧的开始以下:

//As a String 
var cFrame:String = "MovieClip(root).Animation01"; 


//As a MovieClip... not enough examples to look at 
var cFrame:MovieClip = MovieClip(root).Animation01; 

,然后调用它通过播放按钮功能:

//New variable from main timeline variable 
var Animation:MovieClip = MovieClip(root).cFrame; 
Animation.play(); 


//Main timeline variable in the script 
MovieClip(this.parent).MovieClip(root).cFrame.play(); 


//New variable from main timeline variable 
var Animation:String = MovieClip(root).cFrame; 
Animation.play(); 

到目前为止没有运气......有关如何创建和调用此类变量的任何想法?

+0

如果我能给你一个建议:不要使用Flash。它被弃用和不安全。 (http://www.christiantoday.com/article/firefox.blocking.adobe.flash.plugin.automatically/59062.htm),(https://addons.mozilla.org/en-us/firefox/addon/flashblock /),(http://gizmodo.com/firefox-now-blocks-flash-by-default-1717664482) –

回答

0

我的按钮内部的剧本是这样:

MovieClip(this.parent).Animation01.play(); 

而不是引用静态影片剪辑的,我想创建一个变量来代替静态影片剪辑。在主时间轴上,我为当前的Animation#动画片段创建了一个名为cFrame的变量。每当一个新的影片剪辑的中心舞台,价值的变化:

//Main Timeline 
var cFrame:MovieClip = Animation01; 

//Next Frame 
cFrame = Animation02; 

播放按钮功能里面,我只是打电话给变量这样

//Play Button 
MovieClip(this.parent).cFrame.play(); 

这为我做!

我遇到的主要问题是试图将“MovieClip(this.parent)”部分包含到主时间轴中的movieclip变量中。我不完全了解父母子女关系是如何工作的。仍然有点困惑。

0

我建议不要使用多个帧,您应该在需要时将影片剪辑加载和卸载到一个帧中。

var currentMovie = mc1; //the actual name of your movie clip, not the string version 

function SwitchMovieFromButton(event:MouseEvent): void 
{ 
    currentMovie = (currentMovie == mc1) ? mc2 : mc1; 
    currentMovie.gotoAndPlay(1); 
} 

你可以做这样的事情来切换活动电影和播放一个,然后另一个。

+0

加载和卸载会给我同样的问题,因为我现在。我的问题是播放按钮被写入,以便播放Animation01动画片段。当它移动到下一个动画片段时,无论是通过多帧还是加载/卸载,“播放”按钮仍然只引用Animation01。我想改为创建一个变量,以便在播放按钮功能中使用该变量。 – RideMyPony

相关问题