- 1 名前:ぷご 投稿日: 2003/09/03(水) 23:34
- なんでもOKで気軽に書き込むスレッドです。
ネタ系、雑談、思いつき、文句など書き込みましょう。
- 165 名前:<消去> 投稿日: <消去>
- <消去>
- 166 名前:有馬ゆず 投稿日: 2007/09/17(月) 17:11:56
- 先日は、ハイパカ・フォーラムの方で、お教え戴き、本当にありがとうございました。
教えていただいた通りに、消えないカラーを使うことで、先日の問題は解決したのですが、 その途中に、また、分からないことができてしまったので、再度質問してしまいます。
<前提> PgColorX "Install"でカラー化した2枚のカードの間を移動させたいのですが、 そこで問題が起こってしまいました。
<移動元のカードの状況> 移動元のカードには、ボタンがあって、そのボタンを押すと、 消えないカラーをアンインストール後、ターゲットのcdに飛ぶようになっています。
また、このボタンには、ボタンスクリプト中の
on mouseEnter PgColorX "Paint", "cd", "#FFFF99", rect of me PgColorX "String", "cd", short name of me, "#000000", topLeft of me,"or" Go to this cd end mouseEnter
on mouseLeave PgColorX "Paint", "cd", "#FFFFCC", rect of me PgColorX "String", "cd", short name of me, "#000000", topLeft of me,"or" Go to this cd end mouseLeave (省略されました・・全てを読むにはここを押してください)
- 167 名前:有馬ゆず 投稿日: 2007/09/17(月) 17:12:58
- <症状>
上に引用したスクリプトが動いている状態で、このボタンを押すと、 このボタンの画像(色のついた四角と黒のボタン名)が、 移動先のインストールされた画像に一緒に映り込んでしまいます。 移動元のカードでボタンがあった位置に、ボタンの画像がなぜかある状態です。 上のスクリプトを引用にすると、この現象は起こりません。 上のスクリプト中、Go to this cdをPgColorX "Flash"に替えても、同じ結果になります。 全く新しいスタックを作ってみたのですが、そこでも同じ現象を再現できるので、 Timpaniのスクリプト由来の現象ではないと思われます。
上のボタンは、会話窓の選択肢に使うもので、 できれば、プレイヤーの方が分かりやすいように、 カーソルをボタンの上に載せたら色でアクションがあるようにしたいのですが、 この写り込みは、どのように回避すればよろしいでしょうか。 全く急ぎませんので、お手すきの時でもご教示いただければ幸いです。 質問ばかりで申し訳ありませんが、どうかよろしくお願いいたします。
前の投稿が長すぎたようで、申し訳ありません。
- 168 名前:有馬ゆず 投稿日: 2007/09/17(月) 17:25:39
- 書き忘れましたが、
PgColorXのバージョン:2.36 HyperCardのバージョン:2.2Lite 2.2Liteで作ったものをHyperCard Player2.4.1で動作させても、同じ現象が起こります。
よろしくお願いいたします。
- 169 名前:ぷご 投稿日: 2007/09/18(火) 01:32:36
- PgColorXで色々と悩ませてしまっているようで、申し訳ないです。
他のカードに移動するとき、メッセージの順番はmouseLeaveメッセージが先で openCardが後だと思いがちです。でも実際には逆だったと思います。
(解決案1) mouseLeaveメッセージ内でカードを移動した場合には処理を実行しないようにする
(解決案2) mouseLeaveを使わず、idleでマウスカーソルの位置を元にボタン色を変える
- 170 名前:ぷご 投稿日: 2007/09/18(火) 01:40:16
- (解決案1)ですが、
「カードを移動したことを検出して処理を実行しないようにする」
検出する方法があるかどうかはわかりません。 short name of this cdでいけるのかな?
- 171 名前:有馬ゆず 投稿日: 2007/09/18(火) 05:38:00
- 原因は、PgColorXではなくて、ハイパーカード側の処理の順番だったのですね。
お教え戴き、ありがとうございました。
これをもとに、試行錯誤してみたいと思います。 本当にありがとうございました。
- 172 名前:有馬ゆず 投稿日: 2007/09/18(火) 20:31:56
- 昨日質問した件ですが、戴いた解決法その1で解決しました。
セーブデータをロードする時と、場面(=カード)移動の時に、 グローバル変数にカードのshort nameを入れておき、 上のハンドラのon mouseLeave~end mouseLeaveの最初に、 現在のカードのshort nameとグローバル変数の中身が違う場合には exit mouseLeaveするように指示を出しました。
PugoColorXとは関係のない問題だったにもかかわらず、 解決方法だけではなく、ヒントまで下さり、本当にありがとうございました。
|