我有五个 Flash 动画,它们使用 AS3 computeSpectrum 为我的一些歌曲创建视频动画。
在 Chrome、Firefox、Opera 和 Safari 中测试很好。在 IE7 和 IE8 中测试就好了。在 IE9 中测试,flash 播放器打开,但音乐不播放,动画甚至不启动。这只发生在 IE9 中。
网页在这里:http ://seanmurphy.co.cc/index4.html
动画位于音乐选项卡下(底部选项卡,主屏幕)。
有没有人知道到底发生了什么?我已经确保 Flash 播放器是最新的(就像我说的,实际上卸载了 IE9,回到 IE8 并且工作正常)。我已确保链接的 mp3 文件位于根文件夹和附加的音频文件夹中(以防万一)。我已经对此进行了全面研究,但似乎没有人遇到同样的问题。
Flash AS3 代码如下:
var url:String = "SubwayGirl.mp3";
var request:URLRequest = new URLRequest(url);
import flash.filters.*;
import fl.motion.Color;
var myBlur:BlurFilter = new BlurFilter();
myBlur.quality = 10;
myBlur.blurX = 0;
myBlur.blurY = 6;
var s:Sound = new Sound();
s.addEventListener(Event.COMPLETE, completeHandler);
s.load(request);
var song:SoundChannel = s.play();
song.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
var ba:ByteArray = new ByteArray();
var gr:Sprite = new Sprite();
gr.x = 150;
gr.y = 575;
addChild(gr);
var time:Timer = new Timer(.0001);
time.addEventListener(TimerEvent.TIMER, timerHandler);
time.start();
function completeHandler(event:Event):void {
//event.target.play();
};
function randomNumber(low:Number=0, high:Number=1):Number
{
return Math.floor(Math.random() * (1+high-low)) + low;
}
function soundCompleteHandler(event:Event):void {
time.stop();
};
function timerHandler(event:TimerEvent):void {
SoundMixer.computeSpectrum(ba, true);
var i:int;
gr.graphics.clear();
gr.graphics.lineStyle(1, 0xffffff);
myBlur.blurX = randomNumber(1, 5);
myBlur.blurY = randomNumber(1, 25);
myBlur.quality = randomNumber(1, 100);
gr.filters = [myBlur];
gr.graphics.beginFill(0xffffff);
gr.graphics.moveTo(10, 5);
var w:uint = 20;
for (i=0; i<500; i+=w) {
var t:Number = ba.readFloat();
var n:Number = (t * 100);
gr.graphics.drawCircle(w, -i, -n);
var yy = i * (t+210);
var place = yy.toString(16).toUpperCase();
while(place.length < 6) {
place = place+"0";
}
place = "0x" + place;
var myColor:ColorTransform = gr.transform.colorTransform;
myColor.color = 0xC941D0;
gr.transform.colorTransform = myColor;
};
};
有人对此有提示吗?我花了几个小时研究这个没有解决方案。
需要的任何进一步信息将尽快结束。谢谢。
编辑:好的,这是独家新闻:我在 IE9 的 seanmurphy.co.cc/soundTest1.html 上播放了 Flash 动画。也就是说,如果浏览器缓存被清空,并且您加载页面一次,它们就会播放。如果您重新加载页面,或者在访问另一个页面后返回该页面,动画和音乐将不会播放,直到您再次清空缓存。
同样,我已将 Flash 对象和嵌入代码复制到 seanmurphy.co.cc/index6.html 的临时索引文件中,但即使浏览器缓存清空,它们也无法播放。
正如你可能想的那样,这让我发疯了!有人对 IE 在这里拉的愚蠢废话有解释吗?我真的很想把这件事放在床上。谢谢!