·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3.0处理加载透明gif,png图片代码示例(2)

时间:2012-08-28 11:57blog.163.com
AS3传统的方法加载透明图片,看着是透明的,但鼠标事件还是会响应的。有两种解决方案,第一种:在需要的鼠标事件触发时 判断鼠标所点位置的像素是否透明,透明的话则不响应该事件 为了程序的扩展性,可以添加一些自

AS3传统的方法加载透明图片,看着是透明的,但鼠标事件还是会响应的。有两种解决方案,第一种:在需要的鼠标事件触发时 判断鼠标所点位置的像素是否透明,透明的话则不响应该事件

为了程序的扩展性,可以添加一些自定义事件代替原有鼠标事件,程序如下:

  1. package king.loadAphaImage{  
  2.  /*  
  3.   QQ: 334973991  
  4.   */  
  5.  import flash.display.*;  
  6.  import flash.events.*;  
  7.    
  8.  public class Main extends Sprite{  
  9.   private var loadImage:LoadImage;  
  10.   private var sprite:Sprite;  
  11.   public function Main(){  
  12.    loadImage=new LoadImage(completeHandler);  
  13.    loadImage.Loading("king/loadAphaImage/langfangshi.png");  
  14.   }  
  15.   private function completeHandler(events:Event):void {  
  16.    sprite=new Sprite();  
  17.    var bitmap:Bitmap=events.target.content;  
  18.    sprite.addChild(bitmap);  
  19.    DealImage.dealImage(sprite);  
  20.    sprite.addEventListener(MouseEvent.CLICK,clickHandle);  
  21.    sprite.addEventListener("IMAGE_MOUSE_CLICK",imageClickHandle);  
  22.    this.addChild(sprite);  
  23.   }  
  24.   private function clickHandle(e:MouseEvent):void{  
  25.    trace("点击到我啦CLICK事件");  
  26.   }  
  27.   private function imageClickHandle(e:MouseEvent):void{  
  28.    trace("点击到我啦IMAGE_CLICK事件");  
  29.   }  
  30.  }  

 

  1. package king.loadAphaImage{  
  2.  /*  
  3.   QQ: 334973991  
  4.   */  
  5.  import flash.display.*;  
  6.  import flash.events.*;  
  7.  import flash.net.*;  
  8.    
  9.  public class LoadImage{  
  10.   private var fun:Function;  
  11.   public function LoadImage(completeFun:Function){  
  12.    fun=completeFun;  
  13.   }  
  14.   public function Loading(url:String){  
  15.    try {  
  16.     var loader:Loader=new Loader();  
  17.     loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);  
  18.     loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,cancel);  
  19.     loader.load(new URLRequest(url));  
  20.    } catch (error:Error) {  
  21.     trace(error);  
  22.    }  
  23.   }  
  24.   private function cancel(events:IOErrorEvent):void {  
  25.    trace(events);  
  26.   }  
  27.   private function completeHandler(events:Event):void {  
  28.    fun(events);  
  29.   }  
  30.  }  

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器