as3中bitmapData中draw方法重新理解

2021-07-03 16:18:04 字數 1261 閱讀 2631

flash.display.bitmapdata.draw(source:ibitmapdrawable, matrix:matrix=null, colortransform:colortransform=null, blendmode:string=null, cliprect:rectangle=null, smoothing:boolean=false):void

以前我感覺自己數學挺好的,邏輯思維應該不差,最近受打擊了!在理解bitmapdata.draw這個方法時,我花了很長時間才真正理解了這個方法,主要是我把matrix裡的位移,和cliprect這個引數的功能理解有誤差(受另外乙個方法copypixels中sourcerect引數的影響,它的含義和draw中的cliprect有區別)

有兩個位圖, a,b,a是原圖,b想拷貝a圖中(50,50)這個座標開始的長寬都為200的這一塊矩形範圍。

需要通過var matrix:matix=new matix();

matrix.translate(-50,-50);

這個matrix**是先把原圖的所有內容向左向上偏移50畫素,這樣的話原來在(50,50)座標的點現在座標就是(0,0)呢!

var rect:rectangle=new rectangle(0,0,100,100);

var bmd:bitmapdata=new bitmapdata(100,100):

bmd.draw(a,matrix,null,null,rect);

b.bitmapdata=bmd;

好了,執行**,是正確的!這個是我的現在理解,以前的理解是錯誤的,就不說了!昨天我在乙個群裡,和乙個朋友聊天,我發現他對這個問題的理解是不一樣的!但他給出的**是正確的。呵呵,殊途同歸。

現在感覺自己對這些以前不太在意的問題,有了重新理解,現在總算真正明白孔老夫子的「學而不思則罔,思而不學則殆「這種學習方法是多麼正確,多麼痛的領悟,

老是感覺自己進步慢,一部分原因恐怕就是自己思考地太少,對這些比較細的東西,沒有真正透徹地思考過。古人的智慧型,佩服!

package

_urlrequest=new urlrequest(_url1);

_loader=new loader;

_loader.contentloaderinfo.addeventlistener(event.complete,loadsuccesshandler);

_loader.load(_urlrequest);

}private function loadsuccesshandler(event:event):void}}

as3中的容器

4種容器 array object vector dictionary 各自特點 array是索引陣列,雖然它也是動態類,可以等同於object來用,但是不建議這樣,因為沒有任何好處。除了鍵上的區別外,array還是善於隨機訪問的,但不知道object和dictionary和它在訪問速度上的區別有多...

AS3中XML刪除節點

e4x規範中定義有delete和deletebyindex方法用來刪除特定的xml節點,但是在當前版本的actionscript 3.0實現中,並沒有實現這兩個方法。在as3的help文件裡也沒有提及如何刪除乙個xml節點。其中乙個方法就是 delete onexmlnode 暫時並不知道有什麼其他...

as3中的移位運算

在as3中,很少時候能看到 中含有移位操作,可能大多數人最常見的移位操作,也就是用來提取顏色通道的那幾行 var color uint 0x0ff0f0f0 var a uint color 0xff000000 24 var red uint color 0x00ff0000 16 var gre...