0

我有这种情况。我是用代码构建的,但有点痛苦,所以我使用 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);

所以 trace 显示了盒子的尺寸,正如预期的那样。但是,在自定义类中,如果我尝试像这样访问内部的实例:

this.dTela.cxEdit.addEventListener(Event.CHANGE, atualizar);

返回错误:/Library/WebServer/Documents/as3/bibliotecas_externas/com/gustavopi/txt/EditorHTML.as,第 49 行 1119:通过静态类型 flash.display:Sprite 的引用访问可能未定义的属性 cxEdit。

我做了一个测试,主类中提供了相同的实例“cxEdit”。所以它接缝组件实例不可用于自定义类。我该如何解决这个问题?

4

2 回答 2

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);

为了使其余代码更容易...

于 2013-06-07T20:31:01.750 回答
0

从我所见,您正试图将“cxEdit”作为 Sprite (dTela) 的属性访问,这不是 Sprite 属性,因此出现错误。

您是否可以将 AreaEdit.cxEdit 作为参数传递,而不仅仅是 AreaEdit?

于 2013-06-07T20:27:50.093 回答