如何使用 Actionscript3 音频发布 SWF?
How to publish SWF with Actionscript3 Audio?
我需要将 AS3 作业发布到博客。我的文件使用四个 mp3 文件保存在与 fla 和 swf 文件相同的目录中。当我 "test movie" 时,它在 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();
}
您需要在 ftp 上上传您的 mp3 文件。现在的问题是你应该上传到哪里。举个例子
假设您有位于 htdocs/assets/swf/music.swf 的 swf,并且从位于 htdocs/music.html 的 html 加载了一个。在这种情况下,您必须将 mp3 上传到 htdocs 目录中。
一个复杂的示例,其中您的 swf 从目录(例如 mymusic/music.mp3)加载 mp3,在这种情况下,您的 mp3 必须上传到 htdocs/mymusic/music.mp3。
所以所有到 mp3 的路径必须相对于 html 文件加载你的 swf,而不是相对于 swf 位置,除非你想直接在浏览器中加载 swf,而不使用 html.
作为替代解决方案,您可以通过将 MP3 声明为 FLA 的资源,将它们嵌入到 SWF 中,为它们分配 class 名称(基本类型将为 Sound
),然后创建实例这些 classes 而不是从其他地方加载它们。缺点是您的 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();
我需要将 AS3 作业发布到博客。我的文件使用四个 mp3 文件保存在与 fla 和 swf 文件相同的目录中。当我 "test movie" 时,它在 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();
}
您需要在 ftp 上上传您的 mp3 文件。现在的问题是你应该上传到哪里。举个例子
假设您有位于 htdocs/assets/swf/music.swf 的 swf,并且从位于 htdocs/music.html 的 html 加载了一个。在这种情况下,您必须将 mp3 上传到 htdocs 目录中。
一个复杂的示例,其中您的 swf 从目录(例如 mymusic/music.mp3)加载 mp3,在这种情况下,您的 mp3 必须上传到 htdocs/mymusic/music.mp3。
所以所有到 mp3 的路径必须相对于 html 文件加载你的 swf,而不是相对于 swf 位置,除非你想直接在浏览器中加载 swf,而不使用 html.
作为替代解决方案,您可以通过将 MP3 声明为 FLA 的资源,将它们嵌入到 SWF 中,为它们分配 class 名称(基本类型将为 Sound
),然后创建实例这些 classes 而不是从其他地方加载它们。缺点是您的 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();