Win と Mac の両方で Photoshop CS5 と CS6 用のフレックス パネルと C++ プラグインを作成しています。私の C++ プラグインは、レイヤー選択の変更、ドキュメント ビューの変更などのイベントをキャプチャし、イベントを flex にディスパッチします。Flex では、これらのイベントを登録すると、適切な関数が呼び出されます。これはすべて完全に機能します。
たとえば、ユーザーが Photoshop のレイヤー パレットから別のレイヤーを選択すると、私のプラグインはイベントを送出します。このイベントはフレックスでキャプチャされ、メソッドが呼び出されます。このメソッド内で、パネルを無効にし、いくつかの処理を行ってから、パネルを再度有効にする必要があります。これは、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();
}
マウスがパネル上に移動しない限り、パネルが無効として表示されない理由を誰か教えてもらえますか?
ありがとう