JS + вставки на applscript

  • Автор темы Автор темы Mikeb
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Mikeb

Участник
Топикстартер
Сообщения
68
Реакции
0
имеется полностью работоспособный код в IDD
в конце используется app.doScript(appleScriptCode, ScriptLanguage.applescriptLanguage)
но эпплскрипт при запуске скрипта из панели скриптов не отрабатывается, -- хотя в ScriptEditor все ОК

в чем проблема?
 
Ответ: JS + вставки на applscript

appleScriptCode
Это файл или строка?
Если файл - может найти не может?
 
Ответ: JS + вставки на applscript

appleScriptCode - это строка, причем интересно, все в ScriptEditor работает, а в IDD -- только ДО эпплскрипта
 
Ответ: JS + вставки на applscript

Если код скрипта не пользуется данными ID (выполняется в ScriptEditor, как Вы написали), можно ScriptEditor_ом сделать из этого кода .app и запускать методом .execute. Так у меня работала передача управления между приложениями в CS, когда еще не было bridgeTalk.

AirGraph.
 
Ответ: JS + вставки на applscript

а как делается .арр? это что за зверь?
 
Ответ: JS + вставки на applscript

ScriptEditor->File->SaveAs->[File Format->application]

AirGraph.
 
Ответ: JS + вставки на applscript

я вообще-то имел в виду Extended Script Editor (от Adobe)...
можно как-то побороть его?
 
Ответ: JS + вставки на applscript

Да... В результате разговоров про Apple Script и Script Editor выяснилось, что в виду имеется Extend Script ToolKit... Ну да ладно, а что мешает сделать .app из этого самого appleScriptCode и запустить полученное приложение методом .execute?

AirGraph.
 
Ответ: JS + вставки на applscript


Не по теме:
может, мака нет :rotfl:
 
Ответ: JS + вставки на applscript

проблема как раз в том, что applescript использует данные, полученные от Javascript
т.е. я так понял, app создать в таком случае не удастся
 
Ответ: JS + вставки на applscript

проблема как раз в том, что applescript использует данные, полученные от Javascript
т.е. я так понял, app создать в таком случае не удастся
 
Ответ: JS + вставки на applscript

А как appleScriptCode получает эти самые данные, когда все хорошо работает в ESTK? Как вы передаете параметры в appleScriptCode, которые получены в результате работы JavaScript?

AirGraph.
 
Ответ: JS + вставки на applscript

создается через JAvascript строка, которая потом передается app.doScript(scr, ScriptLanguage.applescriptLanguage)
 
Ответ: JS + вставки на applscript

Mikeb сказал(а):
app.doScript(scr, ScriptLanguage.applescriptLanguage)

Такая форма не передает параметров. Параметры идут третьим агрументом. Полностью описание этого метода выглядит так:
Application.doScript (script: any, language: ScriptLanguage, withArguments: array of any): any
 
Ответ: JS + вставки на applscript

Вот я примерно про это и спрашивал... ;-) Может если явно описать массив параметров в вызове appleScript то все будет работать?

AirGraph.
 
Ответ: JS + вставки на applscript

Что-то мне подсказывает что так и есть. :) Больше того, я слегка не врубаюсь, как это работало вообще?
 
Ответ: JS + вставки на applscript

как это - не передает?
реальный пример - Obj.homeDir cформировано в скрипте JS и пердается эпплскрипту:
var str11 = 'tell application "Mail"\rset myMessage to make new outgoing message\rtell myMessage\rset subject to "'
var subj = '<<'+Obj.homeDir.toUpperCase()+'>>'+' printed on C9300'
var str12 = '"\rmake new to recipient '...

var scr = str11+subj+str12...

app.doScript(scr, ScriptLanguage.applescriptLanguage)

все прекрасно работатет в ESTK
 
Ответ: JS + вставки на applscript

Це изврат, однако...
Сделайте по-человечески и отпишите...
 
Ответ: JS + вставки на applscript

Есть такой документ - InDesignCS3_ScriptingGuide_JS.pdf
Нашел там такой раздел:
Returning Values from doScript
To return a value from a script executed by doScript, you can use the scriptArgs (short for “script arguments”) object of the application. The following script fragment shows how to do this (for the complete script, see DoScriptReturnValue):
PHP:
var myJavaScript = "app.scriptArgs.setValue(\"ScriptArgumentA\", \"This is the first script argument value.\");\r";
myJavaScript += "app.scriptArgs.setValue(\"ScriptArgumentB\", \"This is the second script argument value.\")";
var myScriptArgumentA = app.scriptArgs.getValue("ScriptArgumentA");
var myScriptArgumentB = app.scriptArgs.getValue("ScriptArgumentB");
alert("ScriptArgumentA: " + myScriptArgumentA + "\rScriptArgumentB: " + myScriptArgumentB);
if(File.fs == "Windows"){
var myVBScript = "Set myInDesign = CreateObject(\"InDesign.Application.CS3\")\r";
myVBScript += "myInDesign.ScriptArgs.SetValue \"ScriptArgumentA\", \"This is the first script argument value.\"\r";
myVBScript += "myInDesign.ScriptArgs.SetValue \"ScriptArgumentB\", \"This is the second script argument value.\"";
2: Scripting Features Working with Script Labels 8
app.doScript(myVBScript, ScriptLanguage.visualBasic);
}
else{
var myAppleScript = "tell application \"Adobe InDesign CS3\"\r";
myAppleScript += "make script arg with properties{name:\"ScriptArgumentA\", value:\"This is the first script argument value.\"}\r";
myAppleScript += "make script arg with properties{name:\"ScriptArgumentB\", value:\"This is the second script argument value.\"}\r";
myAppleScript += "end tell\r";
app.doScript(myAppleScript, ScriptLanguage.applescriptLanguage);
}
var myScriptArgumentA = app.scriptArgs.getValue("ScriptArgumentA");
var myScriptArgumentB = app.scriptArgs.getValue("ScriptArgumentB");
alert("ScriptArgumentA: " + myScriptArgumentA + "\rScriptArgumentB: " + myScriptArgumentB);
Обратил внимание на конструкции app.scriptArgs.setValue и app.scriptArgs.getValue.
 
Статус
Закрыто для дальнейших ответов.