ビットマップのスクロールFlash Player 9 以降、Adobe AIR 1.0 以降 ユーザーが地図を動かすたびに、その移動幅がわずか数ピクセルであったとしても、ビューを更新しなければならないようなストリートマッピングアプリケーションを作成したとします。 この機能を実現するには、ユーザーが地図を動かすたびに、更新された部分を含む新しいイメージを再レンダリングするという方法があります。 または、1 つの大きなイメージを作成して scroll() メソッドを使用する方法もあります。 scroll() メソッドは画面上のビットマップをコピーし、それを x, y パラメーターで指定する新しいオフセット位置にペーストします。ビットマップの一部がステージ外にあると、イメージがシフトされた効果をもたらします。 タイマー制御関数または enterFrame イベントと組み合わせると、イメージがアニメーション化またはスクロールしているように見せることができます。 次の例では、前述の Perlin ノイズの例から大きなビットマップイメージを作成します。イメージの 4 分の 3 がステージ外でレンダリングされます。 scroll() メソッドと、斜め下方向に 1 ピクセル分イメージをオフセットする enterFrame イベントリスナーが適用されます。このメソッドはフレームが入力されるたびに呼び出されるので、画面外にあるイメージは、イメージが下方向にスクロールされるとステージにレンダリングされます。 import flash.display.Bitmap; import flash.display.BitmapData; var myBitmapDataObject:BitmapData = new BitmapData(1000, 1000, false, 0x00FF0000); var seed:Number = Math.floor(Math.random() * 100); var channels:uint = BitmapDataChannel.GREEN | BitmapDataChannel.BLUE; myBitmapDataObject.perlinNoise(100, 80, 6, seed, false, true, channels, false, null); var myBitmap:Bitmap = new Bitmap(myBitmapDataObject); myBitmap.x = -750; myBitmap.y = -750; addChild(myBitmap); addEventListener(Event.ENTER_FRAME, scrollBitmap); function scrollBitmap(event:Event):void { myBitmapDataObject.scroll(1, 1); } |
![]() |