2011-01-25 57 views
0

沒有類似的回答問題解決了我的問題,所以在這裏。 我想從JavaScript中調用actionscript 3函數,但是在FF錯誤控制檯中,它表示我從JS調用的函數不存在。它說函數移動器和mout沒有被定義。ExternalInterface不鏈接JavaScript和動作3

這裏是JS的JS功能文件

function getFlashMovieObject(movieName) { 
    var isIE = navigator.appName.indexOf("Microsoft") != -1; 
    return (isIE) ? window[movieName] : document[movieName]; 
} 
function playF() { 
getFlashMovieObject("Button2").mover(); 
} 
function playB() { 
getFlashMovieObject("Button2").mout(); 
} 

下面是HTML

<object style="width: 413px; height: 76px;" id="Button2" onMouseOver="playF()" onMouseOut="playB()"> 
    <param name="movie" value="homepage/flash/Button2.swf"> 
    <param value="transparent" name="wmode"/> 
    <param value="false" name="loop"/>   
    <embed wmode="transparent" play=false src="homepage/flash/Button2.swf" width="413" height="76" loop="false" swliveconnect="true" name="Button2"></embed> 
</object> 

的代碼,並在ActionScript 3的代碼

ran.stop(); 
function mover() { 
    stopPlayReverse(); 
this.addEventListener(Event.ENTER_FRAME, playForward, false, 0, true); 
} 
function mout() { 
stopPlayForward(); 
    this.addEventListener(Event.ENTER_FRAME, playReverse, false, 0, true); 
} 
function playReverse(e:Event):void { 
    if (ran.currentFrame == 1) { 
     stopPlayReverse(); 
    } else { 
     ran.prevFrame(); 
    } 
} 
function playForward(e:Event):void { 
    if (ran.currentFrame == ran.totalFrames) { 
    stopPlayForward(); 
} else { 
    ran.nextFrame(); 
} 
} 
function stopPlayForward():void { 
if (this.hasEventListener(Event.ENTER_FRAME)) { 
    ran.removeEventListener(Event.ENTER_FRAME, playForward); 
} 
} 
function stopPlayReverse():void { 
    if (this.hasEventListener(Event.ENTER_FRAME)) { 
     ran.removeEventListener(Event.ENTER_FRAME, playReverse); 
    } 
} 
ExternalInterface.addCallback("mover", mover); 
ExternalInterface.addCallback("mout", mout); 

的想法是,我想控制鼠標懸停與JavaScript,當我把鼠標懸停在對象上電影播放正常,但何時我徘徊在那裏電影播放倒退。我在一層上有影片剪輯,在另一層上有我的動作腳本代碼。誰能告訴我我做錯了什麼?謝謝

+0

是不是一起使用AS3和Javascript一個有效的答案?最好通過AS3和Flash在內部處理事情。 – Raynos 2011-01-25 21:29:48

+0

嘗試將getFlashMovieObject函數體更改爲`return document.getElementById(movieName)` – 2011-01-25 21:49:00

回答