ActionScript BitmapData オブジェクトの操作

拡張の ActionScript 側と Java 側の間でビットマップの受け渡しを行うには、ActionScript BitmapData クラスを使用します。 FREBitmapData クラスは、FREObject を拡張したクラスであり、ビットマップデータオブジェクトの扱いに適した次のメソッドを備えています。

  • acquire()

    次に示すメソッドを呼び出す場合は、前もって acquire() を呼び出しておく必要があります。

  • getHeight()

  • getWidth()

  • hasAlpha()

  • isInvertedY() (AIR 3.1)

  • isPremultiplied()

  • getLineStride32()

  • getBits()

  • invalidateRect()

  • release()

ビットマップデータに変更を加えるには、 acquire() を呼び出した後、 getBits() メソッドでピクセルカラーデータを取得します。 getLineStride32() メソッドは、水平ライン 1 本あたりに含まれる 32 bit データの数を示します。通常、この値はビットマップの幅と一致しますが、場合によっては、表示されない余分なバイトデータがビットマップデータに余白として付加されることがあります。ビットマップ内の各ピクセルは、ARGB 形式の 32 bit 値で表現されます。ビットマップを操作した後は、 release() を呼び出してビットマップデータを解放します。

acquire() を呼び出してから release() を呼び出すまでの間、FREObject のメソッドを呼び出すことは一切できません(acquire() でロックしたオブジェクトだけでなく、他の FREObject オブジェクトのメソッドも呼び出せません)。これが禁止されているのは、他の呼び出しを実行すると副作用でバイト配列オブジェクトやその内容が無効になってしまう可能性があるからです。

Java 実装からビットマップの全体または一部に変更を加えたことを示すには、 invalidateRect() 関数を呼び出して、現在の表示を無効にする長方形領域を指定します。 x および y パラメーターは、現在の表示を無効にする長方形領域の座標を、ビットマップの左上隅を表す 0,0 座標との相対位置で示します。 width フィールドおよび height フィールドは、現在の表示を無効にする長方形領域の大きさをピクセル単位で示します。

静的ファクトリメソッドの FREBitmapData.newBitmapData() を使用すると、FREBitmapData オブジェクトを新規作成できます。