2016-10-05 42 views
0

我有一個在Android和iOS平臺上運行的Adobe AIR應用程序。在應用程序中,我打電話給幾個電影剪輯,所以總會有幾個電影剪輯進入舞臺。確實,我有6個不同的電影剪輯,每次6/5/4次我都會打電話給他們。
我想讓它們變成動畫,就像進入圖庫,進入影片剪輯,並通過幀動畫創建一個幀。

我試圖創建25個PNG圖像,300 dpi,40x40大小。動畫能夠正常工作,但問題是每當我在任何設備上運行應用程序時,響應時間將非常巨大,導致應用程序有時會崩潰。看起來,如果我通過幀動畫製作了幀高分辨率PNG,該應用將無法使用。

我需要對影片剪輯中的每個圖像都有一個很好的質量,但我想這樣做對於高質量的PNG並不是最佳的使用方法。我想可能會導入幾個illustrator文件,並在每一幀上傳播它們。但我不確定移動設備是否能夠實現最佳的質量/性能比。

因此,如何在Flash CS6,AS3 adobe air定位移動設備中實現最佳質量/性能比?在電影剪輯AS3中創建逐幀動畫 - Adob​​e air

編輯:

我創建的影片剪輯,在圖書館,它裏面我都裝一個PNG圖像。我試圖:
將該影片剪輯中的圖像轉換爲影片剪輯,並照顧所有需要的名稱,以確認所提供的答案。父親的電影剪輯鏈接到一個AS類,我嘗試插入建議的代碼,但是發生的是,電影剪輯停止出現在舞臺上。我錯過了什麼嗎?

+1

300dpi沒有意義,只與打印有關。性能問題可能來自您使用圖像的方式。但是你沒有顯示你的代碼。另外,爲什麼不在Flash中通過幀動畫創建該幀?畢竟它是一個動畫軟件。 – null

+0

您應該將所有內容放入位圖中。位圖使用GPU,矢量和PNG使用CPU。位圖優化對於移動設備上的流暢動畫絕對是必需的。因爲你在做Android和Android有很多不同的屏幕尺寸和dpi,你應該在矢量中繪製東西,調整矢量的大小以適應設備,將矢量轉換爲位圖。如果你認爲這是你的問題的答案,我可以給你更多的信息和示例代碼。 – moot

+0

@moot我想是的這是正確的方式來通過,我已經創建了幾個插圖文件,每一個代表動畫的一幀,你認爲我應該將它們保存爲位圖,並將它們逐幀導入到影片剪輯在閃光?或者我可以將它們導入爲eps或其他東西?你認爲最好的方法是什麼? –

回答

0

您應該將所有內容放在位圖中。位圖使用GPU,矢量和PNG使用CPU。位圖優化對於移動設備上的流暢動畫絕對是必需的。因爲你在做Android和Android有很多不同的屏幕尺寸和dpi,你應該在矢量中繪製東西,調整矢量的大小以適應設備,將矢量轉換爲位圖。

下面是將movieclip轉換爲位圖的示例代碼。原始影片剪輯 - mcCircleVector - 位於持有人影片剪輯 - mcCircle中。該代碼將mcCircleVector轉換爲位圖,將其刪除,並將該位圖添加到mcCircle,以便最終生成一個動畫片段。

var bmpTemp: Bitmap; 
bmpTemp = new Bitmap(); 
bmpTemp = fConvertToBMP(mcCircle.mcCircleVector, 150, 150); 
mcCircle.removeChild(mcCircle.mcCircleVector); 
mcCircle.mcCircleVector = null; 
mcCircle.addChild(bmpTemp); 
bmpTemp = null; 


private function convertBMP(pClip: MovieClip, pWidth: int, pHeight: int): Bitmap { 
    var bd: BitmapData = new BitmapData(pWidth, pHeight, true, 0x00000000); 
    bd.draw(pClip, null, null, null, null, true); 
    var bmp: Bitmap = new Bitmap(bd, "auto", false); 
    bmp.smoothing = true; 
    return bmp; 
} 
+0

請檢查我的編輯,我試過了,但我想我錯過了一些東西 –