热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ActionScript图形之遮罩

ActionScript图形之遮罩2011-03-1221:41:53|分类:flex|标签:actionscript图形之遮罩|字号大中小

ActionScript图形之遮罩

2011-03-12 21:41:53| 分类:flex | 标签:actionscript图形之遮罩|字号订阅

xxx.mask=yyy 这样xxx中只有与yyy交叉的部分才可见,这就是遮罩。
例子:
比较取消注释后的效果,和当前的效果
package
{
import flash.display.Shape;
import flash.display.Sprite;
public class TestMask extends Sprite
{
private var circle:Shape;
private var rec:Shape;
public function TestMask()
{
super();
circle = new Shape();
circle.graphics.beginFill(0xfff000);
circle.graphics.drawCircle(250,250,250);
circle.graphics.endFill();
rec = new Shape();
rec.graphics.beginFill(0xff0000);
rec.graphics.drawRect(0,0,500,20);
rec.graphics.endFill();
//circle.mask = rec;
this.addChild(rec);
this.addChild(circle);
}
}
}

动态遮罩
package
{
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.MouseEvent;
public class TestMask extends Sprite
{
private var circle:Sprite;
private var rec:Sprite;
public function TestMask()
{
super();
circle = new Sprite();
rec = new Sprite();
rec.graphics.beginFill(0xfff000);
rec.graphics.drawRect(50, 50, 200,200);
rec.graphics.endFill();

this.addChild(circle);
this.addChild(rec);
rec.addEventListener(MouseEvent.MOUSE_MOVE, createRec);
rec.addEventListener(MouseEvent.MOUSE_OUT, dropRec);
}
private function createRec(evt:MouseEvent):void
{
circle.graphics.clear();
circle.graphics.beginFill(0xff000);
circle.graphics.drawCircle(evt.localX,evt.localY,100);
circle.graphics.endFill();
rec.mask = circle;

}
private function dropRec(evt:MouseEvent):void
{
rec.mask = null;
}
}
}

百叶窗
package
{
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.MouseEvent;
public class TestMask2 extends Sprite
{
private var circle:Sprite;
private var rec:Sprite;
public function TestMask2()
{
super();
rec = new Sprite();
rec.graphics.beginFill(0xfff000);
rec.graphics.drawRect(50,50,500,20);
rec.graphics.drawRect(50,80,500,20);
rec.graphics.drawRect(50,110,500,20);
rec.graphics.drawRect(50,140,500,20);
rec.graphics.drawRect(50,170,500,20);
rec.graphics.endFill();
circle = new Sprite();
circle.graphics.beginFill(0xff0000);
circle.graphics.drawCircle(450/2, 110, 100);
circle.graphics.endFill();
rec.mask = circle;
this.addChild(circle);
this.addChild(rec);
}
}
}

推荐阅读
author-avatar
mobiledu2502887427
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有