簡體   English   中英

As3 gotoAndStop一站式停止多個呼叫

[英]As3 gotoAndStop multiple calls in one enter frame

我正在嘗試制作用於旋轉DisplayObjects的精靈板,並且似乎gotoAndStop()調用不起作用。

這是發生了什么的示例:

function createRotationalSpriteSheet ( displayObject : DisplayObject )
{
    findMaxTileDimensions( displayObject );
    MovieClip( displayObject ).gotoAndStop( 1 ); // this call does not work.
}

function findMaxTileDimensions ( displayObject : DisplayObject )
{
    MovieClip( displayObject ).gotoAndStop( 1 ); // this call works fine
}

對於不起作用的gotoAndStop調用,將更新標簽和幀號,但是當我嘗試使用BitmapData.draw繪制DisplayObject時,該幀仍停留在findMaxTileDimensions函數中被告知要轉到的最后一幀。

發生這種情況是因為我在一個Enter幀中多次調用gotoAndStop函數嗎? 發生這種情況是因為我在同一個Enter框架中從兩個不同的函數調用gotoAndStop嗎?

這里似乎發生了一些事情。 您正在使用gotoAndStop(),但是直到其他所有事情發生之后 ,它才會更新圖像。 從文檔開始-http: //help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/display/MovieClip.html#gotoAndStop ()- “將播放頭移至影片剪輯的指定幀並停止它發生在框架中的所有剩余動作完成執行之后。” 因此,如果您希望此方法有效,那么您將需要在多個框架上進行。

其次,您提到這是為了整理DisplayObject的旋轉以將它們繪制為BitmapData的-MovieClip中是否有動畫? 還是MovieClip的動畫正在旋轉。 如果是后者,則可以通過代碼設置旋轉角度並繪制不同的角度,就像您嘗試做的那樣(即全部在一幀中)

還要按bit101簽出SWFSheet: http : //www.bit-101.com/blog/ ?s = swfsheet。 它可以制作動畫並為其導出PNG精靈。 我不確定那里可能有代碼。 無論如何,您可以保存動畫,然后將其嵌入/加載到其中

聽起來這可能是AIR中的這個已知錯誤(假設它僅在AIR中發生): https : //bugbase.adobe.com/index.cfm?event= bug &id=3340012

該錯誤報告提到了一個hacktastic解決方法,我剛剛驗證了該方法的確可行:將MovieClip添加到場景中,然后再運行它。 完成后,您可以將其刪除。

或者,您可以實例化MovieClip兩次(一次獲取尺寸,然后一次創建BitmapDatas),或者在MovieClip的開頭添加一個空的虛擬幀,而忽略該第一幀。

這里發生兩件事。 主要問題是gotoAndStop是基於1的,而不是基於0的。 gotoAndStop(0)不會產生錯誤,因為它期望一個對象(因此它可以帶有標簽或幀號)。

由於傳統原因,gotoAndStop是基於1的-即與Flash IDE中的舊方法相關聯。

如果將其更改為基於1的系統仍然不起作用,則需要addframescript(基於0的系統),請參見我的回答

AS3-立即執行gotoAndStop

作為一個更好的用例,我認為最好使用位圖,然后將其緩存在某些數據結構中:閱讀: http : //www.8bitrocket.com/2010/3/3/Tutorial-AS3-How-to在編譯時從嵌入的平鋪表中分割動畫/
另外,也許我不是100%清楚這個問題,但是為什么您需要使用enterframe創建一個精靈表?


您可以旋轉位圖,然后將其捕獲為bitmapData,或僅對位圖數據使用矩陣轉換http://www.8bitrocket.com/2010/05/01/tutorial-exploring-the-as3-bitmap-class從矩陣的中心開始3階縮放/

暫無
暫無

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

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