用AS畫(huà)圖,自定義多邊形及圓形_Flash教程

      編輯Tag賺U幣
      教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

      推薦:FLASH AS實(shí)現(xiàn)馬賽克效果
      動(dòng)畫(huà)效果:點(diǎn)擊這里下載源文件一般實(shí)現(xiàn)馬賽克有2種辦法,采用的都是遍歷圖像上的像素,對(duì)相隔一定范圍內(nèi)的像素填充同一顏色,只不過(guò)采樣的顏色位置不同,有

      這兩天在研究關(guān)于as畫(huà)圖的問(wèn)題,經(jīng)過(guò)一番折騰后終于是出來(lái)了,(部分代碼來(lái)源于 programming macromedia flash mx)

      AS:

      MovieClip.prototype.drawRegAng = function(x, y, r, num, rotation) {
      /*參數(shù)說(shuō)明:x,y:多邊形的中心坐標(biāo);r:多邊形半徑;num:多邊形邊數(shù);最后一個(gè)是旋轉(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影片是可以實(shí)現(xiàn)邊下載邊播放的,由于受到當(dāng)前網(wǎng)絡(luò)傳輸?shù)闹萍s,對(duì)于大容量的影片,這種實(shí)時(shí)播放并不理想。為避免受眾尷尬的等待,flash制作人員

      來(lái)源:藍(lán)色理想//所屬分類(lèi):Flash教程/更新時(shí)間:2008-03-05
      相關(guān)Flash教程