【问题标题】:Change MovieClip size with input textbox (Flash AS3)使用输入文本框更改影片剪辑大小 (Flash AS3)
【发布时间】:2016-02-26 05:34:24
【问题描述】:

我有一个可以拖放影片剪辑的项目。

我想知道如何在点击后显示输入文本框 MovieClip,用户可以在输入文本框中输入一个数字 根据输入的数字增加 MovieClip 的大小。

输入数字后,我希望文本框消失, 并且仅在再次单击 MovieClip 时才会重新出现。

下图示例:

【问题讨论】:

  • 好的,但是你卡在哪一部分?创建一个动态文本框?听文本框的变化?更改影片剪辑大小?
  • 您好,感谢您的回复。我正在努力解决的部分是:如何让文本框听取更改,并使这些更改修改影片剪辑的大小。基本上我知道如何制作一个文本框,但不知道如何应用更改影片剪辑大小的代码。
  • 你有任何代码吗?为框设置鼠标单击事件侦听器,然后在单击后使文本框出现。然后为 Enter/Return 键启动另一个事件侦听器。点击 Enter 后,将正方形的大小设置为文本框值。然后删除文本框
  • 感谢您的回复,我所拥有的代码与我的问题并没有具体关系。如何将正方形的大小设置为文本框值?有代码示例吗?

标签: actionscript-3 flash


【解决方案1】:
box.addEventListener(MouseEvent.MOUSE_UP, promptBox);


private function promptBox(e:MouseEvent)
{
    textBox.x = box.x;
    textBox.y = box.y - 25;
    addChild(textBox);
    stage.addEventListener(KeyboardEvent.KEY_DOWN, resizeBox);
}

private function resizeBox(e:KeyboardEvent)
{
    if(e.charCode == 13) //enter key
    {
        box.width = Number(textBox.text);
        box.height = Number(textBox.text);
        removeChild(textBox);
    }

}

抱歉,我很久没有使用 AS3 了,但这是我的想法

【讨论】:

  • 首先我收到错误 1120:未定义属性事件的访问,所以我尝试将“e:”更改为事件,然后错误停止显示,但舞台上似乎没有任何变化。但是我决定再试一次,然后成功了,谢谢!我必须对其进行更多测试,以确保我的答案得到了回答。
  • @New2AS3 很抱歉。 if(event.charCode == 13) 应该是 if(e.charCode == 13)。我把答案改成了正确的代码
  • 没问题。除了点击时文本框会轻微移动之外,代码运行良好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-29
  • 2018-03-29
  • 2013-01-15
  • 1970-01-01
  • 2014-08-28
相关资源
最近更新 更多