System.touchImages

機能/意味

画像のキャッシュへの読み込み

タイプ
Systemクラスのメソッド
構文
touchImages(storages, limitbytes=0, timeout=0)
引数
storages

キャッシュに入れたい画像ストレージ名を配列(Arrayクラスのオブジェクト)で渡します。
先に書いた物ほど優先されます。
吉里吉里は、Layer.loadImages の第1引数に指定された文字列をそのままキーにしてキャッシュを管理するため、キャッシュを意味のある物にするには、ここで指定する画像ストレージ名は Layer.loadImages の第1引数に指定するものと同一である必要があります。

limitbytes

このメソッドの呼び出しで使用するキャッシュ容量の制限値をバイト単位で指定します。
0 を指定すると、キャッシュをすべて使用します。正の数を指定すると、そのバイト数までキャッシュを使用しようとします。
負の数を指定すると、現在のキャッシュの制限値 ( System.graphicCacheLimit ) からその数値が加算された数 ( ただし「負の数」を加算するので実際は減算 ) が制限値として使用されます。
その結果制限値が0 または負になってしまった場合は、このメソッドは何もせずに終了します。
たとえば、-210241024 を指定すれば、現在のキャッシュ制限値から 2MB が引かれた数値が指定されたとみなされます。
これは、キャッシュの残り容量に余裕を残したい場合に便利です。

timeout

タイムアウト ( 時間制限 ) を ms 単位で指定します。0 を指定すると無制限となります。
このメソッドはこの引数で指定された時間が経過すると、以降の画像の読み込みを中止し、戻ります。
ただし、ある画像の読み込み中にタイムアウトになっても、その画像の読み込みが終了するまでは戻りません。

戻り値
なし (void)
説明

このメソッドは、指定された画像をキャッシュに入れようと試行します。
ただし、このメソッドはキャッシュに画像を入れようと努力はしますが、実際に画像がキャッシュにはいる保証はありません。
画像キャッシュの制限値をすぎたり、タイムアウトすると画像読み込みを中断します。
画像は、storages引数に指定した物のうち、最初に書いた物ほどキャッシュに入る可能性が大きくなります ( 優先されます )。
すでに指定された画像がキャッシュに入っていた場合は、キャッシュ中での生存の順位を引き上げるだけの動作をします。
このメソッドは、画像読み込み中のエラーはすべて無視します。
現バージョンでは、このメソッドでキャッシュに入れることのできる画像は、通常Layer.loadImages で読み込み可能な画像で、かつカラーキーを指定しない画像です ( アルファチャンネル付き画像は問題ありません )。
ユニバーサルトランジションのルール画像や、領域画像は読み込む動作はしますが、キャッシュとして有効なデータにはなりません ( 読み込んだデータは無駄になります ) ので、指定しないようにしてください。
画像がキャッシュで使用するバイト数については System.graphicCacheLimit を参照してください。