我正在ActionScript 3中编写Photoshop插件。
我有一个非常混乱和令人沮丧的问题与app. activeDocument。我的代码与Photoshop的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上的主项目中不工作。
正如我所说的,在测试中,这是完美的。-
<?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条答案
按热度按时间ddhy6vgd1#
所以我想问的是,以前有没有人遇到过这样的情况,有些东西与这种类型的文档引用相冲突?
使用下列检查之一:
null
?参考资料