![]() |
Проблемы с addChild, глюк АS3?
Доброго времени суток всем зашедшим в топик!
Суть: поясню на пальцах, есть флешка в несколько кадров, в каждом кадре есть свои динамические текстовые поля, которые обновляются лишь при входе в кадр (в зависимости от выбраного в флешке языка). В первом кадре пишу функцию, которая вытягивает из библиотеки 1 мувиклип создает его экземпляры на сцене с заданными координатами: Код AS3:
Код AS3:
«TypeError: Error #1009: Cannot access a property or method of a null object reference.» Как удалось выяснить экспериментальным путем, (разместил трейсер в том кадре на котором происходит сбой): Код AS3:
Попытки устранить проблему, которые не увенчались успехом: 1) пробовал переименовывать «проблемное» динам. текст. поле; 2) пробовал создать совсем новое динамич. текст. поле с другим шрифтом, кегелем, именем и т.д.; 3) если убрать «проблемное» динам. текст. поле – проблема исчезает вместе с ним, но без него никак. Как то странно получается, что флеш цепляется именно к вновь созданному или же проблемному динам. текстовому полю в том кадре…; 4) если не пользоваться функцией func_ShowTip, то проблема так же не появляется. Буду очень признателен любым мыслям по этому поводу, заранее спасибо! |
Код AS3:
|
Цитата:
"ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller. at flash.display::DisplayObjectContainer/removeChild()" |
а если
Код AS3:
Код AS3:
|
Bletraut, так нельзя, потому что все чайлды helpField'а будут вне области видимости и удалить их будет нельзя. Компилятор будет ругаться на "Обращение несуществующего свойства helpField"
Добавлено через 1 час 36 минут так же опробовал (не помогло): 5) запихнуть текстовое поле в мувиклип 6) переместить текстовое поле на другой слой - флеш всё равно находит его и портит (чудеса конечно) |
Это не верный подход. Не надо распихивать код по разным кадрам. Все время будут возникать подобные ошибки, и ничего удивительного в этом нет. Если уж и писать в кадрах, то только в одном
|
Цитата:
|
В Фотошопе тоже есть таймлайн. Вы забываете, что Флэш — это программа для анимации. Далеко не все инструменты и панели, которые в нем есть, имеют отношение к программированию. В кадрах можно писать код — инструкции таймлайна, типа stop()/play(), gotoAndStop()/gotoAndPlay(), и этим стоит ограничиться. Чем раньше Вы дадите волю своим амбициям и начнете программировать в Классах, тем быстрее выберетесь из подвальной тьмы вот этого конструирования на булавках и изоленте. То, чем Вы сейчас занимаетесь — имитация программирования. При том что, я вижу, Вы понимаете ситуацию, но упрямо сами себя уговариваете надуманными аргументами. Для того, чтобы перейти на Классы, Вам понадобится максимум месяц. Максимум. 4 недели. И все прелести AS3 будут в Ваших руках, всё будет логично и послушно, строго и упорядоченно. Просто представьте себе ПРОГРАММУ Флэш, написанную в кадрах. Со всеми ее окнами, инструментами и возможными состояниями. Это нереально. Вы просто идете не в том направлении и напрасно тратите свое время.
Но выбор конечно за Вами. |
Wolsh золотые слова)
|
Цитата:
Честно говоря, абсолютная правда, как в воду смотрите. Сначала я писал чисто по кадрам (тема топика как раз оттуда), сейчас пишу всё в одном кадре, а для того что бы не путаться в длинных простынях кода разбиваю его по слоям. И да, сейчас уже настало понимание, что покадрового программирования как то не хватает, но и не совсем понимаю прелестей классов, ведь для того что бы сделать равносильную (покадровой) флешку с помощью классов нужно кода написать в три раза больше. Ведь всё что делалось мышей, т.е. создание и размещение объектов по сцене, выставление свойств и т.д. нужно будет подробно описывать кодом, я правильно говорю? Хоть и офтоп, но буду благодарен если натолкнете на нужный источник информации, где бы можно почитать о этом самом "переходе", в особенности, попунктно, о расширении возможностей и привелегиях, если так можно сказать :) |
| Часовой пояс GMT +4, время: 14:15. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.