AS3点比较

时间:2012-10-04 00:37:40

标签: actionscript-3 flash comparison point

我想知道为什么使用'=='

无法比较等分并显示为相等

e.g

var p1:Point = new Point( 1, 5 );
var p2:Point = new Point( 1, 5 );

trace( p1 == p2 )                   //false
trace( p1.x == p2.x, p1.y == p2.y ) //true true
trace( p1.equals( p2 ))             //true

看起来很奇怪,有点无意义(双关语) 有人可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:7)

p1 == p2比较两个对象,而不是对象的x和y分量。由于p1和p2是不同的对象(由新Point创建)p1 == p2返回false。

.equals()方法对x和y组件进行比较,使其返回true。

以下内容将返回true:

var p1:Point = new Point(1,5);
var p2:Point = p1;
trace(p1==p2);

因为p1和p2实际上是同一个对象。