我在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