問題タブ [bitmapdata]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1405 参照

flash - Internet Explorer のフラッシュ パフォーマンス

これを Adob​​e フォーラムに投稿しましたが、良い回答は期待できません。フラッシュでゲームをしたことがあり、同じ問題に遭遇した人からの助けを探しています。

私の問題を再現する手順:

  1. フラッシュで単純なドット DisplayObject を作成する

    /li>
  2. ドットをフレームに何度もビットマップに描画する

    /li>
  3. Win32 上のブラウザー、フラッシュ プラグイン バージョンの組み合わせで FrameRate をテストする

予想:

ほとんどの場合、近いフレームレート

観測:

IE7 で Flash10b.ocx(10.0.22) を使用するとフレームレートが 25% 低下し、Flash10c.ocx(10.0.32) を使用するとフレームレートが 50% 低下します。FireFox、Safari、および Mac OSX のプラグインでは、同じ速度低下は見られません。

助けてください:

Internet Explorer で見られるパフォーマンスの問題について、ヘルプ/確認を取得したいと考えています。Adobe と Flash のコミュニティはインターネット上で優れていますが、10.0.32 と 10.0.22 でのムービー再生に関するレポートがいくつかあるだけで、これに関する情報がないことに驚いています。

私の推測では、IE ではフラッシュ プラグインがドロー コールを Win32 に渡しており、これは遅いと思われます。

私の解決策は次のとおりです。

draw を使用して毎回ビットマップに描画する代わりに、描画呼び出しをビットマップにキャッシュし、CopyPixels. これを行うと、パフォーマンスはブラウザ間で同じで、10% 以内です。

私が使用しているループ:

私がもっと知りたい他の「既知の」問題についてのメモ:

  • IE では、私のアプリケーションのメモリ使用量ははるかに小さいと報告されています (通常、Flashplayer では 33MB、IE では 16MB)。
  • IE では、メモリ ページ フォールトは 10k/秒を超えますが、フラッシュ プレーヤーでは発生しません。
  • IE では、stage.invalidate がパフォーマンス ヒッチングの問題を引き起こすようです。
  • IE では、ビットマップにぼかしフィルターを配置すると、Flash Player よりも大きなパフォーマンス ヒットが発生します。
0 投票する
2 に答える
1760 参照

flash - Flash AS3 BitmapData.draw() がテキストのフォーマットに影響を与える

アンチエイリアス処理されたシステム フォントを表示する必要があります (swf ファイルのサイズは小さい必要があるため、フォントを埋め込むことはできません)。そこで、テキストを手動でアンチエイリアスするためにこのスクリプトを書きました

コード:

これはかなりうまく機能しますが、厄介なことがあります。ドローコールのスケーリングがテキストの書式設定に影響を与えることがあります。たとえば、行の最後の単語は、代わりに次の行の最初の単語になります。これはあってはならないことです。なぜそれが起こるのか、どうすればそれを回避できるのか、誰にも分かりますか? テキストボックスに表示されているとおりに、テキストを bitmapData にレンダリングしたい

ありがとう!

0 投票する
1 に答える
478 参照

flash - 変換 bitmapData

複数の jpeg 画像を動的に XML で bitmapdata オブジェクトにロードしようとしています。この .swf ファイルのステージでそれらを見ることができます。

ただし、メニューオプションの1つをクリックしているときに呼び出すメインの別の.swfにロードします。

次のエラーが表示されました: エラー #1034: タイプ強制に失敗しました: com::Fashion@1daf4ca1 を flash.display.MovieClip に変換できません。

誰かがそれを変換する方法を知っていますか??

0 投票する
3 に答える
4878 参照

flash - ActionScript 3 (AS3) のマスクされたイメージの BitmapData

画像のマスクされた領域のスナップショットを取得しようとしています...そのため、画像をロードして次の機能を実行します。

というわけで、読み込んだ画像を管理したら保存します。しかし、保存機能は 80x80px の白い正方形しか出力しません。これは、空のステージをスナップショットしていることを示しています。

MovieClip の構造は次のとおりです。

ムービーがあり、そのムービー内に ThumbEdit という名前のサムネイル エディターがあります。

