Прокрутка изображений

Flash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий

Представьте, что вы создали электронную карту города, и каждый раз, когда пользователь сдвигает карту, нужно обновлять картинку (даже если карта сдвигается всего на несколько пикселов).

Один из способов реализации этой функциональности — перерисовывать изображение каждый раз, когда карта сдвигается. Другой путь — создать единое крупное изображение и применить метод scroll() .

Метод scroll() копирует растровое изображение на экране и вставляет его в новый экран со смещением, определяемым параметрами ( x , y ). Если часть изображения лежит за границами области видимости, создается эффект смещения. В сочетании с функцией таймера (или события enterFrame ) этот метод позволяет анимировать прокрутку изображения.

В примере ниже показано, как превратить изображение с шумом Перлина (из предыдущего примера) в более крупное, три четверти которого остаются вне области видимости. Затем применяются метод 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); 
}