PDA

Просмотр полной версии : Вытащить sprite из swf-ки


Vilya21
04.01.2011, 18:46
Здравствуйте.
Есть swf-ка из которой я гружу ресурсы (мувики, звуки).
Можно ли и как загрузить из swf-ки sprite?
Как я понял в настройках экспорта в AS Graphics - это и есть sprite, но его нельзя импортировать, как быть?

NikolyA
04.01.2011, 18:51
если известно инстанс имя, почему бы тебе к нему не обратиться

Vilya21
04.01.2011, 18:58
Нет, инстанс имени нет. Я беру из отдельной swf-ки с помощью getDefinition()

Bgg
04.01.2011, 19:25
Что такое sprite?

Vilya21
04.01.2011, 20:10
класс

Bgg
04.01.2011, 20:15
Возвращает ссылку на объект класса, заданного параметром name. (http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/flash/utils/package.html#getDefinitionByName())

Vilya21
04.01.2011, 20:38
В этом примере возвращается созданный мною же класс. Как быть с внешней swf?

mikhailk
04.01.2011, 20:44
http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/flash/system/ApplicationDomain.html#getDefinition%28%29

пример №1

ключевое:


public function getClass(className:String):Class {
try {
return loader.contentLoaderInfo.applicationDomain.getDefinition(className) as Class;
} catch (e:Error) {
throw new IllegalOperationError(className + " definition not found in " + swfLib);
}
return null;
}

Vilya21
05.01.2011, 12:25
Да, я так и делаю с мувиклипами, предварительно указав в "Export to ActionScript" имя класса. Если экспортирую кнопку - ставлю во Flash'e тип Button, если MovieClip - то тип MovieClip. А как спрайт то поставить?

mikhailk
05.01.2011, 12:41
Я так и не понял, что именно Вы называете спрайтом, но в общем виде так:
- получить из присоединенного swf можно только из библиотеки и только тот класс, который указан явно.
- если есть что-то в библиотеке, чему нельзя указать класс, его нужно обернуть в мувиклип и указать класс ему

Vilya21
05.01.2011, 18:41
В as3 есть класс sprite.
Во Flash я делаю swf-ку, в которой храню все ресурсы - звуки, мувики, кнопки...
Когда я во Flash нажимаю на символ правой кнопкой -> Properties - там есть комбобокс "Type" - тип символа - "Graphics", "MovieClip", "Button". Для анимации я ставлю MovieClip, для кнопки Button, ставлю галочку возле "Export to actionscript" и пишу название класса. Потом с помощью GetDefinition из кода вызываю этот класс. так вот с мувиками, кнопками, звуками - всё понятно. Я предположил что Type:Graphics - это и есть класс Sprite, но тогда он становится не экспортируемым (галочка становится неактивной). Что мне сделать во Flash, чтобы я мог из кода обратиться к классу и создать его экземпляр?
Делал раньше MovieClip, теперь надо немного оптимизировать, для этого неанимированые картинки хочу обозначить как Sprite.

cleptoman
05.01.2011, 18:59
мувиклип ставьте, потом при создании вашего экземпляра класса приведете к спрайту (если ваш класс наследник именно его) или интерфейсу нужному. тут в общем в контексте смотреть надобно.

Добавлено через 6 минут
п.с. кстате при линковке в библиотеке класса, наследуемого от спрайта начиная с CS4 в либе этот мувик показывает как спрайт (цвет зелененький такой) ))

mikhailk
05.01.2011, 20:11
Я предположил что Type:Graphics - это и есть класс Sprite

нет.
это не спрайт.

Vilya21
06.01.2011, 21:27
Ооо, спабо большое!!!