используйте

Код AS3:
ExternalInterface

Код AS3:
ExternalInterface.call("window.location.href.toString")
Для примера мой класс, правда он несколько шире, с ожиданием готовности JavaScript.

Код AS3:
package inpictures.connector {
import flash.display.Sprite;
import flash.utils.Timer;
import flash.utils.setTimeout;
import flash.events.TimerEvent;
import flash.external.ExternalInterface;
import inpictures.events.ChannelEvent;
public class External extends Sprite {
public const SystemName:String = "EXTERNAL";
private var reconnect:uint = 5;
private var attempts:uint = 15;
private var isSupported:Boolean = false;
public function External() {
}
public function init():void {
if (ExternalInterface.available) {
try {
//if (log) log.add("ExObjectID: " + ExternalInterface.objectID);
if (checkJSReady()) {
dispatchEvent(new ChannelEvent(ChannelEvent.LOG,ChannelEvent.WRITE,"JavaScript is ready."));
} else {
dispatchEvent(new ChannelEvent(ChannelEvent.LOG,ChannelEvent.WRITE,"JavaScript is not ready, creating timer."));
var JSConnector:Timer = new Timer(100, 0);
JSConnector.addEventListener(TimerEvent.TIMER, timerHandler);
JSConnector.start();
}
} catch (error:SecurityError) {
dispatchEvent(new ChannelEvent(ChannelEvent.LOG,ChannelEvent.WRITE,"A SecurityError occurred: " + error.message));
} catch (error:Error) {
dispatchEvent(new ChannelEvent(ChannelEvent.LOG,ChannelEvent.WRITE,"An Error occurred: " + error.message));
}
} else {
dispatchEvent(new ChannelEvent(ChannelEvent.LOG,ChannelEvent.WRITE,"External interface is not available for this container."));
}
if (!ExternalInterface.call("window.location.href.toString")) {
setTimeout( function () { dispatchEvent(new ChannelEvent(ChannelEvent.USING,ChannelEvent.IDE_MODE));} , 100 );
} else isSupported = true;
//dispatchEvent(new ChannelEvent(ChannelEvent.LOG,ChannelEvent.WRITE, ExternalInterface.call("window.location.href.toString")+"\n"+ExternalInterface.call("window.top.location.hash")));
}
public function addCallBack(func:String,callback:Function):void {
ExternalInterface.addCallback(func, callback);
}
public function call(func:String,... args):Object {
return ExternalInterface.call(func,args);
}
private function checkJSReady():Boolean {
var isReady:Boolean = ExternalInterface.call("jsready");
if (isReady)
dispatchEvent(new ChannelEvent(ChannelEvent.USING,ChannelEvent.JS_READY));
return isReady;
}
private function timerHandler(event:TimerEvent):void {
if (isSupported) {
dispatchEvent(new ChannelEvent(ChannelEvent.LOG,ChannelEvent.WRITE,"Checking JavaScript status..."));
var isReady:Boolean = checkJSReady();
if (isReady) {
dispatchEvent(new ChannelEvent(ChannelEvent.LOG,ChannelEvent.WRITE,"JavaScript is ready."));
Timer(event.target).stop();
}
} else {
dispatchEvent(new ChannelEvent(ChannelEvent.LOG,ChannelEvent.WRITE,"Emulation: JavaScript."));
Timer(event.target).stop();
}
}
}
}
В HTML

PHP код:
<body onload="pageInit();">
<script type="text/javascript">
var jsc = false;
function jsready() { return jsc; }
function pageInit() { jsc = true; }
</script>
Добавлено через 8 минут
Хотя с точки зрения ООП, лучше не использовать мой класс, а написать статический класс для событий.