![]() |
Привязка звука к событиям onEnerFrame
Имеется мувик, вся анимация сделана полностью на as с помощью события onEnterFrame ...
Требуется вставить в разных местах разные звуковые фрагменты .. Вставляю прямо в код с помощью attachSound, при этом естесственно при каждом переходе кадра звук вызывается снова и накладывется сам на себя .. Что придумать ? Привязать звук нужно именно к событиям, генерируемым скриптом .. |
проверять, звучит ли этот звук? если да, то либо выключить его, чтобы только второй звучал, либо вообще не включать во второй раз.
|
Вложений: 1
а такой вариант подойдет?
|
Нормальный такой вариант ))
Правда я читал, что скрипты на клипы вешать не рекомендуется, то есть весь скрипт в одном месте писать лучше, на первом кадре первого слоя ... а что это за параметры у start и stop ? которые 0,1 и 1,0 ? я так понял на них все и замешано .. |
Привет!
Если нельзя, а сильно хочется, то можно! Это относительно скриптов. И, второе, не в обиду сказаное - научись работать с ХЭЛПом Смотри, что там написано Sound.start Доступность Flash Player 5. Синтаксис mySound.start([secondOffset, loop]) Параметры secondOffset Необязательный параметр, который позволит Вам начать проигрывание звука с указанной точки. Например, если у Вас есть 30-и секундный звук и Вы хотите, чтобы он начал играть посредине, укажите 15 для параметра secondOffset. Звук не остановиться на 15 секунд, а сразу начнет играть с 15-и секундной метки. loop Необязательный параметр, который позволит Вам указать, сколько раз нужно проиграть звук в цикле. Если б сразу прочитал, то не получил дубляжей звука. Успехов. :) |
Ок, сажусь за изучение хелпа ..
А вообще вот мой скрипт .. Почему не работает спрашивается ?? // Задаю переменную для проверки играет ли звук var p:Boolean = false; // Запускаю 1-й звук var s1:Sound = new Sound(h); s1.attachSound("s1"); s1.start(); // Пошло движение объекта onEnterFrame = function () { ob._x--; // Когда объект доезжает до нужной точки останавливаю 1-й и запускаю 2-й, причем 2-й проверяю, //чтоб не запускался еще раз если он уже играет if (ob._x<100) { s1.stop(); if (p=false) { s2.attachSound("s2"); s2.start(); p = true; } else { s2.stop(); } } }; |
Скопировал твой скрипт один в один - все равно если он вставляется до onEnterFrame воспроизводится один раз как и положено ..
А если после - зацикливается .. Разница только в том, что у тебя оно висит на клипе (на событии onClipEvent (enterFrame)), а у меня на кадре .. ================================================== Soun = new Sound(); Soun.attachSound("s1"); Soun.start(); onEnterFrame = function () { ob._x--; if (ob._x<100) { Soun.attachSound("s2"); Soun.start(); } }; |
var p:Boolean = false;
// Запускаю 1-й звук var s1:Sound = new Sound(h); // лучше var s1:Sound = new Sound(); тип параметра должен быть Number s1.attachSound("s1"); s1.start(); // Пошло движение объекта onEnterFrame = function () { ob._x--; // Когда объект доезжает до нужной точки останавливаю 1-й и запускаю 2-й, причем 2-й проверяю, //чтоб не запускался еще раз если он уже играет if (ob._x<100) { s1.stop(); if (p=false) { //if (p==false) { оператор сравнения ==, а не присвоения = var s2:Sound = new Sound(p);// Аналогично Sound(h); s2.attachSound("s2"); s2.start(); p = true; } else { s2.stop(); } } };[/quote] А второй звук просто не успеет проиграться: р присвоена ИСТИНА при выполнении неравенства ob._x<100, а onEnterFrame сработает быстрее, чем проиграется второй звук. А тут его и стопишь: s2.stop();!!! Далее, в s1.start(); нет параметров. Если звук короткий, то проиграет всего раз |
Цитата:
|
Вложений: 1
Исходник бы дал с удовольствием, но в нем картинок 10 штук и весит он 6 метров ..
А без картинок скрипт не работает, на них все условия завязаны .. Могу только дать полный текст скрипта ... Цитата:
Цитата:
Боюсь показаться назойливым, но ситуация у меня такая .. Нужно сделать ролик именно сегодня, причем не важно что за код у него внутри - лишь бы работал ... А разбирать код по косточкам, когда над душой стоят и требуют результата - не сахар .. Так что если не трудно - объясни .. |
| Часовой пояс GMT +4, время: 21:16. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.