Форум 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)
-   -   вопрос к профи!!!! (http://www.flasher.ru/forum/showthread.php?t=68707)

=winner= 03.09.2005 10:48

вопрос к профи!!!!
 
У меня вопрос: :confused:
Почему watch() не работает со свойствами мувиков таких, как _x, _y?
Можно ли это как то обойти?
И ещё один:
Я хотел макромедийный трейс заменить свой и сделал
ASSetPropFlags(_global, null, 6, false);
trace = function(val){
_root.txt.text = String(val);
}
но нифига реального не выходит!
Я пока написал метод к классу, который обходит все классы зарегеные в глобале и добавляет метод trace, но обращаться хочеться к нему не this.trace();, а trace();. Можно это как то придумать? :confused:

Aurum 03.09.2005 11:16

В хелпе написано, что watch не работает со свойствами get/set, каковыми являются _x, _y, _width, _heigth и тд

iNils 03.09.2005 15:34

Цитата:

Сообщение от =winner=
Я пока написал метод к классу, который обходит все классы зарегеные в глобале и добавляет метод trace, но обращаться хочеться к нему не this.trace();, а trace();. Можно это как то придумать?

Ну если ты сделал метод класа, то почему обращаться к нему хочешь как к глобальному методу?

iNils 03.09.2005 15:36

Можешь сделать так:
_global.echo = function () {
trace (arguments);
};
echo (1, 2, 3);

7thsky™ 03.09.2005 17:11

можно добавить в Object.prototype, но функция должна называться по другому, так как это не метод объекта а глобальная функция, такая как gotoAndPlay, gotoAndStop, stop, play

Код:

class Logger {
        public static var __instance:Logger = null;
        public static var __defaultLevel:Number = 0;
        public static var __defaultMessage:String = '>> default message';
       
        public var INFO:Number = 0;
        public var DEBUG:Number = 1;
        public var WARN:Number = 2;
        public var ERROR:Number = 3;
        public var FATAL:Number = 4;
        public var SERVER_IN:Number = 5;
        public var SERVER_OUT:Number = 6;
       
        private var __records:Array = new Array ();
       
        public function Logger () {
        }
       
        public function traceIt (level:Number, msg:String):Void {
                // new Record
                var o:LoggerRecord = new LoggerRecord (level, msg);
                // push message
                __records.push (o);
               
                var levels:Array = ['INFO', 'DEBUG', 'WARN', 'ERROR', 'FATAL', 'SERVER_IN', 'SERVER_OUT'];
                trace (levels [level] + ' >> ' + msg);
        }
       
        public static function init (flag:Boolean):Void {
                var t:Object = Object.prototype;
               
                if (__instance == null) {
                        t.log = __instance = new Logger ();
                } // end if
        }
}

class LoggerRecord {
        public var level:Number = null;
        public var message:String = null;
        public var time:Number = null;
       
// -------------------------------------------------
// Constructor
// -------------------------------------------------
        public function LoggerRecord (logLevel:Number, logMessage:String) {
                // set Level
                level = (logLevel == undefined || isNaN (Number (logLevel))) ? Logger.__defaultLevel: logLevel;
               
                // set mesage
                message = (typeof logMessage != 'string') ? Logger.__defaultMessage : logMessage;
               
                // set time
                time = new Date ().getTime();
        }
}

Logger.init ();
log.traceIt (log.ERROR, 'опа Aшибка');

например что-то типа этого, если ты пользуешь AS1, то ни каких проблем, если в АС2, то надо в базовый класс добавить
public static var log:Logger;

=winner= 14.09.2005 09:23

.
 
У меня еще вопрос дла ФЛЕШЕРОВ:
А как в AS2 задать сеттеры и геттеры?

А, к трейсу я хотел обращаться так, чтоб можно было иметь два трейса т.е. если нет моего, то работает макромедийный, а если есть мой, то он и работает.

=winner= 15.09.2005 09:20

.
 
Да люди не очень хотят мне помочь? :(

7thsky™ 15.09.2005 09:37

в принципе был бы Nirth в онлайне он бы давно уже бы закрыл тему.


Есть хелп, есть переведенный хелп на русском.

public function get _RTFM ():Boolean {
}
public function set _RTFM (value:Boolean):Void {
}


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

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