Re: [問題] 請問_droptarget
※ 引述《keenlong (keenlong)》之銘言:
: 說明文件是這樣寫:
: 屬性 (唯讀);傳回影片片段實體斜線語法標記法中的絕對路徑,MovieClip 就是放在這個
: 位置。_droptarget 屬性永遠都會傳回以斜線 (/) 開頭的路徑。若要將實體的 _droptarg
: et 屬性與參考加以比較,請使用 eval 函數,將傳回來的值,從斜線語法轉換成點式語法
: 參考。
: 為啥都是中文我卻看不懂阿>"<...........
: _droptarget到底是傳回啥?? 我在軟大看到他用這個寫一個拖曳物件到正確位址的範例
: 他是這樣寫:
: if(eval(被拖曳的物件._droptarget == _root.目標物件)
if(eval(被拖曳的物件._dropTarget) == _root.目標物件)
^^^^^^^^
1. 大小寫不對
2. 少了一個括號
: 可否請問一下這個的意義...?
簡單的說, 假設埸景上有兩個 movie clip : MC_A , MC_B
現在把 MC_B drag 到 MC_A 上,
如此這般, MC_B._dropTarget 就是 /MC_A <--注意這是字串,
所以 if(eval(MC_B._dropTarget)==_root.MC_A )
^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^
用eval()把字串變成"物件參考" 這個也是物件
是用來比較兩個物件是不一樣.
其實亦有另一個比較方法,
可以這樣 --> if(MC_B._dropTarget==MC_A._target )
trace(MC_A._target) 會回傳 /MC_A <-- 同樣也是字串,
當然書上的範例始終是範例,
照做做到"差不多"的通常會出問題,
尤其是這種牽涉到 路徑 的東西, 問題更是常常,
像這次的, drag 物件通常會用 on() 或 onClipEvent() 事件,
如果在 MC_B 的 onClipEvent() 事件內用
if(eval(MC_B._dropTarget)==_root.MC_A ) 是一定錯的!
但是 if(eval(_dropTarget)==_root.MC_A ) 就對了
所以多多看書多多實作, 加油啦!
--
我是一杯心酸的果汁...
果汁內懸浮著很多傷心的粒子...
我正需要一支攪拌匙不斷的把我攪拌...
免得粒子在寧靜中沉澱成塊......。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.85.48.159
Flash 近期熱門文章
PTT數位生活區 即時熱門文章