Форум 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=68693)

ffffff 02.09.2005 21:24

отладка при написании классов
 
Здр.

Вот сижу, пытаюсь придумать свой первый класс :)
и столкнулся с проблемой отладки. Как я понял при написании классов trace не действует! как быть?

KidsKilla 02.09.2005 22:03

действует трейс.
на, вот мой дебаггер =)

Код:

class com.kidskilla.Debug{
        private static var __oa:Array;
        public  function Debug(){
                return;
        }
        public static function getWholeObj(obj):String{
                if(typeof obj != "object") return obj.toString()+" ("+typeof obj+")";
                Debug.__oa = new Array();
                Object.prototype._toString = function () {
                        if(typeof this == "function") return ""
                        Debug.__oa[Debug.__oa.length] = this;
                        var s = ""+typeof this+": {\n";
                        var ti = ""
                        for (var i in this) {
                                var c = (typeof this[i] == "object");
                                var type = c ? "" : " ("+typeof this[i]+")";
                                if(c){
                                        var w
                                        for(var j in Debug.__oa){
                                                if(this[i] == Debug.__oa[j]){
                                                        w = true
                                                        ti = "(parent Object: "+j+" from top)"
                                                };
                                        }
                                        if(!w) ti = this[i]._toString().split("\n").join("\n\t");
                                } else {
                                        ti = this[i];
                                }
                                s += "\t["+i+"] = "+ti+type+" "+"\n";
                        }
                        s += "};";
                        return s;
                }
                Array.prototype._toString = Object.prototype._toString
                _global.ASSetPropFlags(Array.prototype, "_toString", 1);
                _global.ASSetPropFlags(Object.prototype, "_toString", 1);
                var txt = obj._toString();
                delete Array.prototype._toString;
                delete Object.prototype._toString;
                return txt;
        }
        public static function watch(obj:Object, prop:String, browser:Boolean):Void{
                obj.watch(prop, function(prop, wuz, now, obj){
                        var func = browser ? Debug.browser : trace;
                        trace("\n"+prop+":\n\twas="+wuz+";\n\tnow="+now+";\n");
                });
        }
        public static function trace(mess):Void{
                trace(getWholeObj(mess))
        }
        public static function browser(mess):Void{
                mess = Debug.getWholeObj(mess)
                mess = mess.split("\n").join("\n<br>").split("\t").join("\t&nbsp;&nbsp;&nbsp;").split(";[").join("<b>").split("] =").join("</b> =");;
                var t = "javascript:w=window.open('', 'trace', 'Toolbar=0, Location=0, Directories=0, Status=0, Menubar=0, Scrollbar=0, Resizable=1, Copyhistory=0, Width=200, Height=200');";
                t+="w.document.writeln(\"<html><head><title>Flash trace</title></head><body bgcolor='#FFFFFF' color='#000000'>"+mess+"<br></body></html>\");";
                getURL(t);
        }
        public static function toString():String{
                return "[Debug v1.0]";
        }
}

usage:
import com.kidskilla.Debug;
Debug.browse(text, variable or smt) // открывает трейс в браузере
Debug.trace(text, variable or smt) // "трейс+" =) потрейсь объекты, переменные поймёшь отличия =)
Debug.watch(obj:Object, prop:String, browser:Boolean) // слежка за переменной, 3й параметр -- в браузере или трейсом

iNils 02.09.2005 22:15

в mx была такая панель ANSWERS, там всякая муть была.
но муть была в флешке. понимаете? туда можно свою флешку положить. и через sharedobject в нее что угодно можно запихнуть. и окно в которое через sharedobject можно данные типа отладки выводить, сделать так чтобы каждый запуск записывал данные в следующию ячейку массива и тогда в отличии от окна output их можно было сравнивать. но в mx2004 эту панель убили :(

ffffff 03.09.2005 07:54

хватит ненавадеть mx 2004 ! от прогресса не уйдёшь! :)))

ffffff 03.09.2005 07:56

а по поводу недоступности trace меня проглючило...

он у меня не пахал когда я его написал в раздел присваивания начальных зеченмий переменных, сразу после объявления класса...

только не понятно почаму он в сеттере на работает...

а так вообще везде пашет....

iNils 03.09.2005 14:36

Цитата:

Сообщение от ffffff
хватит ненавадеть mx 2004 ! от прогресса не уйдёшь! :)))

Я его не ненавижу. Я считаю что он не удобен.

От прогресса я не ухожу, флеш пережил 4, 5, mx
фотошоп 4, 5, 5.5, 6, 7, CS. Так что как видишь новые продукты я использовал. Но скажем в кореле была 5, 7, потом сразу 10, 12. Не все версии просто бывают удачными.

Вот вышел PhotoshopCS2 не давно, а уже читал что собираются выпустить PhotoshopCS3, так как многие не довольны его томрознутосью и работой с памятью.


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

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