2009-04-28 37 views
1

我有另一塊比我更先進的傢伙;)如何使用ActionScript3/PHP從swf導出圖像?

我正在開發一個簡單的Flash應用程序來創建自己的紋章。完成創建後,最好將其保存爲客戶端計算機或數據庫的映像,但我還不確定。問題是從swf內容製作圖像 - 我的意思不是整個內容,只是它的一部分,COA在哪裏。我使用一些圖像編碼器和PHP在網上找到了一些例子,但我不明白它是如何工作的。任何人都可以如此善意地向我解釋這個基本原則嗎?我想讓它儘可能簡單。

回答

5

首先,繪製圖像(Sprite或MovieClip等)到BitmapData:

var b: BitmapData = new BitmapData(640, 480, false, 0xffffffff); 
b.draw(mcToBeSaved); 

然後,使用例如as3corelib將BitmapData編碼爲PNG或JPG文件。

var ba: ByteArray = PNGEncoder.encode(b); 

然後,對於Flash 10,您可以立即讓用戶使用FileReference的保存方法將圖像保存到文件中。

+0

我想我明白了,但它似乎只保存一個單一的影片剪輯到圖像,你不知道,我怎麼能讓這個舞臺的切斷,讓一個矩形區域,可能包含更多的影片剪輯?像截圖一樣,但不是整個電影區域... thanx無論如何 – Dungeo 2009-05-02 09:00:38

1

這似乎是最近流行的問題。因此,我不完全重申所有的信息,保存的圖像數據,一旦你獲得的指令作爲BitmapData,在這裏:

How can I send a ByteArray (from Flash) and some form data to php?

但是,第一,得到的圖像數據,我們需要將它從任何MovieClip/Sprite中拉出來,無論你使用的是什麼。要做到這一點,你只需要:

var myBitmapData:BitmapData = new BitmapData(desiredWidth,desiredHeight,isTransparent,backgroundColor); myBitmapData.draw(mcToBeSavedToImage);

其中mcToBeSavedToImage是您想要變成圖像的動畫片段。 BitmapData參考是在這裏,如果你需要它 - 它有其他的例子: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/BitmapData.html

希望幫助!