As3 MP3播放器无法加载

时间:2010-09-15 06:12:47

标签: actionscript-3 mp3

正如我在this other post中所述,我的MP3播放器没有在线加载,但在我的本地电脑上完美运行。

今天我正在弄乱文件,我终于得到了闪光灯给我一个错误。这可能是MP3播放器无法在线加载的原因吗?这是错误:

TypeError: Error #2007: Parameter text must be non-null.
 at flash.text::TextField/set text()
 at Mp3Player_fla::MainTimeline/id3Handler()

顺便说一下,我有自己的SWF MP3。它被主要的瑞士法郎称为。如果我将所有代码放入主SWF中它可能有用吗?这不应该有所作为,但也许是因为我正在加载大型电影作为背景和许多其他swf的同时,它弄乱了吗?

3 个答案:

答案 0 :(得分:1)

我在我的网站上使用的MP3播放器是由FlashXML开发的,最初我遇到了同样的问题,但我与FX的人谈过,他们把问题排除在外。

真的被困住,直到他们帮助了我。如果您仍有兴趣,可以访问www.flashxml.net/mp3-player.html

查看

答案 1 :(得分:0)

您的错误在id3Handler函数中。您似乎正在尝试将文本字段的值设置为null。如果您无法弄清楚,请发布id3Handler的代码,我会再给您一些信息。可能有些东西还没有加载。

答案 2 :(得分:0)

如果未定义id3标记,您可以尝试捕获id3Handler中的错误

function id3Handler(evt:Event):void {

    try{

      songInfo.text = /*song.id3.artist + ": " +*/ song.id3.songName;

   }catch(e:Error)
   {
      trace(e );

      //or...
      songInfo.text = "No name"
   }
}

虽然您可能遇到安全问题,但在这种情况下会返回id3信息。你使用跨域政策文件吗?

从Sound类文档中提取:

Certain operations dealing with sound are restricted. 
The data in a loaded sound cannot be accessed by a file in a different domain 
unless you implement a cross-domain policy file. 
Sound-related APIs that fall under this restriction are 
Sound.id3 , 
SoundMixer.computeSpectrum(), 
SoundMixer.bufferTime, 
and the SoundTransform class.

编辑:

这是一个非常宽松的策略文件,复制它,将其保存到文件并命名文件

crossdomain.xml

然后将其上传到您网站的根文件夹,例如example.com

http://example.com/crossdomain.xml
  <?xml version="1.0"?> 
  <!DOCTYPE cross-domain-policy SYSTEM      
  "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
      <cross-domain-policy> <site-control permitted-cross-domain-policies="all"/> 
      <allow-    access-from domain="*" secure="false"/> 
      <allow-http-request-headers-from domain="*"   headers="*" secure="false"/>
 </cross-domain-policy>

如果有效,请阅读本文

http://kb2.adobe.com/cps/142/tn_14213.html

了解如何使用跨域政策文件保护您的网站