看板 Flash 關於我們 聯絡資訊
版本:CS 3 問題: 我直接用 F9 進入動作影格,並且做程式碼編輯的練習 但是只要使用變數,就會出現問題,例如我寫了: x = "test"; trace(x); 然後按 Ctrl + Enter 卻跑不出 test 錯誤訊息如下: 來源:x="test"; 說明:1120: 存取未定義的屬性 x。 這應該是一個很基本的問題,但是可能就是太基本了所以找不到問題點 請諸位大大協助 Orz.. -- 如果妳在一年前打我左胸一拳 一年後我死於心臟病 我的家屬可以告妳謀殺嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.85.112.61
ybite:var x:String = "test"; 02/26 02:18
ybite:(AS3繁瑣的變數指定是我從JS跳槽過來時的一大惡夢... 02/26 02:19
openyayak:所有變數都要經過"宣告"(var),才能夠使用它! 02/26 08:50
aquarianboy:JS沒有var這種東西嗎? 02/26 11:05
bmzz:JS有,可是大部分人習慣不用它XD.... 02/26 11:14
cjcat2266:最好養成宣告變數的習慣 02/26 11:30
cjcat2266:不經宣告即可存取變數的機制,只適用於dynamic class 02/26 11:31
感謝諸位大大的熱心回應,但是,我剛剛又實驗了一下,似乎是開檔案時的問題 比方說,如果我開檔時選擇的是 Flash檔案(ActionScript3.0) 然後按 F9 開始編輯底下的程式碼: x = "test"; trace(x); 然後用 Ctrl + Enter 測試時,就會出現 [1067: String 類型值以隱含方式強制轉型成不相關的類型 Number。] 的錯誤 然後根據大大們的建議,將程式碼改成: var x:String = "test"; trace(x); 結果出現的是 [1152: 已繼承定義 flash.display:DisplayObject.x 於 namespace public 中發生衝突。] 的錯誤 但是,如果我開檔時選擇了 Flash檔案(ActionScript2.0) 再重新跑 var x:String = "test"; trace(x); 就能夠順利執行出 test 的結果 所以,好像是 3.0 跟 2.0 的差異 真奇怪 ※ 編輯: maddman 來自: 210.85.164.43 (02/26 19:21)
aquarianboy:2.0是 _x(底線x),3.0沒有底線 02/26 19:39
※ 編輯: maddman 來自: 210.85.164.43 (02/26 20:47)
scars:因為你把code寫在DisplayObject裡面, x是他的x座標 AS2是 _x 02/27 02:06
scars:建議你變數不要取做x或y 最好還是取的有意義一點 如testStr 02/27 02:08