捲動點陣圖

Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本

想像一下您已建立街道地圖應用程式,每次使用者移動地圖,就需要更新檢視 (即使只是將地圖移動幾個像素也一樣)。

建立此功能的其中一個方法就是每次使用者移動地圖時,重新顯示包含已更新地圖檢視的新影像。或者,您可以建立較大的單一影像並使用 scroll() 方法。

scroll() 方法會複製螢幕上的點陣圖,然後將它貼到新的偏移位置,這個位置是由 (x, y) 參數指定。如果點陣圖的部分剛好在舞台以外,這將造成影像位移的效果。當結合計時器函數 (或是 enterFrame 事件) 時,您可以讓影像以動畫或捲動的方式顯示。

下列範例採用前面的 perlin 雜訊範例,並產生較大的點陣圖影像 (影像的四分之三顯示在舞台以外)。接著會套用 scroll() 方法以及 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); 
}