我想最初使一个movieclip不可见,但我不想在flash中的属性中手动设置它,因为我不能在场景中看到它。
我希望我可以像这样添加一些代码:
MC第一帧。
this.onClipEvent(load)
{
this._alpha = 0;
}
但我不能。如何为所有实例将MC _alpha设置为0,而无需手动将其添加到每个实例或在属性中设置它?
编辑:或为它创建一个类来设置alpha。
答案 0 :(得分:0)
如果您想通过在动作脚本2中创建subclass
来实现这一目标,那么这是Adobe提供的一个很好的分步教程。
http://www.adobe.com/devnet/flash/articles/mc_subclasses_v2_04.html
本教程指示您添加onEnterFrame事件处理程序,但您可以忽略它,只需将以下代码添加到构造函数中。
如果您的班级名称是Ball
,那么代码将如下所示。 (这是教程中的第4步)。
dynamic class Ball extends MovieClip {
function Ball() {
this._alpha = 0;
}
}
答案 1 :(得分:0)
也许有些东西我没有正确理解,但你只需在第一帧写下这样的东西:
yourFirstMovieClip._alpha = 0;
yourSecondMovieClip._alpha = 0;
for( var i:Number = 0 ; i < 5 ; i++ )
{
this["mc"+i]._alpha = 0;
}
如果没有,您可以将每个片段存储在一个数组中,然后循环播放它:
var clips:Array = [mcFirst, mcSecond, mcThird, mcFourth];
for( var i:Number = 0 ; i < clips.length ; i++ )
{
clips[i]._alpha = 0;
}
答案 2 :(得分:0)
我现在正在使用此代码,它可以满足我的需求。但我恨它。
var once:Boolean;
if (once == null) {
once = true;
this._alpha = 0;
}
答案 3 :(得分:0)
另一个解决方案可能是将此行放在MovieClip的第一帧:
_alpha = 0;
在第二帧开始动画,并在最后一行添加以下行:
gotoAndPlay( 2 );
所以第一帧的代码只执行一次。