Actionscript:从子类调用超类方法

时间:2010-08-15 21:32:02

标签: actionscript-3

我想要做的是从子类中的超类调用方法。具体来说,我希望能够将子类添加为超类的子类,但实际上不必在超类中键入addChild(但我必须在子类中键入它)。现在我只是试图在超类中调用一个从子类中提取一些文本的方法。

这是MAIN类(超类)

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”。

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

2 个答案:

答案 0 :(得分:2)

只需定期打电话。当您有一个类扩展基类时,该类继承所有基类方法。

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

答案 1 :(得分:1)

被修改

我建议static不好,我在回答之前显然没有太注意你的代码。 DRAWTEXT不会显示任何内容,因为您的对象未添加到舞台中。你必须调用addChild()才能看到你的diplsay对象。


作为一个附注,不要把这个弄坏,买你一直在问很多问题,这些问题表明你对Flash和Actionscript的工作方式缺乏基本的了解(而且你似乎也有点过于坚持让它以你想要的方式工作)。

在这里提出问题总是可以的(只要你把它们放在主题上,这似乎与你的问题有关),但我认为你最好先从一些好书,教程中学习基础知识。等等。

这两个帖子包含指向优质资源的链接,我认为你应该查看它们。

Resources for Learning ActionScript 3.0 as a Professional Programmer

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

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