потому что это разные действия!

Код:
// 15 decimal = 1111 binary
// 9 decimal = 1001 binary
var x:Number = 15 ^ 9;
trace(x);
// 1111 ^ 1001 = 0110
// returns 6 decimal (0110 binary)

Код:
// 15 decimal = 1111 binary
var x:Number = 15;
// 9 decimal = 1001 binary
var y:Number = 9;
// 1111 | 1001 = 1111
trace(x | y); // returns 15 decimal (1111 binary)
вот график!

Код:
xGraph = 20;
this.createEmptyMovieClip("Graph1", 1, true, "none", "round", "miter", 1);
Graph1.moveTo(xGraph, Math.sin(xGraph*1000)+50);
Graph1._xscale *= 2;
Graph1._yscale *= 2;
Graph1.onEnterFrame = function(){
Graph1.lineStyle(0.5, 0xFF00FF, 100);
Graph1.lineTo(xGraph+1, Math.tan(xGraph*(random(100)+900))+1+50);
Graph1.endFill();
xGraph += 1;
Graph1._x *= -1.1;
Graph1._y *= -1.1;
Graph1._xscale *= 1.005;
Graph1._yscale *= 1.005;
if(xGraph >= 150){
delete Graph1.onEnterFrame;
}
}