ActionScript 3.0文本输入和显示



我是flash新手,下面是我的脚本,我有3个文本输入框,name1、name2、name3和3个动态文本,output1、output2、output3。一旦用户在框中输入文本,它在动态输出文本中的显示应该完全相同。它适用于第一个,但不适用于第二个和第三个。我以不同的方式重命名了变更处理程序以消除编译错误,但现在只有第一个可以工作。如果我想有多个文本框入口,有更好的方法吗?

name1.addEventListener(Event.CHANGE, changeHandler);
function changeHandler(e:Event):void 
{
    output1.text = name1.text
}
name2.addEventListener(Event.CHANGE, changeHandler);
function changeHandler1(e:Event):void 
{
    output2.text = name2.text;
}
name3.addEventListener(Event.CHANGE, changeHandler);
function changeHandler2(e:Event):void 
{
    output3.text = name3.text;
}

您忘记更改后两个addEventListener()调用中侦听器函数的名称。它当前对所有三个事件调用changeHandler()

你应该有:

name2.addEventListener(Event.CHANGE, changeHandler1);
name3.addEventListener(Event.CHANGE, changeHandler2);

您可以创建一个类来管理输入文本字段与输出文本字段的连接:

package
{
    import flash.text.TextField;
    import flash.events.Event;
    public class TextBinder extends Object
    {
        // vars
        private var _input:TextField;
        private var _output:TextField;
        /**
         * Joins input with output
         * @param inp The input text field
         * @param outp The output text field
         */
        public function join(inp:TextField, outp:TextField):void
        {
            _input = inp;
            _output = outp;
            _input.addEventListener(Event.CHANGE, _change);
        }
        /**
         * Event.CHANGE
         */
        private function _change(e:Event):void
        {
            _output.text = _input.text;
        }
    }
}

现在你可以循环浏览你的文本字段,并使用以下方法加入它们:

var tb:TextBinder = new TextBinder();
tb.join(name1, output1);

相关内容

  • 没有找到相关文章

最新更新