显示对象小练习之一(遮罩mask);
//显示对象小练习之一(遮罩mask);package{
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.display.Loader;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.Event;
import flash.events.MouseEvent;
public class SampleMask extends Sprite{
//定义一个圆形实例,用来做遮罩;
private var Cir:Sprite;
//定义一个被遮罩的位图实例;
private var Bit:Bitmap=new Bitmap();
//下面是构造函数;
public function SampleMask():void{
//初始化圆形实例;
initCir(50,50,130);
//加载一个位图;
initBit();
//拖拽圆形;
Cir.startDrag();
//为Cir添加侦听器;
}
private function initCir(xInt:int,yInt:int,R:Number):void{
Cir=new Sprite();
//画圆;
Cir.graphics.lineStyle(2,0xffffff);
Cir.graphics.beginFill(0x996600);
Cir.graphics.drawCircle(xInt,yInt,R);
Cir.graphics.endFill();
//把圆加载到舞台;
addChild(Cir);
}
private function initBit():void{
Bit=new Bitmap()
//加载一张图片;
var ur:String="Z.JPG";
var urlRe:URLRequest=new URLRequest(ur);
var lo:Loader=new Loader();
//注册侦听器,用来侦听加载完成事件;
lo.contentLoaderInfo.addEventListener(Event.COMPLETE,loadBitFun);
//捕获加载异常;
try{
trace("图片加载中……");
lo.load(urlRe);
}
catch(e:Error){
trace("图片加载错误:"+e);
}
}
private function loadBitFun(ev:Event):void{
//把加载好的图片赋值给Bit;
Bit=ev.target.loader.content as Bitmap;
//把位图加载到舞台;
addChild(Bit);
//用圆形来遮罩位图;
Bit.mask=Cir;
}
}
}
总结:
有一段时间没写了,有点手生,
本来想要的效果是鼠标按下后遮罩再拖拽,
按理应添加侦听器,侦听鼠标事件,
但调试了半天没成功,
侦听器不起作用!
不知道哪里出现了问题,
可能是对鼠标事件了解不透吧!
于是放弃了这个效果!
页:
[1]