开始新的blog之旅--flash3,0涂鸦板保存,撤销功能
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                开始新的blog之旅--flash3,0涂鸦板保存,撤销功能
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                一直以來(lái)都是在百度寫的博客,今天不知道百度是哪抽風(fēng)。居然把我的博客給封了,上貼吧去發(fā)泄一番,結(jié)果帖子都給刪了。
不得不說(shuō)你百度厲害,你自己犯的錯(cuò)誤。讓我們這些用戶跟著受罪。我看今天很多博客都被封了,都不知道原因。提倡的用戶體驗(yàn)?zāi)?#xff1f;這也太差勁了吧。至少告訴我們哪里出現(xiàn)違反百度空間協(xié)議的文章或是文字了。太搞笑了。
算了,今天開(kāi)始在這里寫了,由于剛開(kāi)始學(xué)習(xí)AS3.0這里就記錄一些寫過(guò)的代碼和體會(huì)吧。
先發(fā)一個(gè)涂鴉板的代碼咯。
/Files/skmtpsh/tuyaban.swf
有撤銷和保存的功能。做撤銷的時(shí)候想了半天。最后用數(shù)組實(shí)現(xiàn)了。用了matrix類. bitmapdata.draw方法。
?
package?{????import?fl.transitions.Tween;
????import?flash.display.Bitmap;
????import?flash.display.BitmapData;
????import?flash.display.DisplayObject;
????import?flash.display.Loader;
????import?flash.display.Sprite;????
????import?flash.display.MovieClip;
????import?flash.events.Event;
????import?flash.events.MouseEvent;
????import?com.adobe.images.JPGEncoder;
????import?flash.filters.DropShadowFilter;
????import?flash.geom.Matrix;
????import?flash.geom.Rectangle;
????import?flash.net.URLLoader;
????import?flash.net.URLRequest;
????import?flash.ui.Mouse;
????import?flash.utils.ByteArray;
????import?flash.net.URLRequestMethod;
????import?fl.events.ColorPickerEvent;//組件顏色拾取器
????import?flash.display.BlendMode;
????import?flash.display.SimpleButton;
????import?fl.transitions.easing.*;
????/**
?????*?...
?????*?@author?pangpang
?????*/????????
????public?class?Painter?extends?MovieClip
????{
????????private?var?_drawSprite:Sprite;
????????private?var?_ok:Boolean;
????????private?var?_lineArr:Array;
????????private?var?_count:uint;
????????private?var?_colorft:uint?=?0xff00ff;
????????private?var?_colorbg:uint?=?0xffffff;
????????private?var?_linestyle:Number?=?2;
????????private?var?_alphastyle:Number?=?1;
????????private?var?_fileName?=?"picSave";
????????private?var?_boardOpen:MovieClip;
????????
????????private?var?_btmp:Bitmap;
????????public?function?Painter()
????????{
????????????_lineArr?=?new?Array();//存放數(shù)組
????????????_drawSprite?=?new?Sprite();//背景sprite
????????????
????????????//scrollboard_mc.visible?=?false;?//滾動(dòng)面板可見(jiàn)
????????????
????????????//增加背景圖片
????????????addParent(_colorbg,?_drawSprite);
????????????addMcEvent(_drawSprite);
????????}
????????/**
?????????*?增加背景
?????????*/????????????
????????private?function?addParent(_color:uint,_parentMc:Sprite):void
????????{
????????????_parentMc.graphics.lineStyle(2,?0x4E7EAD,?1);????
????????????_parentMc.graphics.beginFill(_color);
????????????_parentMc.graphics.drawRoundRect(58,?51,?474,?328,5);
????????????_parentMc.graphics.endFill();????????
????????????addChild(_parentMc);????????????????
????????}
????????/**
?????????*?增加畫圖背景
?????????*/????
????????private?function?addSprite(_color:uint,_parentMc:Sprite):void
????????{
????????????var?$sprite:Sprite?=?new?Sprite();????????????????
????????????$sprite.graphics.beginFill(_color,0);
????????????$sprite.graphics.drawRoundRect(60,?53,?470,?324,5);
????????????$sprite.graphics.endFill();????
????????????$sprite.width?=?470;
????????????$sprite.height?=?324;
????????????_parentMc.addChild($sprite);
????????????
????????????$sprite.graphics.lineStyle(_linestyle,?_colorft,?_alphastyle);????????????
????????????$sprite.graphics.moveTo(mouseX,?mouseY);????
????????????_lineArr.push($sprite);????????
????????}
????????/**
?????????*?注冊(cè)偵聽(tīng)器
?????????*/????????????
????????private?function?addMcEvent(_mc:Sprite):void
????????{
????????????_mc.addEventListener(MouseEvent.MOUSE_DOWN,?downHandle);
????????????_mc.addEventListener(MouseEvent.MOUSE_UP,?upHandle);
????????????_mc.addEventListener(MouseEvent.MOUSE_MOVE,?moveHandle);????
????????????
????????????//按鈕注冊(cè)偵聽(tīng)器????????????
????????????save_Btn.addEventListener(MouseEvent.MOUSE_DOWN,saveHandle);
????????????clear_Btn.addEventListener(MouseEvent.MOUSE_DOWN,clearHandle);
????????????reDo_Btn.addEventListener(MouseEvent.MOUSE_DOWN,?reDoHandle);????
????????????
????????????//顏色拾取器注冊(cè)偵聽(tīng)器
????????????
????????????cp_front.addEventListener(ColorPickerEvent.CHANGE,frontHandle);
????????????cp_bg.addEventListener(ColorPickerEvent.CHANGE,?bgHandle);
????????????
????????????//拖動(dòng)按鈕注冊(cè)偵聽(tīng)器
????????????line_btn.addEventListener(MouseEvent.MOUSE_DOWN,?startDragLineHandle);
????????????stage.addEventListener(MouseEvent.MOUSE_UP,?stopDragLineHandle);
????????????line_btn.addEventListener(MouseEvent.MOUSE_MOVE,?moveDragLineHandle);
????????????
????????????alpha_btn.addEventListener(MouseEvent.MOUSE_DOWN,?startDragAlphaHandle);
????????????stage.addEventListener(MouseEvent.MOUSE_UP,?stopDragAlphaHandle);
????????????alpha_btn.addEventListener(MouseEvent.MOUSE_MOVE,?moveDragAlphaHandle);
????????????
????????????//滾動(dòng)條注冊(cè)偵聽(tīng)器
????????????//scrollBarboard_mc.addEventListener(MouseEvent.MOUSE_DOWN,openHandle);
????????}
????????/*
?????????*滾動(dòng)條函數(shù)
?????????*/
????????private?function?openHandle(evt:MouseEvent):void
????????{
????????????var?$urlRequest:URLRequest?=?new?URLRequest("shuoming.swf");
????????????var?$urlLoader:Loader?=?new?Loader();
????????????$urlLoader.load($urlRequest);
????????????$urlLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,?loadHandle);
????????}
????????private?function?loadHandle(evt:Event):void
????????{
????????????var?$loadContent:MovieClip?=?evt.target.content;
????????????var?$tween:Tween?=?new?Tween($loadContent,?"alpha",?Elastic.easeOut,?0,?1,?2,true);
????????????$loadContent.y?=?stage.stageHeight?/?2-$loadContent.height/2;
????????????$loadContent.x?=?stage.stageWidth?/?2-$loadContent.width/2;
????????????addChild($loadContent);
????????????//_boardOpen?=?$loadContent
????????????//$loadContent.btn_close.addEventListener(MouseEvent.MOUSE_DOWN,closeHanle);
????????}
????????private?function?closeHanle(evt:MouseEvent):void
????????{
????????????//removeChild(_boardOpen);
????????}
????????/**
?????????*?拖動(dòng)按鈕
?????????*/
????????private?function?startDragLineHandle(evt:MouseEvent):void
????????{
????????????line_btn.useHandCursor?=?true;
????????????line_btn.startDrag(true,?new?Rectangle(106,?30,?60,?0));
????????}
????????private?function?stopDragLineHandle(evt:MouseEvent):void
????????{
????????????line_btn.stopDrag();
????????}
????????private?function?moveDragLineHandle(evt:MouseEvent):void
????????{
????????????_linestyle?=?int(((line_btn.x?-?106)?/?60)?*?10);
????????}
????????
????????private?function?startDragAlphaHandle(evt:MouseEvent):void
????????{????
????????????alpha_btn.startDrag(true,?new?Rectangle(226,?30,?60,?0));
????????????alpha_btn.useHandCursor?=?true;
????????}
????????private?function?stopDragAlphaHandle(evt:MouseEvent):void
????????{
????????????alpha_btn.stopDrag();
????????}
????????private?function?moveDragAlphaHandle(evt:MouseEvent):void
????????{
????????????_alphastyle?=??1-(alpha_btn.x?-?226)?/?60;
????????}????????
????????/**
?????????*?顏色
?????????*/
????????private?function?frontHandle(evt:ColorPickerEvent):void
????????{
????????????_colorft?=?cp_front.selectedColor;
????????}
????????private?function?bgHandle(evt:ColorPickerEvent):void
????????{
????????????_colorbg?=?cp_bg.selectedColor;
????????????addParent(_colorbg,?_drawSprite);//重置背景色
????????}????????
????????/**
?????????*?處理函數(shù)
?????????*/????????????
????????private?function?downHandle(evt:MouseEvent):void
????????{
????????????_ok?=?true;????
????????????addSprite(0xffffff,?_drawSprite);????????
????????}
????????
????????private?function?upHandle(evt:MouseEvent):void
????????{
????????????_ok?=?false;
????????}
????????
????????private?function?moveHandle(evt:MouseEvent):void
????????{
????????????if(_ok){
????????????????_lineArr[_lineArr.length?-?1].graphics.lineTo(mouseX,?mouseY);
????????????????evt.updateAfterEvent();????????
????????????}
????????}
????????/**
?????????*?
?????????*按鈕?
?????????*/
????????//保存
????????private?function?saveHandle(evt:MouseEvent):void
????????{
????????????var?_bt:BitmapData?=?new?BitmapData(474,?328,false,0x000000);
????????????for?(var?i:int?=?_drawSprite.numChildren;?i?>?0;?i--)
????????????{
????????????????_bt.draw(_lineArr[i-1],?new?Matrix(1,?0,?0,?1,?-58,?-51));
????????????}
????????????_btmp?=?new?Bitmap(_bt);
????????????var?jpgEncoder:JPGEncoder?=?new?JPGEncoder(90);
????????????var?bytes:ByteArray?=?jpgEncoder.encode(_bt);
????????????var?urlR:URLRequest?=?new?URLRequest("http://127.0.0.1/readPic.asp?filename=picSave");
????????????urlR.data?=?bytes;
????????????urlR.method?=?URLRequestMethod.POST;
????????????urlR.contentType?=?"application/octet-stream";
????????????
????????????var?urlL:URLLoader?=?new?URLLoader();
????????????urlL.load(urlR);
????????????urlL.addEventListener(Event.COMPLETE,completeHandler);????????????
????????}
????????private?function?completeHandler(evt:Event):void
????????{
????????????addChild(_btmp);
????????????_btmp.x?=?stage.stageWidth?/?2?-?_btmp.width?/?2;
????????????_btmp.y?=?stage.stageHeight?/?2?-?_btmp.height?/?2;
????????????var?$filt:DropShadowFilter?=?new?DropShadowFilter(0x000000,?50,?1,?1,?10,?10,?3,?1,?false);
????????????_btmp.filters.push($filt);
????????????stage.addEventListener(MouseEvent.MOUSE_DOWN,?closeBtHandle);
????????}
????????private?function?closeBtHandle(evt:MouseEvent):void
????????{
????????????if?(_btmp?!=?null?&&?this.contains(_btmp)?)
????????????{
????????????????removeChild(_btmp);
????????????}
????????}
????????//清除graphics。重新生成
????????private?function?clearHandle(evt:MouseEvent):void
????????{
????????????if?(_drawSprite.numChildren?>=?1)
????????????{
????????????????for?(var?i:int?=?_drawSprite.numChildren;?i?>0;?i--)
????????????????{
????????????????????_drawSprite.removeChild(_lineArr[i-1]);
????????????????????_lineArr.splice(i?-?1,?1);
????????????????}
????????????}????????????????????
????????}
????????//撤銷
????????private?function?reDoHandle(evt:MouseEvent):void
????????{
????????????if?(_drawSprite.numChildren?>=?1)
????????????{
????????????????_drawSprite.removeChild(_lineArr[_lineArr.length?-?1]);
????????????????_lineArr.splice(_lineArr.length?-?1,?1);
????????????}
????????}????????
????}
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/skmtpsh/archive/2012/05/07/2487550.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的开始新的blog之旅--flash3,0涂鸦板保存,撤销功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: mysql 查询某个字段SQL语句【my
- 下一篇: ScaleForm十六戒言
