2012-07-04 70 views
0

我已經有五個Flash動畫,在使用AS3 computeSpectrum創建一些我的歌的視頻動畫沒有運行。的Flash AS3動畫IE9

測試在Chrome,火狐,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; 
}; 
}; 

任何與此提示嗎?我花了幾個小時研究這個沒有解決方案。

需要的任何進一步的信息將通過。謝謝。

編輯:好的,這裏的勺子:我有Flash動畫在IE9在seanmurphy.co.cc/soundTest1.html播放。也就是說,如果瀏覽器緩存清空,它們將播放一次,然後加載該頁面一次。如果您重新加載頁面,或者在訪問另一個頁面後返回頁面,則在您再次清空緩存之前,動畫和音樂將無法播放。

此外,我已將Flash對象和嵌入代碼複製到seanmurphy.co.cc/index6.html的臨時索引文件中,但即使瀏覽器緩存清空,它們也不會播放。

正如你可能會認爲,這是推動我受詛咒的瘋了!是否有人對IE瀏覽器在這裏拉扯的愚蠢廢話有解釋?我真的很想把這個東西放在牀上。謝謝!

+0

該網站在我的IE9 .. – poepje

回答

0

它可能有一些做的安全沙箱衝突:

SecurityError: Error #2121: Security sandbox violation: 
SoundMixer.computeSpectrum: http://seanmurphy.co.cc/audio/IndianSummer-amped.swf 
cannot access http://seanmurphy.co.cc/audio/SubwayGirl.swf. 
This may be worked around by calling Security.allowDomain. 
    at flash.media::SoundMixer$/computeSpectrum() 
    at IndianSummer_fla::MainTimeline/timerHandler() 
    at flash.utils::Timer/_timerDispatch() 
    at flash.utils::Timer/tick() 
+0

Strah嗨正常工作,我還挺猜測這是一些安全漏洞或其他...如果我更多的是一個AS3的人(而不是JQuery和JS),我會立即跳出來並將其拋出。事實上,如果可能的話,我將不得不花費時間,因爲我在AS3中的行爲腳本已經大大削減,粘貼和討價還價。謝啦! –