如何使用Actionscript3 Audio发布SWF?

时间:2016-03-22 22:46:58

标签: actionscript-3 flash audio adobe swfupload

我需要将AS3分配发布到博客。我的文件使用与fla和swf文件保存在同一目录中的四个mp3文件。当我测试电影&#34 ;;它在Adobe Animate CC中工作正常。但是当我把它发布到我的博客时,没有音乐可以听见。我假设这是因为音频文件可以在我的笔记本电脑上访问,但不能访问互联网。

任何人都知道如何解决这个问题?

这是我将笔记本电脑上的歌曲附加到我的fla文件的代码:

import flash.events.Event; 
import flash.media.Sound; 
import flash.net.URLRequest; 

var v:Sound = new Sound(); 
v.addEventListener(Event.COMPLETE, onSoundLoaded4); 
var req4:URLRequest = new URLRequest("excited.mp3"); 
v.load(req4); 

function onSoundLoaded4(event:Event):void 
{ 
var localSound4:Sound = event.target as Sound; 
localSound4.play(); 
}

2 个答案:

答案 0 :(得分:0)

你需要在ftp上传你的mp3文件。现在的问题是你应该在哪里上传。让我们举个例子

假设你有一个位于htdocs / assets / swf / music.swf的swf,以及一个从位于htdocs / music.html的html加载的swf。在这种情况下,您必须在htdocs目录中上传您的mp3。

一个复杂的例子,你的swf从一个目录加载mp3,例如mymusic / music.mp3,在这种情况下你的mp3必须上传到htdocs / mymusic / music.mp3。

所以mp3的所有路径必须相对于加载swf的html文件,而不是相对于swf位置的相对,除非你想直接在浏览器中加载swf而不使用html。

答案 1 :(得分:0)

作为替代解决方案,您可以将MP3声明为FLA的资源,将它们分配到SWF中,为它们分配类名(基类型为Sound),然后创建这些类的实例而不是加载来自其他地方。缺点是您的SWF将变得更大。一个示例(FlashDevelop语法,用于演示通过代码嵌入。要嵌入Adobe Flash CS,请使用本机机制):

[Embed(source = '../../lib/intro.mp3')] // relative path from AS to MP3
private static const Intro:Class;
...
var intro:Sound=new Intro();
intro.play();