作者maddman (端木雲殤)
看板Flash
標題[問題] 老是出現 [1120: 存取未定義的屬性 x]
時間Fri Feb 26 02:01:37 2010
版本:CS 3
問題:
我直接用 F9 進入動作影格,並且做程式碼編輯的練習
但是只要使用變數,就會出現問題,例如我寫了:
x = "test";
trace(x);
然後按 Ctrl + Enter 卻跑不出 test
錯誤訊息如下:
來源:x="test";
說明:1120: 存取未定義的屬性 x。
這應該是一個很基本的問題,但是可能就是太基本了所以找不到問題點
請諸位大大協助 Orz..
--
如果妳在
一年前打我
左胸一拳
一年後我死於
心臟病
我的家屬可以告妳
謀殺嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.85.112.61
1F:→ ybite:var x:String = "test"; 02/26 02:18
2F:→ ybite:(AS3繁瑣的變數指定是我從JS跳槽過來時的一大惡夢... 02/26 02:19
3F:推 openyayak:所有變數都要經過"宣告"(var),才能夠使用它! 02/26 08:50
4F:→ aquarianboy:JS沒有var這種東西嗎? 02/26 11:05
5F:→ bmzz:JS有,可是大部分人習慣不用它XD.... 02/26 11:14
6F:推 cjcat2266:最好養成宣告變數的習慣 02/26 11:30
7F:→ 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)
8F:→ aquarianboy:2.0是 _x(底線x),3.0沒有底線 02/26 19:39
※ 編輯: maddman 來自: 210.85.164.43 (02/26 20:47)
9F:推 scars:因為你把code寫在DisplayObject裡面, x是他的x座標 AS2是 _x 02/27 02:06
10F:→ scars:建議你變數不要取做x或y 最好還是取的有意義一點 如testStr 02/27 02:08