Flash 更改处理程序上的Actionscript
我有一个文本框(动态),javascript使用setVariable方法更改其值 基本上,我现在陷入了让flash应用程序识别文本框值何时更改、onKeyUp等的困境。。似乎不起作用 如果用户在框中键入内容,下面的代码可以工作,但是如果通过JS对其进行更改,则不会获取更改,因此不会填充我的变量。我应该使用什么侦听器Flash 更改处理程序上的Actionscript,flash,events,actionscript-2,listeners,Flash,Events,Actionscript 2,Listeners,我有一个文本框(动态),javascript使用setVariable方法更改其值 基本上,我现在陷入了让flash应用程序识别文本框值何时更改、onKeyUp等的困境。。似乎不起作用 如果用户在框中键入内容,下面的代码可以工作,但是如果通过JS对其进行更改,则不会获取更改,因此不会填充我的变量。我应该使用什么侦听器 someListener = new Object(); someListener.onKeyUp = function () { var StationName = Stati
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);
与其直接操作文本框内的数据,不如将javascript调用路由到一个内部actionscript函数,该函数将替换/追加数据,并以编程方式同步触发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>
现在,您可以轻松地将侦听器附加到上面示例中的变量“myTextAreaConents”,等待更改。在什么时候它会触发一个函数,将变量的新内容填充到文本区域。就像ExternalInterface类一样?我已经用一个例子更新了我的响应。如果您还有任何问题,请告诉我。什么意思,值是由JavaScript更改的?您是否正在尝试通过JavaScript更改FlashVar?
function changeTheField(incomingText) {
var controlledMovie = document.myMovie;
controlledMovie.SetVariable("_root.myTextAreaConents", incomingText);
}