捲動點陣圖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); } |
![]() |