photoshop activeDocument

时间:2013-02-15 13:21:23

标签: actionscript-3 flex flash-builder photoshop flash-javascript-api

我正在使用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>

我无法发布它不工作的主要应用程序,因为它非常庞大和复杂,所以我要问的是有没有人遇到某种情况之前,某种东西与这种类型的文档引用有冲突?我一直试图解决这个问题一个多星期了。我尝试了许多不同的解决方案但没有任何效果。 Mac Photoshop只是不想看到打开的文档。

欢迎提出任何建议,但我希望大多数人之前遇到过这种情况并有一个精确的解决方案。

非常感谢您不厌其烦地看看这个。

1 个答案:

答案 0 :(得分:0)

  

所以我要问的是,有人遇到某种情况之前某种情况与这种类型的文件参考有冲突吗?

使用以下检查之一:

  • 是docref null吗?

  • 文档是否异步加载?

  • 文件是否足够大以保证超时?

<强>参考