当前位置:  开发笔记 > 编程语言 > 正文

Actionscript3:如何从外部类访问舞台上的元素?

如何解决《Actionscript3:如何从外部类访问舞台上的元素?》经验,为你挑选了1个好方法。

我在.as文件中有一个外部类,我的问题是我无法访问舞台上的元素.像stage.txtfield.text或this.parent.txtfield.text这样的代码不起作用.txtfield是动态文本字段的实例名称.



1> Jacob Poul R..:

它取决于外部类.

如果它扩展DisplayObject(或DisplayObject的任何孙子),只要将它添加到显示列表(即将它添加到舞台或显示列表上的任何其他DisplayObjectContainer时),您就可以使用stage属性进行访问.

要监听它,请在外部类中使用以下代码:

addEventListener(Event.ADDED_TO_STAGE, AddedToStage);

//...

private function AddedToStage(e:Event):void
{
    trace("TextField text" + TextField(stage["textfield"]).text);
}

如果它不是displayObject或者它不在显示列表中,那么最好的方法就是在构造函数或单独的方法调用中为它提供它需要访问的对象(如TextField).你可以给它一个自己的阶段的引用,但是如果你需要类来操作MovieClip中的TextField,那么这将不是非常通用的.

您可以使用以下代码参考TextField:

//In any DisplayObject on the display list (could be inside a MovieClip or on the Stage itself)

var manipulator:MyClass = new MyClass(TextField(stage["textfield"]));

//In the external class

public class MyClass
{
    publich function MyClass(txt:TextField)
    {
        trace("TextField text" + txt.text);
    }
}

请注意,此代码不会检查文本字段是否确实存在.您应首先检查并发出正确的错误以使调试更容易.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有