ActionScript 3 で Photoshop プラグインを作成しています。
app.activeDocument で非常に混乱し、イライラする問題が発生しています。私のコードは Photoshop for Windows で完全に動作しますが、Mac では「一般的な Photoshop エラーが発生しました。このバージョンの Photoshop では、この機能を使用できない可能性があります」というメッセージが表示されます。エラー。
問題の根源を突き止めるために、ドキュメント参照を取得するためだけのクラスを作成し、テスト パネルから呼び出しました。クラス呼び出しは完全に機能しました。次に、メイン パネル プロジェクトに同じクラスを含めましたが、壊れてしまいました。
これは私のクラスです: -
package DocRefGetter
{
import com.adobe.csawlib.photoshop.Photoshop;
import com.adobe.photoshop.*;
public class DocRefPhotoshop
{
public static function getDocRef():Document
{
var app:Application = Photoshop.app;
var thisDoc:Document = app.activeDocument;
//var thisDoc:Document = app.documents.index(0); //Tried this method too
return thisDoc;
}
}
}
ここに投稿する目的で、少し単純化しました。つまり、「try、catch」ステートメントなどを削除しましたが、基本的に、これは私のパネルのコンテキストでは機能しないコードです。また、まったく同じ結果で JSX コードへの同等の呼び出しを試みました。Windows では完全に機能し、Mac のテスト パネルで機能しましたが、Mac のメイン プロジェクトでは機能しませんでした。
私が言ったように、テスト内では、これは完全に機能します。テスト mxml コードは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" historyManagementEnabled="false">
<mx:Script>
<![CDATA[
import DocRefGetter.DocRefPhotoshop;
import com.adobe.photoshop.Document;
[Bindable]
private var hostName:String = HostObject.mainExtension;
protected function button1_clickHandler(event:MouseEvent):void
{
var thisDocRef:Document = DocRefPhotoshop.getDocRef();
testLabel.text = String(thisDocRef);
}
]]>
</mx:Script>
<mx:VBox height="100%" width="100%" verticalAlign="middle" horizontalAlign="center">
<mx:Button label="Run PS code" click="button1_clickHandler(event)" />
<mx:Label id="testLabel" width="182" text="Label"/>
</mx:VBox>
</mx:Application>
非常に大きく複雑であるため、動作していないメインアプリケーションを投稿することはできません. 私はこれを1週間以上解決しようとしています。私は多くの異なる解決策を試しましたが、何もうまくいきませんでした。Mac Photoshop は、開いているドキュメントを見たくないだけです。
どんな提案でも大歓迎ですが、誰かが以前にこの正確な状況に遭遇し、正確な解決策を持っていることを願っています.
お手数をおかけいたしますが、この度はご覧いただき誠にありがとうございます。