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

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);
        }
       
}

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


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

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