Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   как запускать звук из подгружаемой библиотеке (.swf) (http://www.flasher.ru/forum/showthread.php?t=137506)

HN4E7O 15.03.2010 15:30

как запускать звук из подгружаемой библиотеке (.swf)
 
Делаю игру во FLEX на нескольких языках. Так как звуков много и некоторые из них довольно большого размера, то моя идея создать для каждого языка swf cо звуками в билиотеке,загрузить эту swf изначально, и при необходимости запускать звук из библиотеки.

Перерыл гугль и флэшер, но так и не нашёл каким образом вызывать звук из подгружаемой библиотеке во флексе.

Помогите чем можете... пжалуйста !!!

wvxvw 15.03.2010 16:02

Звyки линкуются к классам, соответственно:
Код AS3:

(new (myLoadedSWF.loaderInfo
    .applicationDomain.getDefinition(
    "SomeSoundClass") as Class)()).play();


HN4E7O 15.03.2010 16:25

Цитата:

Сообщение от wvxvw (Сообщение 893261)
Звыки линкуются к классам, соответственно:
Код AS3:

(new (myLoadedSWF.loaderInfo
    .applicationDomain.getDefinition(
    "SomeSoundClass") as Class)()).play();



не знаю правильно я вас понял или нет, но так не работает
Код AS1/AS2:

 
public var soundLoader:Loader = new Loader();
soundLoader.load("library.swf");
soundLoader.addEventListener(Event.COMPLETE, onSoundInit);
 
private function onSoundInit(e:Event){
  var miSound:Class = new (soundLoader.loaderInfo.applicationDomain.getDefinition("Sound_1") as Class)(); // Sound_1    название класса в библиотек тип flash.media.Sound
  var sound:Sound = new miSound() as Sound;
  sound.play();
}

я вас правильно понял ?

wvxvw 15.03.2010 16:26

var miSound:Class - > var miSound:Sound
Почитайте про ApplicationDomain и что он делает.

HN4E7O 15.03.2010 16:55

Цитата:

Сообщение от wvxvw (Сообщение 893273)
var miSound:Class - > var miSound:Sound
Почитайте про ApplicationDomain и что он делает.

почитал.. три раза... и вроде фсё понятно

пробую проверить наличие класса и подгружаемом клипе и не находит...
Код AS1/AS2:

trace(loadinfo.applicationDomain.hasDefinition("Sound_1")+"" )//возвращает false

но он там есть.. в самом клипе пробую
Код AS1/AS2:

var sound_1:Sound_1 = new Sound_1();
sound_1.play();

и работает, как сам по себе так и во флексе...
не пойму где туплю :confused:

wvxvw 15.03.2010 21:24

Что такое loadinfo? Я так понимаю, должно быть loaderInfo? А вы уверены, что у того объекта loaderInfo получили? А уверены, что тот ApplicationDomain откуда вы пытаетесь получить класс разрешает вам это сделать? А написали ли полное имя класса?


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

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