Flash元件排列問題

2007-04-14 6:18 am
我係Flash ge同一層整左兩個按鈕,

我整ge按鈕滑入ge時候會遮住另一按鈕.

但我試左好多次都發覺兩個按鈕唔可以同時做到咁ge效果.

按鈕A滑入時遮住按鈕B, 按鈕B滑入就唔可以遮住按鈕A;

按鈕B得ge時候按鈕A又唔得.

請問有冇咩方法可以令唔滑入gor個按鈕時, gor個按鈕會排係另一個按鈕下面?
更新1:

我唔係要是但一個按鈕係另一個按鈕ge上面, 我係要滑入邊個按鈕, gor個按鈕就放係最上層.

更新2:

Thanks, 按鈕排列ge問題已經搞掂左, 但係D按鈕轉左做影片片段之後會閃下閃下, 點樣可以解決? (我係D按鈕ge滑入gor格放左另一個圖形, 請問關唔關事?) P.S. 我仲想要番滑入時轉左另一個圖形ge效果呀!

更新3:

Thanks, 不過我自己搞掂左lu. 我仲想問, 如果有多過兩個按鈕ge話應該點整? 因為我本身個Flash有成七個按鈕, 如果要整, 會唔會好難ga? 點樣整ga?

更新4:

我係用呢個方法: http://livedocs.adobe.com/flash/8_tw/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001382.html

更新5:

"for (i=6; i 0; i--) {" 係咪應該係 "for (i = 6; i 0; i--) {" ? 因為你講gor個唔得, 改左之後又無問題...

更新6:

Sorry Yahoo 顯示唔到... "for (i=6; i 0; i--) {" 係咪應該係 "for (i = 6; i>0; i--) {" ? 因為你講gor個唔得, 改左之後又無問題...

回答 (2)

2007-04-14 6:50 pm
✔ 最佳答案
係得既,不過要用actionscript,唔知你應唔應付得黎喎

首先你要將2個button既"實體行為"(instance behavior)改做"影片片段"(movie clip)屬性,即係要highlight個button,去"屬性"(properties)下面既"實體行為"(instance behavior),將"按鈕"(button)轉做"影片片段"(movie clip)

而"實體行為"(instance behavior)下面有個名"實體名稱"(instance name)既空格,我就將其中一個按鈕叫 a_btn,另一個按鈕叫 b_btn 咁話啦,其實你鐘意叫咩名都冇所謂

好啦,跟住你要highlight住有果兩個按鈕既"影格"(frame),然後開"動作"(action)視窗,響視窗入面請打:

var top:Number = Math.max(a_btn.getDepth(), b_btn.getDepth());
a_btn.onRollOver = function() {
if (a_btn.getDepth() != top) {
a_btn.swapDepths(b_btn);
}
}
b_btn.onRollOver = function() {
if (b_btn.getDepth() != top) {
b_btn.swapDepths(a_btn);
}
}

咁樣每當你滑入個按鈕既時候,個按鈕就會變左放響另一個按鈕的上面

如果有咩唔明,請再問,我希望我解釋得清楚

2007-04-14 22:56:43 補充:
可以係可以整既,不過有d複雜,我驚響度未必完全解釋到你介唔介意俾個msn我?我可以響msn慢慢教你如果你介意,我都冇所謂,我盡量響度簡短d咁教你都得,隨你喜歡

2007-04-15 19:56:37 補充:
如果係7個都得既,但係請問你係咪用緊我現時講既方法?姐係將button變做movie clip的做法,還是你用了其他方法?我可以盡量就你咁幫你諗一個方法既

2007-04-15 23:53:31 補充:
我假如你d按鈕既instance_name係a_btn、b_btn、c_btn…g_btn我假設你一開始既setting係a_btn在b_btn之上,b_btn在c_btn之上,如此類推跟住響你放buttons果個影格到,輸入actoinscript:

2007-04-15 23:54:17 補充:
var buttons:Array = new Array();buttons[0] = a_btn;buttons[1] = b_btn;buttons[2] = c_btn;buttons[3] = d_btn;buttons[4] = e_btn;buttons[5] = f_btn;buttons[6] = g_btn;

2007-04-15 23:55:12 補充:
function bringOnTop(b:MovieClip) { if (buttons[0] == b) { return; } var foundClip:Boolean = false; for (i=6; i 0; i--) { if (buttons[i] == b) { foundClip = true; }

2007-04-15 23:55:48 補充:
if (foundClip) { buttons[i].swapDepths(buttons[i-1]); var temp:MovieClip = buttons[i]; buttons[i] = buttons[i-1]; buttons[i-1] = temp; } }}for (i=0; i

2007-04-15 23:57:37 補充:
sorry,續上:for (i=0; i<7; i++) { buttons[i].onRollOver = function() { bringOnTop(this); };}

2007-04-16 00:00:39 補充:
sorry,因為yahoo 知識既問題,有d符號出唔到:有一行for (i=6; i 0; i--) {,請改為: for (i = 6; i 0; i--) {如果你run既時候run唔到,請通知一聲,因為yahoo知識有時唔係好show到d 符號

2007-04-17 03:44:22 補充:
冇錯,係要將:for (i = 6; i 0; i--) {轉做:for(i=6;i>0;i--){yahoo 知識成日都show唔到d符號,好煩sorry之前令你誤會
2007-04-14 6:48 am
你整兩個圖層,每個圖層放一個按鈕,再調整圖層的先後。
OK啦
參考: 我自己


收錄日期: 2021-04-24 23:37:11
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20070413000051KK06175

檢視 Wayback Machine 備份