¿Cómo obtener la ruta de la imagen seleccionada en Adobe Bridge a través de Applescript?

0

Estoy intentando obtener la ruta del archivo principal de una miniatura de imagen seleccionada en Adobe Bridge CS5.1 para pasarla a un script de shell. Un Applescript envuelve un pequeño comando javascript en un comando como este:

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 

El javascript informa el valor correcto: probé la salida en Bridge a través de alert . Por desgracia, el comando do javascript no devuelve ningún valor, por lo que agregué una declaración explícita de return :

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

lanza un error en AppleScript Editor.app :

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

¿Qué estoy haciendo mal? NB: solo necesito el camino, no me importa cómo se hace.

    
pregunta myhd 07.08.2012 - 15:37

2 respuestas

2

Creo que tendrías que ir a través de Photoshop usando BridgeTalk para obtener la ruta.

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); 
}
    
respondido por el Paul Riggott 27.09.2012 - 11:42
1

No puedes usar return en javascript, excepto en una función.

Actualizado: Ok, hice una prueba, si puse el resultado del comando javascript en una variable javascript, el resultado en AppleScript será esta cadena: no definido

Por lo tanto, usa este set js to "app.document.selections[0].parent.spec;"

    
respondido por el jackjr300 07.08.2012 - 17:45

Lea otras preguntas en las etiquetas