[問題] 老是出現 [1120: 存取未定義的屬性 x]

看板Flash作者 (端木雲殤)時間14年前 (2010/02/26 02:01), 編輯推噓3(307)
留言10則, 6人參與, 最新討論串1/1
版本:CS 3 問題: 我直接用 F9 進入動作影格,並且做程式碼編輯的練習 但是只要使用變數,就會出現問題,例如我寫了: x = "test"; trace(x); 然後按 Ctrl + Enter 卻跑不出 test 錯誤訊息如下: 來源:x="test"; 說明:1120: 存取未定義的屬性 x。 這應該是一個很基本的問題,但是可能就是太基本了所以找不到問題點 請諸位大大協助 Orz.. -- 如果妳在一年前打我左胸一拳 一年後我死於心臟病 我的家屬可以告妳謀殺嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.85.112.61

02/26 02:18, , 1F
var x:String = "test";
02/26 02:18, 1F

02/26 02:19, , 2F
(AS3繁瑣的變數指定是我從JS跳槽過來時的一大惡夢...
02/26 02:19, 2F

02/26 08:50, , 3F
所有變數都要經過"宣告"(var),才能夠使用它!
02/26 08:50, 3F

02/26 11:05, , 4F
JS沒有var這種東西嗎?
02/26 11:05, 4F

02/26 11:14, , 5F
JS有,可是大部分人習慣不用它XD....
02/26 11:14, 5F

02/26 11:30, , 6F
最好養成宣告變數的習慣
02/26 11:30, 6F

02/26 11:31, , 7F
不經宣告即可存取變數的機制,只適用於dynamic class
02/26 11:31, 7F
感謝諸位大大的熱心回應,但是,我剛剛又實驗了一下,似乎是開檔案時的問題 比方說,如果我開檔時選擇的是 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)

02/26 19:39, , 8F
2.0是 _x(底線x),3.0沒有底線
02/26 19:39, 8F
※ 編輯: maddman 來自: 210.85.164.43 (02/26 20:47)

02/27 02:06, , 9F
因為你把code寫在DisplayObject裡面, x是他的x座標 AS2是 _x
02/27 02:06, 9F

02/27 02:08, , 10F
建議你變數不要取做x或y 最好還是取的有意義一點 如testStr
02/27 02:08, 10F
文章代碼(AID): #1BXhi4Vn (Flash)