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('') を取得することに固執しています。Anthropod でテストしたところ、追加される変数は問題なく、リンクは完全に生成されます。

私のエラーは、関数 completeHandler によってアクセスされる api = player を取得しようとしていると思いますが、できません。誰でもアイデアはありますか?

4

1 に答える 1

0

上記のコードは、Anthropod を使用して機能しましたが、それでもクロスドメインの問題であることがわかりました。同じ URL ベース名ですべてのファイルをロードすることで解決しました。たとえば、xxx.burst-dev.com です。ただし、AS3 ファイルでのクロスドメインの必要性にもかかわらず、api.load は海外でファイルをロードできます。

于 2010-07-25T18:39:49.610 に答える