PDA

Просмотр полной версии : ООП вызов функции при нажатии на кнопку


ktotam
16.05.2008, 22:13
Здравствуйте!
Столкнулся с проблемой, при создании объекта класса Fun, при нажатии на клавиши клавиатуры не могу перейти в функцию _function() класса Fun.
//fla.fla
var obj:Fun= new Fun();
,//Fun.as
class Fun{
private var _list:Object = new Object();
private function _function() {
trace("hello");
}
public function Fun() {
Key.addListener(_list);
_list.onKeyDown = function():Void {
_function();
};
}
}

В чём моя ошибка, уважаемые господа?

iNils
16.05.2008, 22:19
Внутри области видимости _list нету метода _function();
Забудьте про то, что в хелпе везде пишут
private var _list:Object = new Object();
Key.addListener(_list);
и тому подобное, зачем создавать лишний объект, когда можно добавить в слушателей самого себя? То есть
Key.addListener(this);
И все. И области видимости сразу совпадает и объектов лишних нет
class Fun{
private function _function () {
trace("hello");
}
public function Fun () {
Key.addListener(this);
}
private function onKeyDown ():Void {
_function();
};

}

ktotam
16.05.2008, 23:00
Ошибку свою понял. Спасибо! НО тут осталась ошибка "A member attribute was used incorrectly.
private onKeyDown = function():Void {"

ktotam
16.05.2008, 23:02
всё исправил
//Fun.as
class Fun{
private function _function() {
trace("hello");
}
private function onKeyDown() {
_function();
};
public function Fun() {
Key.addListener(this);
}

}
спасибо добрый человек