Come ottenere il percorso dell'immagine selezionata in Adobe Bridge tramite Applescript?

0

Sto cercando di ottenere il percorso del file principale di una miniatura dell'immagine selezionata in Adobe Bridge CS5.1 per passarlo a uno script di shell. Un oggetto Applescript racchiude in un comando javascript piccolo come questo:

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 

Il javascript riporta il valore corretto: ho testato l'output all'interno di Bridge tramite alert . Purtroppo, il comando do javascript non restituisce alcun valore, quindi ho aggiunto un'istruzione esplicativa return :

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

genera un errore in AppleScript Editor.app :

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

Che cosa sto sbagliando? NB: ho solo bisogno del percorso, non mi interessa come è fatto.

    
posta myhd 07.08.2012 - 15:37
fonte

2 risposte

2

Penso che dovresti andare via Photoshop usando BridgeTalk per ottenere il percorso.

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); 
}
    
risposta data 27.09.2012 - 11:42
fonte
1

Non puoi utilizzare return in javascript, tranne che in una funzione.

Aggiornato: Ok, ho fatto un test, se metto il risultato del comando javascript in una variabile javascript, il risultato in AppleScript sarà questa stringa: indefinito

Quindi, usa questo set js to "app.document.selections[0].parent.spec;"

    
risposta data 07.08.2012 - 17:45
fonte

Leggi altre domande sui tag