创建具有舞台大小的矩形

Posted

技术标签:

【中文标题】创建具有舞台大小的矩形【英文标题】:Creating a rectangle with stage sizes 【发布时间】:2014-07-02 10:30:23 【问题描述】:

这是我的第一堂课,我尝试制作具有舞台大小的矩形,但 flash 给了我这些错误:

addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler); // 1180: 调用可能未定义的方法 addEventListener。 removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler); // 1180: 调用可能未定义的方法 removeEventListener。 stageW = stage.stageWidth; // 1120: 未定义属性阶段的访问。 stageH = stage.stageHeight; // 1120: 未定义属性阶段的访问。 addChild(mc_background); // 1180: 调用可能未定义的方法 addChild。

我的代码是:

package 
    import flash.display.MovieClip;
    import flash.events.Event;

    public class main 
        var mc_background:MovieClip = new MovieClip();
        var stageW:Number;
        var stageH:Number;

        public function init() 
            addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
        

        private function addedToStageHandler(evn:Event):void 
            removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);

            stageW = stage.stageWidth;
            stageH = stage.stageHeight;

            drawBackground();
        
        private function drawBackground():void 
            mc_background.beginFill(0xFF00CC);
            mc_background.graphics.drawRect(0,0,stageW,stageH);
            mc_background.graphics.endFill();
            addChild(mc_background);
        
    


【问题讨论】:

【参考方案1】:

您的“main”类应该扩展一个 Sprite 以使用 addChild() 和 removeEventListener() 方法。

所以你应该导入 Sprite 类并从 Sprite 扩展你的类,如下所示:

package 
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.Event;

    public class main extends Sprite

使用第一个大写字母来调用类名也被认为是一种很好的做法,例如main > Main。所有小写​​通常都是变量,所以以后会混淆。

【讨论】:

MovieClip,如果它包含多于一帧。 好吧,MovieClip 基本上是没有意义的,因为在 Flash 中没有办法将帧添加到动画剪辑,如果他是从预先存在的动画剪辑扩展而来,他需要从该类扩展,不是纯粹的电影剪辑。但你是对的,MovieClip 只是一个带有帧的 Sprite。

以上是关于创建具有舞台大小的矩形的主要内容,如果未能解决你的问题,请参考以下文章

AS3 | 1120:未定义属性阶段的访问

为啥禁用舞台可调整大小在 javafx 中不起作用?

动态调整 pixi 舞台的大小及其在窗口调整大小和窗口加载时的内容

如何删除舞台上所有静态形状的子代?

flash中舞台外多余的部分怎么让看不见

数字舞台艺术拥有更加震撼的沉浸式体验