当用户按下鼠标并在具有可选文本的静态文本字段上释放鼠标时,不会触发任何MOUSE_UP事件 - 不在舞台上,也不在其他地方。
我在使用嵌套静态文本字段的movieclip上使用滚动条类时遇到过这种情况。 当用户拖动滚动手柄并将鼠标放在文本字段上时,拖动/滚动就会卡住。
要测试这个,请创建一个新的AS3 fla文件,在某处放置一个静态文本字段,然后输入一些文本。确保在属性面板中选中了可选属性。 将此脚本添加到时间轴:
import flash.events.*
function down(event:Event):void { trace('down'); }
function up(event:Event):void { trace('up'); }
stage.addEventListener(MouseEvent.MOUSE_DOWN, down)
stage.addEventListener(MouseEvent.MOUSE_UP, up)
现在测试电影并单击鼠标。您将注意到在文本字段上释放鼠标时不会发生跟踪('向上')。
答案 0 :(得分:0)
简短的回答是否定的,尽管您可以尝试遍历舞台的显示列表并向其添加鼠标事件。
将鼠标事件分配给动态文本字段,并使用您可以引用的实例名称。
import flash.events.MouseEvent;
// tf:TextField instance created with authoring tool
tf.text = "Hello World!";
tf.addEventListener(MouseEvent.MOUSE_UP, handleMouseUp);
stage.addEventListener(MouseEvent.MOUSE_UP, handleMouseUp);
stage.addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown);
function handleMouseUp(event:Event):void { trace('up'); }
function handleMouseDown(event:Event):void { trace('down'); }
在没有添加事件侦听器的文本字段上释放鼠标时,没有从舞台调度任何事件是正确的行为。毕竟,您的文本字段位于舞台上方。
希望这有帮助。
答案 1 :(得分:0)
有一种方法,但你必须稍微捏一下。
1.在文本字段上添加一个Sprite,现在收到MOUSE_UP事件,但文本不再可选。
2.使用指向“hitTestTextNearPos”和“setSelected”的TextSnapshot类,在覆盖的精灵上收到MOUSE_DOWN / MOUSE_MOVE事件时选择静态文本字段内的文本。
您现在有一个可选的静态文本字段,可以在其上面触发MOUSE_UP。 可能需要自定义指针(选择)来完美地模拟行为。