- ベストアンサー
FLASHの画面をjpegなどに変換して出力したい
FLASHをブラウザで見ていてこのFLASH画面を画像として欲しい場合に 例えば「画像出力」というボタンを押下するとその「画像出力」を押した時のFLASHの画像がjpegになるというようなものを作りたいのですが可能でしょうか? FLASHMXを使用しております。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
swfを実行して絵を描いてそれを出力するみたいなことですよね? 私は持っていないのでわかりませんが、 Flash8では出来るようです(もちろん単体では無理です)。 8では画像関係の新機能が加わったようで。 画像を1ピクセル(?)ずつ取得してそれをCGIかなんかに送ってそちら側で書き出すということが出来るとどっかで聞いたことがあります。 かなり曖昧な表現でしかも説明内容が間違ってるかもしれませんので参考程度にどうぞ。
- 参考URL:
- ttp://playon.jp/mm/paint/
その他の回答 (1)
FlashPlayer に SWFファイル を分解させて, その中から JPEG を取り出し, HTML もしくは SWF 内にその JPEG を表示させたいということですか。 面白いですが,とんでもない考えですね。 逆パブリッシュと言うべきか,逆アセンブルと言うべきか, そんな自己破壊のようなことを Flash Player がするわけがありませんよ。 単純に, Flash内の画像と同じ JPEG を HTML と同じフォルダにUPしておいて, Flash の getURL(); で,その JPEG を開いてはどうでしょうか。 関係を図示すると次のような感じです。 FLASH(.swf) ↓ getURL(); ↓ 別窓で開く ○○.jpg Flash内の画像をボタンかムービークリップに変換して, そのボタンかムービークリップに, ---------------------------- on (release) { getURL("○○.jpg", "_blank"); } ---------------------------- と書けば良いだけです。 ごくごく普通の考え方だと思います。 これだと,Flash 内の画像はサムネイルで,実際の画像はちゃんとした JPEG ということも可能です。 また, どうせ外に同じ画像を置いて置くのであれば, 最初から Flash に入れずに,外部の JPEG を Flash 内にロードして, その ロードJPEG に getURL(); しても良いですね。 関係を図示すると次のような感じです。 FLASH(.swf) 表示↑ ↓ loadMovie(); getURL(); ↑ ↓別窓で開く ○○.jpg うえの具体的方法例ですが, まず,1.jpg~5.jpg を HTML と同じフォルダに置いておきます。 (プログレッシブJPEGはFlashPlayer8以降でないと表示できないので注意) これを,Flash にロードさせます。 次に,Flash のステージ上に,小さな(5mmくらい?)のムービークリップを1つ作って,インスタンス名を付けます。 ここでは, pic というインスタンス名にしておきます。 その pic を選択して,またムービークリップに変換します。 つまり,ムービークリップの入れ子状態を作ります。 そして,今作ったムービークリップにインスタンス名を付けます。 ここでは, gazou1 というインスタンス名にしておきます。 その gazou1 をコピぺで増やします。 2つ目には gazou2 ,3つ目には gazou3 … という具合に gazou5 まで作ります。 そして,タイムラインの フレーム1 のスクリプトに以下のように書けば, 読み込まれた画像をクリックしたとき, そのロード元の JPEG が別窓で開くものができます。 ---------------------------- for (i=1; i<=5; i++) { _root["gazou"+i].pic.loadMovie(i+".jpg"); _root["gazou"+i].i = i _root["gazou"+i].onRelease = function() { getURL(this.i+".jpg", "_blank"); }; } ---------------------------- 各ムービークリップには何も書く必要はありません。 フレームのスクリプトで一気にムービークリップのスクリプトを指定しています。 以上が例です。 思うに,JPEG を出したいのであれば,JPEG を置いておけば良いだけですね。 なぜわざわざ SWF から JPEG を取り出すようなことをしなければならないのでしょうか。 すごく疑問です。 上記のように別窓で開かずに, 「JPEGを小窓で開きたい」とか, 「JPEGを同じページのHTML内に表示したい」 という場合は JavaScript との連携を考えてください。 不可能ではないです。 とりあえず,HTML 上の JavaScript で,ページ内や小窓で JPEG を表示する方法を考えて, その JavaScript の function を Flash のボタンから実行すれば良いと思います。 もし JavaScript でわからない場合は JavaScript カテゴリで質問される方が良いと思います。
補足
回答ありがとうございます。 えっとFLASHの画面をただ画像にしたいだけではないんですよ^^; 簡単に言うとペイントソフトみたいにユーザが作ったものを画像(jpegやgif)などにしたいんです。 FLASH自体そういうものに対応していないんですね><
お礼
ありがとうございます。 現在FLASHMXなので8を購入するか検討してみます。