1

我正在为 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();
}

有人能告诉我为什么面板没有显示为禁用,除非鼠标移到面板上?

谢谢

4

0 回答 0