作者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