2011-12-12 15 views
2

這裏的情景:3D變換上裝載的主權財富基金不工作

我們的創作團隊生產的SWF動畫在Flash CS5創作工具,我們(工程師)在運行時加載到使用Flex SDK構建一個項目。不使用「3D旋轉工具」的動畫可以很好地工作。使用3D旋轉工具

動畫給予以下行爲:

  • 影片剪輯顯示有使用3D旋轉工具在舞臺的左上角顯示爲,如果他們沒有變換應用於3D補間在所有(即,好像他們的Matrix3D是被忽略,他們的矩陣身份)
  • 影片剪輯有普通2D動畫補間正常
  • Alpha和其他非親和性質吐溫正常

當在瀏覽器選項卡或獨立Flash播放器中加載3D和非3D動畫時,它們都可以正常播放。 3D僅在加載到我們的代碼生成的SWF中時纔會中斷。

因此,對於在CS5創作環境中應用了3D轉換的MovieClip而言,當SWF由我們的代碼SWF加載時,這些轉換似乎沒有得到應用/尊重。

這是我首次涉足3D,所以我不知道這可能是造成這一點,但這裏是我測試/檢查/試過了,都無濟於事:

  • 我已經確保在創作環境中選擇了動作腳本3和Flash Player 10/10.1。
  • 我試過將動畫加載到Flash播放器版本10.0,10.1,10.2和11中使用Flex 4.1,4.5和4.6構建的代碼SWF中
  • 我已經將Matrix3D應用於加載SWF動畫的容器,身份和旋轉。我可以看到旋轉的容器可以用3D進行工作,所以我知道我的代碼SWF具有3D功能。

我希望有一些簡單的技巧,我錯過了一些設置。謝謝你的幫助!

回答

0

我不能發佈代碼,但事實證明這是在我們的裝載代碼過度謹慎的微妙以前從未抓到我們:

我們有一個加載的圖片供我們自定義類(包括內置的一些實用程序和通用功能)。在加載完成時,這段代碼將loader.content作爲一個子項添加到自身,並且 - 這裏是kicker - 使用close()和unloadAndStop()清理不再需要的加載器。

我想這樣清理加載程序似乎是合理的,它一直工作到現在(靜態圖像,靜態SWF和SWF動畫),但它導致上述問題加載3D SWF(和它事實證明這也導致加載視頻SWF時發現奇怪的URL未找到錯誤)。

禁用過度謹慎的Loader清理解決了我的問題。

0

這可能是Flex代碼中正在發生的事情,比如停止動畫或者不啓動它們。你能發佈你用來加載SWF的代碼嗎?

這也可能是一種競爭條件。在使用SWF之前,您可能必須等待SWF文件加載(例如,添加了ToStage事件等)。

0

我碰到你的問題就來了,因爲我有完全一樣的問題......而很多閒逛後,該解決方案(對我來說)歸結爲:

如果,在任何時候,你都強烈地將你的CHILD swf輸入到一個類中,或者使用PARENT中的點語法引用它的任何變量,它就會中斷。即使它只是一個跟蹤消息。

我不得不更換此:

var stoneVideo:StoneVideo = loader.content as StoneVideo; 
stoneVideo.stoneText = model.stoneText; 

有了這個:

loader.content["stoneText"] = model.stoneText; 

,並開始正常工作。希望這可以幫助!

+0

感謝您的注意。這不是我的問題的原因,但很有紀錄。 –