Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.06.2006, 18:00
nouba вне форума Посмотреть профиль Отправить личное сообщение для nouba Посетить домашнюю страницу nouba Найти все сообщения от nouba
  № 1  
Ответить с цитированием
nouba
 
Аватар для nouba

Регистрация: Sep 2005
Сообщений: 150
Отправить сообщение для nouba с помощью ICQ
Attention FDT+Eclipse, MTASC -trace <function> не работает

Есть такой вот клас
Код:
class TRACE extends Object{
	private static var ini:TRACE = new TRACE();
	private static var indexx:Number;
	private static var iam:Object;
	private static var t_text:Object;
	private static var tr:Object;
	private static var myText:String;
	private static var prev:String;
	private static var $ME:Object;
		// ------------ TRACER ---------------------
	public static function killTrace():Void{
		var f=_root.myTrace; 
f.clear();f.te.removTextField();f.trace1.removTextField();f.removeMovieClip();
	}
	public static function killText():Void{
		indexx=0;
		myText=prev="";
	}
	public function TRACE(){
		prev="";indexx=0;$ME=this;
	}
	public static function myTrace(t:String, id:String):Void{
		if(t!=""){
			if(prev!=id && id=="inf"){t="</FONT><FONT color='#889988'>"+t;prev=id;}
			if(prev!=id && id=="err"){t="</FONT><FONT color='#FF1111'>"+t;prev=id;}
			text(t);
		}
	} 
	private static function border(o:Object):Void{
		Index.__drawRec(o,0,0,300,o._height+10,0x000000,100,0x225599,100,2);
		Index.__drawRec(o,3,3,295,18,0x225599,100,0x000000,0,0);
		Index.alignTo({fi:"_root",se:o,x:"center",y:"center"});
		Index.alignTo({fi:iam,se:tr,x:"center",y:""});
	}
	public static function text(texti:String):Void{
		if(texti!=""){
			if(prev==""){myText="<FONT>";}
			myText+=texti+"<br>";
			killTrace();
			iam = _root.createEmptyMovieClip("myTrace",_root.getNextHighestDepth());
			tr = iam.createTextField("trace1",iam.getNextHighestDepth(),4,2,200,200);
			tr.textColor=0xFFFFFF;tr.autoSize=true;tr.selectable=false;tr.text="trace";
			t_text = iam.createTextField("te",iam.getNextHighestDepth(),10,23,296,20);
			iam.ini=$ME;iam.onRelease=function(){_root.TRACE.killText();};iam.useHandCursor=false;
			t_text.multiline=t_text.autoSize=t_text.html=true;
			t_text.htmlText=myText;
			border(iam);
		}
	}
}
Хочу заставить МТАСК скомпилить мою свф-ку так чтобі запускалась моя функция myTrace() вместо обычного трейса
пишу все "как книга пишет" -trace TRACE.myTrace но нифика оно не работает

Версия MTASC - 1.12
__________________
noubase.com

Старый 27.06.2006, 11:49
Бармалей вне форума Посмотреть профиль Отправить личное сообщение для Бармалей Посетить домашнюю страницу Бармалей Найти все сообщения от Бармалей
  № 2  
Ответить с цитированием
Бармалей
 
Аватар для Бармалей

Регистрация: Jun 2005
Адрес: Москва
Сообщений: 784
Отправить сообщение для Бармалей с помощью ICQ
1) Подпись "FDT + ECLIPSE + MTASC = OpenSource" - неверна. Плату за FDT никто еще не отменял.

2) Опиши подробней проблему. Где пишешь, как запускаешь компиляцию.

3) У Constantiner-a есть [link=http://constantiner.blogspot.com/2006/02/flash-apache-ant-new-media.html]хорошая статья про использование Eclipse, FDT, MTASC и Apache Ant[/link]. Почитай, может поможет. =)

P.S. Забыл какой BB-код отвечает за вставку ссылки, а кнопки для форматирования текста в Расширенном режиме не работают почему-то.
__________________
Garbage Collector || AIR (Apollo) Docs

Старый 27.06.2006, 13:21
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
4) Научись правильно и по стандарту писать классы.

