Эта ошибка появляется во вкладке OUTPUT при запуске и нажатии кнопки: Ошибка типа: Ошибка # 1006: removeListeners не является функцией - PullRequest
0 голосов
/ 24 февраля 2012

при нажатии на кнопку эта ошибка появляется на вкладке OUTPUT

файл находится по ссылке

Ошибка № 1006.rar

Это код navigation_actions, где находятся коды панели навигации (кнопки)

var buttonArray:Array = new Array( );
var currentButton:Object = new Object;

var navContainer:Sprite=new Sprite  ;
addChild(navContainer);

var navArray:Array=["من نحن","المحتوى","المراجع","التواصل", "خريطة الموقع"];

for (var i:Number=0; i<5; i++) {

var navItem:NavItem = new NavItem;
navItem.x = navItem.width*i;
navItem.nav_name.text = navArray[i];
buttonArray.push(navItem);
navItem.addListeners();
navContainer.addChild(navItem);

navItem.name = String(i);

navItem.addEventListener(MouseEvent.CLICK, onNavClick);
}

function onNavClick(evt:MouseEvent):void {

currentButton.y = 0;
currentButton.addListeners();
currentButton.addEventListener(MouseEvent.CLICK, onNavClick);

currentButton = evt.target;
currentButton.removeListeners();
currentButton.removeEventListener(MouseEvent.CLICK, onNavClick);

}

initialNavigation();

function initialNavigation():void {

buttonArray[0].y = -10;
currentButton = buttonArray[0];
currentButton.removeListeners();
currentButton.removeEventListener(MouseEvent.CLICK, onNavClick);
}

var navSide:NavSide = new NavSide;
navSide.x = navContainer.width;
navSide.width = stage.stageWidth - navContainer.width;
navSide.alpha = 0.7;
navContainer.addChild(navSide);

navContainer.y = stage.stageHeight-67; }

и это действия navItem (сами кнопки)

import com.greensock.TweenLite;

nav_name.autoSize=TextFieldAutoSize.LEFT;
nav_name.selectable=false;

nav_name.x=170-nav_name.width+25;


function onOver(evt:MouseEvent):void {

TweenLite.to(this, 0.4, { y:-10});
}

function onOut(evt:MouseEvent):void {

TweenLite.to(this, 0.4, { y:0});
}

function addListeners():void {

this.addEventListener(MouseEvent.ROLL_OVER, onOver);
this.addEventListener(MouseEvent.ROLL_OUT, onOut);
}

function removeListeners():void {

this.removeEventListener(MouseEvent.ROLL_OVER, onOver);
this.removeEventListener(MouseEvent.ROLL_OUT, onOut);

}

1 Ответ

0 голосов
/ 25 февраля 2012

Я скачал ваш файл и, насколько я могу судить, добавил слушателя в ваш экземпляр NavItem, но фактическое событие происходит от его потомка. Вот почему event.target не равен NavItem.

Либо используйте event.currentTarget, либо добавьте navItem.mouseChildren = false;, чтобы дети NavItem не захватывали клики.

В следующий раз, пожалуйста, отправьте код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...