Photoshop 活动文档

3

我正在使用ActionScript 3编写一款Photoshop插件。

我在使用app.activeDocument时遇到了非常混乱和令人沮丧的问题。我的代码在Windows上的Photoshop中运行得很完美,但在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上的测试面板中也可以运行,但在我的主要项目中无法运行。
正如我所说,在测试中,它可以完美地工作。以下是测试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>

由于我的应用程序非常庞大且复杂,因此我无法在其中测试代码。我想问的是,是否有人之前遇到过一种情况,某些东西与此类文档引用发生了冲突?我已经尝试解决这个问题超过一周了。我已经尝试了许多不同的方法,但没有一种方法能够解决问题。Mac版Photoshop似乎根本看不到打开的文档。

欢迎提出任何建议,但我希望最好的情况是,有人之前已经遇到过这种情况,并且有一个精确的解决方案。

非常感谢您花时间查看这个问题。

1个回答

0
所以我的问题是,有没有人遇到过某种情况,导致某些东西与这种类型的文档引用发生冲突?
使用以下检查之一:
- docref是否为null? - 文档是否异步加载? - 文档是否足够大,需要超时?
参考资料:
- Scripting Photoshop: Working with the document model - Adobe Photoshop CS5 Scripting Guide (pdf) - JavaScript development toolkit | Download Adobe ExtendScript Toolkit CC

我既没有使用Applescript也没有使用命令“set docRef to front document”。 - GuyOxford

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接