Старый 27.06.2006, 16:03
nouba вне форума Посмотреть профиль Отправить личное сообщение для nouba Посетить домашнюю страницу nouba Найти все сообщения от nouba
  № 4  
Ответить с цитированием
nouba
 
Аватар для nouba

Регистрация: Sep 2005
Сообщений: 150
Отправить сообщение для nouba с помощью ICQ
Статью читал ...
Если у тебя есть кряк ))) то это даже очень ОпенСурс

Теперь о проблеме поточнее...

Есть Main class, там есть main entry point

Код:
import TRACE;
public static function main(){
ну тут всё нужное мне
}
а в аргументах к МТАСК-у пишу

-trace TRACE.myTrace

потом trace('hello!","inf");

но нифика оно не пашет, а вот если делать
Код:
import TRACE;
public static function main():Void{
_root.TRACE = new TRACE();
_root.TRACE.myTrace("привет","inf");
}
то всё работает ... ну это и понятно что работает
Теперь на тему написания классов....
Любезно выслушаю пожелания ))) или зайду по указаной ссылке на хорошую статью, где я пойму чем мой класс не отвичает стандартам и почему он не правильный
__________________
noubase.com

Старый 27.06.2006, 16:09
nouba вне форума Посмотреть профиль Отправить личное сообщение для nouba Посетить домашнюю страницу nouba Найти все сообщения от nouba
  № 5  
Ответить с цитированием
nouba
 
Аватар для nouba

Регистрация: Sep 2005
Сообщений: 150
Отправить сообщение для nouba с помощью ICQ
Всё ))) всем спасибо сам разобрался
"очепятки - это зло"

А вот про классы всеравно послушаю и почитаю...
__________________
noubase.com

Старый 27.06.2006, 16:21
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
1) Только первая буква имени класса -- прописная
2) Все классы являются наследниками Object
3) _root не принято использовать в классах. Если _root используется в классе -- это ошибка проектирования
4) Названия переменных не несут смысловой нагрузки (например t, id, tr, ini, iam, o)
5) После точки с запятой должен быть перевод строки (конструкций if () {} это тоже касается)
6) Зачем создавать экземпляр класса, если все его методы и переменные -- статические?
Можно ещё долго и долго перечислять...

Старый 27.06.2006, 16:59
nouba вне форума Посмотреть профиль Отправить личное сообщение для nouba Посетить домашнюю страницу nouba Найти все сообщения от nouba
  № 7  
Ответить с цитированием
nouba
 
Аватар для nouba

Регистрация: Sep 2005
Сообщений: 150
Отправить сообщение для nouba с помощью ICQ
1) Согласен!
2) Почему? А если я "росшыраю" свои же классы? Допустим чтобы использовать тот же метод __drawRec (как в примере класса), или я что-то не понимаю в ООП %)
3) Согласен!
4) Почему не несут с переменными id, ini, iam - кажеться все понятно, t и o - да, не несут, но они исполняют чисто служебные внутринние функции, их не нада запоминать.
5) Это уже стилистика написания, думаю спорить на эту тему бессмысленно
6) Согласен! Загнался
__________________
noubase.com

