WEB开发网
开发学院图形图像Flash flash位图技术研究篇:缓冲技术 阅读

flash位图技术研究篇:缓冲技术

 2010-03-02 00:00:00 来源:WEB开发网   
核心提示: 2.4控制飞机运行曾经有一个广告讲一群小朋友的未来梦想,有一个人说到,flash位图技术研究篇:缓冲技术(5),希望将来可以开飞机,我们也像他们一样,并重置填充和线条样式设置,drawRect(x:Number, y:Number, width:Number, height:Number):vo

2.4控制飞机运行

曾经有一个广告讲一群小朋友的未来梦想,有一个人说到,希望将来可以开飞机。我们也像他们一样,让位图跟随我们控制移动

导入  import flash.ui.Keyboard;包

监听按键事件:

stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDown);
private function keyDown(e:KeyboardEvent):void
  {
}

但是通过这种方式来控制我们的飞机,并不让我们觉得开心,因为响应按键事件的时候,我们觉得一点也不流畅。这需要我们对程序进行改进,加以修改方式。而这里主要讲的是这个怎样建立缓冲位图区和绘制图形到窗口去。

代码如下:

   1. package   
   2. {  
   3.     import flash.display.*;  
   4.     import flash.display.Bitmap;  
   5.     import flash.display.BitmapData;  
   6.     import flash.events.*;  
   7.     import flash.geom.*;  
   8.     import flash.ui.Keyboard;  
   9.     public class Example2 extends Sprite  
  10.     {  
  11.         private var backBuffer:BitmapData=new BitmapData(550,400,false);//建立一个缓冲区  
  12.         private var clearColor:uint=0x0000FF;//指定填充的颜色  
  13.         private var myplane:plane=new plane(59,43);//我们在flash 库里面的资源,是bitmapdata的一个子类  
  14.         private var position:Point=new Point(250,200);// 指定像素位置   
  15.         public function Example2()  
  16.         {  
  17.   
  18.             addEventListener(Event.ENTER_FRAME,Run);  
  19.             stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDown);  
  20.         }  
  21.         private function init():void  
  22.         {  
  23.             backBuffer.fillRect(backBuffer.rect, clearColor);//填充  
  24.             backBuffer.copyPixels(myplane,myplane.rect, position, myplane.bitmapAlpha, new Point(0, 0), true);  
  25.             var iamge:Sprite=new Sprite();//建立一个位图  
  26.             addChild(iamge);//显示位图  
  27.             iamge.graphics.clear();  
  28.             iamge.graphics.beginBitmapFill(backBuffer, null, false, false);//使用 填充位图的方法 填充缓冲区  
  29.             iamge.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);//画出矩形  
  30.             iamge.graphics.endFill();//结束填充  
  31.         }  
  32.         private function Run(e:Event):void  
  33.         {  
  34.             init();  
  35.   
  36.         }  
  37.         private function keyDown(e:KeyboardEvent):void  
  38.         {  
  39.             if (e.keyCode==Keyboard.UP)  
  40.             {  
  41.                 position.y-=5;  
  42.             }  
  43.             else if (e.keyCode==Keyboard.DOWN)  
  44.             {  
  45.                 position.y+=5;  
  46.             }  
  47.             else if (e.keyCode==Keyboard.LEFT)  
  48.             {  
  49.                 position.x-=5;  
  50.             }  
  51.             else if (e.keyCode==Keyboard.RIGHT)  
  52.             {  
  53.                 position.x+=5;  
  54.             }  
  55.         }  
  56.     }  
  57. }

好,暂时写到这里

语法参考:

beginBitmapFill(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void

用位图图像填充绘图区。

clear():void

清除绘制到此 Graphics 对象的图形,并重置填充和线条样式设置。

drawRect(x:Number, y:Number, width:Number, height:Number):void

绘制一个矩形。

copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void

为没有拉伸、旋转或色彩效果的图像之间的像素处理提供一个快速例程。

上一页  1 2 3 4 5 

Tags:flash 位图 技术

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接