[英]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.