2004/10-2005/3まで
Smalltalk,Squeakに興味があり、手に入る関連図書を見てみましたが、私が望むようなものがありませんでした。このような解説書の登場を待っていました。貴書のおかげでSqueakへの理解度が格段に深まりそうです。
SqueakToysで子供と遊び初めて、Squeakそのものに興味を持ち始めました。翻訳本でオブジェクト指向を含め学習をはじめたのですが、途中で挫折。そんな時、この本にであってサンプルを実際に動かしながら学習を再度はじめました。まだ第3章の初めですが、今度はそこそこ理解していけそうです。
「Squeakは、皆さんのプログラミングでどのようにでも育っていく生き物なのです」という言葉通り、自分オリジナルの環境がはやく作れるようになりたいなと思っています。
不明な点があれば、こちらで質問してよろしいのでしょうか?
- 忙しくて見れない場合もありますが、出来る限りお答えします。(umejava)
p303 下から3行目に「同様のことをブラウザウィンドウなどでやってみても」と、ありますが、具体的にはどのようにするのでしょうか。そこが分からなくて、"Preferences disable: #fastDragWindowForMorphic."の確認に進めません。
- 「ウィンドウのインスペクタを開いた上で、そのウィンドウをマウスカーソルで掴んで動してみる」ということです。少しわかりにくかったかもしれませんね。ウィンドウもモーフなので、楕円モーフなどと動きが同じになるはずということです。(umejava)
p304 1行目の "Preferences disable: #fastDragWindowForMorphic." を "do it" してみましたが、楕円モーフをつかんでみると ActiveHand の submorphs の変化は以前と変りなく起こるようですが、どこを確認するのでしょうか?
- 掴むのは楕円モーフでなく、"ウィンドウ"のモーフです。インスペクタでsubmorphs欄を観察しながら、ブラウザなどのウィンドウ(のモーフ)を掴んで動かします。ウィンドウもまたモーフなのですが、最適化が施されていて、動きが少し異なるということです。(umejava)
梅澤さんの本のおかげでずいぶん助かっています。
ところで、質問ですが、Morphic入門のところでプログラミングの練習で、drawOn:のメソッドを使って、絵を描きますが、これを実際にActive Worldに表示する際には、クラスにNewメソッドを送り openInWorldと続けます。この際のOpenInWorldは、drawOn:メソッドの引数である aCanvasとして渡されるのでしょうか?
- Morph>>openInWorldの中身を見ていくとわかりますが、結局のところ、現在のWorldに自分を追加して、stepメソッドを定期的に呼ぶように登録するだけです。(Morph>>openInWorld: aWorldに具体的な処理が書いてあります)。ではCanvasはどこからやってくるかというと、まったく別のクラスであるWorldStateが処理を受け持っています。WorldStateは、新たなWorldに入る(プロジェクトに入る)と初期化され、描画用のループを開始します。WorldStateのdisplayWorld: aWorld submorphs: submorphsが描画ループの中心的な処理になります。ここでCanvasのインスタンスが、ワールドのサブモーフに渡されて、drawOn:が呼ばれていくことになります(実際には間の処理がもっとたくさん入っています)。ただし、これはMorphicの内部中の内部の処理ですので、通常のMorphicプログラミングでは意識する必要はありません。まずは、CanvasのインスタンスがdrawOn:で自動的にやってくると考えておけば良いのではないでしょうか。(umejava)
"自由自在"おかげで、Squeak入門させていただきました、感謝しております。
早速質問で恐縮です。私はWindowsXPで使用しています。SampleCodes.sar.zipをダウンロードし解凍してSampleCode.sarにしてSqueak.exeの入っているフォルダー(これが起動ディレクトリーだと思い)に入れ、open->filelistで開こうとしますが、installボタンが出ません(Squeakフォルダー内のファイルとして(右側のウインドウに)~.sarが表示されません)。このような質問は今までなかったでしょうか?、もし原因が分かりましたら教えていただけないでしょうか?よろしくお願いいたします。
- ファイル名が"SampleCodes.sar.zip"になっているところが、不具合の原因と思われます。展開ではなく、SampleCodes.sar.zipをSampleCodes.sarにリネームして試してみていただけませんでしょうか。サーバ上には"SampleCodes.sar"で置いてあるのですが、ダウンロード時に環境によってはzipの拡張子が勝手についてしまうのかもしれません。ファイルリストは拡張子でボタンを表示しているので、.sarで終わっているファイルであれば、installボタンが出てくると思います。(umejava)
Link to this Page
- ご意見箱 last edited on 30 September 2021 at 2:21:41 pm by 122x220x71x163.ap122.ftth.ucom.ne.jp