[View] [Edit] [Attachments] [History] [Home] [Changes] [Search] [Help]
Project
Squeak で作品を作るとき、それぞれの作品を分けるために Project と言う仕組みを
作ります。SqueakToys の枠内で作るときはそれ程でもないですが、Smalltalk 言語を混ぜようと
したときに謎が多く含まれていることに気が付きます。
- 画像はどういう風に保存されているのだろうか?
- コードはどういう風に保存されているのだろうか?
最初保存の仕組みを調べようと思ったけど、難しかったので読み込み時の
仕組みを調べました。読み込み中にすかさずインタラプト(alt + .)すると、
どうやら
ProjectLoading>>openName:stream:fromDirectory:withProjectView:
が怪しいらしい。
ファイルの中身を調べる 例 ProjectTest.001.pr ファイル
- ProjectTest.001.pr(zip形式) 解凍->
- ProjectTest.001/resource.1.form (画像?)
- ProjectTest.001.pr(gzip形式) 解凍->
- ProjectTest.001.rc.gz (gzip形式) 解凍->
- ProjectTest.001.rc (テキスト) リソースファイル名
- ProjectTest.html
プロジェクトの保存
Project>>exportSegmentWithChangeSet:fileName:directory
画像が化けた時の対処の仕方。
画像を取り込んだプロジェクトをそのまま保存すると化けるが、一度他のプロジェクトにコピペすると上手く行く。なぜだ?! 保存したファイルを調べてみると、そのままのときは GIFっぽいフォーマットになっているが(しかし化けている)コピペした後は gzip フォーマット(解凍後ビットマップ?)になっている。
ヒント
http://groups.yahoo.com/group/squeak/message/54616
ReferenceStream(DataStream)>>nextPutAll: でデータを書き出してゆく
ReferenceStream(DataStream)>>writeBitmap: 画像の場合に呼ばれる
ImageSegment>>copySmartRootsExport: で実際に書き出す?
Project current resourceManager resourceMap で、リソースの表が出る
Link to this Page
- SqueakTips last edited on 9 November 2004 at 5:00:48 pm by 192.168.0.8