如何让Set Selection在文本字段中工作。我在movieclip中有一个文本字段,上面有一个点击监听器的按钮。当它点击时我希望它选择里面的所有文本。这就是我到目前为止,我希望你能提供帮助。
send.addEventListener(MouseEvent.CLICK, function() {
panel.tweet.selectable = true;
stage.focus = panel.tweet;
panel.tweet.setSelection(0, panel.tweet.text.length);
});
答案 0 :(得分:2)
疯狂 - 应该可以正常工作。
我做了一个小演示,让你看到它正常工作:
http://strangemother.com/actionscript/demos/select_text_click_demo/
import flash.events.MouseEvent;
send.addEventListener(MouseEvent.CLICK, sendMouseClickEventHandler);
function sendMouseClickEventHandler(ev:MouseEvent):void
{
stage.focus = tweet;
tweet.selectable = true;
tweet.setSelection(0, tweet.text.length );
}
答案 1 :(得分:1)
有一个更好的解决方案: 使用callLater;问题是mouseEvent。如果您稍后尝试执行选择,则可以正常工作。
答案 2 :(得分:0)
尝试这样做:(我现在没有Flash来测试......)
send.addEventListener(MouseEvent.CLICK, function() {
panel.tweet.selectable = true;
panel.tweet.stage.focus = panel.tweet;
panel.tweet.setSelection(0, panel.tweet.text.length);
});
如果不是这个,那么它可能是破坏突出显示的mouseup事件。(?)
答案 3 :(得分:0)
我认为你的代码应该有用。
是否正在调用事件监听器?
也许在它上面有一些阻止你的发送按钮的电影剪辑(它可能是透明的,你可能没有意识到它在那里)。
快速而又脏的方法来检查是否存在问题:
send.stage.addChild(send);
这会将您的按钮放在每个对象的顶部。如果你的处理程序没有被调用,并且在调用之后,你可以非常肯定有阻止它的东西。如果是这种情况,您可以重新安排深度或尝试将阻止动画片段mouseEnabled
属性设置为false
。如果所述的动画片段还包含其他阻挡对象(当然不需要对鼠标事件作出反应),mouseChildren
也可以提供帮助。
答案 4 :(得分:0)
问题在于焦点。
这样做(引入10毫秒的延迟)
var timer1:Timer = new Timer(10,1);
timer1.addEventListener(TimerEvent.TIMER, delayedSelection);
timer1.start();
function delayedSelection(e:TimerEvent):void
{
stage.focus = tweet;
tweet.selectable = true;
tweet.setSelection(0, tweet.text.length );
}