2010-08-15 134 views
0

我想要做的是从子类中的超类调用一个方法。具体而言,我希望能够将子类添加为超类的子类,但不必在超类中输入addChild(但我必须在子类中输入它)。现在我只是试图在超类中调用一个从子类中绘制一些文本的方法。Actionscript:从子类调用超类方法

这里是主类(超)

package 
{ 
    import flash.display.*;  
    import flash.events.*; 
    import flash.text.*; 

    public class MAIN extends Sprite 
    { 
     public var SOMETEXT:TextField = new TextField(); 
     public function MAIN() 
     { 
      new OBJECT_square().CREATE(); 
     } 
     public function DRAWTEXT():void 
     { 
      SOMETEXT.text = "sometext"; 
      addChild(SOMETEXT); 
     } 
    } 
} 

这里是OBJECT_square类(子类)

package 
{ 
    import flash.display.*; 
    import flash.events.*; 
    public class OBJECT_square extends MAIN 
    { 
     public function CREATE():void 
     { 
      MAIN.DRAWTEXT(); 
     } 
    } 
} 

的代码无法编译,我得到“调用可能未定义方法DRAWTEXT通过静态类型的引用“。

我意识到还有其他的方法可以在屏幕上显示文本。我只需要学习如何调用超类方法。

回答

1

编辑

我对暗示static坏了,我显然不回答之前非常注重你的代码。 DRAWTEXT不会显示任何内容,因为您的对象没有被添加到舞台上。你必须调用addChild()来查看你的diplsay对象。


作为一个侧面说明,不要把这个坏,买你一直在问了很多问题,显示你所欠缺的闪存和ActionScript是如何工作的一个基本的了解(,你也似乎是一个有点太坚持让它以你想要的方式工作)。

在这里提问总是可以的(只要你把它们保留在主题上,这似乎是你的问题),但是我认为你应该先从一些好的书籍中学习基础知识,教程等

这两个帖子包含良好资源的链接,我想你应该检查出来。

Resources for Learning ActionScript 3.0 as a Professional Programmer

https://stackoverflow.com/questions/168586/where-to-learn-actionscript-3-0

此外,什么与所有这些用户使用相同的名称是?现在我可以在这里看到9名用户名为1101https://stackoverflow.com/users/,我认为他们都是你的。一个就足够了。真。每次你想问一个问题时,你都不需要创建一个新用户。此外,请尝试跟踪您所要求的问题,向困扰回答的人提供一些反馈(如果您只有一个用户,这将变得更容易)。当你想评论一些回应时,留下评论而不是添加答案。

+0

现在我们知道他的意思是“超类”和“子类”,我敢打赌,这样做更有意义。他询问如何从子组件访问父容器。答案是:通过“父”属性。 – Gunslinger47 2010-08-18 17:58:51

2

只需定期致电。当你有一个类扩展一个基类时,这个类将继承所有的基类方法。

package 
{ 
    import flash.display.*; 
    import flash.events.*; 
    public class OBJECT_square extends MAIN 
    { 
     public function CREATE():void 
     { 
      DRAWTEXT(); 
     } 
    } 
}