2010-02-03 70 views
0

我有一个文本框(动态)正在被使用setVariable方法的javascript改变其值的Actionscript。上变化处理程序

Bascially我现在被困在获得Flash应用程序时,文本框的值已经改变了,等的onkeyup承认..好像不工作。

下面的代码工作,如果到框中的用户类型,但如果通过JS改变它不拿起变化,therfore不填充我的变量。我应该使用什么Listener?

someListener = new Object(); 
someListener.onKeyUp = function() { 
var StationName = StationBox; 
var Test = "the station is:" + StationName; 
trace(Test); 
_global.StationNameGlobal = StationBox; 
OutputTxt = "TEST"; 
} 
Key.addListener(someListener); 
+0

你是什么意思,该值是通过JavaScript的改变?你想通过JavaScript更改flashvars吗? – poke 2010-02-03 11:45:21

回答

0

而不是你的JavaScript调用直接操作数据在文本框内,而不是路由内部动作功能都将替换/追加数据和编程同步触发您的onChange功能。

举例来说,如果你有一个flash动画,并给该对象和嵌入同一ID例如:


<object ID="myMovie" CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH="230" HEIGHT="50" CODEBASE="download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"> 
<PARAM NAME="MOVIE" VALUE="some.swf"> 
<param NAME="PLAY" VALUE="true"> 
<param NAME="LOOP" VALUE="false"> 
<param NAME="QUALITY" VALUE="high"> 
<param NAME="MENU" VALUE="false"> 
<param NAME="WMODE" VALUE="transparent"> 
<embed ID="myMovie" wmode="transparent" SRC="some.swf" WIDTH="230" HEIGHT="50" PLAY="true" LOOP="false" QUALITY="high" MENU="false" TYPE="application/x-shockwave-flash" PLUGINSPAGE="www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"> 
</embed> 
</object> 

然后,您可以触发动作的功能,并使用一个简单的JavaScript,如改变闪光的内部变量:


function changeTheField(incomingText) { 
    var controlledMovie = document.myMovie; 
    controlledMovie.SetVariable("_root.myTextAreaConents", incomingText); 
} 

现在,您可以轻松地将监听器附加到上述示例中的变量'myTextAreaConents',并等待更改。此时它将启动一个函数来将变量的新内容填入文本区域。

+0

像ExternalInterface类一样? – Richard 2010-02-03 11:45:03

+0

我已经用示例更新了我的回复。如果您还有其他问题,请告诉我。 – DoctorLouie 2010-02-03 17:22:30