Просмотр полной версии : [AS2] к профи: MM component'ы и Object.prototype
Такой вариант:
сделал логгер
class Logger {
private static var __instance:Logger = null;
public static function init ():Void {
var t:Object = Object.prototype;
t.log = getLogger ();
}
public static function getLogger ():Logger {
if (__instance == null) {
__instance = new Logger ();
}
return __instance;
}
}
вот при таком варианте, все макромедийные компоненты, которые требуют _lockroot = true, работают крайне странно.
З.Ы. не важно как называется объект в Object.prototype, все равно вылетают
З.Ы.Ы все ММКомпоненты находятся в подгружаемом мувике.
бросай ты эти макромедийные компоненты, нет в них гармонии, имхо
зы: не пронял в чем трабл (видимо потому что избегаю работать с компонентами v2)
Хорошо, когда сам выбираешь, а не начальство :) это не мое решение, а моего высокого начальства, оно захотело компоненты и байндинг, вот и мучаюсь, и хочет это все быстро.
Трабла в том что по идее я просто через Singleton pattern иницилизирую Logger, записываю ссылку в Object.prototype, чтобы можно было из любого класса спокойно написать log.traceIt (log.Level, message); вот все это прекрасно работает с моими классами, но с компонентами ММ, те которые требуют _lockroot = true (ComboBox, List, DataGrid) начинаются конкретные глюки
твой трабл не единственный, есе много мона расказать по этому поводу :mad:
ЗЫ: скинь набросок с использованием твоего логера, покавыряемся, вдруг получиться
Привет :) давно не видно было :)
Как выяснилось проблема даже не в логгере, если я что-нить пишу из класса которые подгружается в основом файле в прототип, то компонент из подгруженного файла сдыхает.
АКА bit.com
прив, да давненько))
здыхает компонент, хмм
как такого ты добился? поделишся секретом ;)
ксати, среди баззовых компонентов ММ есть Log, не делаеш ли ты попытку его переназначить? Мож от того и компонент загибаеться?
не ихний логгер он
_global.__dataLogger.logData(null, "Could not find class \'<classname>\'", {classname: fullClassName}, mx.data.binding.Log.BRIEF);,
intrinsic class mx.data.binding.Log
{
static public var BRIEF:Number;
static public var DEBUG:Number;
static public var ERROR:Number;
static public var INFO:Number;
public function Log(logLevel:String, logName:String);
static public var NONE:Number;
static public var VERBOSE:Number;
static public var WARNING:Number;
public function getDateString();
private var level:Number;
public function logData(target:Object, message:String, info:Object, level:Number);
public function logInfo(msg:Object, level:Number);
private var name:String;
public var nestLevel;
public function onLog(message:String);
private var showDetails:Boolean;
static public function substituteIntoString(message:String, info:Object, maxlen:Number, rawDataType:Object):String;
};
но заму реализацию я так и не нашел... поэтому ниче сказать не могу
а унаследовать встроиный Log, и в своих класах прописать myLog.dispatchEvent({type:"onLog", msg:"massage"})
зачем изобретать велосипед
так он только в трайс выводит :)
он делает трейс, но данные на трейс дето хранит.
думаю до них достучаться вполне реально
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.