2019-06-10 16:30:23
Re①:ごめんなさい、やっぱり駄目でした
これはなでしこのバグの様な気もするんですけど #---ここから--- ■MyImage +イメージ ・内容展開~ 自身の0,0を赤色で$10101まで塗る ・クリックした時は~ 内容展開 ■話題項目 ・イメージ1 ・作る~ イメージ1をMyImageとして作成 テスト1とは話題項目 テスト2とは話題項目 テスト2→イメージ1→Y = 60 #---ここまで--- とした場合、テスト1とテスト2のインスタンスの中にそれぞれ「イメージ1」が作られてはいるん ですが、イベントのハンドリングが最初に作った「イメージ1」だけになってしまって、テスト2の 中のハンドラは無効になってる気がしますね。なので質問で載せてもらったプログラムのテスト2 の「+」をクリックするとテスト1の方が「-」になっちゃう。(XとかYとか位置情報に関しては テスト1、テスト2のそれぞれのMyImageインスタンについて独立したものになってるのに、 イベントハンドラは一緒になってる)。 それぞれのインスタン内の「イメージ1」と言う名前が違えばうまく行く様なので、あまりキレイな 対処方法ではないですが #---ここから--- ■MyImage +イメージ ・{=1}開くフラグ ・内容展開~ 自身の0,0を赤色で$10101まで塗る もし、開くフラグが0と等しいならば 自身の5,-5へ"+"を文字表示 開くフラグは1 違うならば 自身の5,-5へ"-"を文字表示 開くフラグは0 ・クリックした時は~ 内容展開 ■話題項目 ・作る~ イメージ1[n]をMyImageとして作成 イメージ1[n]→X=0 イメージ1[n]→Y=0 イメージ1[n]→W=500 イメージ1[n]→H=50 文字サイズは50 線色は$10101; 線太さは1 イメージ1[n]の50,0から50,50へ線 イメージ1[n]の0,0を赤色で塗る イメージ1[n]の60,30を$F5D2D2で塗る イメージ1[n]の5,-5へ"+"を文字表示 n = n + 1 n = 0 #これをグループの外部に宣言 テスト1とは話題項目 テスト2とは話題項目 イメージ1[1]→Y=60 #---ここまで--- としては駄目でしょうか。一応、想定どおりの動きにはなります。ただし、最後の 「テスト1[1]→Y=60」部分を見てもらったら分かる通り、グループ内で作成している 「イメージ1[n]」はそのスコープがグローバルになります(グループ内で作成している だけで、グループの外で宣言してるのと一緒)。 しかしなんでイベントハンドラだけインスタンス化されないんだろう… |