私は会社のためにフラッシュでウェブサイトを開発していますが、今のところうまくいっています。Web サイトでは、カスタムの手すりを作成できます。会社の所有者は、検証メールに含めることができるように、フラッシュ (ムービー クリップ) に表示されるデモ画像を画像 (pref PNG) として保存するように求めています。誰でもこれを行う方法を知っていますか? ムービー クリップ シンボルを Web サーバーに保存する必要があります。前もって感謝します!
1 に答える
これを実現するには、いくつかのコンポーネントが必要です。AS3 はサーバー側で実行されない (サーバーのハードディスクにアクセスできない) ため、ファイルを受信するにはサーバーで他の言語を使用する必要があります。個人的には PHP をお勧めします。PHP は、この種の単純なタスクに最適であり、PHP を使用してアップロードされたファイルを処理するためのチュートリアルがウェブ上にたくさんあるからです。
AS3 側では、BitmapData.draw メソッドを使用して、スプライトまたはその他の IBitmapDrawable オブジェクトを BitmapData に描画できます。次に、PNGエンコーダーを使用して(組み込みを使用するか、他の実装がいくつかあるので検索できます)、BitmapDataをPNGにエンコードします。最後のステップでは、エンコードされた PNG をサーバーに送信し、スクリプトが書き込み権限を持つ場所にファイルを保存します。
いくつかの参考資料として、私が書いたコードを次に示します。
基本的に、アプリの保存ボタンをクリックすると、以下のクラスのインスタンスが表示され、保存するためのメソッドが表示されます。平坦化された画像を取得した後、PNGEncoder2 と呼ばれるサードパーティの PNGEncoder を使用して呼び出しを行います
以下に、描画アプリ用の単なるスプライトであるすべての「レイヤー」を管理する別のクラスがあります。以下の「LayerManager」には、BitmapData.draw を使用してすべてのレイヤーを単一のビットマップ/ラスター描画に「平坦化」するメソッドがあります。