2014-04-08 2 views
0

Я использую Flash CC. Я нарисовал 7 прямоугольников, используя инструмент Rectangle Tool. Затем я преобразовал 7 в один клип (нажав F8).Iterate Shape children - Flash/as3

Проблема: Я хочу, чтобы иметь возможность перебирать эти фигуры и перемещать их по отдельности. Однако 7 прямоугольников, кажется, инкапсулированы в ОДНУ форму, и я не могу получить к ним доступ.? Если я использую .numChildren в клипе, он возвращает 1. Если я использую .getChildAt («ничего> 0»), это исключение для нулевой ссылки.

Пожалуйста, помогите, Я не понимаю, как это так сложно.

Я искал возраст, чтобы найти решение этого и для жизни меня не могу. Спасибо заранее.

(P.s) Создание экземпляров прямоугольников в коде работает, но мне нужно сделать это через Flash CC, так как я буду импортировать материал для манипуляции художником.

ответ

0

Ваш лучший выбор - сделать каждую фигуру в созданном клипе клипом. В Flash зайдите в свой сделанный MovieClip (я назову его containerMC для упрощения понимания) и сделайте каждую фигуру MovieClip, нажав F8. Вы также можете указать им имена экземпляров, если хотите, просто убедитесь, что они уникальны.

Тогда ваш контейнерMC вернет значение numChildren 7 в вашем случае. Вы можете перемещать/получать доступ к своим фигурам в контейнереMC через getChildAt() или используя имена своих экземпляров, которые вы предоставили через containerMC.instance1 или containerMC ["instance1"].

+0

Это может быть ответ, который я искал, я больше не работаю, поэтому я проверю это утром .. Я предполагаю, что какой-то процесс дозирования продолжается для оптимизации/поддержки все графики на экране? Считаете ли вы, что это повлияет на производительность, если я конвертирую все это в клипы? Еще раз спасибо! – Zze

+0

Не будет заметной разницы в производительности, так как при создании файла movieClip будет добавлено всего несколько сотен байт (даже если вы сделаете его Sprite, если он не имеет анимации, но хочет поддерживать интерактивность). Flash делает плохую работу по оптимизации вещей, поэтому, в конце концов, вам все равно нужно ее протестировать, но я не понимаю, как это будет бутылочная шее. Это больше о том, как вы обрабатываете графику, в конце концов вы можете просто сделать их растровыми изображениями или использовать copyPixels() для достижения максимальной производительности. Если вы хотите использовать графический процессор для рендеринга, вам, вероятно, придется использовать Starling. –

+0

Во-вторых, это, вероятно, не сработает, поскольку я только смогу изменить все эти фигуры в коде на клипы, как в проекте, над которым я работаю, будет буквально сотни, если не больше ... – Zze