0

我正在尝试创建一个JW播放器插件,部分源代码如下所示:

        public function initPlugin(player:IPlayer, config:PluginConfig):void {
        api = player;

        var streamUrl:String = 'xxx';
        var streamSecret:String = 'xxx';
        var xid:String = config['xid'];

        var request:URLRequest = new URLRequest("xxx"+xid);
        request.method = URLRequestMethod.POST;

        var loader:URLLoader = new URLLoader();
        loader.dataFormat = URLLoaderDataFormat.VARIABLES;
        loader.addEventListener(Event.COMPLETE, completeHandler);
        loader.load(request);

        var fileName:String, drive:String, userFolder:String, t_hex:String, linkType:String

        function completeHandler(evt:Event) {
            linkType = evt.target.data.linkType;
            fileName = evt.target.data.filename;
            drive = evt.target.data.drive;
            userFolder = evt.target.data.userFolder;
            t_hex = evt.target.data.t_hex;

            if (linkType == "1")
            {
                /*
                PHP will generate these variables for the plugin.
                fileName, drive, userFolder, t_hex
                */

                var relPath:String = "/"+drive+"/"+userFolder+"/"+fileName;
                var md5Hash = MD5.encrypt (streamSecret+relPath+t_hex);

                var link:String = streamUrl+md5Hash+"/"+t_hex+relPath;
            } else
            {
            }

            api.load('http://music-stream.burst-dev.com/test.flv');
            api.play();

        }

我目前坚持让 api.load('') 实际加载文件。我已经通过节肢动物进行了测试,添加的变量没有问题,并且链接生成完美。

我认为我的错误是试图让函数 completeHandler 访问 api = player,但它不能。有人有什么想法吗?

4

1 回答 1

0

上面的代码工作,使用 Anthropod,我发现它仍然是一个跨域问题。我通过加载相同 URL 基名下的所有文件来解决它。例如,xxx.burst-dev.com。尽管 AS3 文件中需要跨域,但 api.load 可以将文件加载到国外。

于 2010-07-25T18:39:49.610 回答