ユーザー定義Displayableをスクリーンに表示するときの注意点

 標準で用意された機能では足りないときに自分でDisplayableを定義する必要があるのですが、詰まった部分を覚え書きとして残しておきます。

 例えば、フィールドにドラッグ中かどうかなどを保存するドラッグ可能なDisplayableを作成し、add Class(hoge, hoge)のようにしてスクリーンに表示するとします。これはそのままでは機能しません。スクリーンが何かあるごとに再描画され、オブジェクトが再生成され置き換えられるからです。これを防ぐには__ed__関数を実装し置換の必要がないときはTrueを返すようにすればよいです。また少しハックは使い方になりますが、__eq__関数内部で新しく作成されたオブジェクトからフィールドを受け取って古いオブジェクトを使用しつつ更新するという方法もできます。

 スクリーンは頻繁に再生されるので変数が予想と違った状態になることがないかは気をつけた方がよいです。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です