Показать сообщение отдельно
Старый 15.10.2012, 15:24
Frost47rus вне форума Посмотреть профиль Отправить личное сообщение для Frost47rus Найти все сообщения от Frost47rus
  № 20  
Ответить с цитированием
Frost47rus

Регистрация: May 2012
Сообщений: 131
Код AS3:
private var _isEnabled:Boolean = true;
приватные переменные обозначаются в конструкторе.

Код AS3:
private var _isEnabled:Boolean = true;
 
и тут же 
 
public function get isEnabled():Boolean {
 return _isEnabled;
}
я не понимаю абсолютно смысл этих телодвижений.
либо пропишите нормальные гетеры-сетеры, либо просто сделайте публичной переменную.

Код AS3:
this.tabChildren = false;
this.tabEnabled = false;
поясните, зачем?

Код AS3:
public function release(e:MouseEvent):void {
 if (stage) {
.....
совершенно не ясна проверка на наличие стейджа. если его не было бы - не было бы события.

Код AS3:
if (this.hitTestPoint(stage.mouseX , stage.mouseY)) 
				{
					this.over(e);
				}
				else 
				{
					this.out(e);
				}
это типа, если нажал и увел мышку в другую область и отжал?
это не надо проверять - такое поведение пользователя не приведёт к событию MouseEvent.CLICK - проверьте сами.

Код AS3:
public function enable():void
		{
			this.addEventListener(MouseEvent.MOUSE_OVER , this.over);
			this.addEventListener(MouseEvent.MOUSE_OUT , this.out);
			this.addEventListener(MouseEvent.CLICK , this.release);
			this.addEventListener(MouseEvent.MOUSE_DOWN , this.down);
			this.mouseEnabled = true;
			this.out(null);
последняя строка. зачем?
а если активация будет во время пребывания мыши над кнопкой? получите кашу.

Код AS3:
private function minusLine(e:MouseEvent):void
мышиный эвент хэндлер назван совсем как не хэндлер. вы сами в своём коде не путаетесь? вы - ладно, другим его читать - давать нельзя.

Код AS3:
if (this._hudModel.currentLine === this._hudModel.numLines)
			{
				//this._hud.pline.removeEventListener(MouseEvent.CLICK , plusLine);
				this._hud.pline.disable();
			}
			else if (this._hudModel.currentLine === 1) 
			{
				//this._hud.mline.removeEventListener(MouseEvent.CLICK , minusLine);
				this._hud.mline.disable();
			} else
вам самому понятна логика в этом дереве?

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


Код AS3:
if (layout.getChildByName('hit') == null)
dispatchEvent(new MouseEvent(MouseEvent.CLICK));
(_enabled == true) ? turnOn() : turnOff();
а тут - разберитесь для начала(вам, как я понял, это не по силам), а потом критикуйте

Добавлено через 3 минуты
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Frost47rus, Ваш клипопреобразователь имеет какое-то отношение к данной теме?
да, непосредственно имеет. мы разбирались в том, что у кнопки нет двух одинаковых слушателей.