2012-07-04 2 views
0

У меня есть пять флеш-анимаций, которые используют AS3 computeSpectrum для создания анимации видео для некоторых моих песен.Flash AS3 анимация не работает в IE9

Протестировано в Chrome, Firefox, Opera и Safari просто отлично. Протестировано в IE7 и IE8 просто отлично. Протестировано в IE9, флеш-плеер открывается, но музыка не воспроизводится, а анимация даже не запускается. Это ТОЛЬКО происходит в IE9.

Веб-страница здесь: http://seanmurphy.co.cc/index4.html

Анимация на вкладке музыки (нижняя вкладка, основной экран).

У кого-нибудь есть линия на то, что происходит? Я убедился, что Flash-плеер обновлен (как я уже сказал, на самом деле удалил IE9, вернулся в IE8 и работал нормально). Я убедился, что связанные файлы MP3 находятся как в корневой папке, так и в прикрепленной аудио-папке (на всякий случай). Я исследовал все это, но никто, похоже, не сталкивался с этой проблемой.

флэш-код 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; 
}; 
}; 

Любой с намеком на это? Я потратил часы, исследуя это без разрешения.

Дополнительная информация, необходимая для получения дополнительной информации. Благодарю.

EDIT: Хорошо, вот совок: у меня есть Flash-анимация, играющая в seanmurphy.co.cc/soundTest1.html в IE9. То есть, они воспроизводятся, если кеш браузера опустели, и вы загружаете страницу один раз. Если вы перезагрузите страницу или вернетесь на страницу после посещения другой страницы, анимации и музыка не будут воспроизводиться, пока вы не очистите кеш.

Кроме того, я скопировал объект 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

Привет С.Т.Р.А.Х., я своего рода предположил, что это какой-то нарушение правил безопасности или иначе ... если я были больше парнем AS3 (вместо JQuery и JS), я бы прыгнул прямо и вытащил его. Как бы то ни было, мне придётся посвятить ему время, когда это возможно, так как мои действия в AS3 в значительной степени разрезаются, вставляются и торгуются. Спасибо чувак! –

Смежные вопросы