我在那里试图在我的应用程序中使用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。
答案 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;