จะหาเส้นทางของรูปภาพที่เลือกใน Adobe Bridge ผ่าน Applescript ได้อย่างไร


0

ฉันพยายามพา ธ ไฟล์พาเรนต์ของภาพขนาดย่อที่เลือกใน Adobe Bridge CS5.1 เพื่อส่งต่อไปยังเชลล์สคริปต์ Applescript ล้อมคำสั่ง javascript เล็ก ๆ ไว้ในคำสั่งเช่นนี้:

set js to "app.document.selections[0].spec.parent.name;" # parent of 1st selected image
tell application "Adobe Bridge CS5.1" # target adobe product
    set theResult to do javascript js # fire away, waiting for return value
end tell 

จาวาสคริปต์รายงานค่าที่ถูกต้อง - alertผมทดสอบผลผลิตภายในสะพานผ่าน อนิจจาdo javascriptคำสั่งไม่ส่งคืนค่าใด ๆ ดังนั้นฉันจึงเพิ่มreturnคำสั่งที่ชัดเจน:

set js to "return app.document.selections[0].spec.parent.name;"

แสดงข้อผิดพลาดในAppleScript Editor.app :

error "Adobe Bridge CS5.1 got an error: AppleEvent handler failed." number -10000

ผมทำอะไรผิดหรือเปล่า? NB: ฉันแค่ต้องการเส้นทางฉันไม่สนใจว่ามันจะทำอย่างไร

คำตอบ:


2

ฉันคิดว่าคุณต้องใช้ Photoshop กับ BridgeTalk เพื่อหาเส้นทาง

function getPathFromBridge(){
    function script(){
        var Path = new File(encodeURI(app.document.selections[0].spec.parent)); 
        return Path.toSource();
    }
    var filePath='';
    var bt = new BridgeTalk();
    bt.target = "bridge";
    bt.body ="var ftn = " + script.toSource() + "; ftn();";
    bt.onResult = function( inBT ) { filePath = decodeURI(eval( inBT.body));}
    bt.onError = function( inBT ) { filePath = '';}
    bt.send(4);
    if ( undefined == filePath ) filePath = '';
    return decodeURI(filePath); 
}

ในที่สุดฉันรู้สึกว่าการเขียนสคริปต์ของ Adobe สามารถทำให้เสียสติได้
myhd

1

คุณไม่สามารถใช้งานreturnในจาวาสคริปต์ยกเว้นในฟังก์ชั่น

อัปเดต: ตกลงฉันได้ทำการทดสอบแล้วหากฉันใส่ผลลัพธ์ของคำสั่ง javascript ลงในตัวแปร javascript ผลลัพธ์ใน AppleScript จะเป็นสตริงนี้: undefined

ดังนั้นใช้สิ่งนี้ set js to "app.document.selections[0].parent.spec;"


ขอบคุณสำหรับคำตอบ! น่าเสียดายที่ฉันยังคงได้รับAppleEvent handler failed." number -10000ข้อผิดพลาด มันทำให้ฉันเสียสติ
myhd

1
ดูเหมือนว่าไวยากรณ์ไม่ถูกต้อง ลองสิ่งนี้set js to "tPath = app.document.selections[0].parent.spec;" - สิ่งสำคัญคุณสมบัติพาเรนต์: ค่าจะไม่ถูกกำหนดสำหรับภาพขนาดย่อที่เพิ่มในระดับรูทของ app.favorites
jackjr300

1
คุณพูดถูกไวยากรณ์ไม่ถูกต้อง ขอบคุณสำหรับการแก้ไข! ยังไม่กลับจากสะพาน บางทีกลไกเสียหรือเปล่า
myhd

ฉันปรับปรุงคำตอบของฉัน
jackjr300

1
@myhd: ดูคำตอบสำหรับคำถามของคุณใน SO แต่ฉันเห็นด้วยว่าฟังก์ชั่นนั้นใช้งานไม่ได้ (โดยเจตนาหรืออย่างอื่น) สำหรับ Bridge
Philip Regan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.