用AS畫圖,自定義多邊形及圓形_Flash教程
推薦:FLASH AS實現(xiàn)馬賽克效果動畫效果:點擊這里下載源文件一般實現(xiàn)馬賽克有2種辦法,采用的都是遍歷圖像上的像素,對相隔一定范圍內(nèi)的像素填充同一顏色,只不過采樣的顏色位置不同,有
這兩天在研究關(guān)于as畫圖的問題,經(jīng)過一番折騰后終于是出來了,(部分代碼來源于 programming macromedia flash mx)
AS:
MovieClip.prototype.drawRegAng = function(x, y, r, num, rotation) {
/*參數(shù)說明:x,y:多邊形的中心坐標(biāo);r:多邊形半徑;num:多邊形邊數(shù);最后一個是旋轉(zhuǎn)角度*/
var tAngle = (rotation-90)*Math.PI/180;
var angle = 2*Math.PI/num;
var sin = Math.sin;
var cos = Math.cos;
num ;
this.moveTo(x r*cos(tAngle), y r*sin(tAngle));
while (num--) {
tAngle = angle;
this.lineTo(x r*cos(tAngle), y r*sin(tAngle));
}
};
this.createEmptyMovieClip("loader", 100);
loader.lineStyle(0, 0x000000);
//初始化變量
var r=50,num=5,rota=0;
var x = Stage.width/2, y = Stage.height/2;
loader.drawRegAng(x, y, r, num, rota);
numChange=new Object();
numChange.change=function(evt){
num=evt.target.value;
}
rChange=new Object();
rChange.change=function(evt){
r=evt.target.value;
}
rotaChange=new Object();
rotaChange.change=function(evt){
rota=evt.target.value;
}
bian.addEventListener("change",numChange);
jiaodu.addEventListener("change",rotaChange);
banjing.addEventListener("change",rChange);
function clicked(){
loader.clear();
loader.lineStyle(0, 0x000000);
loader.drawRegAng(x, y, r, num, rota);
}
rSubmit.addEventListener("click",clicked);
圓形:
AS:
MovieClip.prototype.drawOval=function(x,y,rx,ry){
this.moveTo(x rx,y);
this.curveTo(rx x,0.4142*ry y,0.7071*rx x,0.7071*ry y);
this.curveTo(0.4142*rx x,ry y,x,ry y);
this.curveTo(-0.4142*rx x,ry y,-0.7071*rx x,0.7071*ry y);
this.curveTo(-rx x,0.4142*ry y,-rx x,y);
this.curveTo(-rx x,-0.4142*ry y,-0.7071*rx x,-0.7071*ry y);
this.curveTo(-0.4142*rx x,-ry y,x,-ry y);
this.curveTo(0.4142*rx x,-ry y,0.7071*rx x,-0.7071*ry y);
this.curveTo(rx x,-0.4142*ry y,rx x,y);
}
分享:如何應(yīng)用Flash制作標(biāo)準(zhǔn)的loading?前言:網(wǎng)絡(luò)中的swf影片是可以實現(xiàn)邊下載邊播放的,由于受到當(dāng)前網(wǎng)絡(luò)傳輸?shù)闹萍s,對于大容量的影片,這種實時播放并不理想。為避免受眾尷尬的等待,flash制作人員
- 相關(guān)鏈接:
- 教程說明:
Flash教程-用AS畫圖,自定義多邊形及圓形
。