我有这种情况。我正在构建所有代码,但它有点痛苦,所以我使用Flash绘图功能创建了一个包含组件的界面。
像往常一样,我使用名为“AreaEdit”的MovieClip实例中的接口获得了一个主类。在我的自定义类“EditorHTML”中有一个Sprite:
private var dTela:Sprite;
所以构造函数是这样的:
public function EditorHTML(instEdit) {
this.Parags = new Array();
this.dTela = instEdit;
trace("dTela: "+this.dTela.width+" x "+this.dTela.height);
}
在主要班级:
Escrit = new EditorHTML(AreaEdit);
因此,跟踪会按预期显示框的尺寸。但是,在自定义类中,如果我尝试像这样访问一个实例:
this.dTela.cxEdit.addEventListener(Event.CHANGE, atualizar);
返回错误:/Library/WebServer/Documents/as3/bibliotecas_externas/com/gustavopi/txt/EditorHTML.as,Line 49 1119:通过带有静态类型flash.display的引用访问可能未定义的属性cxEdit:Sprite
我做了一个测试,主要类中有相同的实例“cxEdit”。因此接缝组件实例不适用于自定义类。我该如何解决这个问题?
答案 0 :(得分:1)
尝试这样称呼:
Sprite( Sprite(this.dTela).getChildByName("cxEdit")).addEventListener(Event.CHANGE, atualizar);
如果cxEdit
也是Sprite
。
已修改:cxEdit必须为TextArea
。所以可以这样做:
var cxEdit:TextArea = TextArea(Sprite(this.dTela).getChildByName("cxEdit"));
cxEdit.addEventListener(Event.CHANGE, atualizar);
为了使代码的其余部分更容易......
答案 1 :(得分:0)
从我所看到的,你试图访问“cxEdit”作为Sprite(dTela)的属性,这不是Sprite属性,因此是错误。
你是否可以传入AreaEdit.cxEdit作为参数而不仅仅是AreaEdit?