Déjame contarte una historia:
Un padre se levantó y llamó a tres niños:
- Ace - despierta y ve a traerme una Apple
- Deuce - despierta y ve a traerme una Apple
- Trey - despierta y tráeme una Apple
Ese padre estaba feliz de tener tres manzanas y todos fuera de la cama.
El otro padre dijo:
- Trey - despierta y ve a traerme una Apple (o creen que se lo pidieron a Trey - no están seguros de haber sido específicos sobre qué o quién se lo pidió)
¿Coincide esto con lo que "no funciona" para ti?
Si es así, es impresionante. Si no es así, querrás pasar por cada script en el Editor script y ver dónde van tus programas "fuera de script". También te animo a que eches un vistazo a https://latenightsw.com Depurador de scripts: ejecuta algunas funciones básicas de forma gratuita, pero si valora más su tiempo que el de recorrer los en el editor más básico de Apple, puede valer la pena pagar la versión completa.
Además, un libro sobre iteración o bucles podría ser un buen lugar para ir si todo no estaba claro. No te sientas mal, este es un gran lugar para tropezar y aprender - una vez que tengas los bucles, serás capaz de hacer cosas increíbles en cualquier lenguaje de scripting - no sólo en AppleScript.
2 votos
No se trata del ámbito, no, se trata de hacia dónde se dirigen los comandos y qué aplicación o script está manejando su ejecución. Has anidado una
tell application
dentro del otro en su primer script. Hay muchas buenas razones para hacer esto en una situación determinada, pero esta no es una de ellas ya que Eventos del sistema no puede realmente emitir comandos a otras aplicaciones, yactivate
se dirige de forma ambigua potencialmente a ambos Eventos del sistema y alguna otra aplicación, por lo que probablemente acabe activando Eventos del sistema preferentemente. La separación de los dostell
bloques en su segundo es lo que funciona.2 votos
El
global AppName
es redundante.