|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Как осуществить доступ к контенту в "[Embed(source =" ?
В АС3 я полный чайник, поэтому заранее прошу снисхождений
Итак. Работаю в FB. Есть необходимость встроить в проект звуки. Куча мелких звуков на всякие там открыть-закрыть окно и прочее. Как я понимаю, в компиленный MAIN.SWF на выходе ФлэшБилдера можно встраивать внешние SWF. Судя по тому, что вес MAIN увеличивается, встраивание происходит. Как-то. Во flash IDE создаю AS3 проект, кидаю в него свои звуки, прописываю им в linkage SND1, SND2, ... SNDx В ФБ в коде пишу: И вот далее - как же мне теперь сделать var snd:Sound = new ( SND1 )(); ? То есть как зарегистрировать этот встроенный контент для доступа? |
|
|||||
__________________
:) |
|
|||||
Немного дополню:
[Embed(source="library.swf", symbol="НазваниеСимволаЗвука(его linkage класса)")] private var AssetClass:Class; потом:
__________________
Я мало чего умею, но зато хорошо умею учиться... Последний раз редактировалось HardCoder; 14.03.2012 в 14:16. |
|
|||||
Ага, а с учетом того, что "его linkage класса" там допустим 100 штук - для каждого прописать?
|
|
|||||
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.media.Sound; import flash.system.ApplicationDomain; import flash.utils.ByteArray; public class TestSound extends Sprite { [Embed(source = "../assets/soundFork.swf", mimeType = 'application/octet-stream')] private var _soundFork:Class; private var _appDomain:ApplicationDomain; public function TestSound() { super(); var ba:ByteArray = new _soundFork(); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded); loader.loadBytes(ba); } private function onLoaded(event:Event):void { var loader:Loader = event.currentTarget.loader; _appDomain = loader.contentLoaderInfo.applicationDomain; getSound("SND1").play(); getSound("SND2").play(); } private function getSound(name:String):Sound { if(_appDomain.hasDefinition(name)) { var sc:Class = _appDomain.getDefinition(name) as Class; var s:Sound = new sc(); return s; } return null; } } }
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. Последний раз редактировалось GBee; 14.03.2012 в 14:27. |
|
|||||
Цитата:
Ещё можно экспортнуть эту же swf в FlashIde как swc, и подключить к проекту её как external, тогда будет и статическая типизация и всё хорошо. ТОлько смысла особого эмбеддить swf и использовать внешнюю swc нету. Я так делал когда в рантайме подгружал swf и классы которые в ней есть объявлялись через external swc.
__________________
:) |
|
|||||
ОГРОМНЕЙШЕЕ ВСЕМ спасибо!
|
Часовой пояс GMT +4, время: 10:27. |
|
« Предыдущая тема | Следующая тема » |
|
|