あなたはあなたのコードにAppleScriptが送るAppleEventsを扱わせる方法を知っています。 今、あなたはあなたのアプリケーション/スクリプト用のAdditionのAppleScript辞書を書かなければなりません。 プログラムのAppleScript辞書はスクリプトがプログラムとコミュニケートするのに使用しなければならない用語を指定します。 あなたは利用可能な Smileにある File>オープンa辞書メニューで辞書を見ることができます。 .sdefファイル あなたのプログラムのために辞書を作るために、あなたは ツォProjectNameツサを書き直します。プロジェクトにおけるsdefファイル。 これはXMLファイルです。 SmileはXMLエディタです。(そこでは、あなたがファイルをチェックすることができます)。 Smileのファイルを開くには、Smileのアイコンにアイコンをドラッギングしてください。 ファイルは新しいユニコードウィンドウで開きます。 DTDに関してXMLの正当性をチェックするために、プレスにcmd入ります(竚倪桁)。XML構文をチェックするために、エンターキーキーを押してください、(竚?あなたが得るエラーメッセージは .sdefファイルに関するどんな問題も診断して、解決するために非常に有用です。 XMLを導入します。 あなたがXMLに詳しくないなら、あなたが知らなければならないすべてはそれがタグ付けをされたテキストであるということです。 タグは、 <から始まって、 >で終わります。例えば、 <タグ>は初めのタグです。 それは終わりのタグで閉じられなければなりません。(それは、 </タグ>でなければなりません)。 タグは1つの要素を定義します、そして、それらは順番にXML、または生のテキストである何らかのテキストを同封します。 <タグ/>は <タグ></タグ>、空の要素のための近道です。 タグは属性を含むかもしれません、例えば、 <タグ名=の"fred"/>では、 タグ要素は値が "fred"である 名前属性を持っています。 要素は、入れ子にされますが、交錯しないかもしれません。 .sdefファイルで、あなたはlenghtyであるかもしれないストリングを書かなければなりません--例えば 記述属性を見てください。 あなたがXMLに書いているので、そういうものとして数文字を書くことができません。 以下の同等物を使用してください。 持つために… | 書いてください… | & | & | < | < | > | > | " | " | apos; | apos; | .sdefファイルの構造構造は 男性sdefで説明されます。 実際にそれは例が提供した使用に十分です。 あなたは既存のクラスかコマンドをコピーします、そして、必要に応じて属性を変えます。 情報はsdefファイルの大量のドキュメンテーションではありませんが、それは、あなたがあなた自身の辞書を作るのを可能にするでしょう。 - スイート
辞書は数個のSuitesを含むかもしれません。(例えばSmileの辞書を見てください。) 辞書要素は1か数個の スイート要素を含むかもしれません。 スイートは2つの属性を必要とします: (Suiteを指定する一連の4つのキャラクタ)を命名して、 コード化してください。 通常、また、 記述属性を提供するのは十分です。例: "SAMP"<スイート名前=「サンプルAdditions」コード=記述=「これはSmileの中で使用されるべきであるSatimageによるサンプルです」。 追加情報">"がないかどうかwww.satimage-software.comをチェックしてください。 - クラス
スイートは クラス要素を含むかもしれません。(順番に、それは、1か数個の クラス要素を含むかもしれません)。 クラスは2つの属性を必要とします: 属性(クラスを特定する一連の4つのキャラクタ)を命名して、 コード化してください。 それは任意の属性をサポートします。例: <は>を分類します。 ツ????lt、; クラス名=「本当の配列」コード=「リド」隠された=「隠された」複数=、「本当の">"の配列 ツ????lt; /クラス> ツ????lt、; "Matr"隠された=「隠された」クラス名=「マトリクス」コード=複数=、「マトリクス">" ツ????lt; /クラス> </クラス> - コマンド
スイートは コマンド要素を含むかもしれません。(順番に、それは、1か数個の 指揮機関を含むかもしれません)。 コマンドは2つの属性を必要とします: 命名して、 コード化します。 それは任意の属性をサポートします。 コード属性の値はコマンドを特定する8つのキャラクタであるべきです: 彼らはAppleEventを特定する4バイトの2つのコードを作ります。 最初の4つのキャラクタがSuiteのコードであるべきです。 それらはあなたが EventDescription gEventDescriptionList[]、ファイル ツォProjectNameツサで指定するキャラクタです。cp。 コマンドは ダイレクトパラメタ、 結果、および パラメタ要素を含むかもしれません。 これらの要素は タイプ属性を必要とします、そして、また、 記述属性をそれらに提供するべきです。 タイプ属性の値がそうでなければならなく、どちらかが、AppleScriptの基本のタイプ(整数、 本物、 ストリングなど)か既に定義された クラスです。 タイプ属性に加えて、 パラメタ要素は2の属性 名と コードを必要とします。 コード属性のための値はパラメタを特定する一連の4つのキャラクタでなければなりません。 このコードは入力パラメタを読むとき AEGetParamDescが予想する AEKeywordです。( ツォProjectNameツサ.cpファイルの中の。) 例のツ? ツ??????????lt; コマンド> ツ???????????????lt、; "SAMPMAND"コマンド名="mandelbrot"コード=記述=、「分析的な機能f(z)=z*z+c">"の繰り返しに関連づけられたフラクタルセットを計算してください。 ツ????????????????????lt; 「整数」任意の=「任意」のダイレクトパラメータの型=記述=「最大数の繰り返し。」 デフォルト: 「2556.」/> ツ????????????????????lt; なるのが=「マトリクス」記述=をタイプする、「cの各値のために腹筋に達するのに必要な繰り返しの数を含むマトリクス、(f(z))の>の2インチ/の>、」 ツ????????????????????lt; 「x$$$」パラメタ名前="xdata"コード=タイプ=「本当の配列」記述=「cの実数部」/> ツ????????????????????lt; 「y$$$」パラメタ名前="ydata"コード=タイプ=「本当の配列」記述=「cの虚数部」/> ツ???????????????lt; /コマンド> ツ???????????????lt、; "SAMPJULI"コマンド名="julia"コード=記述=、「juliaフラクタルセット">"を計算してください。 ツ????????????????????lt; 「整数」任意の=「任意」のダイレクトパラメータの型=記述=「最大数の繰り返し。」 デフォルト: 「2556.」/> ツ????????????????????「lt; なるのは=「マトリクス」記述=をタイプする」」 /> ツ????????????????????lt; 「x$$$」パラメタ名前="xdata"コード=タイプ=「本当の配列」記述=「cの実数部」/> ツ????????????????????lt; 「y$$$」パラメタ名前="ydata"コード=タイプ=「本当の配列」記述=「cの虚数部」/> ツ???????????????lt; /コマンド> ツ??????????lt; /は>を命令します。 この例では、ソースコード( ツォProjectNameツサ.cpの)の可変 gEventDescriptionListは以下であることのようにそうであるべきです。 EventDescription gEventDescriptionList[]=、'挽き割りトウモロコシ'、'MAND'、0、'挽き割りトウモロコシ'、'ジューリー'、1 そして、 OsaxEventHandler機能は以下の通りであるかもしれません。 パスカルOSErr OsaxEventHandler(const AppleEvent*メッセージ、AppleEvent*回答、長いrefCon) ツ?????魔女(refCon) ツ??????????ase0: MandelbrotFractalHandler(メッセージ、回答)を返してください; ツ??????????ase1: JuliaFractalHandler(メッセージ、回答)を返してください; ツ??????????/は必要に応じて他のケースをここに挿入します。 ツ??????????efault: errAEEventNotHandledを返してください; ツ????? } 重要な所見 - 新しいコマンドを命名します。
辞書では、あなたは新しい動詞、新しい前置詞(動詞のためのパラメタを紹介するキーワード)、および新しいクラスを定義するでしょう。 別の辞書(Smileの辞書、またはScripting Additionの辞書の)で既に宣言された名前を選ぶと、あなたは用語闘争を経験するでしょう。 . 特定の可能な同じくらい用語を定義するために。それは重要な1です。妨げない命令でできるだけわずかな新学期しか定義しないように、用語スペース、2を上げてください。最初の規則は以下の通りです。 英語でそういうものとして存在する用語を使用しないでください。 例えば、あなたが何らかの最小化アルゴリズムを適用するScripting Additionをプログラムして、あなたの機能 最小限を命名したいと思うなら、気が変わってください。 (最小限は既に Satimage.osaxのキーワードです。) 様々な戦略は用語闘争を避けることができます。 あなたは複合名、例えば FindMinimumを使用することができます。 新しい動詞のための良い名前は 最小値を見つける2つ以上の単語で作られた名前であるかもしれません。 AppleScriptには、いくつかの単語の名前に関する問題が全くありません、単独であるという個々の単語の1つが既存の用語と衝突すると。 別のソリューションはあなたのコードによるあなたのすべての新しいコマンドを前に置くことです。 例えば、 XMLLib Scripting Additionのすべてのコマンドが3手紙XMLと共に始まります、命名パターンをかなり明白に(XMLOpen、 XMLcloseなど)して。 これは、あなたもあなたのプログラムのユーザも少しの用語闘争も経験しないのを確実にします。 - 新しい4バイトのコードを選択します。
あなたは4バイトの新しいコードを定義しなければならないでしょう--それらのコードはあなたの辞書とCプログラムとの接続を作ります。 プライマリ重要性では、あなたは非既存のコードを使用します。 これらのコードはどんな4バイトのどんな系列であるかもしれません。最初の規則は以下の通りです。 アップルが定義するコードは小文字のアルファベット文字だけを使用します(例えば、 sdskは用語 始動ディスクのための内部のコードです。)。 単に少なくとも1つの大文字アルファベットか何らかの非アルファベット文字を含んでいるコードを定義してください。 4バイトのコードが既に定義されるか否かに関係なく、あなたは急速にテストすることができます。 'Par1'が既に定義されるか否かに関係なく、テストしたいと仮定してください。 Smileの端末のAppleScriptでは、復帰改行で ツォクラスPar1ツサに書いてください。 エンターキーキーを押すことによって系列を実行してください、(竚?既にコードを定義したなら、自動的に山形袖章がある式を対応する用語に取り替えるでしょう。( ツォ例えば、クラスの長いツサは 整数にコンパイルされるでしょう。) AppleEventの識別子(4バイトの2つのコードで作られている)が既に定義されるかどうかチェックするのは同様です。 SAMPMANDコードを使用するのを計画していると仮定してください。 以下の式を実行してください: AppleScript端末のツォイベントSAMPMANDツサ。 式がイギリスのような用語までコンパイルされないなら、コードは無料です。 - 用語を変えます。
あなたが4バイトのコードを変えないであなたの「スクリプト-可能」アプリケーションにおけるコマンドのためのAppleScript用語を変えるとき(例えば、あなたは findMinimumを 範囲最小限へのコマンドに改名します)、あなたがSmileをやめて、再展開した後にだけ新しい用語は利用可能です。 |