Старый 27.06.2006, 17:32
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
2) Не нужно расширять Object, твой класс и так наследник Object. Запись "extends Object" не имеет смысла. И метода __drawRec нет в Object.
4) Тебе -- может и не нужно, но человеку, которому потребуется разобраться в твоём классе (пример -- эта тема), будет крайне сложно понять, что ты подразумевал под этими переменными. Мне, например, всё-равно неясно с первого взгляда и ковыряний в коде, что такое id, ini, iam.
5) До тех пор, пока ты работаешь один. Лучше использовать хоть какой-нибудь стандарт, чем не использовать его вообще и писать в стиле AS1 по десятку конструкций на одной строке. Ты не только другим, но и себе роешь яму -- через пару месяцев разобрать код будет сложно, потому что написан сплошной строкой.
7) У тебя нигде не определено, что такое Index
8) Путаница в названиях методов -- некоторые начинаются с двойного подчёркивания (такое название может использоваться в приватных методах, но не публичных точно), а другие со строчной буквы.
9) Отсутствие типизации в некоторых местах.
10) Т.к. класс статический, то конструктор в нём не вызывается, соответственно всё, что внутри конструктора, тоже не работает.
11) В статическом классе не может быть ссылки на this, и конструкцию
Код:
iam.ini=$ME;
надо заменить на
Код:
iam.ini=TRACE;
в данном случае. Но опять же -- не имеет смысла вообще так писать, т.к. TRACE и так является глобальным объектом и ссылка на конструктор не нужна.

В общем лучше всё начисто переписать.


Последний раз редактировалось etc; 27.06.2006 в 17:35.
Старый 27.06.2006, 17:51
nouba вне форума Посмотреть профиль Отправить личное сообщение для nouba Посетить домашнюю страницу nouba Найти все сообщения от nouba
  № 9  
Ответить с цитированием
nouba
 
Аватар для nouba

Регистрация: Sep 2005
Сообщений: 150
Отправить сообщение для nouba с помощью ICQ
2) Это все этот ассист проклятый
4) - 5) Ну могу согласиться... скоро у нас появиться ещё один кодер АС - надо будет написать ему пару коментов и отформатировать еод
7)
Код:
class Index extends Object {
// Вари для менюшок і баттонів ... стилі і т.д.
	private static var btnStyle:Object = {boC:0x666666, bgC:0x444444, roll_bgC:0x666666 };
	private static var menuTextStyle:TextFormat = new TextFormat();
	///////////////////////////////////////////////////////////////
	public function Index() {
		
	}
	// -----------------------
	// DEBUGING
	public function debugERR(title:String, mess:String){
		
	}
	// -----------------------
	
	// -----------------------
	// TEXT ///
	public static function makeTextFormat(bold:Boolean, he:Number, cvet:Number, font:String):Void{
		var g = menuTextStyle;g.bold = bold;g.size = he;g.color = cvet;g.font = font;
	}
	// -----------------------
	
	// ----------------------------------------
	// DRAWING FUNCTIONS //
	public static function __drawRec(o:Object, xx:Number, yy:Number, wi:Number, he:Number, bg_color:Number, bg_alpha:Number, st_color:Number, st_alpha:Number,line_w:Number):Void {
		o.beginFill(bg_color, bg_alpha);o.lineStyle(line_w, st_color, st_alpha);o.moveTo(xx, yy);o.lineTo(xx+wi, yy);o.lineTo(xx+wi, yy+he);o.lineTo(xx, yy+he);o.lineTo(xx, yy);o.endFill();
	};
	public static function __drawTri(o:Object,x1:Number, y1:Number,x2:Number, y2:Number,x3:Number, y3:Number,bg_color:Number, bg_alpha:Number, st_color:Number, st_alpha:Number,line_w:Number):Void{
		o.beginFill(bg_color,bg_alpha);o.lineStyle(line_w,st_color,st_alpha);o.moveTo(x1,y1);o.lineTo(x2,y2);o.lineTo(x3,y3);o.lineTo(x1,y1);o.endFill();
	}
	// ----------------------------------------
	
