Проблема с доступом к вложенным объектам.

22 views
Skip to first unread message

Ivan Dembicki

unread,
Oct 24, 2014, 9:10:41 AM10/24/14
to ruFlash
Всем привет!

Шиза косит наши ряды.
Есть проект, в котором прекрасно работал доступ к вложенным визуальным
элементам:

[Embed(source="/../View.swf", symbol="MoneyBar")]
private static const MoneyBarClass:Class;

private const moneyBarView:Sprite = new MoneyBarClass() as Sprite;
private const moneyTxt:TextField = moneyBarView["money_txt"] as TextField;

И в какой-то момент всё сломалось: moneyTxt - null
View.swf и класс, в котором начала вылезать эта ошибка тоже не менялся.

Что это может быть?

Грешу пока на то, что где-то появилась переменная, одноименная с
папкой. Может из-за нее и идут эти прелести?
Есть еще версии?

--
Ivan Dembicki
http://realaxy.com

Pilipenko Dima

unread,
Oct 24, 2014, 9:14:44 AM10/24/14
to ruf...@googlegroups.com
привет,

в данном случае, правильнее кастинговать под MovieClip.
Попробуй обратиться не через динамический доступ, а с помощью getChildByName.

Апчик нового фп жи есть.

24 окт. 2014 г., в 16:10, Ivan Dembicki <ivan.d...@gmail.com> написал(а):

--
--
отменить подписку: ruFlash-u...@googlegroups.com
сообщение в группу: ruF...@googlegroups.com
страница группы: http://groups.google.com/group/ruFlash
правила группы: http://groups.google.com/group/ruFlash/web/rules
на facebook: http://www.facebook.com/home.php?sk=group_163903643627621

---
Вы получили это сообщение, поскольку подписаны на группу ruFlash.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес ruflash+u...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/d/optout.

-- 
Pilipenko Dima
Software engineer

web: dimpiax.com
mail: dim...@gmail.com
skype: dimpiax
cell: +3 093 639 94 00

Andrey Vichodcev

unread,
Oct 24, 2014, 9:23:38 AM10/24/14
to ruf...@googlegroups.com
а не может быть так, что класс TextField в View.swf отличатся от класса в приложении?

Ivan Dembicki

unread,
Oct 24, 2014, 9:24:21 AM10/24/14
to ruFlash
Привет!

private const plusButton:SimpleButton =
moneyBarView.getChildByName("plus_btn") as SimpleButton;

Дает Error #1009: Cannot access a property or method of a null object reference.

Но суть проблемы лежит в другом.
До этого всё прекрасно работало.
Этот класс не изменялся. Не изменялся и swf.
Я сидел, рефакторил в другом месте.

Да, есть ли в IDEA возможность откатить проект?
Локальная история у него ведётся. Откатить один as файл можно.
А как все?


24 октября 2014 г., 15:14 пользователь Pilipenko Dima
<dim...@gmail.com> написал:
> Чтобы настроить другие параметры, перейдите по ссылке
> https://groups.google.com/d/optout.

Ivan Dembicki

unread,
Oct 24, 2014, 9:25:38 AM10/24/14
to ruFlash
Привет Андрей,

> а не может быть так, что класс TextField в View.swf отличатся от класса в
> приложении?

- Ну раньше то работало.
Да и не только текст поля, но и всё остальное не пашет.

Ivan Dembicki

unread,
Oct 24, 2014, 9:26:33 AM10/24/14
to ruFlash
Да, еще момент:
если закоментить это всё добро, то и в других классах начинает
вылезать это счастье.

Pilipenko Dima

unread,
Oct 24, 2014, 9:28:12 AM10/24/14
to ruf...@googlegroups.com
Лекализировать!1
Попробуй ограничить радиус проблемы, и будет тебе ответ.

Через IDEA не подскажу, но по аналогии c FDT, при таких раскладах, вручную по классам.

Иван, как же без гита то?

24 окт. 2014 г., в 16:24, Ivan Dembicki <ivan.d...@gmail.com> написал(а):

Sergei Egorov

unread,
Oct 24, 2014, 9:28:15 AM10/24/14
to ruf...@googlegroups.com
Чтобы откатить всё - просто жамкай на корневой папке проекта, там тоже есть Local History. А вообще, не использовать VCS - фуфуфу:)

--
--
отменить подписку: ruFlash-u...@googlegroups.com
сообщение в группу: ruF...@googlegroups.com
страница группы: http://groups.google.com/group/ruFlash
правила группы: http://groups.google.com/group/ruFlash/web/rules
на facebook: http://www.facebook.com/home.php?sk=group_163903643627621

---
Вы получили это сообщение, поскольку подписаны на группу ruFlash.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес ruflash+u...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/d/optout.



--
Best regards,
Sergei Egorov

Andrey Vichodcev

