這幾天看了同學一張自製光碟,覺得很有意思,於是嘗試通過as3程式設計來製作這個類,其實就是使用了繪圖api類通過填充點陣圖的方式來實現這種cd的效果。
我們需要準備的材料是幾張。這些通過外部載入的方式來實現獲取點陣圖的資料,然後通過乙個函式beginbitmapfill 使用點陣圖來進行填充這個圓形。而中間的周邊的圓則是通過drawcircle 來進行繪製,繪製過程當中,使用一些接近灰色的顏色來實現搭配,這樣看起來有的膠澤的味道在裡面。
製作流程:
1. 外部載入.
2.使用點陣圖對進行填充beginbitmapfill
3.在填充完成之後,drawcircle 幾個圓用於cd中間的圓圈
4。可以嘗試封裝載入的方式對影象進行管理。
整個流程使用的 並沒有什麼的演算法,而僅僅是使用我們平時的繪圖api進行創作。當你慢慢發現到繪圖api 魅力的時候,你就可以像畫家一樣操控畫筆進行描繪你的圖案。這樣又多了一樣好玩的東西了。
測試:package private function init():void private function onloadallcomplete(event:event):void } }
package //新增 public function addimage(id:string,parent:displayobjectcontainer,radius:number,url:string,istartdrag:boolean=false):void ; obj.id=id; obj.url=url; obj.item=new lovecd(radius); obj.istartdrag=istartdrag; parent.addchild(obj.item); data[id]=obj; length++; } //開始載入 public function start():void } } private function onloadcomplete(event:event):void } //拖動 private function onstartdraghandler(event:mouseevent):void //停止拖動 private function onstopdraghandler(event:mouseevent):void //獲取 public function getimage(id:string):lovecd public function move(id:string,x:number,y:number):void } }
lovecd.as
package //載入 public function loadimage(url:string):void //繪製底部 public function drawbase():void private function onerrorhandler(event:event):void private function onloadcomplete(event:event):void //設定位圖 public function set content(value:bitmap):void public function get content():bitmap public function move(x:number,y:number):void //繪製cd,radiusa,radiusb,radiusc,由小到大 public function drawcd(image:bitmap,radiusa:number,radiusb:number,radiusc:number,offpoint:point=null,repeat:boolean=false,smooth:boolean=false):void else maskshape.graphics.drawcircle(0,0,radiusa); maskshape.graphics.drawcircle(0,0,radius-2); maskshape.graphics.endfill(); var shapeb:shape=new shape(); shapeb.x=0; shapeb.y=0; addchild(shapeb); shapeb.graphics.beginfill(0x999999,0.3); shapeb.graphics.linestyle(0,0x999999); shapeb.graphics.drawcircle(0,0,radiusb); shapeb.graphics.drawcircle(0,0,radiusb+2); shapeb.graphics.drawcircle(0,0,radiusc); shapeb.graphics.endfill(); shapeb.graphics.linestyle(0,0xffffff,0.6); shapeb.graphics.drawcircle(0,0,radiusc-1); } } }
每天學一點flash(73) 戀上我的CD
這幾天看了同學一張自製光碟,覺得很有意思,於是嘗試通過as3程式設計來製作這個類,其實就是使用了繪圖api類通過填充點陣圖的方式來實現這種cd的效果。我們需要準備的材料是幾張。這些通過外部載入的方式來實現獲取點陣圖的資料,然後通過乙個函式beginbitmapfill 使用點陣圖來進行填充這個圓形。...
每天學一點(一)
記錄學習內容 js中對於函式的建立,在使用函式表示式和函式宣告相結合時,正確寫法為 var sum function sum a,b console.log sum 1,2 輸出3 若定義的變數和函式名稱書寫不一致,則會產生錯誤。var sum1 function sum2 a,b console....
每天學一點flash(53)容器類
displayobjectcontainer 類是可用作顯示列表中顯示物件容器的所有物件的基類。作為容器類,我們使用as3的時候,接觸太多了,隨便都要寫addchild 或者removechild方法操作我們的顯示物件。對於這個容器類,你認識多少?我不一定可以給乙個滿意的答案給你,但是我們可以交流一...