AS3设置文本字段
我希望每当Fla运行时,焦点都将放在名为“inputField”的输入文本上。问题是,这不起作用:AS3设置文本字段
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*/
}
但是,这似乎有点愚蠢的事,他们必须这样做,更快的方法!
你能否提供你的案例的更多细节?
因为这个工作对我蛮好:需要
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);
}
}
}
最大的问题是,如果仅通过“stage.focus”选择退格,则退格在“inputField”中不起作用。你必须先点击它,才能让退格工作。并且因为焦点在该字段上,所以Keyboard.ENTER的处理程序也不起作用。 – Jers 2012-07-19 17:55:43
你使用命令'inputTextField.setSelection(0,0)'? – iND 2012-07-20 04:16:42
我使用Skovalyov的模拟脚本。并且他的脚本也会发生同样的情况,如果您单击该字段本身,则退格不起作用,因此光标位于该字段中。 – Jers 2012-07-21 09:15:45
更多的代码。完整的文本字段实例化代码以及在文本字段上设置焦点的代码将是一个好的开始。 – iND 2012-07-20 04:18:55