如何在连接到服务器之前访问swf加载url参数 - red5,flex

时间:2011-09-16 10:18:12

标签: php flex red5 url-parameters

我是flex的新手,所以我希望会有一些简单的解释。无论如何,我试图从url获取参数,加载swf文件。一切都好,它有效。

var room_id:Number = root.loaderInfo.parameters.room_id;

在我连接到red5服务器之前尝试执行此操作时出现问题。现在我想从url获取id,知道我应该连接到哪个房间,但是我怎么能这样做,如果我在建立连接之前尝试访问这个参数时flex给我一个错误。

  

错误#1009:无法访问空对象引用的属性或方法。

目前有我的代码。

protected function application1_creationCompleteHandler(event:FlexEvent):void {
    //var room:Number = vars("room");
    connection = new NetConnection();
    connection.connect("rtmp://127.0.0.1/video");
    connection.addEventListener(NetStatusEvent.NET_STATUS, onConnected);
    connection.client = this;
}
private function vars(id:String) : Number {
    var newID:Number
    switch(id) {
        case "room" :
        newID = root.loaderInfo.parameters.room_id;
        break;
    }
    return newID;
}

如果我取消注释“var room:Number = vars(”room“);”我得到错误,如果我稍后在函数“onConnected”中使用此行,没有问题,我可以访问通过url传递的所有参数。 现在可以在连接之前获取这些参数,我该怎么办?网站本身运行在PHP,所以基本上我试图将PHP参数传递给swf对象。 我会很感激。

1 个答案:

答案 0 :(得分:0)

我自己回答的另一个问题。无论如何,只有一个愚蠢的错误。要访问loaderInfo属性,必须完全下载所有swf。所以当我从creationCompleteapplicationComplete发射第一个函数时,我刚刚更改了事件。就这样。