Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 在实例化阶段类之前,我可以访问AS3中的阶段维度吗?_Actionscript 3_Apache Flex_Flashdevelop - Fatal编程技术网

Actionscript 3 在实例化阶段类之前,我可以访问AS3中的阶段维度吗?

Actionscript 3 在实例化阶段类之前,我可以访问AS3中的阶段维度吗?,actionscript-3,apache-flex,flashdevelop,Actionscript 3,Apache Flex,Flashdevelop,我有一个类,它依赖于构造函数中的stage宽度。我不需要在应用程序第一次加载时构造它,但我仍然得到1009错误(尝试访问空对象),因为该阶段尚未实例化,我猜在编译时它会检查所有构造函数,以确保在编译时所有内容都可用。。。好的 我可以只使用变量来保持宽度值,然后在舞台大小改变时更新该值,但我想要一种更优雅的方法。是否有一种方法可以在实例化阶段属性之前访问它?还是有其他方法可以做到这一点 我正在使用FlexSDK为AIR for desktop进行编译,并在FlashDevelop中进行编码 我的强

我有一个类,它依赖于构造函数中的stage宽度。我不需要在应用程序第一次加载时构造它,但我仍然得到1009错误(尝试访问空对象),因为该阶段尚未实例化,我猜在编译时它会检查所有构造函数,以确保在编译时所有内容都可用。。。好的

我可以只使用变量来保持宽度值,然后在舞台大小改变时更新该值,但我想要一种更优雅的方法。是否有一种方法可以在实例化阶段属性之前访问它?还是有其他方法可以做到这一点

我正在使用FlexSDK为AIR for desktop进行编译,并在FlashDevelop中进行编码

我的强制性代码:

public class MouseSenseWindow extends Sprite {
    private var _sensitivity:Number = 1;
    private var _bounds:Rectangle = new Rectangle(0,0,stage.stageWidth,stage.stageHeight);
    public function MouseSenseWindow(sense:Number):void{
        sensitivity = sense;
        drawBox();
        addEventListener(MouseEvent.MOUSE_MOVE, mouseHit);
    }


    private function mouseHit(me:MouseEvent):void {
        removeEventListener(MouseEvent.MOUSE_MOVE, mouseHit);
        grab();
    }


    private function drawBox():void{
        graphics.clear();
        graphics.beginFill( 0, 0 );
        graphics.drawRect( 0, 0, stage.stageWidth / _sensitivity, stage.stageHeight );
        graphics.endFill();
    }


    public function grab():void{
        startDrag(false, _bounds);
    }


    public function get sensitivity():Number{return _sensitivity;}
    public function set sensitivity(s:Number):void{
        _sensitivity = s;
        drawBox();
    }
} //end class

如果你想知道我想要一个更优雅的方法的原因,是我预计窗口大小a)在运行时改变,b)在编译之前改变,以便能够测试不同的屏幕大小,我知道如果每次我想测试一些,我必须改变空气设置和一个全局变量,我会让自己将来头疼新的大小。通常Event.ADDED_TO_STAGE会执行此操作(默认情况下,FD会将捕获此时刻的例程添加到主类中)。问题是,Stage在执行任何代码之前都是实例化的,但是DisplayObject没有访问Stage的权限,除非这个DisplayObject附加到它(直接或通过它的父树)。@Organia啊!我懂了!谢谢你消除了这种困惑!如果你想知道我想要一个更优雅的方法的原因,我希望窗口大小a)在运行时改变,b)在编译之前改变,以便能够测试不同的屏幕大小,我知道如果我必须改变空气设置和全局变量,我会让自己将来头疼每次我都想测试一些新的大小。通常Event.ADDED_to_STAGE会做这件事(默认情况下,FD会将捕捉这一时刻的例程添加到主类中)。问题是,Stage在执行任何代码之前都是实例化的,但是DisplayObject没有访问Stage的权限,除非这个DisplayObject附加到它(直接或通过它的父树)。@Organia啊!我懂了!谢谢你消除了这种困惑!我应该可以从这里开始。