[Squeak-ja: 2256] Re: プロジェクトファイル(.pr)で保存されるもの
Yoshiki Ohshima
yoshiki @ squeakland.org
2005年 1月 12日 (水) 15:18:23 JST
おおしまです。
> Takashi> > (1)サウンド、グラフィック、スクリプトデータなどの保存に付いての質問
> Takashi> > サウンドに関しては、阿部さん曰く、
> Takashi> >
> Takashi> > 6x以降はプロジェクトファイルに音も一緒に保存されるので自分の作品に新しい音を追加できます。
> Takashi> >
> Takashi> > とのことですので含めることは可能と思われますが、クラス変数内に含まれ
> Takashi> > る(あらかじめロードした)ColorFormなどをProjectファイル内に含めることは
> Takashi> > 可能でしょうか。
> Takashi> > また、マップデータやシナリオなどの情報をCollectionとしてクラス変数内
> Takashi> > に(あらかじめロードして)持ったものについても同様に可能でしょうか。
> Takashi>
> Takashi> 一番簡単なのは World のプロパティ(モーフはみんなプロパティ辞書を持っています。)
> Takashi> に入れる事だと思います。オブジェックトなら何でも入ります。プログラムを書いていて
> Takashi> 使いやすいのは storeString かなんかでシリアライズした文字列を ChangeSet に
> Takashi> クラスメソッドとして持たせる事です。
>
> なるほど。
> Worldに限らず、どこかのMorphのプロパティ辞書に一括してリソースを持た
> せる方針で問題なさそうですね。
どこかのMorphの(sub)instanceの辞書に、ということですよね。
> ・3.6ベースのイメージでSystemBrowserを開いたままプロジェクト(prファイ
> ル)としてセーブ
> ・3.8ベースのイメージでプロジェクトをロード
>
> すると、実際のアプリ(いつものRainDrop)とSystemBrowserが開いたままプ
> ロジェクトが生成されます。Look & Feelが変化してなかなか楽しい……ので
> すが、よく見ると、なんかSystemBrowserが3.6の見かけをしているような……。
>
> 試しに別のWorldに移って新たにSystemBrowserを開いても3.6の
> SystemBrowserが。ってことは、これは、
>
> ・3.6のSystemBrowserのクラスがChangeSetの形でprファイルに含まれていた
>
> ……ということなのでしょうか。
Browserというクラスのインスタンスがserializeされて入っていて、それを
ロードするときに「がっちゃん」と読み込んだ側のイメージに入っている同
じ名前のクラスのインスタンスとして読み込んだ、ということです。コード
は運ばれていません。
> Projectの形でセーブすると、確かに一見さんには判りやすい形になるので
> すが、下手なもの開いたままプロジェクト公開しちゃうと他の人の環境を破壊
> する羽目になるような気がします。たとえば、workspaceを開いた状態で今プ
> ロジェクトを公開していますが、まさか、workspaceのクラスの中身がプロジェ
> クトのロード時に書き換わってしまうとかいうことすらも考えられます。
> この辺り、どのようなルール付けで保管されているのかが少し気になりま
> す。
コードは、そのprojectに関連付けられているchange setに入っているもの
のみが入ります。ですので、必ずしも破壊されることを心配する必要はありま
せん。
> Takashi> 見てのとおりかなり気軽な物も多いので、相当気軽だと思っています。説明を
> Takashi> ちゃんと書けば特に迷惑では無いと思います。
>
> 諒解しました。
> 説明……。やっぱり、abstructに関しては英語ですよね……。善処します
> (^^;)。
> 諒解しました。
> 基本的にはsarで、デモとしてプラグインで見せる時にはprで公開するポリ
> シーにします。
そうですね。
期待しています。
-- Yoshiki
Squeak-ja メーリングリストの案内