0

私はフラッシュの初心者です。そして、私はプログラマーではありません。フォトショップ(画像加工)でちょうどいい。

これが私の問題です。シンプルな描画アプリケーションを見つけて、コーディングではなくインターフェースのみを変更しました。

描画 ( MovieClipに描画されたもの) をディスクドライブに保存できる「保存ボタン」を提供します。そして、私はそれを変更し、別のレイヤーをMovieClip a Graphicの上に置きました。しかし、保存しようとすると、 MovieClipは .png 画像としてのみ保存されます。私が欲しいのは、MovieClipとその上に重ねられたGraphicを 1 つの .png 画像に保存することです。どうやってやるの?

「保存ボタン」にコードを入力すると、より役立つのではないでしょうか?

** /* 保存 */

    private function export():void
    {
        var bmd:BitmapData = new BitmapData(600, 290);

        bmd.draw(board);

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


    private function completeHandler(event:Event):void {
        var loader:URLLoader = URLLoader(event.target);
        trace("completeHandler: " + loader.data);
    }


    private function saveSuccessful(e:Event):void
    {
        saveDialog = new SaveDialog();

        addChild(saveDialog);

        saveDialog.closeBtn.addEventListener(MouseEvent.MOUSE_UP, closeSaveDialog);
    }

    private function closeSaveDialog(e:MouseEvent):void
    {
        removeChild(saveDialog);
    }

    private function save(e:MouseEvent):void
    {
        export();
    }**

編集:「bmd.draw(topLayer);」を入れました 最初の draw() 呼び出しの下で、プレビューを公開すると、「未定義のプロパティ topLayer へのアクセス」と表示されます。最初にそのプロパティをチェックしたところ、この「インスタンス: topLayer」が言及されており、グラフィックです。

4

1 に答える 1

1

コードを確認してください。fileReference.save(someOtherName)おそらく の別の名前の構造がどこかにあるはずですが、fileReference近くで として宣言されFileReference=new FileReference()ます。次に、上記を追跡します。これは、型である必要があるさらに別の変数someOtherNameの出力である必要があります。そのビットマップ データに何が描かれているかを調べると、線が表示されます。それがあなたのプログラムで描かれているレイヤーだけであるかどうかを調べてください。その直後に同様の線を追加して形状を描画できます (コードで参照できるように名前を付ける必要があります)。これにより、描画したものの上にグラフィックが描画されます。PNGEncoder.encode()BitmapDatabitmapData.draw(someMovieClip)someMovieClip

描画したグラフィック全体が 1 つの画面に収まる場合は、進行中のアプリケーションのスクリーンショットを撮り、Photoshop にロードして、保存したものの上に正しくグラフィックを表示して楽しんでください。または、既存の保存済み画像を背景レイヤーとして使用し、スクリーンショットを前景として配置し、グラフィックではない領域をクリアして、さらに楽しみましょう。

編集:さて、そこにあります:export()機能(コピーペーストでは不完全です)があり、私が言及したすべての関連部分があります。draw()呼び出し、PNGEncoder.encode()呼び出し、およびBitmapDataオブジェクトがあります。draw()最初の呼び出しの後に、次のような別のコード行を追加する必要があります。

bmd.draw(yourGraphic);

YourGraphicムービークリップの上に手動で追加したグラフィックの名前で、ステージのプロパティで編集できます。すべきです。

返信: 最初の draw() 呼び出しの下に置きbmd.draw(topLayer);ましたが、プレビューを公開すると、「未定義のプロパティ topLayer へのアクセス」と表示されます。最初にそのプロパティをチェックしたところ、この「インスタンス: topLayer」が言及されており、グラフィックです。

于 2013-03-28T03:51:41.883 に答える