Я понял, как создать статический метод, доступный везде, например:
UtilLib.as:
package
{
public final class UtilLib
{
public static function getTimeStamp():uint
{
var now:Date = new Date();
return now.getTime();
}
}
}
Я могу получить доступ к этому везде, выполнив UtilLib.getTimeStamp () - Теперь я хочу создать новый метод staic с именем log (msg: String). Это должно записать сообщение в многострочное поле ввода.
Проблема, однако, заключается в том, что это поле ввода должно быть создано где-то и должно быть доступно и постоянно отображаться, и я не хочу постоянно передавать его через параметры функции, так как это вызовет много проблем пришлось бы пропустить это через объекты, а также ..).
Итак, как мне сделать "публичное текстовое поле", чтобы мой метод статического журнала мог писать в него?
UPDATE:
Я сейчас попробовал следующий класс со статическим конструктором (я думаю). Однако объект текстового поля не отображается. Когда я делаю addChild (debugField) после его создания, он выдает мне ошибку 1180.
Logger.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 не отображается.