[View] [Edit] [Attachments] [History] [Home] [Changes] [Search] [Help]

Project

Squeak で作品を作るとき、それぞれの作品を分けるために Project と言う仕組みを
作ります。SqueakToys の枠内で作るときはそれ程でもないですが、Smalltalk 言語を混ぜようと
したときに謎が多く含まれていることに気が付きます。


最初保存の仕組みを調べようと思ったけど、難しかったので読み込み時の
仕組みを調べました。読み込み中にすかさずインタラプト(alt + .)すると、
どうやら
ProjectLoading>>openName:stream:fromDirectory:withProjectView:
が怪しいらしい。

ファイルの中身を調べる 例 ProjectTest.001.pr ファイル

プロジェクトの保存

Project>>exportSegmentWithChangeSet:fileName:directory

画像が化けた時の対処の仕方。

画像を取り込んだプロジェクトをそのまま保存すると化けるが、一度他のプロジェクトにコピペすると上手く行く。なぜだ?! 保存したファイルを調べてみると、そのままのときは GIFっぽいフォーマットになっているが(しかし化けている)コピペした後は gzip フォーマット(解凍後ビットマップ?)になっている。

Uploaded Image: before.gif Uploaded Image: after.gif

ヒント

http://groups.yahoo.com/group/squeak/message/54616
ReferenceStream(DataStream)>>nextPutAll: でデータを書き出してゆく
ReferenceStream(DataStream)>>writeBitmap: 画像の場合に呼ばれる
ImageSegment>>copySmartRootsExport: で実際に書き出す?

Project current resourceManager resourceMap で、リソースの表が出る

Link to this Page

propella home