Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ошибка при MouseEvent.DOUBLE_CLICK (http://www.flasher.ru/forum/showthread.php?t=174860)

Astraport 04.02.2012 14:00

Ошибка при MouseEvent.DOUBLE_CLICK
 
Совершенно странная ситуация и ошибка никак не трейсится.

Программно создается объект MyTextArea - флексовкий TextArea. Вешаем слушатель:
Код AS3:

var ta:MyTextArea = new MyTextArea();
designArea.addElement(ta);
ta.addEventListener(MouseEvent.DOUBLE_CLICK, dButtonClick);
 
protected function dButtonClick(event:MouseEvent):void
                        {
                                var ta:MyTextArea = tool.target as MyTextArea;
                                ta.updateStyle();
                                var obj:Object = new Object();
                                obj.uid = ta.name;
                                obj.fontSize = ta.fontSize;
                                obj.color = ta.colorString;
                                obj.colorInt = ta.color;
                                obj.fontFamily = ta.fontFamily;
                                obj.oldaff = ta.text;
                                navigator.pushView(views.FontView, obj);
                        }

Tool - это контрол для TextArea. Можно и без него, с помощью event.taget, все равно ошибка.
При первом двойном клике все нормально обрабатывается и views.FontView открывается. Но если кликнуть опять - TypeError: Error #1009: Cannot access a property or method of a null object reference. в строке navigator.pushView(views.FontView, obj);

Ну ладно, пробую создать просто отдельную кнопку по клику вызывающую dButtonClick и теперь все нормально работает сколько угодно раз. Кликаю дважды по MyTextArea - опять ошибка со второго раза.

TanaTiX 04.02.2012 14:08

А свойство включено?
Код AS3:

doubleClickEnabled = true;


Astraport 04.02.2012 14:17

Оно же по умолчанию включено. Да и было бы выключено, то в первый раз не обрабатывалось. На всякий случай включил - ошибка остается.

TanaTiX 04.02.2012 14:30

Что-то проиисходит значит между 1м и 2м дабл-кликом. Попробуй закомментить различные команды и проследи за кликом, потрэйси. Если проблема ен обнаружится - попробуй собрать минимальный вариант, иллюстрирующий проблему.

Astraport 04.02.2012 14:35

Дабл клик вызывает только одну эту функцию, больше ничего. Я почему именно к дабл клику привязался - ведь клик по кнопке проблем не вызывает.

TanaTiX 04.02.2012 15:03

Значит или по ходу выполнения программы (в обработчике?) что-то происходит, что приводит к такой ошибке. "Само" это не произойдет.

silin 04.02.2012 16:01

а updateStyle это твой (MyTextArea ) или флексовый (TextArea) метод ?
может он выключает doubleClickEnabled текстфилду или кому там,
если флексовый, то может переписать его в MyTextArea с принудительным включением doubleClickEnabled после super.updateStyle()
вообще без минимального примера трудно угадать

Astraport 04.02.2012 22:57

Цитата:

а updateStyle это твой (MyTextArea ) или флексовый (TextArea) метод ?
Мой (MyTextArea ) и ничего не включает. Я там просто добавляю несколько свойств, чтобы таскать TextArea между вьюхами.
Цитата:

вообще без минимального примера трудно угадать
Минимальный и привел. Полностью приводить нет никакого смысла из-за объема.
Ладно, завтра ещё поковыряюсь, если вопросы будут - отпишусь.

Меня вот просто убивает нормальная работоспособность для обычной кнопки и ошибка в строке где не может быть ошибок navigator.pushView(views.FontView, obj); - тут всего два параметра и оба не могут быть не валидными.

Добавлено через 11 часов 57 минут
Проблема в навигаторе:
Код AS3:

trace (String(navigator.className)); //TypeError: Error #1009: Cannot access a property or method of a null object reference.

Любое обращение к navigator вызывает эту ошибку. Но это же невозможно, приложение ViewNavigatorApplication.


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

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