Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   [AS2] к профи: MM component'ы и Object.prototype (http://www.flasher.ru/forum/showthread.php?t=68893)

7thsky™ 07.09.2005 21:05

[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, все равно вылетают
З.Ы.Ы все ММКомпоненты находятся в подгружаемом мувике.

silin 07.09.2005 21:38

бросай ты эти макромедийные компоненты, нет в них гармонии, имхо
зы: не пронял в чем трабл (видимо потому что избегаю работать с компонентами v2)

7thsky™ 08.09.2005 02:01

Хорошо, когда сам выбираешь, а не начальство :) это не мое решение, а моего высокого начальства, оно захотело компоненты и байндинг, вот и мучаюсь, и хочет это все быстро.

Трабла в том что по идее я просто через Singleton pattern иницилизирую Logger, записываю ссылку в Object.prototype, чтобы можно было из любого класса спокойно написать log.traceIt (log.Level, message); вот все это прекрасно работает с моими классами, но с компонентами ММ, те которые требуют _lockroot = true (ComboBox, List, DataGrid) начинаются конкретные глюки

Jlekc 08.09.2005 14:13

твой трабл не единственный, есе много мона расказать по этому поводу :mad:

ЗЫ: скинь набросок с использованием твоего логера, покавыряемся, вдруг получиться

7thsky™ 08.09.2005 14:45

Привет :) давно не видно было :)

Как выяснилось проблема даже не в логгере, если я что-нить пишу из класса которые подгружается в основом файле в прототип, то компонент из подгруженного файла сдыхает.

АКА bit.com

Jlekc 08.09.2005 14:54

прив, да давненько))

здыхает компонент, хмм
как такого ты добился? поделишся секретом ;)

ксати, среди баззовых компонентов ММ есть Log, не делаеш ли ты попытку его переназначить? Мож от того и компонент загибаеться?

7thsky™ 08.09.2005 16:21

не ихний логгер он
_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;
};

но заму реализацию я так и не нашел... поэтому ниче сказать не могу

Jlekc 08.09.2005 16:47

а унаследовать встроиный Log, и в своих класах прописать myLog.dispatchEvent({type:"onLog", msg:"massage"})

зачем изобретать велосипед

7thsky™ 08.09.2005 17:31

так он только в трайс выводит :)

Jlekc 08.09.2005 17:46

он делает трейс, но данные на трейс дето хранит.
думаю до них достучаться вполне реально


Часовой пояс GMT +4, время: 06:08.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.