2011-11-10 99 views
0

我正在使用適用於iOS的應用程序的Flash CS5.5。我想讓ipad/iphone停止對orientationChange進行動畫製作,直接更改它,這可能嗎?AS3 iOS防止「動畫」方向更改

我認爲這是一個解決方案,但它並沒有幫助AS3 - iOS force landscape mode only?

+0

部隊風景模式將迫使應用只能以橫向運行,即使你旋轉裝置,方向不會改變 –

+0

爲什麼你要防止動畫? –

回答

3

如果您嘗試設置Stage.autoOrients = false;,該flash.events.StageOrientationEvent.ORIENTATION_CHANGE將永遠不會觸發。這對完全禁用方向更改很有幫助,但不適合您的問題。雖然我還沒有嘗試過自己,你可以聽的事件:

flash.events.StageOrientationEvent.ORIENTATION_CHANGING 

您可以調用event.preventDefault()在偵聽器發生的歷史阻止實際旋轉。然後你可以自己手動設置它:

Stage.setOrientation(StageOrientation.ROTATED_RIGHT); 
+0

非常感謝您的回答,併爲我遲到感到遺憾(我的閃光燈發瘋了)。我已經嘗試過這之前,知道我做了一遍,結果相同...還沒有找到任何其他的解決方案,所以我將不得不這樣做無聊的方式,把它放在一個容器,並處理掉自己... –

+2

@EricJacobsson那麼,你沒有提到你已經嘗試了「無聊的方式」,JamesTomasino正確地回答了你的問題。此外,你沒有提到你的問題,你也需要與事件監聽者一起玩,也許他可以添加一些評論來增加事情的樂趣。 –

2

你試過了嗎回答:Disable orienation change rotation animation

從回答去在視圖 - 控制器是家爲您的Flash CS5.5或空氣3.5的代碼是:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { 
    [UIView setAnimationsEnabled:YES]; 
} 


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    [UIView setAnimationsEnabled:NO]; 

    return TRUE; /* Your original orientation booleans, in case you prevent one of the orientations */ 
} 

該代碼使用機iOS UIViewController功能,可以是覆蓋。你將不得不擁有一個覆蓋UIViewController的原生iOS目標C類,然後你可以插入上面的代碼。當設備作爲視圖控制器生命週期的一部分旋轉到這些設備時會進行調用。

+0

我不知道如何使用這段代碼,我是否必須專門爲它編寫本機擴展? – Maurycy

+0

我已經編輯了答案來描述這些電話所在的位置。不幸的是,我不能進一步提供建議,以確定在腳本級別是否有API可以在事件發生時訪問這些API以進行階段方向更改。但如果它在那裏,那麼處理旋轉前和旋轉後事件的處理程序就必須寫入匹配。然後問題是是否有腳本訪問打開和關閉是否啓用動畫,並且由於這些是類方法,所以它將是一種特殊的腳本訪問。 –