0 votes

Comment obtenir le chemin de l'image sélectionnée dans Adobe Bridge via Applescript ?

J'essaie d'obtenir le chemin du fichier parent d'une vignette d'image sélectionnée dans Adobe Bridge CS5.1 pour le transmettre à un script. Un Applescript enveloppe une minuscule commande javascript dans une commande comme celle-ci :

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 

Le javascript rapporte la valeur correcte - j'ai testé la sortie dans Bridge via alert . Hélas, le do javascript La commande fait no ne renvoie aucune valeur, j'ai donc ajouté un return déclaration :

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

lance une erreur dans AppleScript Editor.app :

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

Qu'est-ce que je fais de mal ? NB : J'ai juste besoin du chemin, je ne me soucie pas de la façon dont il est fait.

2voto

Paul Riggott Points 36

Je pense que vous devriez passer par Photoshop en utilisant BridgeTalk pour obtenir le chemin.

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); 
}

1voto

Vous ne pouvez pas utiliser un return en javascript, sauf dans une fonction.

Mis à jour : Ok, j'ai fait un test, si je mets le résultat de la commande javascript dans une variable javascript, le résultat dans AppleScript sera cette chaîne : indéfini

Alors, utilisez ceci set js to "app.document.selections[0].parent.spec;"

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X