StageOration事件中没有调度StageOrientationEvent

时间:2012-02-11 09:30:11

标签: actionscript-3 air

我从adobe论坛获得此代码,该论坛适用于移动应用程序的第一个屏幕。但是如果我把这个代码放在一个新的视图中(在我推动的视图中)它不起作用 有人知道这个问题的解决方案吗?

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark" title="HomeView" creationComplete="view1_creationCompleteHandler(event)">
    <fx:Script>
        <![CDATA[
            import mx.events.*;
            protected function view1_creationCompleteHandler(event:FlexEvent):void{
                addEventListener(Event.ADDED_TO_STAGE, _onAddedToStage)
            }
            private function _onAddedToStage(event:Event):void{
                if(stage.autoOrients)                    stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, _onStage_OrientationChange);
            }
            private function _onStage_OrientationChange(event:StageOrientationEvent):void{
    switch(event.afterOrientation){
                    case StageOrientation.DEFAULT:
                        trace('DEFAULT')
                        break;
                    case StageOrientation.ROTATED_RIGHT:
                        trace('ROTATED_RIGHT');
                        break;
                    case StageOrientation.ROTATED_LEFT:
                        trace('ROTATED_LEFT');
                        break;
                    case StageOrientation.UPSIDE_DOWN:
                        trace('UPSIDE_DOWN');
                        break;
                    case StageOrientation.UNKNOWN:
                        trace('UNKNOWN');
                        break;
                }
            }
        ]]>
    </fx:Script> 
</s:View>

1 个答案:

答案 0 :(得分:0)

试试这个:

 protected function view1_creationCompleteHandler(event:FlexEvent):void{

        if(stage.autoOrients)       

        stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, _onStage_OrientationChange);

    }