2010-02-22 165 views
0

我需要更改子Flash文件中的变量。使用javascript通过父Flash文件访问子Flash文件中的变量

安装程序是一个父级Flash文件,它具有一个子Flash,并将其放在movieClip中。

我可以使用Javascript将变量发送到父Flash文件,但不直接发送到子Flash文件。有没有一种方法可以直接用Javascript访问子Flash文件?

或者我需要将变量发送到父Flash文件,然后让父母将变量发送到子Flash文件?在Flash中使用loadClip函数将子项添加到父项时,是否有一种点符号可用于使用Javascript访问子Flash文件,而无需先访问父项?

回答

0

是的..

from flash 8你可以使用ExternalInterface。它是双向的。

在你的第一个SWF文件(FLA)

调用javascript函数与像PARAMATERS:

在SWF

- >

ExternalInterface.call("setValue", form, field, publish); 

在JavaScript

function setValue(form, field, publish) { 
    alert(form + " " + field + " " + publish) 
} 

双向至父SWF你可以在你的父SWF中做这样的事情:

import flash.external.ExternalInterface; 
function getValueFromJavaScript(strTmp){ 

textMC.text = "Value received from JS" + str; 

} 

ExternalInterface.addCallback("sendValueToFlash", this, getValueFromJavaScript); 

in Javascript:

<script > 
    function getFlashMovie(movieName) { 
     var isIE = navigator.appName.indexOf("Microsoft") != -1; 
     return (isIE) ? window[movieName] : document[movieName]; 
    } 
    function formSend() { 
     var text = "Hello Flash"; 
     getFlashMovie("ExternalInterfaceExample").sendValueToFlash(text); 
    } 
    </script>