	// ----------------------------------------
	// ------------- MENUS & BUTTONS ----------
	public static function changeBtnStyle(style:Object):Void{
		if(style.boC!=undefined){
			btnStyle = style;
			_global.StyleBroadcaster.broadcastMessage("onChangeStyle");
		}
	}
	public static function makeDefTextField(o:Object, text:String):TextField{
		var tt = o.createTextField("def_text", o.getNextHighestDepth(),0,4,10,18);
		tt.autoSize=true;tt.selectable=false;tt.text=text;
		tt.setTextFormat(0,tt.length,menuTextStyle);
		return tt;
	}
	public static function setColor(o:Object, $c:String, $a:Number):Void{
			o.cc = new Color(o);
			o.cc.setRGB($c);
			if(typeof($a)=="number"){o._alpha=$a;}
	};
	// ------------ COORDINATES ----------------- 
	public static function my_localToGlobal(o:Object):Object{
		var g = {x:0,y:0};o.localToGlobal(g);return g;
	}
	public static function my_globalToLocal(coo:Object, o:Object):Object{
		o.globalToLocal(coo);
		return coo;
	}

	// -----------------------------------------
	
	// ------------- ALIGN ----------------------
	public static function alignTo(align:Object):Void{
		if(align.fi!=undefined && align.se!=undefined){
			//_root.TRACE.inf(align.fi);
			if(align.fi=="_root"){align.wid = Stage.width;align.hei = Stage.height;
			}else{align.wid = align.fi._width;align.hei = align.fi._height;	
			};
			switch(align.x){
				
			 case "right": // рівняє другий об"ект до першого по іксу по правому краю 
			 	align.se._x = (my_globalToLocal({x:(my_localToGlobal(align.fi)).x+(align.wid-align.se._width), y:0}, align.se._parent)).x;
			 	break;
			 case "left": // по лівому краю
			 	align.se._x = (my_globalToLocal({x:(my_localToGlobal(align.fi)).x, y:0}, align.se._parent)).x;
			 	break;
			 case "center": // по центру
			 	align.se._x = (my_globalToLocal({x:((my_localToGlobal(align.fi)).x+((align.wid-align.se._width)/2)),y:0}, align.se._parent)).x;
			 	break;
			 default:
			 	align.se._x = align.se._x;
			}	
			switch(align.y){
			 case "bottom": // рівняє другий об"ект до першого по ігрику по нижньому краю
			 	align.se._y = my_globalToLocal((my_localToGlobal(align.fi)).y+align.hei-align.se._height, align.se._parent);
			 	break;
			 case "top": // по верхньому краю
				align.se._y = (my_globalToLocal(my_localToGlobal(align.fi), align.se._parent)).y; 
			 	break;
			 case "center": // по центру
			 	align.se._y = my_globalToLocal((my_localToGlobal(align.fi)).y+((align.hei-align.se._height)/2), align.se._parent); 
			 	break;
			 default:
			 	align.se._y = align.se._y;
			}
		}
	}
}
Это именно тот Индекс класс

Забыл написать что в Трейс класс вверху написано
Код:
import Index;
8) Признаю... пока не так много классиков написано надо поправить
9) Там где переменная являеться следствием ретурна стандартной функции то я не пишу тип.... и так понятно
10) Спасиба... всегда блин путаюсь с этими статиками и т.д. С ООП только начинаю работать, потому советы слушаю
11) понял понял....

Ну переписывать не надо.... надо усовершенствовать и поправлять
__________________
noubase.com

Старый 27.06.2006, 18:06
Бармалей вне форума Посмотреть профиль Отправить личное сообщение для Бармалей Посетить домашнюю страницу Бармалей Найти все сообщения от Бармалей
  № 10  
Ответить с цитированием
Бармалей
 
Аватар для Бармалей

Регистрация: Jun 2005
Адрес: Москва
Сообщений: 784
Отправить сообщение для Бармалей с помощью ICQ
9) Типизация переменных нужна не только для того, чтобы программисту был более понятен код класса. Именно на основе типизированных переменных и свойств компилятор проверяет правильность написания кода класса, и может своевременно сообщить тебе о найденных ошибках несоответствий типов данных.
__________________
Garbage Collector || AIR (Apollo) Docs

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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