2017-01-09 78 views
0

有沒有一種(更好的)方式來確定選擇是否存在於Photoshop中的圖層中,而無需在selection.bounds上使用try/catch?確定是否存在選擇

try 
{ 
    var sel = app.activeDocument.selection.bounds; 
} 
catch(e) 
{ 
    var sel = undefined; 
    alert("No selection"); 
} 

if (sel) alert(sel); 

如果沒有選擇而不是返回的(預期的)未定義邊界,我只是得到錯誤1302:沒有這樣的元素。因此需要嘗試/捕獲。

+0

不能使用類似'if(app.activeDocument.selection){var sel = app.activeDocument.selection.bounds;}' 如果選擇未定義/ null,那麼它應該返回false。 – suvartheec

+0

@suvartheec可悲的是,沒有。這就是你的代碼剛剛提出錯誤1302的問題:沒有這樣的元素這是一種雞/雞蛋問題 –

回答

0

我也遇到過這個問題,雖然我沒有找到解決方法,但我只是在Selection原型中添加了一個簡單的active()函數,可以測試。

Selection.prototype.active = function() 
{ 
    try  { return (selection.bounds) ? true : false; } 
    catch(e) { return false; } 
} 

這樣,您可以撥打app.activeDocument.selection.active()以查看是否選擇了某項。

try部分中的三元運算符在那裏,以防萬一他們修復了Selection.bounds以在未來報告undefined。