Нашел как использовать звук, причем никакого шаманства, просто надо быть внимательней
привожу код:
packege game.sounds;
import flash.media.Sound;
class Sound0 extendsSound{}
class NewClass { publicfunctionnew(){ var s:Sound = new Sound0();
s.play(); } }
Как оказалось камень здесь был (была зарыта собака) в том, что класс Sound0 находится в пакейдже game.sounds.
А компилировал библиотеку без этого момента, и когда указал, что имя звука в библиотеке будет game.sounds.Sound0 как оно тут же заработало без лишних вопросов.
Не то слегка. Там написано для максимум 8-й версии, для AS2.0, а мне интересно для 3.0. И ресурсы все-таки внешние файлы.
Не проблема создать библиотеку и приклеить к коду, проблема в получении доступа к содержимому.
В AS2.0 есть у Sound-а метод attachSound, а в 3.0 нет такого, подразумевается что для всех объектов в библиотеке созданы классы.
пытался сделать так:
extern class MySnd extendsSound{}
... var s:Sound = new MySnd();
...
так оно ругается Reference Error#1065 aaa.bbb::MySound is not defined
насколько я понял не находит такого класса
если убираю extern (гдето в статейках видел, только про шрифты)
пишет при попытке проиграть - invalid sound.
можно еще попробовать сделать как в методе attach класса flash.Lib, может получится
---
Werdn ЯR
В AS3 я делал это совсем просто. У меня была старая swf-библиотека со звуками и я использовал её в Flex проекте. Для этого сделал класс SoundLibrary (хотя отдельный класс можно было бы и не делать, мне было просто так удобнее), в который через Embed включил нужные звуки из этой библиотеки:
var msgSound :SoundAsset = new msgSoundCls() as SoundAsset;
... msgSound.play();
Думаю, что в haXe всё это вполне реализуемо, единственная разница в том, что вместо Embed нужно использовать другую технику.
А ссылки я давал больше в смысле того, что там люди что-то писали об ограничениях в работе swfmill со звуковыми файлами, предполагая, что твой вопрос связан с этим. Возможно неправильно понял.
var c:Class<Void> = ApplicationDomain.currentDomain.getDefinition("Sound0"); trace(c); //не могу создать экземпляр класса, хоть и пишет в трейсе [class Sound0] var s:Sound = untyped __new__(c); //Взял из класса flash.Lib //Пишет "test.swf contains invalid data."
Может проблема в звуковом файле?
swfmill его проглатил, флеш 8-й тоже.
---
Werdn ЯR
Нашел как
Нашел как использовать звук, причем никакого шаманства, просто надо быть внимательней
привожу код:
import flash.media.Sound;
class Sound0 extends Sound {}
class NewClass {
public function new() {
var s:Sound = new Sound0();
s.play();
}
}
Как оказалось камень здесь был (была зарыта собака) в том, что класс Sound0 находится в пакейдже game.sounds.
А компилировал библиотеку без этого момента, и когда указал, что имя звука в библиотеке будет game.sounds.Sound0 как оно тут же заработало без лишних вопросов.
---
Werdn ЯR
re:
сам делал это пока только с Flex, с haXe надобности не было.
может быть тебе чем-то помогут эти ветки:
http://lists.motion-twin.com/pipermail/haxe/2006-October/005172.html
http://osflash.org/pipermail/swfmill_osflash.org/2007-April/001263.html
ещё подумалось, а нельзя ли в haXe использовать для этого ресурсы? Сомнительно, но вдруг. )
Не то слегка.
Не то слегка. Там написано для максимум 8-й версии, для AS2.0, а мне интересно для 3.0. И ресурсы все-таки внешние файлы.
Не проблема создать библиотеку и приклеить к коду, проблема в получении доступа к содержимому.
В AS2.0 есть у Sound-а метод attachSound, а в 3.0 нет такого, подразумевается что для всех объектов в библиотеке созданы классы.
пытался сделать так:
...
var s:Sound = new MySnd();
...
так оно ругается
Reference Error #1065 aaa.bbb::MySound is not definedнасколько я понял не находит такого класса
если убираю extern (гдето в статейках видел, только про шрифты)
пишет при попытке проиграть - invalid sound.
можно еще попробовать сделать как в методе attach класса flash.Lib, может получится
---
Werdn ЯR
AS3
В AS3 я делал это совсем просто. У меня была старая swf-библиотека со звуками и я использовал её в Flex проекте. Для этого сделал класс SoundLibrary (хотя отдельный класс можно было бы и не делать, мне было просто так удобнее), в который через Embed включил нужные звуки из этой библиотеки:
private var msgSoundCls :Class;
...
Потом остаётся только сделать что-нибудь типа:
...
msgSound.play();
Думаю, что в haXe всё это вполне реализуемо, единственная разница в том, что вместо Embed нужно использовать другую технику.
А ссылки я давал больше в смысле того, что там люди что-то писали об ограничениях в работе swfmill со звуковыми файлами, предполагая, что твой вопрос связан с этим. Возможно неправильно понял.
Очередная
Очередная попытка провалилась:
trace(c);
//не могу создать экземпляр класса, хоть и пишет в трейсе [class Sound0]
var s:Sound = untyped __new__(c); //Взял из класса flash.Lib
//Пишет "test.swf contains invalid data."
Может проблема в звуковом файле?
swfmill его проглатил, флеш 8-й тоже.
---
Werdn ЯR