2012-06-24 36 views
0

我想在我的Flash文件中有一個可以從其他程序更改的圖像。動態更改ActionScript 3中的圖片而不閃爍

在ActionScript 2中,我使用了一個Loader,設置了contentPath並在時間軸中製作了Motiontween,這非常有效。

但現在在ActionScript 3我這樣做,我用的是UILoader,我設置了source並創建一個Motiontween但現在時間很短的圖像消失,每次吐溫重新開始。

有沒有辦法正確地做到這一點?

我現在代碼:

var myXML:XML; 
var myLoader:URLLoader = new URLLoader(); 

var text:String; 
var imagePath:String; 

myLoader.load(new URLRequest("C:/Flash/paths.xml")); 
myLoader.addEventListener(Event.COMPLETE, processXML); 

function processXML(e:Event):void 
{  
    myXML = new XML(e.target.data); 

    text = myXML.text; 
    imagePath = myXML.path; 

    TextContainer.text = team1name; 
    imageContainer.source = team2logoPath; 

    trace("trace");  
} 

文字不閃爍,但圖像,所以我不認爲XML Loader是,它的作品,且不與AS3的原因。

即使我每次只改變圖像的源,圖像可短時間內得到無形的:

imageContainer.source = "C:/images/no_image.png"; 
+0

聽起來像你的補間關閉POST代碼 –

+0

我添加了我的代碼問題。 – MWeller

回答

1

確定您正在獲取的閃爍是下載圖像所需的加載時間或您提供的從磁盤加載圖像的3個樣本。如果你想避免這種情況,你需要以這種或那種方式預加載圖像。
您可以輕鬆找到開源預加載。 我會做的是創建一個圖像容器的數組,然後從舞臺中刪除當前元素,然後當您想要更改圖像時將下一個添加到數組中。
使用此方法,您可以將來源指定給該項目,即使該項目未顯示,該項目也會將其下載。

0

檢查是否有用於UILoader的一個Event.COMPLETE事件,其被觸發時,內容爲加載,然後在事件處理程序中啓動補間。