0

私は会社のためにフラッシュでウェブサイトを開発していますが、今のところうまくいっています。Web サイトでは、カスタムの手すりを作成できます。会社の所有者は、検証メールに含めることができるように、フラッシュ (ムービー クリップ) に表示されるデモ画像を画像 (pref PNG) として保存するように求めています。誰でもこれを行う方法を知っていますか? ムービー クリップ シンボルを Web サーバーに保存する必要があります。前もって感謝します!

4

1 に答える 1

0

これを実現するには、いくつかのコンポーネントが必要です。AS3 はサーバー側で実行されない (サーバーのハードディスクにアクセスできない) ため、ファイルを受信するにはサーバーで他の言語を使用する必要があります。個人的には PHP をお勧めします。PHP は、この種の単純なタスクに最適であり、PHP を使用してアップロードされたファイルを処理するためのチュートリアルがウェブ上にたくさんあるからです。

AS3 側では、BitmapData.draw メソッドを使用して、スプライトまたはその他の IBitmapDrawable オブジェクトを BitmapData に描画できます。次に、PNGエンコーダーを使用して(組み込みを使用するか、他の実装がいくつかあるので検索できます)、BitmapDataをPNGにエンコードします。最後のステップでは、エンコードされた PNG をサーバーに送信し、スクリプトが書き込み権限を持つ場所にファイルを保存します。

いくつかの参考資料として、私が書いたコードを次に示します。

基本的に、アプリの保存ボタンをクリックすると、以下のクラスのインスタンスが表示され、保存するためのメソッドが表示されます。平坦化された画像を取得した後、PNGEncoder2 と呼ばれるサードパーティの PNGEncoder を使用して呼び出しを行います

https://github.com/wafflejock/FingerPainting/blob/master/FlashBuilderProject/FingerPainting/src/com/shaunhusain/fingerPainting/view/optionPanels/SaveOptions.as

以下に、描画アプリ用の単なるスプライトであるすべての「レイヤー」を管理する別のクラスがあります。以下の「LayerManager」には、BitmapData.draw を使用してすべてのレイヤーを単一のビットマップ/ラスター描画に「平坦化」するメソッドがあります。

https://github.com/wafflejock/FingerPainting/blob/master/FlashBuilderProject/FingerPainting/src/com/shaunhusain/fingerPainting/view/managers/LayerManager.as

于 2013-06-17T04:54:49.703 に答える