Kullanıcının haritayı her hareket ettirişinde (birkaç piksel hareket etse dahi) görünümü güncellemeniz gereken bir sokak haritası uygulaması oluşturduğunuzu düşünün.
Bu işlevi oluşturmanın bir yolu kullanıcının haritayı her hareket ettirişinde güncellenmiş haritayı içeren yeni bir görüntü oluşturmaktır. Ayrıca, tek bir büyük görüntü oluşturabilir ve
scroll()
yöntemini kullanabilirsiniz.
scroll()
yöntemi ekrandaki bitmap'i kopyalar ve parametreler (
x
,
y
) ile belirlenen yeni bir uzak konuma yapıştırır. Bitmap'in bir kısmı sahne alanı dışında kalırsa görüntüye değişme efekti verir. Bir zamanlama işlevi (veya
enterFrame
olayı) ile birlikte kullanıldığında görüntünün hareket eder veya kayar şekilde görünmesini sağlayabilirsiniz.
Aşağıdaki örnek önceki perlin gürültüsü örneğini alır ve daha büyük bir bitmap görüntüsü oluşturur. (Bu görüntünün dörtte üçü sahne alanı dışında oluşturulur.) Ardından
scroll()
yöntemi görüntüyü çapraz şekilde aşağıya doğru uzaklaştıran bir
enterFrame
olay dinleyici ile birlikte uygulanır. Bu yöntem her kare girildiğinde çağrılır ve sonuç olarak görüntü aşağı doğru kaydıkça görüntünün ekran dışında kalan kısımları Sahne Alanında oluşturulur.
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);
}