As3(代码片段)从另一个对象中更改舞台上对象的属性

时间:2013-03-30 03:10:28

标签: actionscript-3

我一直在寻找过去几个小时如何做到但没有运气。首先,我是AS的新手,不知道该搜索什么。

所以这就是我拥有的和我想要做的事情:舞台只有1帧,在舞台上我有1个按钮(b1),1个不可见的影片剪辑(区域)和1个可见的影片剪辑20帧(ani)的动画。当我按下按钮“b1”时,它将启动电影“ani”(电影最初停止),当它到达第20帧时将停止。现在我想要的是当它到达最后一帧时制作电影剪辑“区域“可见。由于我在“ani”里面和第20帧,我不能直接使用area.visible = true;因为我会得到错误“访问不明属性区域。”从另一个对象中访问“area”属性的方法是什么?

2 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解你所说的一切,但我认为你想要做的就是在你的舞台上,ani和area都有范围:

ani.addEventListener(Event.ENTER_FRAME, frameCheck);

function frameCheck(e:Event):void
{
   if (ani.currentFrame == ani.totalFrames)
  {   
      ani.removeEventListener(Event.ENTER_FRAME, frameCheck);
      area.visible = true;  
  }
}

这只是一个例子,说明你如何能够检测出最后一帧并正确处理它。

您需要在按下按钮的时候添加事件监听器。

答案 1 :(得分:0)

在“ani”MovieClip内(最后一帧)添加以下句子

MovieClip(this.parent).area.visible = true;

此处,parent是您的主要时间轴。

(注意:不推荐这种方法)。

相反,使用外部类方法。例如使用Loader类加载带有COMPLETE事件的动画swf,并使用contentLoaderInfo获取swf对象并检测最后一帧并使区域MovieClip可见。