ThumbEdit のステージには、「holder1」と呼ばれるムービークリップがあります。ThumbEdit のドキュメント クラスで、スプライト "_bithold" を作成し、ステージの holder1.x と holder1.y に配置します。画像が読み込まれたら、その画像を _bithold に追加し、_bithold をシェイプでマスクします。したがって、_bithold のマスクされた領域のスナップショットを取得したいのですが、どうすればよいかわかりません...何かアドバイスはありますか?

0 投票する
2 に答える
938 参照

actionscript-3 - bitMapData へのオブジェクトの追加

今のところ。私は3つのオブジェクトを持っています。キャンバスとして機能する 1 つの BitMap。および 2 つの bitmapDatas。1 つは私のバッファーで、もう 1 つは私のタイルです。ゲームのタイル効果を作成しています。tile:BitMapData をカスタム オブジェクトに変換したいと思います。その理由は、各タイルをインタラクティブにしたいからです。だから私はそれぞれをクリックすることができます。タイルを表す bitMapData を、プロパティとメソッドを持つカスタム オブジェクトに変換することは可能ですか。ムービークリップのようなもの。それを私のバッファに描画しますか?? bitMapData を拡張する新しいクラスを作成できますか?? または、バッファを取り除き、タイル オブジェクトを BitMap に直接描画する必要がありますか??

言い換えれば、スプライトまたはタイルを BitMapData オブジェクトまたはビットマップに配置する最良の方法は何ですか?

0 投票する
2 に答える
518 参照

flash - BitmapData オブジェクトの単一チャネルを変換する

アルファ チャネルを持つ BitmapData オブジェクトがあります。ActionScript3 (FlashPlayer10) でそのアルファ チャネルをオフセットする最速の方法を知りたいです。オフセットとは、カラー チャネルをそのままにして、そのチャネルのすべてのピクセルを一方向にシフトする (画像の境界線を囲む) ことを意味します。

このような変換を 1 つのチャネルのみに適用する良い方法はありますか?

0 投票する
1 に答える
523 参照

actionscript-3 - Actionscript BlurFilter ラップアラウンド

標準の ActionScript ぼかしフィルターを使用して画像をぼかしています。イメージは後で円柱のテクスチャ マップとして使用されます。つまり、左端と右端が 3D で交わります。これは、ぼかしフィルターが画像の端に不連続性を持っているため、見栄えが悪くなります。画像をラップするように設定して、フィルターカーネルを切り捨てる代わりにモジュロ演算を実行して、反対側からピクセルを取得するように設定したいと思います。それはまったく可能ですか?

そうでない場合 - ActionScript でそのような関数を自分で記述する最良の方法は何ですか? getPixel32 と setPixel32 を使用すると、大きな画像では非常に遅くなると思いますか?

0 投票する
1 に答える
723 参照

actionscript-3 - スプライト ビットマップの変更

現在、作成中のゲームのタイリング効果を作成しようとしています。私はタイルシートを使用しており、そのようにタイルをスプライトにロードしています...

var tileImage は bitMapData です。30 は、リタングルを移動するピクセル数です。tWidth と tHeight は四角形の大きさです。これは 30x30 です

これは、タイル上でロールするときにビットマップを変更するために行うことです

スプライトキャンバスをクリアします。次に、 tileImage の別の位置に書き直します。

私の問題は....

古いタイルは完全に削除されますが、新しいタイルは古いビットマップが表示された場所よりも右側に配置されます。

私のタイル シートは幅 90 ピクセル、高さ 30 ピクセルしかありません。その上、新しいタイルが古いタイルの後ろに描かれているように見えます。これを完璧にするより良い方法はありますか?

繰り返しますが、ビットマップの色を変更するだけです

0 投票する
1 に答える
1590 参照

actionscript-3 - 無効なBitMapdataエラー#2015

そして、次のエラーが発生します。

ピクセルをコピーすると発生する傾向があります。どうしてか分かりません。

tileImageは有効です。以下のコードで変数を使用しましたが、機能します。しかし、上記はそうではありません。理由はわかりません。誰か手がかりがありますか?

0 投票する
2 に答える
1741 参照

actionscript-3 - #2015: 無効な BitmapData

私のクラスでは、次のように作成するbitmapDataと:

次のエラーが表示されます。

しかし、メソッド内で変数を宣言すると:

それは正常に動作します。どうして!?!?!それは私を夢中にさせています。

みんなありがとう!