Ситуация / вопрос
Вот такая ситуация.
В Flash Professional у меня есть MovieClip, и у этого клипа есть дочерние элементы. Скажем, родительский клип - это ночное небо, а дочерние - это разные экземпляры звездного MovieClip, который анимируется в цикле. Все это компилируется в NightSky.swc, который я использую в Flash Builder как часть более крупного проекта.
В Flash Pro я размещаю дочерние клипы с высокой точностью. Оттуда я хочу присвоить этим «звездам» свойства. Скажем, я хочу назначить "galaxyId" и "isRedGiant", но (и это ключевой) я хочу отредактировать эти свойства в Flash Professional и сделать эти значения доступными в Flex. . Как мне это сделать?
Пример
Например, используя Flash Pro, я помещаю 6 звезд на небе, даю им галактический идентификатор «MilkyWay» и назначаю 3 из них красными гигантами. Затем я компилирую SWC и перехожу к гибкости. В Flex (Flash Builder) у меня есть некоторая логика по следующим направлениям:
public function showRedPulse():void {
//psuedo-code just as an example:
for each Child in the Night Sky
if Child is in the Milky Way
and if Child is a Red Giant
Then, gotoAndPlay("redPulse")
}
По сути, мне нужно получить доступ к свойствам в Flex, но мне нужно установить их во Flash.
Предыдущее решение
В порядке. Я делал это в CS4 около 2 лет, но в CS5 это очень глючно. Поэтому я ищу новый подход. Раньше я создал класс ActionScript (расширяющий UIMovieClip) и добавил метатег Inspectable к полям, которые мне нужно было видеть во Flash, например:
private var _galaxyId:String;
[Inspectable(name="galaxyId", type=String, defaultValue="MilkyWay")]
public function set galaxyId(value:String):void {
_galaxyId = value;
}
Затем, в flash professional, я бы попросил «звезду» использовать класс actionscript в качестве базового класса. Затем я бы щелкнул правой кнопкой мыши звезду в библиотеке и отредактировал определение компонента, указав его на тот же класс. Как только я это сделаю, все проверяемые свойства отобразятся в инспекторе компонентов Flash.
Резюме
Мой предыдущий подход прекрасно работал в течение многих лет. Сейчас в CS5 очень глючит, работает только иногда! Я полностью застрял, не могу двигаться дальше по своему проекту, и я подумываю полностью отказаться от Flash Pro и вместо этого попробовать Flash Catalyst.
Мне просто нужно создать объекты во Flash, которые я могу использовать в Flex (3.6, а не Flex 4). Мне нужно, чтобы у этих объектов Flash были свойства, которые я могу редактировать во Flash и получать доступ в коде Flex.
Как еще я могу подойти к этому? Это не должно быть так сложно.