Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Свойство компонента типа Object (http://www.flasher.ru/forum/showthread.php?t=87653)

tnikolai 09.11.2006 12:34

Свойство компонента типа Object
 
Так как у моего компонента очень много свойств, использую св-ва типа Object, которые могут внутри себя содержать много отдельных св-в.

Однако, если в св-во типа Object добавляю новое свойство, в имеющиехся экземплярах компонента это добавление не видно.
Что делать???

В Component Definition в списке parameters всё видно. Если пользуюсь флажками Parameters are locked in instances и Display in components panel, это приводит к зависанию и вылету Flash или к порче .fla файла при сохранении.

Приходится каждый раз удалять и создавать заново все экземпляры компонента и задавать кучу свойств.

Dendroid 09.11.2006 19:37

Такие вопросы должны всегда сопровождаться примером кода и информацией о номере плеера.
Видимо, проблема в непонимании механизмов работы прототипов, попробуйте создать свой класс, расширяющий object.

tnikolai 09.11.2006 20:42

Вложений: 1
Немного уточню:

Использую Flash 8.

Допустим у меня есть класс компонента:
Код:

class compon extends MovieClip {
  [Inspectable(type="Object",defaultValue="a:100,b:100")]
  var x:Object;
}

далее создаю экземпляр компонента, допустим 'aaa' и задаю ему в Component Inspector св-во х равным {a:35,b:66}

Если в последствии мне понадобится ещё и 'c', и я переделаю:
Код:

[Inspectable(type="Object",defaultValue="a:100,b:100,c:100")]
То для 'aaa' в Component Inspector как показывалось, что x={a:35,b:66},
так и показывается. А надо {a:35,b:66,c:100}

Если x взять не типа Object, а например Tx:
Код:

class Tx extends Object{
  a:Number;
  b:Number;
  c:Number;
}

то же самое.

Во вложенном примере есть 2 экземпляра компонента: 'aaa', созданный до добавления члена 'c'; и 'bbb' - после добавления. Как сделать, чтоб в 'aaa' добавилось 'c'?

Вначале всё было без объектов, и в компоненте сидело более 100 св-в, но это было слишком много и в них постоянно путались.
Потом разбили их на группы и оформили их через св-во типа Object.
Получилось примерно 10 таких св-в - объектов по 10-15 членов в каждом, и 10 экземпляров этого компонента в проекте.
Всё бы хорошо, но когда надо в к-л св-во добавить новый член, начинается дурдом: везде приходится в Component Definition удалять изменившееся св-во, играться с флажками Parameters are locked in instances и Display in components panel. При этом иногда зависанет и вылетает Flash или после сохранения .fla файл оказывается испорченным.
Кошмар!

iNils 09.11.2006 20:44

tnikolai, прочтите 3-ий пункт http://www.flasher.ru/forum/showthread.php?t=79862 и приведите свой код в надлежащий вид.


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

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