2012-06-24 36 views
2

畫我想畫線,就像圖形API,只知道它會被組裝一個給定的紋理(「lineChunk.png」)使用紋理線在ActionScript 3

的大塊大塊的將很小以允許在需要時通過線路的路徑進行旋轉。

其目的是讓用戶使用mouseMove創建紋理線。

我試圖讓它「手動」,但是當繪製得很快時,兩點之間的距離很大,因此需要使用while循環來縮小間距,這會顯着降低速度。

'graphics.lineBitmapStyle'沒有幫助,也沒有達到此目的。

有什麼建議嗎?

+0

有沒有想到這一點?我正在自己尋找同一個問題的答案。 – brianvaughn

+0

回答了這個問題。 – mik

+0

感謝您的更新。 :) – brianvaughn

回答

1

好了,所以最好的方法是創建樣本組織的一個Bitmap實例,並創建另一個空的位圖,這將是你的畫布。

定期鑽取循環以填補2點之間的空缺,並使用Bitmap.Draw在每次繪製單個紋理位圖後進行轉換。

它工作得很好。

3

組圖形線條樣式爲:

lineBitmapStyle(bitmapData); 

這指定了一個位圖繪製線條時的線條筆觸。

ActionScript 3.0 Reference for Graphics

line bitmap style

package 
{ 
    import flash.display.Bitmap; 
    import flash.display.BitmapData; 
    import flash.display.Graphics; 
    import flash.display.Loader; 
    import flash.display.LoaderInfo; 
    import flash.display.Sprite; 
    import flash.events.Event; 
    import flash.net.URLRequest; 

    public class X extends Sprite 
    { 
     protected var bitmapData:BitmapData; 

     protected var loader:Loader = new Loader(); 

     public function X() 
     { 
      super(); 

      loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); 
      loader.load(new URLRequest("lineChunk.png")); 
     } 

     protected function completeHandler(event:Event):void 
     { 
      bitmapData = Bitmap(LoaderInfo(event.target).content).bitmapData; 

      var g:Graphics = graphics; 
      g.lineStyle(10); 
      g.lineBitmapStyle(bitmapData); 

      g.moveTo(0, 0); 
      g.lineTo(100, 100); 
      /* ... */ 
     } 

    } 
} 
+0

我已經說過,這個功能不是我正在尋找的... 在你的例子中,你可以看到,白點不是按行排序的。我想要一個繪圖函數,我可以給它一個點的紋理,並且會在繪製線時對它進行排序和循環。 – mik