发新话题
打印

如何解决setFocus光标停留的问题

如何解决setFocus光标停留的问题

  最近很多人都一直问我, 为何Flash中所提到的Selection.setFocus不能使用呢??
我也看了他们的代码之后发觉, 不能使用的原因都是出在一开始定义光标停留在文本上的问题... 所以测试了一下... 发觉到这和之前我制作游戏时, 也不能够一开始就使用键盘来控制, 必须点了swf一下才可以使用键盘控制...
主要这类原因是在html当中, 焦点不能设定在swf, 而解决这个的唯一方法就是使用javascript, 那么大家就注意看我以下所增加红色代码的部分

<html>
<head>
<title>setFocus</title>
</head>
<body bgcolor="#ffffff" onLoad="form.focus()"> //让html载入的时候焦点定在swf的标签上
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400" id="form" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="form.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="form.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="form" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</body>
</html>
大家看到了吗?? 在发布后的html代码当中, embed标签当中会有个 name="form" 而我们就取得这个属性名字, 然后在<body>标签设定onLoad事件, 让他的焦点(Focus)定在相同属性名字的部分, 这样就解决了吧
相同的制作游戏的时候也是这样做, 不然在Flash一开始使用键盘控制人物走动的时候, swf是无法监听到任何键盘讯息的....

TOP

发新话题