我刚刚创建了一个类:ClassA extends Sprite
然后我创建了另一个类:ClassB extends ClassA
据我所知,ClassB
也是Sprite
。
但是当我尝试在ClassB
中添加可显示对象(如位图)作为孩子时,它不会绘制任何内容。
但如果我直接从ClassB
扩展Sprite
(如ClassB extends Sprite
),则会绘制对象。
所以我的问题是为什么对象不是在2级继承中绘制的?我该如何解决问题或者有什么遗漏?
非常感谢。
答案 0 :(得分:0)
您的代码可能有问题。否则原则上是的,你是对的,ClassB实际上是Sprite。我测试了这个并且它相应地工作。
package
{
import flash.display.Sprite;
public class ClassA extends Sprite
{
public function ClassA()
{
super();
}
}
}
public classB extends ClassA
{
[Embed(source="image.png")]
private var Image:Class;
public classB()
{
addChild(new Image);
}
}
// Add ClassB to display List
public class Main extends Sprite
{
public function Main()
{
super(); addChild(new ClassB);
}
}
看看你是否可以查看代码。我确定存在逻辑错误。如果要加载映像,请通过注册侦听器来查看是否存在IO /安全错误。可能是因为没有加载图像。谢谢
答案 1 :(得分:0)
你的假设是正确的,应该有效。你必须有一些语义错误。也许你没有在每个类的构造函数中调用super,而是在显示链上添加了ClassB的实例。
例如:
---------------classA--------------------
public class ClassA extends Sprite{
function ClassA(){
super();
}
}
---------------classB--------------------
public class ClassB extends ClassA{
function ClassB(){
super();
}
}
-----------------usage------------------
var foo:ClassB = new ClassB(); //new instance
addChild(foo); //add to display hierarchy
foo.addChild( yourBitmap ); //add your bitmap to the new instance, can be done
-----------------------------------