我想要在Fla运行时,焦点将放在名为“inputField”的输入文本上。问题是,这不起作用:
stage.focus = vcam.inputField;
这不起作用,是的,你可以输入A - Z和0 - 9,但是例如Backspace在字段中不起作用,你必须先点击它。
另外,我有一个单独的函数来处理箭头键和ENTER键,因此inputField可能不会使用它们。
他们唯一知道的就是每个按键按下这样的功能:
function inputHandle(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard./*keycode here*/)
{
vcam.inputField.text += "/*letter, number, or space*/";
}
if (event.keyCode == Keyboard./*another keycode here*/)
{
vcam.inputField.text += "/* anotherletter, number, or space*/";
}
/*And so on with every key*/
}
但这似乎有点愚蠢,他们必须以更快的方式做到这一点!
答案 0 :(得分:0)
您能提供有关案件的更多详情吗?
因为这对我来说很合适:
package {
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldType;
public class asExample extends Sprite {
public var inputTextField : TextField;
public var focusButton : MovieClip;
public function asExample() {
inputTextField = new TextField();
inputTextField.width = 300;
inputTextField.height = 50;
inputTextField.multiline = true;
inputTextField.border = true;
inputTextField.type = TextFieldType.INPUT;
addChild(inputTextField);
focusButton = new MovieClip();
focusButton.x = inputTextField.x;
focusButton.y = 60;
focusButton.graphics.beginFill(0xFF0000);
focusButton.graphics.drawRect(0, 0, 50, 50);
focusButton.graphics.endFill();
focusButton.addEventListener(MouseEvent.CLICK, onFocusButtonClick);
addChild(focusButton);
}
private function onFocusButtonClick(event : MouseEvent) : void {
stage.focus = inputTextField;
inputTextField.setSelection(0, 0);
}
}
}