as3.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); 
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值