基于Flash CS6中的屏幕方向(横向或纵向)导航

时间:2013-03-28 13:32:50

标签: iphone ios actionscript-3 flash flash-cs6

我正在创建一个应用程序,如果手机处于横向或纵向状态,它将具有不同的菜单。

我想我必须告诉flash在手机从横向移动到纵向时移动到新框架,反之亦然,但在创建定向事件监听器后我不确定确切的代码。

2 个答案:

答案 0 :(得分:1)

有两种方法。听取StageOrientationEvent或听取Event.RESIZE。我个人更喜欢使用RESIZE,因为它会更频繁地调用,并使您的界面更加同步。

var landscapeNav:Sprite; // this would be your landscape nav. Obviously does not have to be a Sprite
var portraitNav:Sprite; // same as landscapeNav, but this represents your portrait nav
stage.addEventListener( Event.RESIZE, this.stageResizeHandler );

function stageResizeHandler( e:Event ):void {
    if ( stage ) { //just to make sure the stage is loaded in this class so we avoid null refs
        if ( stage.stageWidth >= stage.stageHeight ) {
            landscapeNav.visible = true;
            portraitNav.visible = false;
        }
        else {
            landscapeNav.visible = false;
            portraitNav.visible = true;
        }
    }
}

这绝对可以清理(landscapeNav.visible = stage.stageWidth > stage.stageHeight),但这应该会给你一些东西。如果你想像Atriace建议的那样做一个动画,你可以在函数的条件中进行TweenLite / Max调用,而不是将visible设置为true / false(动画完成后,你应该将visible设置为false)同样的优化)

答案 1 :(得分:0)

您无需创建新框架。实际上,观看旧菜单滑落可能更具视觉吸引力,而新动画可能更具吸引力(如with TweenLite)。

有关方向更改的文档可以在Adobe的ActionScript APIs specific to mobile AIR applications: "Screen Orientation"the API找到。