unread,
Oct 24, 2014, 9:29:12 AM10/24/14
to ruf...@googlegroups.com
private const moneyBarView:* = new MoneyBarClass() ;
trace(moneyBarView+' '+MoneyBarClass);

что именно потерялось?

Dmitry Bezverkhiy

unread,
Oct 24, 2014, 9:35:01 AM10/24/14
to ruf...@googlegroups.com
Салют.

А какое SDK, используется для компиляции, последнее?
ActionScript compiler 2.0 используете?

Может попробовать скомпилировать, flex compiler и посмотреть, что получится?

--
Дмитрий Безверхий
фронтенд разработчик

Ivan Dembicki

unread,
Oct 24, 2014, 9:57:35 AM10/24/14
to ruFlash
Привет!

> А какое SDK, используется для компиляции, последнее?
> ActionScript compiler 2.0 используете?
>
> Может попробовать скомпилировать, flex compiler и посмотреть, что получится?

Компилю из Идеи используя Flex SDK.

Ivan Dembicki

unread,
Oct 24, 2014, 9:59:37 AM10/24/14
to ruFlash
Кажется, проблема нашупывается.

Возможно, что при рефакторинге пакетов, бьются картинки.
Ну, во всяком случае, обнаружил битые картинки. Большие PNG.
Смотрю дальше.

Ivan Dembicki

unread,
Oct 24, 2014, 10:13:43 AM10/24/14
to ruFlash
Итог:

Проблема не найдена.
Откат позволил вернуться ко времени, когда бага не было.
Дальше постараюсь повнимательней смотреть и чаще компилиться.


24 октября 2014 г., 15:59 пользователь Ivan Dembicki
<ivan.d...@gmail.com> написал:

Konstantin

unread,
Oct 24, 2014, 10:22:54 AM10/24/14
to ruf...@googlegroups.com

Встречался с подобным явлением. Помогало перекомпилить аналог  View.swf

Ivan Dembicki

unread,
Oct 24, 2014, 10:34:15 AM10/24/14
to ruFlash
> Встречался с подобным явлением. Помогало перекомпилить аналог View.swf

- делал это, не помогло.

Ivan Dembicki

unread,
Oct 24, 2014, 10:35:13 AM10/24/14
to ruFlash
Кстати, есть ли у кого хороший FDT?
Я намучился уже с Идеей, не родная она мне.
В личку, если можно.

24 октября 2014 г., 16:33 пользователь Ivan Dembicki
<ivan.d...@gmail.com> написал:
>> Встречался с подобным явлением. Помогало перекомпилить аналог View.swf
>
> - делал это, не помогло.



etc

unread,
Oct 24, 2014, 10:36:29 AM10/24/14
to ruf...@googlegroups.com
Flash Builder :)

Андрей Скорик

unread,
Oct 24, 2014, 11:01:44 AM10/24/14
to ruFlash
Загружается ли что-то во что-то при этом всем. И не имеет ли что-то что загружает это добро в рантайме одноименного класса без потрохов (скорее всего без пакета если речь идет о символе)? 

Ivan Dembicki

unread,
Oct 24, 2014, 12:45:58 PM10/24/14
to ruFlash
Да, сам объект создавался, но без потрохов.

Я вообще после этих шуточек поставил FDT.

Блин, насколько в FDT всё по уму сделано и под Flash заточено!
Idea конечно мощная штучка, но блин, так всё там коряво под Flash
сделано. Ну не родной он им. Не родной.

Вопрос таблетки остается открытым.
Поделитесь плз.

24 октября 2014 г., 17:01 пользователь Андрей Скорик
<andrew...@gmail.com> написал:
> Загружается ли что-то во что-то при этом всем. И не имеет ли что-то что
> загружает это добро в рантайме одноименного класса без потрохов (скорее
> всего без пакета если речь идет о символе)?
>
> --
> --
> отменить подписку: ruFlash-u...@googlegroups.com
> сообщение в группу: ruF...@googlegroups.com
> страница группы: http://groups.google.com/group/ruFlash
> правила группы: http://groups.google.com/group/ruFlash/web/rules
> на facebook: http://www.facebook.com/home.php?sk=group_163903643627621
>
> ---
> Вы получили это сообщение, поскольку подписаны на группу "ruFlash".
> Чтобы отменить подписку на эту группу и больше не получать от нее сообщения,
> отправьте письмо на электронный адрес ruflash+u...@googlegroups.com.
> Чтобы настроить другие параметры, перейдите по ссылке
> https://groups.google.com/d/optout.



Dmitriy Yukhanov

unread,
Oct 24, 2014, 1:02:23 PM10/24/14
to ruf...@googlegroups.com
Иван, я много лет работаю с as3 кодом исключительно во FlashDevelop, и очень им доволен. Если его ещё не доводилось пробовать - рекомендую, он бесплатен и даже может понравиться.

