Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ошибка при создании обработчиков в цикле (http://www.flasher.ru/forum/showthread.php?t=109756)

mre 20.03.2008 11:52

Такой код:
Код:

                public function addListenersUser():void
                {
                        for (var i = 0; i < itemsCount; i++)
                        {
                                items[i].addEventListener(MouseEvent.MOUSE_OVER, function (e:MouseEvent)
                                                                                                        {
                                                                                                                items[i].setCurTextFormat();
                                                                                                        });
                        }
                }

При MOUSE_OVER возникает ошибка:
Код:

Error #1010: A term is undefined and has no properties.
        at MethodInfo-785()

В чем может быть проблема?

Причем странная вещь, в функции события определены переменные items и i но items[i] - undefined, видимо ошибка из-за этого, но почему так происходит и как этого избежать?

А, понятно, i у нас после выполнения функции имеет значение выходящее за пределы диапазона индексов массива, надо что-то придумать другое.

А можно как-нибудь обратиться непосредственно к объекту для которого происходит событие?

Разобрался, надо так:
Код:

e.target.parent.setCurTextFormat();

iNils 20.03.2008 13:14

Надо использовать кнопку http://www.flasher.ru/forum/images/r...ttons/edit.gif, а не надо создавать несколько сообщений подряд.


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

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