我正在为 Win 和 Mac 上的 Photoshop CS5 和 CS6 创建一个弹性面板和一个 C++ 插件。我的 C++ 插件捕获图层选择更改、文档视图更改等事件并将事件分派给 flex。在 flex 中,我注册了这些事件并调用了适当的函数。这一切都完美无缺。
例如,当用户从 Photoshop 的图层面板中选择另一个图层时,我的插件会调度一个事件。这个事件在 flex 中被捕获并调用了一个方法。在此方法中,我需要禁用我的面板,进行一些处理,然后再次启用我的面板。这在 Win XP 和 Photoshop CS5 上运行良好,但在 Mac 和 Win 7 上却不行。如果我在面板上进行某些处理时将鼠标悬停,那么我的面板将显示为禁用,否则显示为启用。我正在使用以下代码:
在 C++ 中,层选择更改事件被调度。在 flex 中,它被捕获并调用函数“LayerChange”。
public function LayerChange(event:CSXSEvent):void
{
this.enabled = false;
CursorManager.setBusyCursor();
//do some processing
this.enabled = true;
CursorManager.removeBusyCursor();
}
有人能告诉我为什么面板没有显示为禁用,除非鼠标移到面板上?
谢谢