我在舞台上有6个文本字段以及数字为0-9的键盘。
最终这将是一个Android应用程序。我希望能够选择一个文本字段,然后按下键盘按钮,并将数字显示在活动文本字段中。
我一直在尝试Google活动字段和类似搜索,似乎无法找到参考。
请记住,我在黑暗中摸索着我试图从多个教程中收集到的东西。这段代码可能是完全垃圾:
package {
public class main {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import fl.managers.FocusManager;
var focus:FocusManager = new FocusManager(this);
btn_1.addEventListener(MouseEvent.MOUSE_DOWN, inputNumber);
public function inputNumber(m:MouseEvent){
focus.text = 1;
}
public function main() {
// constructor code
}
}
}
当前错误:
C:\Users\Otaku\Documents\lottocount\main.as, Line 19, Column 35 1118: Implicit coercion of a value with static type flash.display:InteractiveObject to a possibly unrelated type flash.text:TextField.
C:\Users\Otaku\Documents\lottocount\main.as, Line 14, Column 44 1120: Access of undefined property onMyButtonClick.
C:\Users\Otaku\Documents\lottocount\main.as, Line 14, Column 3 1120: Access of undefined property btn_1.
C:\Users\Otaku\Documents\lottocount\main.as, Line 13, Column 47 1120: Access of undefined property onFocusIn.
C:\Users\Otaku\Documents\lottocount\main.as, Line 13, Column 3 1120: Access of undefined property stage.
答案 0 :(得分:1)
如果您访问focus
对象,则会引用您当前处于活动状态(关注对象)的对象。
但实际上,只要有一个允许输入的TextField就可以在触摸时打开键盘视图(仅限移动设备)。
您也可以告诉Flash不要自动显示键盘,如果您打算使用自己的键盘,那么您可以使用焦点或制作自己的系统,根据最后一次触摸的位置跟踪相应的TextField。
修改强>
这是一个简单的例子,说明如何做到这一点 在这个例子中,我有两个TextField:tf1和tf2。此外,我还添加了一个按钮,用于覆盖需要将最后一个焦点保存在具体类型的对象上的情况。按钮名称是myButton。
var lastSelectedTextField:TextField; // this will hold our last selected TextField
// make sure stage exists. If you're writing script in a frame, don't mind, if you use OOP approach you can do so by adding an eventListener for the event ADDED_TO_STAGE
stage.addEventListener(FocusEvent.FOCUS_IN, onFocusIn); // onFocusIn will trigger every time a focus is changed.
myButton.addEventListener(MouseEvent.CLICK, onMyButtonClick);
function onFocusIn(e:FocusEvent):void
{
if (stage.focus is TextField)
lastSelectedTextField = stage.focus as TextField;
}
function onMyButtonClick(e:MouseEvent):void
{
trace("Text of the last selected text field is:", lastSelectedTextField.text);
}