Форум программистов, компьютерный форум, киберфорум
Наши страницы
ActionScript
Войти
Регистрация
Восстановить пароль
 
ichgo
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
1

Область видимости функции

13.09.2013, 14:38. Просмотров 388. Ответов 4
Метки нет (Все метки)

Добрый день!
Есть класс, конструктор отрисовывает три кнопки, пытаюсь к событию Release привязать функцию из этого же класса, но внутри функцию почему-то уже не видно, вот пример:
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
class MainZkxMenu
{
    private var ServiceBtName:String = "service_bt";
    private var top_mcName:String = "top";
    private var top_txt:String = "top_txt";
    private var top_txt_y:Number = 35;
    private var top_txt_x:Number = 315;
 
    private var type_bt_y:Number = 120;
    private var type_bt_x_start:Number = 0;
    var city_bt = null;
    private var categories_bt:Object;
    private var search_bt:Object;
    private var city_bt_name:String = "city_bt";
    private var categories_bt_name:String = "categories_bt";
    private var search_bt_name:String = "search_bt";
    var type_buttons = new Array();
    
    function MainZkxMenu()
    {
        MainConstructor();
    }
    
    function MainConstructor()
    {
        var top_plazka = _root.attachMovie(top_mcName, top_mcName, _root.getNextHighestDepth());
        top_plazka.attachMovie(top_txt, "top_txt", top_plazka.getNextHighestDepth(), {_x:top_txt_x, _y:top_txt_y});
        
        var city = city_bt = _root.attachMovie(city_bt_name, city_bt_name, _root.getNextHighestDepth(), {_x:type_bt_x_start, _y:type_bt_y});
        type_bt_x_start += city_bt._width;
        city_bt.stop();
        type_buttons.push(city_bt);
        city_bt.onRelease = function()
        {
            [B][COLOR="Red"]trace(Bt_click);[/COLOR][/B]        }
 
        categories_bt = _root.attachMovie(categories_bt_name, categories_bt_name, _root.getNextHighestDepth(), {_x:type_bt_x_start, _y:type_bt_y});
        type_bt_x_start += categories_bt._width;
        categories_bt.stop();
        type_buttons.push(categories_bt);
        
        search_bt = _root.attachMovie(search_bt_name, search_bt_name, _root.getNextHighestDepth(), {_x:type_bt_x_start, _y:type_bt_y});
        type_bt_x_start += search_bt._width;
        search_bt.stop();
        type_buttons.push(search_bt);
    }
    
    function Bt_click()
    {
          Test();
    }
    
    function Test()
    {
        trace("Test");
    }
}
Вывод красного trace-а = undefined;
Если попытаться выпонить саму функцию, то ничего не срабатывает.

Подскажите, в чем проблема?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2013, 14:38
Ответы с готовыми решениями:

Про область видимости
Пишу простенький вариант морского боя. Столкнулся с проблемой, что если создать объект в теле одной...

function функция get return область видимости возвращаемая переменная
просмотрел..почитал про видимость и про функции :) ...на сколько понимаю я функция bytesFoo()...

Область видимости функции
Доброго времени суток. Суть задачи такова: хочу во время ожидания ответа сервера, рядом с курсором...

Область видимости static функции
Почему программа работает, статическая функция sum вроде как не должна быть видна в main.c?? ...

Дружественные функции и область видимости
Компилятор mingw 4.9.3 (-std=c++14). Есть класс, определённый в SomeClass.h, в котором заявлена...

4
TanaTiX
Модератор
2798 / 1655 / 168
Регистрация: 19.02.2011
Сообщений: 6,018
Завершенные тесты: 2
13.09.2013, 14:48 2
ichgo, попробуй через делегирование.

Не по теме:

Через _parent не рекомендую.

0
ichgo
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
13.09.2013, 15:44  [ТС] 3
Цитата Сообщение от TanaTiX Посмотреть сообщение
ichgo, попробуй через делегирование.

Не по теме:

Через _parent не рекомендую.

Не совсем понял...
Нашел примеры делегатов под кнопки, но у меня мувиклип.
Если не сложно, можете привести пример?
Спасибо!
0
TanaTiX
Модератор
2798 / 1655 / 168
Регистрация: 19.02.2011
Сообщений: 6,018
Завершенные тесты: 2
13.09.2013, 16:01 4
Цитата Сообщение от ichgo Посмотреть сообщение
Нашел примеры делегатов под кнопки, но у меня мувиклип.
А какая разница?
0
ichgo
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
13.09.2013, 16:38  [ТС] 5
Цитата Сообщение от TanaTiX Посмотреть сообщение
А какая разница?
Уже разобрался с делегатами, проблема теперь в видимости свойств класса.
В примере выше есть массив type_buttons он виден в конструкторе, но в других функциях массив уже почему-то undefined, с этим в какую сторону копать?
0
13.09.2013, 16:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2013, 16:38

Область видимости в анонимной функции
for (var i = 0; i < players_array.length; /* Пускай players_array.length будет равно 2*/ i++) { ...

Область видимости анонимного объекта при вызове функции
Доброго дня. Хотел поинтересоваться: когда уничтожится анонимный объект, переданный как параметр...

Вызов функции до ее определения или область видимости функций в FireFox
Добрый день! Наткнулся на такую особенность в FireFox - если использовать такую конструкцию: {...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru