我在Flash项目中有这个main(文档类):
package {
import flash.display.MovieClip;
import flash.events.Event;
public class main extends MovieClip {
public function main() {
var other=new Other(this);
}
}
}
这是其他类:
package {
import flash.display.MovieClip;
import Clippo;
public class Other extends MovieClip {
//
public function Other(ref) {
//
var clippo = new Clippo();
clippo.name="clippo";
clippo.x=100;
clippo.y=100;
//1
//ref.addChild(clippo);
//2
addChild(clippo);
}
}
}
现在:如果我将主类的引用(ref)传递给Other并且我在第一种情况下添加了clippo,我可以从main(getChildAt(0)
是“clippo”引用movieclip clippo “从主要的)。但是,有没有办法使用第二种方法(没有参考)并从主类做同样的事情?当其他人创建它时,我可以在舞台上看到clippo,但我无法理解clippo“生活”在DisplayList中的位置。
答案 0 :(得分:0)
如果您遇到此类问题,可能需要重新考虑您的架构。
制定一些规则,让自己更轻松,例如:不要让孩子元素将孩子添加到父母那里。
我认为获取clippo DisplayObject引用的最佳方法是为它提供一个getter方法。
public function get clippo():Clippo
{
return this.clippo;
}
答案 1 :(得分:0)
我不确定你要完成什么,但是:
如果要查看显示列表或其子项,则需要将other
添加到显示列表中。
public function main()
{
var other:Other = new Other(this);
addChild(other);
}
您可以使用root
而不是传递对文档类的引用。 (一旦它出现在显示列表中)。
root.addChild(clippo);
但是,将它添加到其他内容更有意义:addChild(clippo)
创建DisplayObjects的位置不会影响显示列表,只调用addChild
。在文档类中调用addChild
,在其他文档中调用root.addChild
会导致显示相同的列表。