リソースの読み込みエラーの管理 †イメージやサウンドのリソースをresourceタグを使って読み込む時、UJMLアプリケーションは読み込みの処理の成功・失敗をそれぞれonResourceAvailable?イベントとonResourceError?イベントによって知ることができる。 リソースの読み込みはネットワークの状況やリソースを保存しているサーバの状況などによって失敗することもあり得る。このような場合を考え、resourceタグを使う時には一緒にonResourceError?イベントのハンドラを用意し失敗した場合を考慮しておくことが望ましい。 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 1.5//EN"
"http://www.uievolution.com/dtd/ujml-1.5.dtd" [
<!ENTITY STATE_NONE "0">
<!ENTITY STATE_LOAD_IMAGE "1">
<!ENTITY STATE_SHOW_IMAGE "2">
<!ENTITY STATE_QUIT "3">
]>
<ujml>
<application>
<state-variables>
<state-var name="sDisplay" type="int"/>
</state-variables>
<script>
<!-- load image first -->
sDisplay = &STATE_LOAD_IMAGE;;
</script>
<states>
<state var="sDisplay">
<transition value="&STATE_LOAD_IMAGE;">
<!-- load image first -->
<resources>
<resource>
<url><eval>_image_url("sample")</eval></url>
<event name="onResourceAvailable">
<script>
_trace("loading image is done");
sDisplay = &STATE_SHOW_IMAGE;;
</script>
</event>
<event name="onResourceError">
<script>
/***** FAILED TO LOAD THE SPECIFIED RESOURCE. QUIT NOW *****/
_trace("failed to load image file");
sDisplay = &STATE_QUIT;;
</script>
</event>
</resource>
</resources>
</transition>
<transition value="&STATE_SHOW_IMAGE;">
<!-- loading image is done. you can show it now -->
<display>
<image>
<url><eval>_image_url("sample")</eval></url>
<x>0</x>
<y>0</y>
<width>100</width>
<height>100</height>
</image>
</display>
</transition>
<transition value="&STATE_QUIT;">
<!-- quit this application -->
<script>
_unload();
</script>
</transition>
</state>
</states>
</application>
</ujml>
|