我想出了如何创建一个随处可用的静态方法,例如:
UtilLib.as:
package
{
public final class UtilLib
{
public static function getTimeStamp():uint
{
var now:Date = new Date();
return now.getTime();
}
}
}
我可以通过执行 UtilLib.getTimeStamp() 在任何地方访问它 - 现在,我想创建一个名为 log(msg:String) 的新静态方法。这应该将消息记录到多行输入字段。
然而问题是这个输入字段必须在某个地方创建并且必须始终可以访问和可见,并且我不想一直通过函数参数传递它,因为这会造成很多麻烦(我有也可以通过对象传递它..)。
那么,如何创建一个“公共文本字段”以便我的静态日志方法可以写入它?
更新: 我现在尝试了下面的类,带有一个静态构造函数(我认为)。但是,文本字段对象未显示。当我在创建它后执行 addChild(debugField) 时,它给了我错误 1180。
记录器.as
package
{
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;
public class Logger extends Sprite
{
public static var debugField:TextField;
/* static block */
{
trace("Logger initializing.");
debugField = new TextField();
debugField.width = 500;
debugField.height = 100;
debugField.x = 100;
debugField.y = 400;
debugField.background = true;
debugField.backgroundColor = 0xFFFFFF;
debugField.defaultTextFormat = new CustomTextFormat();
debugField.mouseWheelEnabled = true;
debugField.multiline = true;
debugField.type = TextFieldType.DYNAMIC;
}
public static function log(msg:String):void
{
if (debugField) debugField.appendText(msg);
}
}
}
我这样初始化它:
var test:Logger = new Logger();
addChild(test);
我记录了这样一条新消息:
Logger.log("test");
不幸的是,textField 没有显示。