Прокрутка изображений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);
}
|
|