Som standard kan Flash spela WAV-filer när de finns i biblioteket, men inte när du laddar externa filer. Läs igenom denna Snabba Tips för att lära dig hur du spelar dem.
Vi använder vanliga metoder för att begära och ladda den önskade WAV-filen och använda en fantastisk tredjepartsklass för att spela den laddade filen.
AS3WavSound (AWS) är en utmärkt ActionScript-klass som kan spela externt laddade vågfiler, gå till sin Google Kod-sida och få källkoden.
Nu var denna klass inte exakt skapad för extern wav-uppspelning. Här är en kort beskrivning från författaren:
Flex SDK stödjer inte inbyggt (inbäddad) .wav-filer. Så långt utvecklare arbetade runt detta med hjälp av fula hackar (genererar swf bytedata för att lura Flash Player). Inte längre. AWS i smalaste mening är helt enkelt en enda as3-klass. Det utökar den generiska ljudklassen i Flash och lägger till stöd för att spela upp WAVE-data. Du behöver inte den här ljudklassen om du arbetar med Flash IDE eller Flex Builder, eftersom de konverterar .wav-data direkt till Ljudobjekt. SDK-kompilatorn med öppen källkod stöder dock inte den här funktionen. Men det gör det nu!
Flash IDE konverterar verkligen wav-data till ljudobjekt, men bara för inbäddade filer (importeras till biblioteket); Om du vill spela en extern wav-fil, använd följande metod?
Förbered en ny ActionScript-klass och skriv följande kod:
paket import flash.display.Sprite; importera flash.events.MouseEvent; importera flash.net.URLLoader; importera flash.net.URLRequest; importera flash.events.Event; importera flash.utils.ByteArray; importera flash.media.Sound; importera org.as3wavsound.WavSound; importera org.as3wavsound.WavSoundChannel; offentliga slutklassen Huvudet sträcker sig Sprite public final function Main (): void playB.addEventListener (MouseEvent.MOUSE_UP, loadWav); privat slutlig funktion loadWav (e: MouseEvent): void var urlRequest: URLRequest = ny URLRequest ('Phone.wav'); var wav: URLLoader = ny URLLoader (); wav.dataFormat = 'binär'; wav.load (urlRequest); wav.addEventListener (Event.COMPLETE, playWav); privat slutlig funktion playWav (e: Event): void var tts: WavSound = ny WavSound (e.target.data som ByteArray); tts.play ();
Detta är grundläggande kod för att ladda en extern fil i AS3, URLLoader
klassen använder URLRequest
för att bestämma läget för filen som ska laddas (vilken laddas som binär data) och när den är färdig används WavSound-klassen för att spela upp ljudet.
Kolla in demo för ett fungerande exempel med koden.
Tänk på att den här klassen inte spelar upp varje vågljud: filen måste ha en samplingsfrekvens på 44100, 22050 eller 11025 Hz och biträttsprovdata på 8 eller 16.
Använd den här klassen för att spela dina externa WAV-filer.
Jag hoppas att du gillade den här handledningen, tack för att du läste!