我在ActionScript 3中编写了一个Photoshop插件。photoshop activeDocument
我对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;
}
}
}
对于张贴在这里的目的,我简单的事情了一点,即我已删除的东西,如“呵,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只是不想看到打开的文档。
欢迎任何建议,但我希望最多人能够遇到这种确切的情况,并有一个精确的解决方案。
非常感谢您不厌其烦地看一下这个。
我没有使用Applescript或命令“将docRef设置为前端文档”。 – GuyOxford 2013-12-11 15:08:07