Re: [問題] 不要重覆loadMovie的語法如何寫?

看板Flash作者 (不可或缺的咖啡因)時間18年前 (2007/11/10 14:20), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/6 (看更多)
※ 引述《liyen (藍色星星海﹏★)》之銘言: : 想請教大家.... : 就是我有一個物件叫show : 有三個按鈕叫A B C : 我希望按按鈕A和B的時候 : show可以從外部loadMovie一個show1.swf檔案進來 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 意思是說,A按鈕是負責叫show1.swf去抓影片進來的? 那B應該不用再叫一次才對?B的作用應該是播放才對。 : 按按鈕C的時候 : show可以從外部loadMovie一個show2.swf檔案進來 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 意思是說,按下C按鈕,show又會去抓一個show2.swf影片進來? ↑這裡的邏輯好像不太對 show抓了兩個影片進來,根據後者會覆蓋前者的原理,原po有沒 有想過要讓: 1.按下C按鈕的時候,讓show1.swf先『隱藏』或者先『移除』掉? 不然因為你只有以一個show的接收器,以後者影片(show2.swf) 會蓋掉前者的理論來說,影片應該會重疊到。 : 我的問題就是 : 如果先按過按鈕A了(show1.swf已經load進來了) : 按下按鈕B的時候就可以不用再重複load檔案show1.swf ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ↑嗯,這個想法也就是說,你想要讓原本已load進來的show1.swf 『暫時隱藏起來』對嗎?因為就不用再一直load對嗎? : (也就是只有按下按鈕B時show所loadMovie的內容非show1.swf時 : 才須執行loadMovie載入show1.swf) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ↑這一段解釋的不太容易讓人瞭解,我幫你解釋一下好了。 意思是說: 『如果我的show這個接收器,正在播按下c按鈕時所載的影片, 那我如果要按b按鈕的話,希望它不用再一次loadMovie進來show1.swf 這個影片。而可以按下b時讓show1.swf自己播放。』 so,以下為沒試過之臨時趕出門前之亂寫: ============================================================================== stop(); A_btn.onRelease = function (){ loadMovie("show1.swf",show_mc); //我覺得用loadMovieNum的level來操作會更明確一點 //不過因為沒真正trace過,所以就照原po的loadMovie來做囉! } B_btn.onRelease = function (){ show_mc.play(); unloadMovie("show2.swf"); } C_btn.onRelease = function (){ unloadMovie("show1.swf",show_mc); loadMovie("show2.swf",show_mc); } ============================================================================== 因為實在不太瞭解原po所有的想法跟流程,就暫時照字面上的寫。 上面的程式中有個很大的缺點,就是如果使用者先按下C_btn,再去按 B_btn,那就會出現奇怪的bug,因為使用者沒去按A_btn,所以show1.swf 不會出現在show_mc當中。又或者,使用者先按下B_btn,loadMovie一樣沒 將show1.swf叫進來,一樣不會播放。 『簡單的解決方法→就是讓A&B&C按鈕在影格上有順序的出現,讓使用 者沒得選,醬子使用者第一次按下去的,就一定會是A_btn』 第二,按下按鈕,再呼叫影片進來的事件處理方式,建議可以改成其他的 事件處理方式,會比較流暢喔。 A&B&C _btn & show_mc 均為影片實體名稱,將影片中的元件改成跟我程式 中的名稱相同(或者將程式改成你要的名字),程式放在時間軸上,應該就 可以跑嚕! 我是來騙P幣的~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.178.144
文章代碼(AID): #17DKsqm3 (Flash)
文章代碼(AID): #17DKsqm3 (Flash)