畫我想畫線,就像圖形API,只知道它會被組裝一個給定的紋理(「lineChunk.png」)使用紋理線在ActionScript 3
的大塊大塊的將很小以允許在需要時通過線路的路徑進行旋轉。
其目的是讓用戶使用mouseMove創建紋理線。
我試圖讓它「手動」,但是當繪製得很快時,兩點之間的距離很大,因此需要使用while循環來縮小間距,這會顯着降低速度。
'graphics.lineBitmapStyle'沒有幫助,也沒有達到此目的。
有什麼建議嗎?
畫我想畫線,就像圖形API,只知道它會被組裝一個給定的紋理(「lineChunk.png」)使用紋理線在ActionScript 3
的大塊大塊的將很小以允許在需要時通過線路的路徑進行旋轉。
其目的是讓用戶使用mouseMove創建紋理線。
我試圖讓它「手動」,但是當繪製得很快時,兩點之間的距離很大,因此需要使用while循環來縮小間距,這會顯着降低速度。
'graphics.lineBitmapStyle'沒有幫助,也沒有達到此目的。
有什麼建議嗎?
好了,所以最好的方法是創建樣本組織的一個Bitmap實例,並創建另一個空的位圖,這將是你的畫布。
定期鑽取循環以填補2點之間的空缺,並使用Bitmap.Draw在每次繪製單個紋理位圖後進行轉換。
它工作得很好。
組圖形線條樣式爲:
lineBitmapStyle(bitmapData);
這指定了一個位圖繪製線條時的線條筆觸。
ActionScript 3.0 Reference for Graphics
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);
/* ... */
}
}
}
我已經說過,這個功能不是我正在尋找的... 在你的例子中,你可以看到,白點不是按行排序的。我想要一個繪圖函數,我可以給它一個點的紋理,並且會在繪製線時對它進行排序和循環。 – mik
有沒有想到這一點?我正在自己尋找同一個問題的答案。 – brianvaughn
回答了這個問題。 – mik
感謝您的更新。 :) – brianvaughn