我有一个文本 - InputField:
var textfield:TextField = new TextField();
textfield.text = "";
textfield.type = TextFieldType.INPUT;
addChild(textfield);
因为这个文本字段不在主类中,所以没有阶段引用:
textfield.stage.focus = textfield;
or
stage.focus = textfield
如何强制文本字段在零位置显示闪烁的线?
答案 0 :(得分:2)
您可以在主类中为舞台添加静态引用,并通过它设置焦点(或创建专用类以随时随地获取舞台参考)。
主类代码:
public class MainClass extends Sprite{
public static var STAGE : Stage;
public function MainClass(){
STAGE = stage;
}
}
Textfield类代码:
MainClass.STAGE.focus = myTextfield;
答案 1 :(得分:1)
这是一个flash播放器的错误,因为如果你使用stage.focus = textfield设置焦点,textfield实际上有焦点(你可以写一些东西),但没有闪烁的光标。另一方面,有一个闪烁的光标,但只有当您在播放器(而不是在浏览器中)本地启动swf时。 为了告知人们他们现在可以写一些东西,你可以自己制作一个光标 - 只需创建一条线,为它设置动画并在有人写第一个字母时隐藏它。
答案 2 :(得分:0)
光标焦点有时会起作用,这更令人沮丧。我有两个几乎相同的应用程序的情况。无法运行的动画正在运行。这可能是一场冲突。
答案 3 :(得分:0)
最后我得到了解决方案
尝试使用此代码
public function SetFocus(mc:TextField):void{
addEventListener(Event.ENTER_FRAME,focus);
function focus(E:Event){
stage.focus=mc;
if(mc.name.toString()==stage.focus.name.toString()){
removeEventListener(Event.ENTER_FRAME,focus);
}
}
}
您必须为文本字段命名,然后才能轻松使用