Flash AS3 - 通过MovieClip访问舞台上的动态文本

时间:2014-08-23 12:33:26

标签: actionscript-3 flash

我在访问舞台上的对象时遇到问题...

在我的情况下,我创建了一个movieclip(mc1),里面有两个不同的动画片段(mc2,mc3),舞台上有一个单独的动态文本字段(tf1)。

如果单击mc2或mc3,则tf1应更改为固定文本。 不幸的是,我总是在访问tf1时遇到错误......

来自mc1的代码:

mc2.addEventListener(MouseEvent.MOUSE_DOWN, Mouse_up2);
mc3.addEventListener(MouseEvent.MOUSE_DOWN, Mouse_up3);

function Mouse_up2(event:MouseEvent):void {
  stage.tf1.text="text2"; }

function Mouse_up3(event:MouseEvent):void {
  stage.tf1.text="text3"; }

1 个答案:

答案 0 :(得分:0)

此错误消息的来源是因为您的textField不是Stage的子项,而是MainTimeline的子项,Stage本身位于trace(tf1.parent); // [object MainTimeline] trace(tf1.parent.parent); // [object Stage] 。< / p>

mc2.addEventListener(MouseEvent.MOUSE_DOWN, Mouse_up2);

function Mouse_up2(event:MouseEvent): void
{
    tf1.text = "text2";
}

要定位你的textField,你只需要写:

this

注意

关键字object MainTimeline引用了object Stage所包含的tf1.text = "text2"; this.tf1.text = "text2"; 。这两个代码是等价的:

this.mc2.addEventListener(MouseEvent.MOUSE_DOWN, Mouse_up2);

function Mouse_up2(event:MouseEvent): void
{
    this.tf1.text = "text2";
}

因此,你也可以写:

{{1}}