[研討] Shape、Sprite 和 MovieClip 對象的 graphics 屬性(graphics類)的簡單用法

一直都很想學下用AS畫簡單的線條,今天終於抽出空看了下關於這方面的AS,順便做了下面的筆記。拿來和大家分享。不當之處請大家多指教。AS3.0中管這叫繪圖 API 。繪圖 API 是 ActionScript 中一項內置功能的名稱,您可以使用該功能來創建矢量圖形(直線、曲線、形狀、填充和漸變),並使用 ActionScript 在屏幕上顯示它們(這名是書上覆制的,呵呵)。         
實現繪圖API功能,AS3.0是通過flash.display.Graphics 類來完成的,Graphics類是以Shape、Sprite 或MovieClip 實例的屬性這個身份來實現繪圖功能!下面是最簡單的畫線和曲線。複雜的東西奄就不會啦
畫線條:                              
一、設置線條和填充樣式。可以使用lineStyle() 或 lineGradientStyle() 方法來指定線條的外觀。創建純色線條:
   AS:myShape.graphics.lineStyle(2, 0x990000, 0.75);  // myShape是Shape的一個實例,"2":指線條的粗細, "0x990000"是指線條的顏色,"0.75":是指線條的透明度,完全不透明的話就設成1好了。lineStyle()方法還可以接受其它的額外參數,這裏不一一介紹!

二、設置線條的起始點。調用 moveTo() 方法。 
      AS:myShape.graphics.moveTo(100, 100);//設置座標點(100,100)爲線條的起始點

三、繪製線條到第二個點(兩點確定一條直線嘛)。調用lineTo()方法。
AS:myShape.graphics.lineTo(200,200)//座標點(200,200)是目前所繪線條的第二個點也是結束點。
以上已繪製好一條直線!
綜合AS如下:

VarmyShape:Shape=Shape();                                                                          
myShape.graphics.lineStyle(2,0x990000,0.75);
myShape.graphics.moveTo(100,100);                                                              
myShape.graphics.lineTo(200,200);         
addChild(myShape);

畫曲線:curveTo() 方法可以繪製二次貝塞爾曲線。這將繪製一個連接兩個點(稱爲錨點)的弧,同時向第三個點(稱爲控制點)彎曲。Graphics 對象使用當前繪製位置作爲第一個錨點。調用 curveTo() 方法時,將傳遞以下四個參數:控制點的 x 和 y 座標,後跟第二個錨點的 x 和 y 座標。

一、設置線條和填充樣式。設置線條的樣式和以上畫直線的方法是一樣的,如果要創建填充形狀,在繪製前調用 beginFill()、beginGradientFill()、beginBitmapFill() 或 beginShaderFill() 方法來設置填充樣式。最基本的方法beginFill()接受兩個參數。
  AS:myShape.graphics.beginFill(0x00FF00,0.7);//”0x00ff00":指填充顏色,“0.7”:批透明度(Alpha值)
二、設置線條的起始點。調用 moveTo() 方法。
    AS:myShape.graphics.moveTo(100, 100);//設置座標點(100,100)爲線條的起始點。
三、繪製曲線。調用curveTo() 方法。curveTo() 方法可以繪製二次貝塞爾曲線。這將繪製一個連接兩個點(稱爲錨點)的弧,同時向第三個點(稱爲控制點)彎曲,調用 curveTo() 方法時,將傳遞以下四個參數:控制點的 x 和 y 座標,後跟第二個錨點的 x 和 y 座標。
    AS:myShape.graphics.curveTo(175, 125, 200, 200);//點(175,125)是控制點的座標,點(200,200)是第二個錨點的座標。

綜合AS:
  var myShape:Shape=new Shape();    
  myShape.graphics.lineStyle(2,0x990000,0.75);      
  myShape.graphics.beginFill(0x256984,0.5);
//設置填充顏色,可調用 endFill() 方法來結束 ,如果繪製的形狀沒有閉合(換句話說,在調用 endFill() 時,繪製點不在形狀的起始點),調用 endFill()方法時, Flash Player 或AIR 將自動繪製一條直線以閉合形狀    
myShape.graphics.moveTo(100,100);   
myShape.graphics.curve(175,125,200,200);    
addChild(myShape);
以上曲線已完成

經過試驗,在繪畫前一定要先進行第一步的設置,要不然Playe將顯示不出圖形!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章