2009-04-28 4 views
1

私よりも高度な人のために別の作品があります;)ActionScript3/PHPでswfからイメージをエクスポートするには?

私は自分の紋章を作成するための簡単なフラッシュアプ​​リケーションを開発しています。作成が完了したら、それをクライアントのコンピュータまたはデータベースにイメージとして保存すると良いでしょう。まだわかりません。問題は、swfコンテンツからイメージを作ることです。つまり、コンテンツ全体ではなく、COAがある部分だけです。私はいくつかの画像エンコーダとPHPを使ってWeb上でいくつかのサンプルを見つけましたが、どのように動作するのか理解できません。誰も私にこの基本的な原則を説明するために親切なことができますか?私はできるだけシンプルにしたい。

答えて

5

まず、のBitmapDataに画像(スプライトまたはMovieClipなど)を描く:

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のsaveメソッドを使用して、イメージをファイルに保存することができます。

+0

私は理解していると思いますが、画像に1つのムービークリップのみを保存しているようですが、ステージのカットオフにはどうすればいいですか、より多くのムービークリップを含むかもしれない矩形領域?スクリーンショットのようなものだが、ムービーエリア全体ではない。とにかく – Dungeo

+0

ステージもdisplayオブジェクトと見なされるので、ステージをビットマップデータに描画することができる。描画関数の行列パラメータを使用して、クロップ矩形のオフセットを設定します。 – yuku

1

これは最近人気のある質問です。あなたは、画像データを取得するには、まず、

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

しかし:だから、私は完全にすべての情報をあらためて表明していない、あなたがすることを求めてきた後、画像データを保存するための命令がのBitmapDataとして、ここにいますどのような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

希望に役立ちます!

関連する問題