Динамично прикрепване на звук. Метод AttachSound ()

Методът attachMovie (), с който вече сме запознати, се използва за програмно плъзгане и пускане на екземпляр от клип от библиотеката върху времевата линия на съществуващ клип. Методът attachSound () от класа Sound изпълнява подобни функции. Тя ви позволява да включите звук от библиотеката в аудио компонента на клип.

Преди да използвате метода attachSound (), на звука трябва да бъде присвоен програмен идентификатор за експортиране. Това се прави по същия начин, както при клиповете или шрифтовете.

1. Отворете библиотеката (F11), намерете реда на желания елемент и щракнете с десния бутон върху него. В контекстното меню, което се показва, изберете елемента Свързване. Това ще отвори прозореца Свойства на връзката.

2. Поставете отметка в квадратчето Експортиране за ActionScript. Това ще направи идентификационния низ на разположение. Въведете текста на идентификатора за експортиране в него. Това може да бъде всяка последователност от символи.

Единственото ограничение е, че идентификаторът трябва да е уникален.

3. Ако използвате вътрешен предварително зареждащ файл, препоръчително е да деактивирате зареждането на звука преди първия кадър. За да направите това, премахнете отметката от квадратчето Експортиране в първия кадър.
Синтаксисът на метода attachSound () е много по-прост от този на метода attachMovie ():

• snd - обект от класа Sound, чрез който ще бъде осъществен достъп до прикачения звук.


Само един динамично прикачен звук може да бъде свързан с един звуков обект. Когато повторно приложите метода attachSound () към него, звукът, свързан с него, ще бъде заменен (ако обаче е бил възпроизведен първоначално прикаченият звук, възпроизвеждането му няма да бъде прекъснато);

• "Id" - низ с идентификатора на софтуерния експорт на необходимия звук.

Например, ето код, който "влачи" звук върху основната времева диаграма и след това започва да го възпроизвежда:

var звук: Sound = нов звук (_root);
sound.attachSound ("snd");
sound.start ();

Импортираният метод за звук attachSound () се позиционира (условно) върху времевата диаграма, към която принадлежи съответният обект от класа Sound. Ако обектът на класа Sound е глобален (т.е. той е създаден без предаване на параметъра на конструктора), тогава звукът се поставя на времевата диаграма, на рамката на която се намира кодът.

Не е странно, че само един звук може да бъде свързан с един обект от клас Sound в даден момент, прикрепен по метода attachSound (). В противен случай би било невъзможно да се въведат в езика такива елементи като например свойството duration (връща дължината на звуковия фрагмент) или метода start () (започва възпроизвеждането на звука).


Всички тези елементи могат да бъдат приложени само към един специфичен звук. Ако няколко програмно свързани звука биха могли да бъдат свързани с обект от класа Sound, тогава при използване на редица методи и свойства често би възникнала ситуация на неяснота. Между другото, по същата причина повечето от свойствата и методите на класа Sound не се прилагат за звуци, които са ръчно поставени на времевата диаграма. Просто няма ограничение за броя на звуците, поставени върху кадрите, и тези методи и свойства могат да се използват само по отношение на един конкретен звук.

Повечето методи, свойства и събития от класа Sound (с изключение на attachSound (), loadSound (), get-BytesLoaded (), getBytesTotal () и onLoad) могат да бъдат разделени на две групи. Първият включва инструменти, които незабавно засягат всички звуци, свързани с даден клип. Например методът setVolume () променя силата на звука на всички звуци, свързани с клипа (т.е. както ръчно прикачени, така и импортирани динамично чрез този обект от класа Sound или чрез други обекти, отнасящи се до този клип). Вторият (по-многобройни) ) групата включва инструменти, които могат да се използват само във връзка с динамично прикачен (използвайки звука attachSound () или loadSound ()).


Например свойството position ви позволява да знаете колко от звука вече е възпроизведен. Съответно възможностите за програмно управление на динамично прикачени звуци са много по-широки. Ясното разбиране на разликите между инструментите от клас Sound, принадлежащи към различни групи, е важно условие за ефективното им използване. По своя тип звуците, прикрепени с помощта на метода attachSound (), разбира се се управляват от събития, т.е. процесът на възпроизвеждането им не зависи по никакъв начин от местоположението на главата за възпроизвеждане на времевата линия или от присъствието на други възпроизвеждане на звуци. Можете например да постигнете ехо ефект, като започнете възпроизвеждането на един и същ звук няколко пъти подред след определен период от време. Важна разлика между обичайните звуци за събития и софтуерните звуци е. че последните не са обвързани с нито една рамка. Можете да започнете възпроизвеждането им от всеки кадър, който се играе след кадъра, съдържащ кода, с attachSound ().