2011-08-25 109 views
0

我試圖重新回到閃存中。試圖在這裏寫一些代碼,但...好吧,讓我給你看看。外部swf之間的平滑過渡。

我想要和現在有一個主要的瑞士法郎加載資產基於按鈕按下。我有3個外部SWF(爲了這個例子,我們可以調用初始加載的swf「indexExt.swf」,文件2「f02.swf」和文件3,「f03.swf」),並且在每個SWF中有一個從第1幀到第10幀。

在第1幀上,第5幀上有一個「前奏」標籤,「outro」標籤,第10幀上有「結束」標籤。

indexExt.swf在主SWF的初始加載時加載。

至於我的按鈕,我給了我主要的SWF舞臺上的按鈕,與外部swfs名稱相同的實例名稱,以便使用此行event.target.name + ".swf"我可以調用em而無需重新編寫代碼按鈕等。

使用正常導入按鈕代碼IM是下面這樣:

f01.addEventListener(MouseEvent.CLICK,btnclick); 
f02.addEventListener(MouseEvent.CLICK,btnclick); 


function btnclick(event:MouseEvent):void{ 

removeChild(loader); 

var newSwfRequest:URLRequest = new URLRequest(event.target.name + ".swf"); 

loader.load(newSwfRequest); 
loader.x = Xpos; 
loader.y = Ypos; 
addChild(loader); 

} 

我現在遇到的問題是,我不知道該如何定位無論是點擊/進口/加載英寸

總的來說,wha我想要做的是,返回上面的按鈕代碼,如下所示:

// non code but you get the idea // 


on press, if something is loaded, go to and play its "outro" frame label. 
if "end frame label" load in event.target.name + ".swf" 

我希望它不會混淆。基本上我想要的是,在按鈕按下時,無論電影被加載,播放outro標籤和IF,當「結束」標籤被擊中時,加載用戶點擊的任何內容。

我認爲這是一個很好的方式,但我傾向於採用最困難的方法。我不是靠近職業球員,但任何提示/技巧/代碼等,我會很樂意接受。

回答

1

你需要爲你的加載器對象添加一個監聽器來完成一個事件。這會給你你想要的參考。然後,您可以告訴該對象,如果設置,點擊按鈕時轉到所需的框架。

var loaded:Object; 

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoaded); 

function handleLoaded(e:Event):void { 
    loaded = e.target.content; 
} 

btn.addEventListener(MouseEvent.CLICK, handleClick); 

function handleClick(e:MouseEvent):void { 
    if (loaded) { 
    loaded.gotoAndPlay("outro"); 
    } 

    //load new swf 
} 
+0

嗨Hotn。謝謝回覆。我有個問題。我明白你的意思解釋,但在你的第二行,什麼是「loaderContentInfo」? – somdow

+0

contentLoaderInfo是存在於Loader對象上的一個屬性,它允許您訪問有關正在加載的內容的信息,例如加載的字節和總字節數,以及對加載的實際內容的引用。它也是調度加載器進度的事件的對象,這就是爲什麼需要將偵聽器添加到那裏而不是直接加載到Loader對象的原因。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html#contentLoaderInfo – HotN

+0

大聲笑ok。我懂了。我問,因爲我看到它,但在閃存中,「loaderContentInfo」沒有變藍的代碼...所以我認爲這是一個變量或somethig你忘了提及什麼的。但我現在看到,這是一個錯字,你把loaderContentInfo和它的contentLoaderInfo lol。沒有biggie,感謝您的幫助。生病嘗試現在工作 – somdow