簡體   English   中英

在Flash CS6中基於屏幕方向(橫向或縱向)進行導航

[英]Navigation based on screen orientation (landscape or portrait) in Flash CS6

我正在創建一個應用程序,如果手機橫向或縱向放置時將具有不同的菜單。

我認為當手機從橫向移動到縱向或從橫向移動到縱向時,我必須告訴Flash移至新的幀,但是我不確定創建方向事件偵聽器后要使用的確切代碼。

有兩種方法。 偵聽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相同的優化)

您無需創建新框架。 實際上,觀看舊菜單的滑動和加入動畫的新菜單可能在視覺上更具吸引力(例如TweenLite )。

可以在@ AIR特定於移動AIR應用程序ActionScript API中找到有關方向更改的文檔:“屏幕方向”該API

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM