最近公司粉忙的~很久没来更新了~
昨天朋友问起了涂鸦中的橡皮功能,网上查了一些资料,发现都写得比较复杂.
后来了解了一下bitmapData的draw,发现如果重复draw的时候..选择特定的“混合模式”,即可实现清除功能。最新draw进去的内容会与之前的内容混合,重复的地方将会去掉。
先看看代码
- import flash.display.BitmapData;
- import flash.geom.Rectangle;
- import flash.geom.Matrix;
- import flash.geom.ColorTransform;
-
-
- this.createEmptyMovieClip("main", this.getNextHighestDepth());
- main.createEmptyMovieClip("mc", main.getNextHighestDepth());
- main.createEmptyMovieClip("show", main.getNextHighestDepth());
- var content:BitmapData = new BitmapData(550,440,true,0x00FFFFFF);
- main.show.attachBitmap(content,0)
-
-
- var action:Number = 0
- txt.text = "当前选中:画笔"
- mc_move.onPress = goDraw
-
-
- a.onPress = function(){
- action = 0
- txt.text = "当前选中:画笔"
- main.mc._visible = true
- mc_move.onPress = goDraw
- }
-
-
- b.onPress = function(){
- action = 1
- txt.text = "当前选中:橡皮"
- main.mc._visible = false
- mc_move.onPress = goDraw
- }
-
-
- mc_move.onRelease = function(){
- delete onMouseMove
- content.draw(main,new Matrix(),new ColorTransform(),1,new Rectangle(0,0,550,400))
- main.mc.clear()
- break;
- }
- mc_move.onReleaseOutside = mc_move.onRelease
-
-
- function goDraw(){
- main.mc.lineStyle(20)
- main.mc.moveTo(_xmouse,_ymouse)
- onMouseMove = function(){
- main.mc.lineTo(_xmouse,_ymouse)
- updateAfterEvent()
- if(action==1){
-
- content.draw(main.mc,new Matrix(),new ColorTransform(),12)
- }
- }
- }
|
源码下载
上一篇:打造完美物体空间散射(as2.0) 下一篇:蓝博:《墨曲》,音乐的玩伴(as2.0)