HyqerTalkの注意事項 その3
文字列の比較
元祖HyperTalkでは文字列の比較に大文字小文字を区別しませんが、HyqerCardでは大文字小文字を区別します。これはHyqerTalkの'is','='や'is not',’<>'を単純にjavascriptの'==='とか'!=='に変換しているからです。手抜きですみません。特に注意願いたいのは関数の返り値です。基本的に文字列を返す関数は小文字で返しています。例えばsoundとかmouseです。
the sound is "done"
the mouse is "up"
などのように小文字で比較してください。
the sound is "DONE"
the mouse is "UP"
は期待通りの挙動をしません。あと、ついでながら現時点(2017/6/24)、mouse関数は私が挙動をよく理解できていなくて正しく値を返していないように思われます。
真偽値
元祖HyperTalkのtrue,falseは文字列として扱いますが、HyqerTalkでは真偽値として扱われます。ですので
the mouseClick is true
the enabled of cd btn 1 is true
などのように真偽値を返す関数やプロパティーは定数(true,false)で評価や設定をしてください。
the mouseClick is "true"
the enabled of cd btn 1 is "true"
のように文字列で値を評価しないでください。
座標指定上の注意
座標指定でマイナス値を指定する場合は変数を使ってください。ロジックを追っていないので不具合箇所を特定していないのですが、とにかく
set loc of cd btn 1 to -30,-30
というような指定はエラーになります。
put -30 into hensu1
put -30 into hensu2
set loc of cd btn 1 to hensu1,hensu2
という風にして下さい。
確認していませんが、rectangle指定も同様だと考えます。
2017/7/3追記
domenu "Quit HyperCard"
アプリ名はHyqerCardですが、メニューで終了させる時は"Quit HyperCard"です。これは、HyperCardとの互換性のためで、domenuコマンドで終わらせる時は
domenu "Quit HyperCard"
です。
play stopの挙動
play stopはなっているサウンドを取り消すコマンド&引数ですが、fluteがなっている場合は止まりませんのでご注意ください。"Quit HyperCard"でも終了しません。止める場合はブラウザでreloadしてください。HyqerCard Referrenceにも記載があります。