我的目标是从UI中删除所有悬停反馈。这样做的动机是测试触摸界面原型,而不希望用户在鼠标悬停时拥有交互队列,而这是他们在触摸界面上所没有的。
我有一个部分的解决方案,但它有两个问题:
在悬停时,每个component.
受保护函数ui_suppressHover(事件:MouseEvent):void{ var b= event.currentTarget as UIComponent;b.skin.currentState = "up";}
发布于 2010-10-28 22:21:58
这里有一个由Maxim的回答引起的部分解。您可以通过扩展Button并按如下方式重写HoverlessButton类:
override protected function getCurrentSkinState():String
{
var state:String = super.getCurrentSkinState();
if (state == "over")
state = "up";
return state;
}您必须首先调用超级impl,因为只有它才能正确检查isDown(),这是私有的。
发布于 2010-10-28 06:35:56
最好重写getCurrentSkinState,例如参见spark Button.as
override protected function getCurrentSkinState():String
{
if (!enabled)
return "disabled";
if (isDown())
return "down";
if (hovered || mouseCaptured)
return "over";
return "up";
}因此,只需删除hovered || mouseCaptured "if“。
https://stackoverflow.com/questions/4039103
复制相似问题