Best Regards, Dmitriy Yukhanov
--
Twitter: @dmitriy_focus
Asset Store: j.mp/assetstore_focus

24 октября 2014 г., 20:45 пользователь Ivan Dembicki <ivan.d...@gmail.com> написал:

deep

unread,
Oct 24, 2014, 5:03:55 PM10/24/14
to ruf...@googlegroups.com, ruF...@googlegroups.com
Хоть и с опозданием. 

Но почему никто не посоветовал банальный дебаг, в нем как на ладони можно было бы глянуть весь moneyBarView и все его поля? Почему никто не вспомнил, что можно вскрыть флешку и глянуть, что там реально есть??
describeType на худой конец. И самое главное, Sprite не димаческий, а значит money_txt там точно есть как field или вы получите undefined. Верните туда MovieClip и скорее всего заработает

deep

unread,
Oct 24, 2014, 5:05:47 PM10/24/14
to ruf...@googlegroups.com, ruF...@googlegroups.com
Ну и в защиту Идеи. Она просто прекрасна, с ней надо немного попривыкнуть в начале, но потом наступит блаженство. Очень рекомендую.

Dmitriy Yukhanov

unread,
Oct 24, 2014, 7:06:07 PM10/24/14
to ruf...@googlegroups.com
Вскрывать флэшку смысла нет, т.к. Иван говорил о том, что она не менялась (т.е. соответствующее поле там есть).
Отсутсвие динамичности у спрайта тут тоже не должно мешать, т.к. в не dynamic классах нельзя динамически объявлять новые свойства, но с ними вполне можно работать так, как это сделано в представленном Иваном примере, если свойство объявлено изначально (т.е., если в спрайте изначально существует текстовое поле с заданным instance name).

Так-то понятное дело, я бы первым делом проверил как в спрайт кастится инстанс embedded класса и потом пробежался бы по всем его детям, чтобы убедиться, что то текстовое поле существует.
Но, судя по всему, все эти советы уже неактуальны.

Best Regards, Dmitriy Yukhanov
--
Twitter: @dmitriy_focus
Asset Store: j.mp/assetstore_focus

25 октября 2014 г., 1:05 пользователь deep <system...@gmail.com> написал:
Ну и в защиту Идеи. Она просто прекрасна, с ней надо немного попривыкнуть в начале, но потом наступит блаженство. Очень рекомендую.

--
--
отменить подписку: ruFlash-u...@googlegroups.com
сообщение в группу: ruF...@googlegroups.com
страница группы: http://groups.google.com/group/ruFlash
правила группы: http://groups.google.com/group/ruFlash/web/rules
на facebook: http://www.facebook.com/home.php?sk=group_163903643627621

---
Вы получили это сообщение, поскольку подписаны на группу "ruFlash".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес ruflash+u...@googlegroups.com.

Ivan Dembicki

unread,
Oct 25, 2014, 3:42:00 AM10/25/14
to ruFlash
Привет deep!

> Но почему никто не посоветовал банальный дебаг, в нем как на ладони можно
> было бы глянуть весь moneyBarView и все его поля? Почему никто не вспомнил,
> что можно вскрыть флешку и глянуть, что там реально есть??

- Это довольно бессмысленное занятие ровно потому, что причина
очевидно не в swf.
Если его отключить, то начинают ругаться другие swf, которые до этого
тоже не ругались и не трогались.

Андрей Скорик

unread,
Oct 25, 2014, 11:28:44 AM10/25/14
to ruFlash
:)) почему никто. почему никто. потому что никто не является Кэпом и очевидных вещей предлагать не будет.

25 октября 2014 г., 11:41 пользователь Ivan Dembicki <ivan.d...@gmail.com> написал:
--
--
отменить подписку: ruFlash-u...@googlegroups.com
сообщение в группу: ruF...@googlegroups.com
страница группы: http://groups.google.com/group/ruFlash
правила группы: http://groups.google.com/group/ruFlash/web/rules
на facebook: http://www.facebook.com/home.php?sk=group_163903643627621

---
Вы получили это сообщение, поскольку подписаны на группу ruFlash.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес ruflash+u...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/d/optout.



--
С уважением, Скорик Андрей. andrew...@gmail.com

Андрей Скорик

unread,
Oct 25, 2014, 11:35:11 AM10/25/14
to ruFlash
Иван, а таки есть там какая-то загрузка друг в друга?

25 октября 2014 г., 19:28 пользователь Андрей Скорик <andrew...@gmail.com> написал:

Ivan Dembicki

unread,
Oct 25, 2014, 12:14:21 PM10/25/14
to ruFlash
Привет Андрей!

> Иван, а таки есть там какая-то загрузка друг в друга?

- нет. Там вообще нет загрузки никакой.
Reply all
Reply to author
Forward
0 new messages