我不能用flashvars flash

时间:2016-04-15 12:13:27

标签: flash

我在那里试图在我的应用程序中使用flashvars,但不幸的是我得到了错误

package com.endseven {

    import flash.display.MovieClip;
    import flash.media.Video;
    import flash.net.NetConnection;
    import flash.net.NetStream;
    import flash.display.Loader;
    import flash.display.LoaderInfo;

    public class RTMPStream extends MovieClip {
        var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters.myVariable;
        protected var sMediaServerURL:String = "rtmp://hostname/test";
        protected var sStreamName:String = paramObj.toString();

        protected var oConnection:NetConnection;
        protected var oMetaData:Object = new Object();
        protected var oNetStream:NetStream;
        protected var oVideo:Video;

        /* the constructor */
        public function RTMPStream():void {

            NetConnection.prototype.onBWDone = function(oObject1:Object) {
                trace("onBWDone: " + oObject1.toString()); // some media servers are dumb, so we need to catch a strange event..
            }

        }

        /* triggered when meta data is received. */
        protected function eMetaDataReceived(oObject:Object) {
            trace("MetaData: " + oObject.toString()); // debug trace..
        }

    }

}

我得到的错误是:

第13行1119:通过具有静态类型Class的引用访问可能未定义的属性root。

如何使用这个探索

有错误的行是这样的: var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters.myVariable;

我想归档的是为特定用户在html / PHP文件中的pargrams设置sStreamName。

1 个答案:

答案 0 :(得分:0)

您在任何方法之外都有此代码:

var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters.myVariable;

您可以将此视为静态上下文。在该上下文中,成员变量(如root)尚不存在。

您应该声明变量,但稍后在构造函数中指定值。像这样:

public class RTMPStream extends MovieClip {
    var paramObj:Object;

    /* the constructor */
    public function RTMPStream():void {
        paramObj = LoaderInfo(this.root.loaderInfo).parameters.myVariable;