2011-11-22 95 views
1

我正在重新訪問我在Action Script 2.0中創建的簡單圖片查看器的一些代碼,現在正在AS3中執行相同的任務。目前我很清楚命令.loadMovie不再使用。經過無數次試圖找到解決方案,我已經幹了。動作腳本3新加載器

目前我在舞臺上有一個影片剪輯符號(target_mc),當我使用mouseOver按鈕時,要從外部文件加載jpeg。任何人都可以舉例說明如何使用「新加載」變量來處理這個問題。在AS2版本中,我還在按鈕代碼中使用了(在發佈時)。

training_btn是按鈕實例。

請參閱下面我的代碼示例:

training_btn.addEventListener(MouseEvent.CLICK, imageOver); 
function imageOver(evt:MouseEvent) {  
    this.target_mc.loadMovie("galleryimage/p_traininglink.jpg") 
} 

任何想法將是非常有益的。

韋恩

回答

1

葉氏

training_btn.addEventListener (MouseEvent.MOUSE_UP, onMouseUp); 

function onMouseUp (evt:MouseEvent):void { 
    var my_loader:Loader = new Loader(); 
    my_loader.load(new URLRequest("myPhoto.jpg")); 
    target_mc.addChild(my_loader); 

} 
0

所以,基本上laoder的整體結構工作在AS 2和3之間有變化。

現在您需要創建一個加載內容的不同對象。

var loader:Loader = new Loader(); 

比你可以做兩件事情:

  1. 添加事件偵聽器和比觸發負載
  2. 觸發負載和加載程序添加到舞臺

之間的區別這兩種風格很大,第一種將增加一個監聽器並等待加載完成,然後它將調用你在監聽器中定義的方法來進行進一步的設置。 第二個開始加載內容並將加載器添加到顯示列表中,以便加載內容時自動顯示。

1.

// add the listener 
laoder.contentLoaderInfo.addEventListener(Event.Complete, onLoadComplete); 
// trigger the load (remember: the url is alwais a URLRequest object) 
loader.load(new URLRequest("path_to_file")); 
// additional var for storing the content (only the content, without the loader) 
var content:Bitmap; 

function onLoadComplete(e:Event):void{ 
content = e.target.content as Bitmap; 
// you could use also: 
// content = loader.content as Bitmap; 

// you can do some modifications before displaying the content 

// and finally add it to the display list 
this.target_mc.addChild(content); 
} 

2)

// trigger the load (remember: the url is alwais a URLRequest object) 
loader.load(new URLRequest("path_to_file")); 

this.target_mc.addChild(loader); 

的兩種方式是正確的,但我更喜歡使用的第一個原因它給你更多的控制研究。您還可以通過偵聽ProgressEvent.PROGRESS來檢查加載的進度。

希望它能幫助。在谷歌搜索關於加載外部數據的更多信息,這裏有很多資源。

0

這將可能是最好創建一個能夠處理所有的這一個班,而是要回答你的問題,你的代碼看起來是這樣的:

var outLoader:Loader = new Loader(); 
outLoader.load(new URLRequest("outImage.jpg")); 

var overLoader:Loader = new Loader(); 
overLoader.load(new URLRequest("overImage.jpg")); 
overLoader.visible = false; 

var training_btn:Sprite = new Sprite(); 
training_btn.addChild(outLoader); 
training_btn.addChild(overLoader); 
training_btn.buttonMode = true; 
training_btn.mouseChildren = false; 
training_btn.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler); 
training_btn.addEventListener(MouseEvent.ROLL_OUT, rollOutHandler); 
addChild(training_btn); 

function rollOverHandler(e:MouseEvent):void { 
    overLoader.visible = true; 
} 

function rollOutHandler(e:MouseEvent):void { 
    overLoader.visible = false; 
}