2009-11-23 65 views
0

我想在我的Flash SWF文件中將http://www.flash-mx.com/images/image1.jpg圖像顯示爲縮略圖框。這樣做,我在我的Flash影片採取了Loader控制並將其命名爲my_thumb,然後編寫代碼:Flash CS4:使用「Loader.contentPath」時出現無響應錯誤?

_parent.my_thumb.contentPath = "http://www.flash-mx.com/images/image1.jpg"; 

但我在我的閃存代碼添加上述行後得到以下錯誤。

--------------------------- 
Flash Player 
--------------------------- 
A script in this movie is causing Flash Player to run slowly. 
If it continues to run, your computer may become unresponsive. 
Do you want to abort the script? 
--------------------------- 
Yes No 
--------------------------- 

而如果我刪除上面的行表單我的代碼,那麼它工作正常,沒有問題。

我無法弄清楚爲什麼會發生這種情況。我是flash的初學者,對這種錯誤沒有太多的想法。

請檢查!

感謝

+0

是不是它的ActionScript 2? – Amarghosh 2009-11-23 15:18:03

+0

@Amarghosh:我剛剛檢查了我的發佈設置及其在此處選擇的actionscript-2。 – Prashant 2009-11-23 15:19:56

+0

您標記爲AS3,這就是爲什麼我要求 – Amarghosh 2009-11-23 15:22:15

回答

1
var url:String = "http://www.helpexamples.com/flash/images/image2.jpg"; 
var movieClip:MovieClip = createEmptyMovieClip("movieClip", 0); 
movieClip.loadMovie(url); 

movieClip._x=200; 
movieClip._y=200; 

function onEnterFrame(){ 
    //trace(movieClip._width); 
    //trace(movieClip._height); 
    if (movieClip._width!=0){ 
     setDimension(movieClip,100,100); 
     delete onEnterFrame; 
    } 
} 

function setDimension(mc:MovieClip,w:Number,h:Number){ 
    mc._width=w; 
    mc._height=h; 
} 
+0

順便說一下,你最好用MovieClipLoader,添加事件並確定它何時加載的能力使它更簡單。 – Oliver 2009-11-25 04:18:53

+0

這似乎對我很有用,早些時候我使用_width,但是我在放映電影之前就設置了它。但是現在我在加載電影並正確設置寬度之後做了同樣的事情。但如果我設置寬度和高度50,那麼它根據圖像質量保持高度,我猜想,它實際上使它成爲w:50和h:73不知道爲什麼。我想將它的確切寬度設置爲50x50。 ??這個怎麼做?? – Prashant 2009-11-25 05:34:59

+0

上面的代碼將它設置爲100x100,即使圖像是267的400。我確信它必須是代碼中的某些東西。 也許將它粘貼到某個地方,我會看看 – Oliver 2009-11-25 08:46:45

0

我不熟悉AS2,但this page說,contentPath屬性必須是

字符串,指示文件的絕對或相對URL加載到加載器。相對路徑必須與加載內容的SWF文件相關。該URL必須與加載SWF文件位於同一個子域中。


您可以使用loadMovie在ActionScript 2加載外部圖像。使用AS3中的Loader類。

+0

@Amarghosh:我不認爲我有上述問題,因爲我試圖從我加載圖像文件的相同域中運行我的文件,但它仍未運行。 :( – Prashant 2009-11-23 15:34:21

+0

基本上我想顯示圖像的縮略圖。在一個100x100的圖像框中,但我不知道在flah中用什麼來顯示圖像。http://www.republicofcode.com/tutorials/flash/portfolio_2_bc /index.phplink我知道Loader組件,但它不工作,如果你知道任何其他方式或任何可以幫助我的教程鏈接,請提供給我,謝謝 – Prashant 2009-11-23 15:36:10

1

您所犯的錯誤是您正在嘗試使用AS3代碼在AS2中執行某些操作。 (contentPath特定於AS3)

爲了在AS2中加載圖片,最好使用MovieClipLoader類而不是loadMovie。 MovieClipLoader可讓您跟蹤加載進度,並且可以告訴您何時可以訪問_width和_height等特定屬性。

這是一個腳本,可以完成上述操作。只需將其粘貼到新的AS2 Fla中並運行即可。 希望它有助於您在學習Flash的旅程中祝好運! :)

var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth()); 
var mcLoader:MovieClipLoader = new MovieClipLoader(); 
var listener:Object = new Object(); 

mcLoader.loadClip("http://www.flash-mx.com/images/image1.jpg", container); 

listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void 
{ trace(target + ".onLoadProgress with " + bytesLoaded + " bytes of " + bytesTotal); } 

listener.onLoadInit = function(target:MovieClip):Void 
{ trace("The picture has been loaded, now you can access information about it like width and height"); 
trace(container._width+" "+container._height); 
//or 
trace(target._width+" "+target._height) } 
mcLoader.addListener(listener); 
+0

Hi @Oliver:我試過第一個解決方案鏈接http://actionscriptexamples.com/2008/03/02/dynamically-loading-an-image-in-actionscript20-and-actionscript-30/(以上由@Amarghosh提供)但我想問如何設置此影片剪輯的寬度,高度和位置? – Prashant 2009-11-24 06:54:54

+0

可以隨時設置動畫片段的位置,因爲_width和_height a溶劑將在寬度和高度不同於0(當圖片加載完成時發生)時檢查每一幀,然後設置尺寸。 記得在之後刪除onEnterFrame。 請看我在下一個答案中發佈的代碼 乾杯 – Oliver 2009-11-25 04:17:04

相關問題