2011-04-07 75 views
1

在Actionscript 3中,我读过任何不是主要的东西都是通过引用的方式,而主要的东西是通过值来引用的。我相信一个对象是一个首要的东西,它是否被价值引用?Flex4是通过值还是引用引用的对象?

举例来说,如果我创建

//Symbol class (not a primative) 
var symbol:Symbol = new Symbol(); 
symbol.color = 0xFFFFFF; 

var obj:Object = new Object(); 
obj.symbol = symbol 

symbol.color = 0x000000; //change the original symbol color 

trace(obj.symbol.color.toString()) //display color of symbol in obj 

将这项收益0XFFFFFF或0x000000处?

回答

1

“原始”基本上是指整数或字符串。如果它们都是整数或者只是整数,我不记得我的头脑,但是其他所有内容都是参考。

简单测试代码可以尝试运行:

var spr:Sprite = new Sprite(); 
var obj:Object = {spr:spr}; 
var other:Object = {obj:obj}; 
spr.x = 100; 
trace(other.obj.spr.x); 

即迹线100,而不是0。

+1

>原始值是属于以下数据类型中的一个的值:布尔,INT,数字,字符串和uint。 – Kodiak 2011-04-07 16:35:16

+0

正是我在寻找的感谢!现在我必须弄清楚我的课程参考在哪里:P – loogie 2011-04-07 16:37:13