2012-01-06 5 views
0

Я делаю игру защиты от вспышки. У меня есть клип под названием «башни». В этом клипе вы можете найти все типы башни (огонь, яд, лед и т. Д.). Я в основном делаю gotoAndStop("tower type here"), чтобы выбрать правильную башню. Все эти «типы башни» также являются клипами, и в этих клипах вы можете найти эволюции этого типа башни (каждый раз, когда вы «обновляете» свою башню, ее внешний вид меняется ... это эволюция). Каждая эволюция - это клип, в этом клипе есть звук (тот, который я должен играть, когда башня стреляет в противника). Я делаю gotoAndPlay("shoot").Вспышка: звуки воспроизводятся, когда они не должны

Проблема в том, что мы можем слышать башни, хотя есть stop() и не должно быть никакого звука. Я заметил кое-что. Если я удалю звук первой эволюции каждого типа башни, все будет хорошо, я надену некоторые карты на карту, обновляю их до второй эволюции, и я могу услышать звук при съемке. Я заметил что-то еще: мне не нужно удалять звук первой башни в клипе «башни», то же самое с последней башней, они отлично работают. И это действительно потому, что они первыми и последними. Например: огонь - моя первая башня, лед - вторая башня. Огонь отлично работает, лед не является. Если я их поменяю, то лед работает нормально, и огонь не работает. Работают только первая башня и последняя башня.

Это заставляет меня думать, что моя иерархия клипов слишком сложна, чтобы содержать звуки, слишком сложные для вспышки. Кроме того, я смешиваю графику и звуки в одном клипе, должен ли я создавать клип, содержащий только звуки?

Это оставляет меня с wtf лицом. Я серьезно не понимаю, что происходит. Если это неясно, просто попросите более подробную информацию. Спасибо.

+0

иногда, когда она становится слишком сложной, оставьте график позади и смотреть в реализации игры на основе классов (с графическими активами и звуки, исходящие из FLA-библиотеки) ... – pkyeck

ответ

0

Из того, что вы сказали, я полагаю, вы перетаскиваете и издаете звуки прямо в MovieClips. Это не хорошая идея, это должно быть болью для управления.

Вместо я рекомендую один из следующих вариантов: 1) Когда башня построена, или нажимал, или пожар или любой другой функции вызова PlaySound, который играет соответствующий звуковой файл:

function playSound():void { 
    var mySound:Sound = new Sound(); 
    mySound.load(new URLRequest("towerFireSound.mp3")); 
    mySound.play(); 
} 

2) Если вы не делаете хотите использовать внешний файл, вы можете импортировать звук в библиотеку и проверить «Экспорт для ActionScript» в свойствах этого звука. Чем просто играть, как этот

function playSound():void { 
    var mySound:Sound = new TowerFireSound(); 
    mySound.play(); 
} 
+0

Спасибо, сейчас работает. Это гораздо удобнее. –

Смежные вопросы