![]()
ƒCƒ“ƒTƒCƒh UJML
ƒo[ƒWƒ‡ƒ“ 1.5 - 2006/06/23
Copyright 2001-2006 by UIEvolution, Inc. All rights reserved.
¬‚³‚ȃfƒoƒCƒX‚Å‚à–L‚©‚ȃ†[ƒU‘ÌŒ±
ƒCƒ“ƒXƒg[ƒ‹•s—v‚̃AƒvƒŠƒP[ƒVƒ‡ƒ“ƒ‚ƒfƒ‹‚ð’ñ‹Ÿ
ƒtƒ@ƒ“ƒNƒVƒ‡ƒ“ƒL[iFunctionKeyj
–{ƒKƒCƒh‚Í UjinnMarkup Language(UJML) ‚ðŽg—p‚µAŒg‘Ñ“d˜b‚âPDAAƒpƒ\ƒRƒ“A‚»‚µ‚Ä‘g‚Ýž‚Ý‹@Ší‚Ȃǂ̃vƒ‰ƒbƒgƒtƒH[ƒ€‚É‚¨‚¢‚ăAƒvƒŠƒP[ƒVƒ‡ƒ“‚ÌŠJ”‚Æ”z•z‚ðŠÈ’P‚És‚¤•û–@‚É‹»–¡‚ª‚ ‚él‚Ì‚½‚߂̃KƒCƒh‚Å‚·B
–{ƒKƒCƒh‚ÍŠÈ’P‚ȃQ[ƒ€EƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚Ì‘‚«•û‚ɂ‚¢‚Äà–¾‚·‚éƒ`ƒ…[ƒgƒŠƒAƒ‹Œ`Ž®‚ð‚Æ‚Á‚Ä‚¢‚Ü‚·Bƒ`ƒ…[ƒgƒŠƒAƒ‹‚É‚¨‚¯‚éŠeƒXƒeƒbƒv‚Å‚ÍAƒQ[ƒ€ŠJ”‚É‚¨‚¯‚é UJML ‚ÌŠT”O‚ð‚P‚‚¸‚ÂЉ‚Ä‚¢‚Ü‚·B–{ƒKƒCƒh‚͂܂½AUJML ‚ÌŠT”O‚ÉŠÖ‚·‚éˆê”Ê“I‚ȃqƒ“ƒg‚à’ñ‹Ÿ‚µ‚Ä‚¢‚Ü‚·B
UJML ‚ðŽg—p‚·‚邯AƒŠƒbƒ`‚ȃ†[ƒU‘ÌŒ±‚ð—^‚¦‚éƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚𑼂̂ǂñ‚ȃeƒNƒmƒƒW[‚æ‚è‚à‘½‚‚ÌlX‚ɑ΂µ‚Ä’ñ‹Ÿ‚·‚邱‚Æ‚ªo—ˆ‚Ü‚·B
UJML ‚Í2‚‚̂±‚Æ‚ðŽÀŒ»‚·‚邽‚ßAƒ~ƒjƒ}ƒŠƒXƒg‚ÈŽv‘z‚ÅÝŒv‚³‚ê‚Ä‚¢‚Ü‚·B1‚Â‚Í UJML ‚̃oƒCƒgƒR[ƒh‚ðŽÀs‚·‚é UIE Player ‚̃TƒCƒY‚𬂳‚‚·‚邱‚ÆBUIE Player ‚Í Java ‘Ήž’[––‚É‚¨‚¢‚Ä 30KB ’ö“x‚ÉŽû‚ß‚ç‚ê‚Ä‚¢‚Ü‚·B‚à‚¤1‚‚̓Vƒ“ƒvƒ‹‚©‚ÂK“¾‚ª—eˆÕ‚ȃvƒƒOƒ‰ƒ~ƒ“ƒOŒ¾Œê‚ðŽÀŒ»‚·‚邱‚ÆBUJML ‚̓~ƒjƒ}ƒŠƒXƒg‚ÈÝŒvŽv‘z‚ðÌ‚Á‚Ä‚¢‚é‚É‚àŠÖ‚í‚炸AƒŠƒbƒ`‚ȃ†[ƒU‘ÌŒ±‚ð’ñ‹Ÿ‚·‚éƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ÌŠJ”‚ðŽÀŒ»‚µ‚Ä‚¢‚Ü‚·B
UJML ‚Í ECMA ScriptiJavaScriptj‚̃TƒuƒZƒbƒg‚ðƒTƒ|[ƒg‚·‚éAXMLƒx[ƒX‚̃vƒƒOƒ‰ƒ~ƒ“ƒOŒ¾Œê‚Å‚·B
ŽŸ‚ÉA‰æ–Êã‚ÉuHello Worldv‚Æ•\ަ‚·‚éƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ðЉ‚Ü‚·B‚±‚Ì—á‚Å‚Í UJMLAJavaiJ2ME/MIDPjAC++iBREWj‚ÌŠeŒ¾Œê‚ðŽg‚Á‚Ä Hello World ‚ð‹Lq‚µ‚Ä‚¢‚Ü‚·BSymbianAPalm OSA‚»‚µ‚Ä Pocket PC ƒo[ƒWƒ‡ƒ“‚Í•¡ŽG‚³‚É‚¨‚¢‚Ä BREW ƒo[ƒWƒ‡ƒ“‚ÉŽ—‚Ä‚¢‚邽‚ßÈ—ª‚µ‚Ä‚¢‚Ü‚·B‚Ü‚½ HTML ‚Æ WML ƒo[ƒWƒ‡ƒ“‚ÍŠÈ’P‚³‚É‚¨‚¢‚Ä UJML ‚ÆŽ—‚Ä‚¢‚é‚Ì‚ÅA‚â‚Í‚èÈ—ª‚µ‚Ä‚¢‚Ü‚·B
‚±‚Ì”äŠr‚Å‚Í UJML ‚̃Vƒ“ƒvƒ‹‚³‚ðƒ‚ƒoƒCƒ‹—p‚Ì‘¼‚̃vƒƒOƒ‰ƒ€Œ¾Œê‚Æ”äŠrà–¾‚µ‚Ä‚¢‚Ü‚·BUJML ‚ł͓Á’è‚̈—‚ð‹Lq‚·‚邽‚߂̃R[ƒfƒBƒ“ƒO—Ê‚ª‚È‚‚Äςނ¾‚¯‚łȂAŒ¾Œê‚ðŠw‚ÑA—‰ð‚µAn—û‚·‚邽‚߂ɕK—v‚ÈŒ¾ŒêƒRƒ“ƒZƒvƒg‚ª’Pƒ‚©‚ŠȌ‰‚ɂȂÁ‚Ä‚¢‚Ü‚·B
UJML ӁF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 1.1//EN" "ujml.dtd">
<ujml>
<application>
<display>
<label>
<text>Hello world</text>
</label>
</display>
</application>
</ujml>
J2ME/MIDP ӁF
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet implements CommandListener
{
private Command exitCommand; // The exit command
private Display display; // The display for this MIDlet
public HelloWorld()
{
display = Display.getDisplay(this);
exitCommand = new Command("Exit", Command.SCREEN, 2);
}
public void startApp()
{
TextBox t = new TextBox("", "Hello World", 256, 0);
t.addCommand(exitCommand);
t.setCommandListener(this);
display.setCurrent(t);
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
}
public void commandAction(Command c, Displayable s)
{
if (c == exitCommand)
{
destroyApp(false);
notifyDestroyed();
}
}
}
BREW ӁF
#include "AEEModGen.h" // Module interface definitions
#include "AEEAppGen.h" // Applet interface definitions
#include "AEEShell.h" // Shell interface definitions
#include "AEEDisp.h" // Display interface defintions
#include "helloworld.bid" // applet class ID
#include "AEEFile.h" // AEEFile Services
static boolean HelloWorld_HandleEvent(IApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam);
int AEEClsCreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * po,void ** ppObj)
{
*ppObj = NULL;
if(ClsId == AEECLSID_HELLOWORLD)
{
if(AEEApplet_New(sizeof(AEEApplet), ClsId, pIShell,po,(IApplet**)ppObj,
(AEEHANDLER)HelloWorld_HandleEvent,NULL) == TRUE)
{
return (AEE_SUCCESS);
}
}
return (EFAILED);
}
static boolean HelloWorld_HandleEvent(IApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
AEEDeviceInfo di;
AECHAR szBuf[] = {'H','e','l','l','o',' ','W','o', 'r', 'l', 'd', '\0'};
AEEApplet * pMe = (AEEApplet*)pi;
switch (eCode)
{
case EVT_APP_START:
ISHELL_GetDeviceInfo (pMe->m_pIShell, &di);
IDISPLAY_ClearScreen (pMe->m_pIDisplay);
IDISPLAY_DrawText(pMe->m_pIDisplay, AEE_FONT_BOLD, szBuf, -1, 0, 0, 0, IDF_ALIGN_CENTER | IDF_ALIGN_MIDDLE);
IDISPLAY_Update (pMe->m_pIDisplay);
return(TRUE);
case EVT_APP_STOP:
return TRUE;
default:
break;
}
return FALSE;
}
UIE Player ‚ÍŽŸ‚̃vƒ‰ƒbƒgƒtƒH[ƒ€‚ɑΉž‚µ‚Ä‚¢‚Ü‚·F
· Java
o J2ME/MIDP (AT&T, Sprint)
o J2ME/DoJa (NTT DoCoMo 504i ˆÈ~)
o Personal Java
o J2SE (Applet/Application)
· BREW (VerizonA All-TelAau/KDDI)
· Danger Hiptop
· Palm OS 3.5 ˆÈ~
· Pocket PC
· Symbian
· Win32 ActiveX
· ƒQ[ƒ€ƒ{[ƒCƒAƒhƒoƒ“ƒXiƒvƒƒgƒ^ƒCƒvj
UJML ‚ł̓AƒvƒŠƒP[ƒVƒ‡ƒ“‚ÆƒŠƒ\[ƒX‚̓ǂݞ‚Ý‚É URL ‚ðŽg—p‚µ‚Ü‚·BUJML ‚̃vƒƒOƒ‰ƒ~ƒ“ƒOƒ‚ƒfƒ‹‚̓Xƒ^ƒ“ƒ_ƒ[ƒ“‚̃vƒŠƒCƒ“ƒXƒg[ƒ‹ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚¾‚¯‚łȂA“®“I‚ȃNƒ‰ƒCƒAƒ“ƒgƒT[ƒoŒ^ƒlƒbƒgƒ[ƒNƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚àŠÈ’P‚É쬂ł«‚邿‚¤‚ÉÝŒv‚³‚ê‚Ä‚¢‚Ü‚·BUIE Player‚ÍA‘Š‘ÎƒpƒX‚Ì URL ‚ɉÁ‚¦ http ‚Æ file ‚Ì2‚‚̃XƒL[ƒ}‚ɑΉž‚µ‚Ä‚¢‚Ü‚·B
UJML ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚Í UIE Player ‚ªŽÀs‚µ‚Ü‚·BUIE Player ‚ÍŒ‡Š×‚∫ˆÓ‚Ì‚ ‚éƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚©‚çƒfƒoƒCƒX‚ðŽç‚èAƒNƒ‰ƒbƒVƒ…‚µ‚½ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ðƒAƒ“ƒ[ƒh‚µ‚Ü‚·B‚±‚Ì "sandbox" ‹@”\‚ÍAUJML ƒAƒvƒŠƒP[ƒVƒ‡ƒ““¯Žm‚ðŒÝ‚¢‚©‚ç•ی삷‚邾‚¯‚łȂAˆ«ˆÓ‚Ì‚ ‚éƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚É‚æ‚éƒfƒoƒCƒX‚ւ̃_ƒ[ƒW‚ð§ŒÀ‚µ‚Ü‚·B
ƒfƒtƒHƒ‹ƒg‚Å‚ÍAUJML ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚©‚çƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚â“d˜b’ A“d˜b‚̉¹º”ŒÄ‚Ȃǂ̃fƒoƒCƒX‹@”\‚ɃAƒNƒZƒX‚·‚邱‚Ƃ͂ł«‚Ü‚¹‚ñBƒfƒoƒCƒX‚Ì‹@”\‚⃊ƒ\[ƒX‚ւ̃AƒNƒZƒX‚ðŠJ•ú‚µ‚½ƒJƒXƒ^ƒ}ƒCƒY”Å‚Ì UIE Player ‚Å‚ÍA UIE Player ‚ÌÝ’è‚ð’Ê‚¶‚Ä_“î‚ȃZƒLƒ…ƒŠƒeƒBƒ|ƒŠƒV[‚ðŽÀŒ»‚µ‚Ä‚¢‚Ü‚·B‚±‚̃ZƒLƒ…ƒŠƒeƒBƒ|ƒŠƒV[‚ðŽg—p‚·‚邯M—Ђł«‚é UJML ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚âƒp[ƒeƒBƒVƒ‡ƒ“‚É‚æ‚郊ƒ\[ƒX‚ւ̃AƒNƒZƒX‚ðŒÀ’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·BUIE Player ‚ÍAHTML/HTTP ƒuƒ‰ƒEƒUã‚ł̃NƒbƒL[ƒZƒLƒ…ƒŠƒeƒB‚ÉŽ—‚½AURL ƒx[ƒX‚̃Vƒ“ƒvƒ‹‚ȃZƒLƒ…ƒŠƒeƒBƒ|ƒŠƒV[‚ð”õ‚¦‚Ä‚¢‚Ü‚·B
ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚̃Cƒ“ƒXƒg[ƒ‹ŠÇ—‚©‚烆[ƒU[‚ð‰ð•ú‚·‚邽‚ßAUIE Player ‚ł̓fƒoƒCƒX‚Ƀ[ƒJƒ‹‚È‹L‰¯‘•’u‚ðƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚̃LƒƒƒbƒVƒ…‚Æ‚µ‚ÄŽg‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·BƒLƒƒƒbƒVƒ…‚É‘¶Ý‚µ‚È‚¢ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ÍUIE Player ‚ªƒlƒbƒgƒ[ƒN‚©‚çŽæ“¾‚µ‚Ü‚·BƒLƒƒƒbƒVƒ…‚ªˆê”t‚ɂȂÁ‚½ê‡AƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚͌¢‡‚ɃLƒƒƒbƒVƒ…‚©‚çŽÌ‚Ä‚ç‚ê‚Ü‚·B
‚±‚ÌŽd‘g‚݂̓fƒoƒCƒX‚̉^—pƒRƒXƒg‚ð‘啂ɉº‚°‚Ü‚·B——R‚ÍAƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚Ì•ÛŽç‚Æ”z•z‚ðƒT[ƒo[‘¤‚Ås‚¤‚½‚ßAƒfƒoƒCƒXã‚É‚¨‚¯‚éƒAƒvƒŠƒP[ƒVƒ‡ƒ“ŠÇ—‚ª•s—v‚ƂȂ邩‚ç‚Å‚·B‚±‚ÌŽd‘g‚݂͂܂½AƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚̃Aƒbƒvƒf[ƒg‚𓧉ߓI‚É”z•z‚·‚邱‚Æ‚ð‰Â”\‚É‚µ‚Ü‚·BƒAƒbƒvƒf[ƒg‚ð”z•z‚·‚é‚É‚ÍV‚µ‚¢ƒo[ƒWƒ‡ƒ“‚ðƒT[ƒo‚É”z”õ‚µ‚Ü‚·BV‚µ‚¢ƒo[ƒWƒ‡ƒ“‚ÍAƒ†[ƒU[‚ªƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ðŽÀs‚·‚邯ީ“®“I‚ɓǂݞ‚Ü‚ê‚Ü‚·B
UJML ‚Í UJML DTD‚É€‹’‚·‚é XML ƒx[ƒX‚̃}[ƒNƒAƒbƒvŒ¾Œê‚Å‚·B‚±‚ÌŒ¾Œê‚ł̓rƒWƒ…ƒAƒ‹ƒXƒe[ƒg‚Ì‹Lq‚ð’Ê‚¶‚ĉæ–Ê•\ަ‚ðs‚¢‚Ü‚·B‚Ü‚½ƒXƒe[ƒg‚É‚Í UIE Player ‚ªƒXƒe[ƒgŠÔ‚ð‘JˆÚ‚·‚éÛ‚Ì“®ì‚ð§Œä‚·‚éAŽÀsƒR[ƒh‚̃uƒƒbƒN‚ð‹Lq‚µ‚Ü‚·B
UJML ‚Í UIE Player ‚ƌĂ΂ê‚鬂³‚ȃAƒvƒŠƒP[ƒVƒ‡ƒ“iHTMLƒuƒ‰ƒEƒU‚Æ“¯“™‚Ì‚à‚Ì‚Æl‚¦‚Ä‚‚¾‚³‚¢j‚É‚æ‚Á‚ăfƒoƒCƒXã‚É•\ަ‚³‚ê‚Ü‚·BuBrowseriƒuƒ‰ƒEƒUjv‚ł͂ȂuPlayeriƒvƒŒƒCƒ„[jv‚Æ‚¢‚¤Œ¾—t‚ð—p‚¢‚é‚Ì‚ÍAHTML ƒRƒ“ƒeƒ“ƒc‚̂قƂñ‚Ç‚ªÃ“I‚ȃy[ƒW‚Å‚ ‚é‚̂ɑ΂µAUJML ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ªƒAƒNƒeƒBƒu‚©‚“®“I‚Å‚ ‚邱‚ƂɗR—ˆ‚µ‚Ä‚¢‚Ü‚·BUJML ‚Í’Êí‚Ì HTML ‚ł͂ȂAƒXƒNƒŠƒvƒeƒBƒ“ƒO‚É‚æ‚éƒAƒNƒeƒBƒu‚©‚“®“I‚ȃRƒ“ƒeƒ“ƒc‚ðƒTƒ|[ƒg‚·‚é Dynamic HTMLiDHTMLj‚ÉŽ—‚Ä‚¢‚邯‚¢‚¦‚é‚Å‚µ‚傤B
‘¼‚̃}[ƒNƒAƒbƒvŒ¾Œêƒuƒ‰ƒEƒU‚ƈقȂèAUIE Player ‚Í UJML ƒeƒLƒXƒgƒtƒ@ƒCƒ‹‚ð’¼Ú•\ަ‚µ‚Ü‚¹‚ñBƒpƒtƒH[ƒ}ƒ“ƒX‚Ìő剻‚ÆƒŠƒ\[ƒXÁ”ïiCPU‚ƃƒ‚ƒŠj‚ÌŒø—¦‰»‚ð}‚邽‚ß‚ÉAUJML ƒeƒLƒXƒgƒtƒ@ƒCƒ‹‚Í UIE Player ‚ªˆ—‰Â”\‚ȃoƒCƒgƒR[ƒhƒtƒ@ƒCƒ‹‚ɃRƒ“ƒpƒCƒ‹‚·‚é•K—v‚ª‚ ‚è‚Ü‚·BƒRƒ“ƒpƒCƒ‰‚Í UJML ƒeƒLƒXƒgƒtƒ@ƒCƒ‹‚ðŒø—¦‚Ì‚‚¢ŽÀsŒ`Ž®‚ɃRƒ“ƒpƒCƒ‹‚µ‚Ü‚·B‚»‚ÌÛAŒ³‚Ì UJML ƒeƒLƒXƒgƒtƒ@ƒCƒ‹‚𬂳‚ȃTƒCƒY‚Ɉ³k‚µA‚ƒRƒXƒg‚©‚‘шæ‚ÌŒÀ‚ç‚ꂽƒƒCƒ„ƒŒƒXƒlƒbƒgƒ[ƒNã‚ł̒ÊM”\—¦‚ð‚‚߂܂·B
ƒRƒ“ƒpƒCƒ‰‚Í UJBC ƒtƒ@ƒCƒ‹‚ƌĂ΂ê‚éƒRƒ“ƒpƒCƒ‹Ï‚Ý‚Ì UJML ƒtƒ@ƒCƒ‹‚ðƒIƒtƒ‰ƒCƒ“‚Å쬂·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B ƒRƒ“ƒpƒCƒ‰‚͂܂½AƒT[ƒo‚ɃCƒ“ƒXƒg[ƒ‹‚·‚邱‚Ƃɂæ‚èƒIƒ“ƒfƒ}ƒ“ƒh‚ȃRƒ“ƒpƒCƒ‹‚ª‰Â”\‚ɂȂè‚Ü‚·B ŽŸ‚Ì2‚‚Ì}‚Å‚ÍAUJML ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ðŠJ”‚µ”z•z‚·‚éÛ‚És‚¤ì‹Æ‚ð‚»‚ê‚¼‚ê‚̃P[ƒX‚É“–‚Ă͂߂ĉðà‚µ‚Ä‚¢‚Ü‚·B ʼn‚Ì}‚ł̓Iƒtƒ‰ƒCƒ“‚ŃRƒ“ƒpƒCƒ‹‚µ‚½ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ðƒfƒoƒCƒX‚ɃvƒŠƒCƒ“ƒXƒg[ƒ‹‚µ‚Ä‚¢‚Ü‚·B ŽŸ‚Ì}‚ł̓fƒoƒCƒX‚©‚ç‚ÌƒŠƒNƒGƒXƒg‚ɉž‚¶‚ÄAƒT[ƒo[‘¤‚ŃAƒvƒŠƒP[ƒVƒ‡ƒ“‚ð“®“I‚ɃRƒ“ƒpƒCƒ‹‚µ‚Ä‚¢‚Ü‚·B ‚±‚Ì2‚‚̓Rƒ“ƒpƒCƒ‹•û–@‚Ì“ñ‹É’[‚Å‚·‚ªA‚±‚êˆÈŠO‚É‚à‘½‚‚̃oƒŠƒG[ƒVƒ‡ƒ“‚ª‘¶Ý‚µ‚Ü‚·B

}FƒRƒ“ƒpƒCƒ‹Ïƒtƒ@ƒCƒ‹‚É‚æ‚éƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚Ì”z•z

}Fƒ_ƒCƒiƒ~ƒbƒNƒRƒ“ƒpƒCƒ‹‚É‚æ‚éƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚Ì”z•z
‚±‚Ì2‚‚̔z•zƒ‚ƒfƒ‹‚ɑΉž‚·‚邽‚ß‚ÉAUIE Player ‚Í http ‚Æ file ‚Ì—¼ URL ƒXƒL[ƒ€‚ɑΉž‚µ‚Ä‚¢‚Ü‚·B
UIE Player ‚Í HTML ƒuƒ‰ƒEƒU‚Æ“¯—l‚É—š—ð‹@”\‚ð”õ‚¦‚Ä‚¢‚Ü‚·B—š—ð‚Æ‚ÍAŽÀs’†‚Ì UJML ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚©‚ç’¼‘O‚̃AƒvƒŠƒP[ƒVƒ‡ƒ“‚É–ß‚ê‚邱‚Æ‚ðˆÓ–¡‚µ‚Ä‚¢‚Ü‚·BƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ð‹N“®‚·‚é‚É‚Í _run() ŠÖ”‚ðŽg—p‚µ‚Ü‚·B‚»‚ÌÛA‹N“®‡‚ɉž‚¶‚ăAƒvƒŠƒP[ƒVƒ‡ƒ“‚ªƒqƒXƒgƒŠ[ƒXƒ^ƒbƒN‚ɒljÁ‚³‚ê‚Ü‚·BƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ðƒAƒ“ƒ[ƒh‚·‚é‚É‚Í _unload() ŠÖ”‚ðŽg—p‚µ‚Ü‚·BƒAƒ“ƒ[ƒh‚µ‚½ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚̓Xƒ^ƒbƒN‚©‚çÁ‹Ž‚³‚êA’¼‘O‚ÉŽÀs‚³‚ê‚Ä‚¢‚½ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ªÄ‹N“®‚³‚ê‚Ü‚·BƒfƒoƒCƒXã‚Å‹N“®‚µ‚½ UIE Player ‚ªÅ‰‚ÉŽÀs‚·‚ׂ«ƒAƒvƒŠƒP[ƒVƒ‡ƒ“ URL ‚ÌÝ’è•û–@‚â‹Lq•û–@‚̓vƒ‰ƒbƒgƒtƒH[ƒ€‚Ɉˑ¶‚µ‚Ü‚·B‚±‚ê‚ÍA–{ƒhƒLƒ…ƒƒ“ƒg‚̃AƒvƒŠƒP[ƒVƒ‡ƒ“EƒfƒvƒƒCƒƒ“ƒg‚ÌÍ‚Åà–¾‚µ‚Ä‚¢‚Ü‚·B
•¡”‚Ì HTML ƒy[ƒW‚©‚çƒEƒFƒuƒTƒCƒg‚ð\’z‚Å‚«‚é‚̂Ɠ¯—l‚ÉAUJML ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ð•¡”‚̃p[ƒeƒBƒVƒ‡ƒ“‚©‚ç\¬‚·‚邱‚Æ‚ª‰Â”\‚Å‚·B_run() ŠÖ”‚É‚æ‚Á‚ēǂݞ‚Þƒp[ƒeƒBƒVƒ‡ƒ“‚̓AƒvƒŠƒP[ƒVƒ‡ƒ“‚ÌuƒƒCƒ“ƒp[ƒeƒBƒVƒ‡ƒ“v‚ ‚é‚¢‚Íueƒp[ƒeƒBƒVƒ‡ƒ“v‚ƌĂ΂ê‚Ü‚·B_link() ŠÖ”‚œǂݞ‚ÝA_unlink() ŠÖ”‚ŃAƒ“ƒ[ƒh‚·‚éƒp[ƒeƒBƒVƒ‡ƒ“‚ÍŽqƒp[ƒeƒBƒVƒ‡ƒ“‚ƌĂ΂ê‚Ü‚·B‚±‚ê‚ç‚ÌŠÖ”‚Ì–¼‘O‚̓oƒCƒiƒŠŒ`Ž®‚ÌŽÀsƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚â DLL ‚Ȃǂ̖½–¼‹K‘¥‚ɉˆ‚Á‚Ä–½–¼‚³‚ê‚Ä‚¢‚Ü‚·BUJML ƒp[ƒeƒBƒVƒ‡ƒ“‚Í—˜—p•û–@‚É‚æ‚Á‚Ä HTML ƒy[ƒW‚ƃoƒCƒiƒŠ DLL ‚Ì—¼“Á«‚𕹂¹Ž‚‚±‚Æ‚ªo—ˆ‚Ü‚·B_link() ŠÖ”‚ÅƒŠƒ“ƒN‚µ‚½ƒp[ƒeƒBƒVƒ‡ƒ“‚̓qƒXƒgƒŠ[ƒXƒ^ƒbƒN‚ɒljÁ‚³‚ê‚Ü‚¹‚ñB‚»‚Ì‘ã‚í‚èA‚±‚̃p[ƒeƒBƒVƒ‡ƒ“‚͌ĂÑo‚µŒ³‚ÌŽqƒp[ƒeƒBƒVƒ‡ƒ“‚ƂȂèAeiŒÄ‚Ño‚µŒ³j‚ªƒAƒ“ƒ[ƒh‚³‚ê‚邯‹¤‚ɃAƒ“ƒ[ƒh‚³‚ê‚Ü‚·B
ƒƒ‚ƒŠƒŠƒ\[ƒX‚ðŽg—p‚·‚éƒp[ƒeƒBƒVƒ‡ƒ“‚̓qƒXƒgƒŠ[ƒXƒ^ƒbƒN‚̈ê”Ôã‚É‚ ‚錻݂̃AƒvƒŠƒP[ƒVƒ‡ƒ“‚ÆA‚»‚±‚©‚烊ƒ“ƒN‚³‚ê‚Ä‚¢‚éƒp[ƒeƒBƒVƒ‡ƒ“‚ÉŒÀ‚ç‚ê‚Ü‚·BƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ªƒqƒXƒgƒŠ[ƒXƒ^ƒbƒN‚̈ê”Ôã‚łȂ‚È‚Á‚½Žž‚ÉA‚»‚̃AƒvƒŠƒP[ƒVƒ‡ƒ“‚ªŽg—p‚·‚é‚·‚ׂẴƒ‚ƒŠƒŠƒ\[ƒX‚͉ð•ú‚³‚êAV‚µ‚¢ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚É‚æ‚éŽg—p‚ª‰Â”\‚ɂȂè‚Ü‚·B
ƒƒ‚F_run() ŠÖ”‚ðŒÄ‚уAƒvƒŠƒP[ƒVƒ‡ƒ“‚ªƒqƒXƒgƒŠ[ƒXƒ^ƒbƒN‚̈ê”Ôã‚Ƀ[ƒh‚³‚ê‚Ä‚¢‚éŠÔ‚ÍAƒ[ƒh‚ªŠ®—¹‚·‚é‚܂Ō»Ý‚̃AƒvƒŠƒP[ƒVƒ‡ƒ“‚ªƒƒ‚ƒŠƒŠƒ\[ƒX‚ðÁ”‚Ü‚·BƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ðŠJ”‚·‚éÛ‚ÍAV‹ŒƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚Ì—¼•û‚ªƒƒ‚ƒŠ‚É“¯Žž‚ÉŽû‚܂邿‚¤‚ÉÝŒv‚µ‚Ä‚‚¾‚³‚¢B
‚±‚Ì–â‘è‚ð‰ñ”ð‚·‚é•û–@‚̈ê‚‚ÉAƒƒ‚ƒŠ‚ÌÁ”ï—Ê‚ª‚È‚¢’†ŠÔƒAƒvƒŠƒP[ƒVƒ‡ƒ“iƒ[ƒ_[j‚ð Žg—p‚·‚é•û–@‚ª‚ ‚è‚Ü‚·B‚±‚̃hƒLƒ…ƒƒ“ƒg‚É‚ ‚éuAppSplash.ujmlv‚Ì—á‚ðŽQÆ‚µ‚Ä‚‚¾‚³‚¢B
ŽŸ‚Ì}‚ÍAˆÈ‰º‚Ì‚±‚Æ‚ª‹N‚±‚Á‚½Œã‚Ì UIE Player ‚̃qƒXƒgƒŠ[ƒXƒ^ƒbƒN‚Ìó‘Ô‚ðŽ¦‚µ‚Ä‚¢‚Ü‚·F

1. UIE Player ‚ª App 1 ‚ðƒfƒtƒHƒ‹ƒg‚̃AƒvƒŠƒP[ƒVƒ‡ƒ“‚Æ‚µ‚Ä‹N“®B ‚±‚ê‚É‚æ‚èAApp 1 ‚ªƒqƒXƒgƒŠ[ƒXƒ^ƒbƒN‚̈ê”Ô‰º‚Å‚ ‚é0”Ô–Ú‚ÉŠi”[‚³‚ê‚éB
2. App 1 ‚ª App 2 ‚ðŽÀs‚µAApp 2 ‚ªƒqƒXƒgƒŠ[ƒXƒ^ƒbƒN‚̈ê”Ôã‚Å‚ ‚é1”Ô–Ú‚ÉŠi”[‚³‚ê‚éB
3. App 2 ‚ªƒp[ƒeƒBƒVƒ‡ƒ“ Part A ‚ðƒŠƒ“ƒNB
4. App 1 ‚Í‚±‚ÌŽž“_‚Ńƒ‚ƒŠ‚𕨗“I‚Éè—L‚µ‚ĂȂ¢‚½‚ßAƒOƒŒ[•\ަB
App 2 ‚ª _unload() ŠÖ”‚ðŒÄ‚ÑAŽ©g‚ðƒAƒ“ƒ[ƒh‚·‚éB ‚·‚邯 UIE Player ‚Í App 1 ‚ðÄ‹N“®‚µAƒqƒXƒgƒŠ[ƒXƒ^ƒbƒN‚ÍŽŸ‚Ì}‚̂悤‚ɂȂéF

UIE Player ‚͂قƂñ‚ǂ̃fƒoƒCƒX‚É‚¨‚¢‚Ä UJML ƒtƒ@ƒCƒ‹‚ðƒ[ƒJƒ‹‚ɃLƒƒƒbƒVƒ…‚µA ƒlƒbƒgƒ[ƒNŒo—R‚ÌĎ擾‚ð–h‚¢‚Å‚¢‚Ü‚·B
UIE Player ‚Í‘½‚‚̃vƒ‰ƒbƒgƒtƒH[ƒ€‚É‚¨‚¢‚Ä uƒvƒƒpƒeƒBƒoƒbƒOv‚Æ‚¢‚¤Œ`Ž®‚Å ƒ[ƒJƒ‹‚ÅŽ‘±“I‚ȃXƒgƒŒ[ƒW‚ð’ñ‹Ÿ‚µ‚Ä‚¢‚Ü‚·B ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚̓vƒƒpƒeƒBƒoƒbƒO‚ð’Ê‚¶‚ėʂ̃f[ƒ^‚ð’[––‚ɕۑ¶‚·‚邱‚Ƃɂæ‚èA Ž©g‚Ìó‘Ԃ̈ꕔ‚ð•Û‘¶‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
ŽŸ‚̃ZƒNƒVƒ‡ƒ“‚Å‚ÍAUjinn[1]‚Æ‚¢‚¤ ƒQ[ƒ€‚ÌŠJ”‚ð’Ê‚¶‚Ä UJML ‚Ì‹@”\‚ðà–¾‚µ‚Ü‚·B‚±‚̃Q[ƒ€‚ÍuSameGamev‚Æ‚¢‚¤ƒQ[ƒ€‚ªƒx[ƒX‚ɂȂÁ‚Ä‚¨‚èA ŽŸ‚̂悤‚ÈŠî–{Žd—l‚ðŽ‚Á‚Ä‚¢‚Ü‚·B
ƒAƒvƒŠƒP[ƒVƒ‡ƒ“–¼Fujinn
–Ú“IF
ƒOƒŠƒbƒh‚©‚ç‰Â”\‚ÈŒÀ‚è‚̃{ƒbƒNƒX‚ðŽæ‚èœ‚«AƒXƒRƒA‚ðÅ‘å‚É‚·‚邱‚ÆB
—V‚Ñ•ûF
㉺¶‰E‚É“¯F‚̃{ƒbƒNƒX‚ª1‚ˆÈã‚ ‚éê‡A
‚»‚ê‚ç‚̃{ƒbƒNƒX‚ð‘I‘ð‚µ‚ÄŽæ‚蜂‚±‚Æ‚ª‚Å‚«‚Ü‚·B
ƒ{ƒbƒNƒX‚ƃ{ƒbƒNƒX‚Í—×Ú‚µ‚ĂȂ¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
“¾“_‚ÌŒvŽZ•û–@F
ƒ{ƒbƒNƒX‚ðŽæ‚èœ‚‚Æ(n) * (n - 1) ‚ª“¾“_‚ɉÁŽZ‚³‚ê‚Ü‚·B
n ‚Í“¯Žž‚ÉÁ‚µ‚½ƒ{ƒbƒNƒX‚Ì”‚ðŽ¦‚µ‚Ü‚·B
ƒQ[ƒ€I—¹Žž‚ÉŽc‚Á‚Ä‚¢‚éƒ{ƒbƒNƒX‚Ì”‚̓yƒiƒ‹ƒeƒB‚Æ‚µ‚ÄŒ¸“_‚³‚ê‚Ü‚·B
‚·‚ׂẴ{ƒbƒNƒX‚ðŽæ‚èœ‚¢‚½ê‡‚̓{[ƒiƒX‚Æ‚µ‚Ä(mScore / 4)‚ª—^‚¦‚ç‚ê‚Ü‚·B
ŽŸ‚̃XƒNƒŠ[ƒ“ƒVƒ‡ƒbƒg‚ÍAƒQ[ƒ€ƒŒƒCƒAƒEƒg‚Æ“®ì‚ðŽ¦‚µ‚Ä‚¢‚Ü‚·B

ƒvƒŒƒCƒ„[‚ªŒ»Ý‚̃{ƒbƒNƒXi¶ãj‚ð‘I‘ð‚µ‚½‚½‚ßA‰©F‚̃{ƒbƒNƒX‚ƉE‘¤‚É—×Ú‚·‚é‚Q‚‚̉©F‚¢ƒ{ƒbƒNƒX‚ªÁ‚¦‚Ü‚·B

ˆÈ~‚ÌŠeƒZƒNƒVƒ‡ƒ“‚Å‚ÍA”‘½‚‚Ì UJML ƒTƒ“ƒvƒ‹‚ðЉ‚Ä‚¢‚Ü‚·B ‚±‚ê‚ç‚Ì UJML ‚Í‚·‚ׂÄuUjinnv‚ÌŠJ”‚ÉŠñ—^‚µ‚Ä‚¢‚Ü‚·BUJML ‚̃Tƒ“ƒvƒ‹‚ÍA ‚±‚̃hƒLƒ…ƒƒ“ƒg‚É“¯«‚³‚ê‚Ä‚¢‚éƒtƒ@ƒCƒ‹‚ÉŽû‚ß‚ç‚ê‚Ä‚¢‚Ü‚·B ¥”ñASDK ‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ä SDK ‚É“¯«‚³‚ê‚Ä‚¢‚éƒTƒ“ƒvƒ‹‚ðŽÀs‚µ‚Ă݂Ă‚¾‚³‚¢B
UIE SDK ‚̃Cƒ“ƒXƒg[ƒ‹•û–@F
1.
Java(TM) 2 Platform Standard Edition‚̃Cƒ“ƒXƒg[ƒ‹
ƒTƒ“Eƒ}ƒCƒNƒƒVƒXƒeƒ€ƒY‚ÌJ2SE‚Íujava.sun.com/j2sev‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚Ü‚·B
ƒTƒ“‚̃EƒFƒuƒTƒCƒg‚ÌŽg—pà–¾‘‚É]‚Á‚ÄJ2SE Software Development Kit‚ðƒ_ƒEƒ“ƒ[ƒh‚µAƒCƒ“ƒXƒg[ƒ‹‚µ‚Ä‚‚¾‚³‚¢B
2.
ŠÂ‹«•Ï”uJAVA_HOMEv‚ðAJ2SE SDK ‚̃‹[ƒgƒfƒBƒŒƒNƒgƒŠ‚Éݒ肵‚Ä‚‚¾‚³‚¢B
ƒfƒtƒHƒ‹ƒg‚Å‚ÍuC:\j2sdk1.4.1_01v‚Å‚·BŠÂ‹«•Ï”‚ÌÝ’è‚ɂ‚¢‚Ä‚Í
‚±‚¿‚ç‚ð‚²——‚‚¾‚³‚¢B
3.
UIE SDK ‚̃Cƒ“ƒXƒg[ƒ‰‚ðŽÀs‚µ‚Ä‚‚¾‚³‚¢B
UIE SDK ‚Í www.uievolution.com ‚©‚çƒ_ƒEƒ“ƒ[ƒh‚µ‚Ä‚‚¾‚³‚¢B
łଂ³‚È UJML ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚Ì—áF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 1.2//EN" "ujml.dtd">
<ujml>
<application>
</application>
</ujml>
ƒtƒ@ƒCƒ‹–¼FApplication.ujml
ŽŸ‚̎臂ðs‚¢AUIE SDK Debugger ‚Å‚±‚̃AƒvƒŠƒP[ƒVƒ‡ƒ“‚ðŽÀs‚µ‚Ü‚·F
1. ƒfƒoƒbƒK‚ð‹N“®BuƒXƒ^[ƒg>ƒvƒƒOƒ‰ƒ€>UIEvolution SDKv’†‚ÌuUIEƒfƒoƒbƒK‹N“®v‚ð‘I‘ðB
2. ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‘I‘ðƒ_ƒCƒAƒƒO‚ÅÝ’è‚ðs‚¤B
a. Application.ujml ‚ւ̃pƒX‚ð“ü—ÍB ‚à‚µInside UJML ZIPƒtƒ@ƒCƒ‹‚ðuD:\My Documents\Inside UJMLv‚É“WŠJ‚µ‚½ê‡‚Í URL‚Éufile:///D:\My Documents\Inside UJML\UJML\Application.ujmlv‚Æ“ü—Í iuŽQÆvƒ{ƒ^ƒ“‚ðŽg‚Á‚ÄAƒtƒ@ƒCƒ‹‚ðŽw’è‚·‚邱‚Æ‚à‰Â”\jB
b. ƒXƒLƒ“‚Ì‘I‘ð‚ÅuFlip Phone, MIDP (136x140)v‚ð‘I‘ðB
c.
OK ‚ðƒNƒŠƒbƒNB
3.
ƒc[ƒ‹ƒo[‚Ì Run ƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒNB

4. ƒfƒoƒCƒXƒGƒ~ƒ…ƒŒ[ƒ^‚ÉŽŸ‚̂悤‚ȉæ–Ê‚ª•\ަ‚³‚ê‚éF

Ujinn ‚Íc‰¡‚̘g‚ðŽg‚Á‚½ƒQ[ƒ€‚Å‚ ‚邽‚ߊiŽqó‚̃{ƒbƒNƒX‚ð•\ަ‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B ‚Ü‚½ƒXƒNƒŠ[ƒ“Åã•”‚ÉŒ»Ý‚̃XƒRƒA‚ƃŒƒxƒ‹‚Ȃǂ̬тð•\ަ‚µ‚Ü‚·B
<display> —v‘f‚ðŽg—p‚·‚邯A‰æ–ʂւ̕`‰æ‚ðŠÈ’P‚És‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B‚±‚±‚ł̓{ƒbƒNƒX‚ÆuScorev‚̃eƒLƒXƒg‚ð•`‚¢‚Ä‚¢‚Ü‚·F
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 1.2//EN" "ujml.dtd">
<ujml>
<application>
<display>
<label>
<text>Score</text>
<x>2</x>
<y>2</y>
<fg>&_COLOR_BLUE;</fg>
</label>
<box>
<x>5</x>
<y>20</y>
<width>30</width>
<height>50</height>
<fg>&_COLOR_RED;</fg>
<bg>&_COLOR_GREEN;</bg>
</box>
</display>
</application>
</ujml>
ƒtƒ@ƒCƒ‹F Display.ujml
SDK ƒfƒoƒbƒKã‚Å Display.ujml ‚ðŽÀs‚·‚邯AƒGƒ~ƒ…ƒŒ[ƒ^‚ªŽŸ‚ÌŒ‹‰Ê‚ð•Ô‚µ‚Ü‚·F

‚±‚Ì—á‚ł̓fƒtƒHƒ‹ƒg‚Ì <display> —v‘f‚ðŽg‚Á‚Ä‚¢‚Ü‚·B ƒfƒtƒHƒ‹ƒg‚Ì <display> ‚Ì“à—e‚ÍXV‚·‚邱‚Æ‚ª‚Å‚«‚È‚¢‚½‚ßA ÓI‚È”wŒi‰æ‘œ‚Ȃǂ̕\ަ‚ÉŒü‚¢‚Ä‚¢‚Ü‚·B
UJML ‚Å“®“I‚ȉæ–Ê•\ަ‚ðs‚¤‚É‚Í <display> —v‘f‚ð’ljÁ‚Å‹Lq‚µ‚Ü‚·B ƒvƒƒOƒ‰ƒ€‚ð’Ê‚¶‚ăXƒe[ƒg•Ï”‚Ì’l‚ÌXV‚·‚邯‚±‚ê‚ç‚Ì—v‘f‚ð§Œäi•\ަAXVA”ñ•\ަj‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
UJML ‚̃Xƒe[ƒg‚͕ϔ‚ªŽæ‚蓾‚é’l‚Ì‚»‚ꂼ‚ê‚ɂ‚«1‚ˆÈã‚Ì <display> —v‘f‚ðŠÖ˜A‚¯‚Ü‚·B —Ⴆ‚΃u[ƒŠƒAƒ“•Ï”‚Í‚Q‚‚̒l‚ðŽæ‚è“¾‚邽‚ßAtrue ‚Æ false ‚Ì2‚‚Ìó‘Ô‚ð•\‚·‚±‚Æ‚ª‚Å‚«‚Ü‚·B UJML‚Å‚ÍA‚±‚ê‚ç‚Ì’l‚à‚µ‚‚̓Xƒe[ƒg‚²‚Æ‚É<display> —v‘f‚ð’è‹`‚·‚邱‚Æ‚ªo—ˆ‚Ü‚·B
ŽŸ‚Ì—á‚Å‚ÍAƒu[ƒŠƒAƒ“Œ^‚̃Xƒe[ƒg•Ï” sBox ‚ª true ‚Ì’l‚ðŽæ‚Á‚½ê‡‚Ì <display> —v‘f‚ª‚P‚Â’è‹`‚µ‚Ä‚¢‚Ü‚·B sBox ‚ª true ‚Éݒ肳‚ê‚邯‰æ–Êã‚Ƀ{ƒbƒNƒX‚ª•\ަ‚³‚ê‚Ü‚·B ‹t‚É false ‚ɃZƒbƒg‚³‚ꂽê‡Afalse ‚É’è‹`‚¯‚ç‚ꂽ <display> ‚ª‘¶Ý‚µ‚È‚¢‚½‚߃{ƒbƒNƒX‚ª”ñ•\ަ‚ƂȂè‚Ü‚·B
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 1.2//EN" "ujml.dtd">
<ujml>
<application>
<state-variables>
<state-var name="sBox" type="boolean"/>
</state-variables>
<script>
sBox = true;
</script>
<states>
<state var="sBox">
<transition value="true">
<display>
<box>
<x>5</x>
<y>20</y>
<width>30</width>
<height>50</height>
<fg>&_COLOR_RED;</fg>
<bg>&_COLOR_GREEN;</bg>
</box>
</display>
</transition>
</state>
</states>
</application>
</ujml>
ƒtƒ@ƒCƒ‹F DisplayState.ujml
‚±‚Ì—á‚ðŽÀs‚·‚é‚ÆŽŸ‚̂悤‚ȉæ–Ê‚ª•\ަ‚³‚ê‚Ü‚·F

ŽŸ‚Ì—á‚ł͂³‚«‚Ù‚Ç‚Ì Display.ujml ‚ð•ÏX‚µA <display> —v‘f‚ðƒeƒLƒXƒg‚ƃ{ƒbƒNƒX‚Ì‚»‚ꂼ‚ê‚É•ªŠ„‚µ‚Ä‹Lq‚µ‚Ä‚¢‚Ü‚·B •ªŠ„‚É‚æ‚èAƒeƒLƒXƒg‚ƃ{ƒbƒNƒX‚Ì‚»‚ꂼ‚ê‚ɑΉž‚·‚éƒXƒe[ƒg•Ï”‚ð true ‚Ü‚½‚Í false ‚Éݒ肵 ŠeX‚ð“Æ—§‚µ‚Ä•\ަE”ñ•\ަ‚·‚邱‚Æ‚ª‰Â”\‚ɂȂè‚Ü‚µ‚½B
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 1.2//EN" "ujml.dtd">
<ujml>
<application>
<state-variables>
<state-var name="sScore" type="boolean"/>
<state-var name="sBox" type="boolean"/>
</state-variables>
<script>
sScore = true;
sBox = true;
</script>
<states>
<state var="sScore">
<transition value="true">
<display>
<label>
<text>Score</text>
<x>2</x>
<y>2</y>
<fg>&_COLOR_BLUE;</fg>
</label>
</display>
</transition>
</state>
<state var="sBox">
<transition value="true">
<display>
<box>
<x>5</x>
<y>20</y>
<width>30</width>
<height>50</height>
<fg>&_COLOR_RED;</fg>
<bg>&_COLOR_GREEN;</bg>
</box>
</display>
</transition>
</state>
</states>
</application>
</ujml>
ƒtƒ@ƒCƒ‹F DisplayStates.ujml
UJML ‚ƃXƒe[ƒg‚ɂ‚¢‚ÄŠo‚¦‚Ä‚¨‚‚ׂ«Å‚àd—v‚È‚±‚ÆF
‰æ–Ê•\ަ‚ðXV‚·‚é—Bˆê‚Ì•û–@‚ÍA <display> —v‘f‚ðŠÜ‚ÞƒXƒe[ƒg•Ï”‚Ì’l‚ð•ÏX‚·‚邱‚ÆB
ƒXƒe[ƒg•Ï”‚ÉŒ»Ý‚Ì’l‚ðÄ“xݒ肵‚Ä‚à•\ަ‚ɉe‹¿‚ð—^‚¦‚Ü‚¹‚ñB ‰æ–Ê‚ð‘‚«Š·‚¦‚é‚É‚ÍA’l‚ð‘‚«Š·‚¦‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñ B [2] ‚±‚ê‚̓u[ƒŠƒAƒ“Œ^‚̕ϔ‚æ‚è‚à®”Œ^‚̃Xƒe[ƒg•Ï”‚̂ق¤‚ªƒpƒƒtƒ‹‚È‚±‚Æ‚ðˆÓ–¡‚µ‚Ä‚¢‚Ü‚·B ”ñ•\ަ‚Ìó‘Ô‚ª•K—v‚Èê‡Aƒu[ƒŠƒAƒ“Œ^ƒXƒe[ƒg•Ï”‚ł͒ÊíA’l‚ª true ‚Ìꇂɕ\ަ‚ðs‚¢A false ‚Ìꇂɔñ•\ަ‚ðs‚¢‚Ü‚·B‚»‚Ì‚½‚ߎÀŽ¿1Ží—Þ‚Ì <display> —v‘f‚µ‚©Ž‚Ă܂¹‚ñB
<display> —v‘f‚Í Z-ORDER ‚ɉž‚¶‚Ä”w–Ê‚©‚ç‘O–Ê‚Éd‚Ë‚ç‚êAƒfƒBƒXƒvƒŒƒCã‚É•`‰æ‚³‚ê‚Ü‚·B ‚±‚ê‚Í <display> —v‘f‚ª UJML ƒ\[ƒXƒtƒ@ƒCƒ‹‚ÉoŒ»‚·‚釘‚Ɉê’v‚µ‚Ä‚¢‚Ü‚·B ƒfƒtƒHƒ‹ƒg‚Ì <display> ‚Í Z-ORDER ‚ª’á‚Å”w–ʂɕ`‰æ‚³‚ê‚Ü‚·B ƒtƒ@ƒCƒ‹‚ÌÅŒã‚É‹Lq‚·‚é <display> ‚Í Z-ORDER ‚ª‚‚Å‘O–ʂɕ`‰æ‚³‚ê‚Ü‚· [3]B
ŽŸ‚Ì—á‚Å‚Í DisplayStates.ujml ‚É2‚‚̃{ƒbƒNƒX‚Æ”wŒi‚ð’ljÁ‚µ‚Ä‚¢‚Ü‚·B ‚Ü‚½ UJML ‚Ì”z—ñ‚Ì쬂Ǝg‚¢•û‚ɂ‚¢‚Ä‚àЉ‚Ä‚¢‚Ü‚·B sBox ‚Í‘O‰ñ‚̃Tƒ“ƒvƒ‹‚É‚¨‚¢‚Ă͒Pƒ‚ȃu[ƒŠƒAƒ“Œ^‚̕ϔ‚Å‚µ‚½‚ªA ‚±‚±‚ł͌•ʕ\ަ‚ª‰Â”\‚Ȃ悤‚É—v‘f”‚ª3‚‚̃u[ƒŠƒAƒ“Œ^‚Ì”z—ñ‚ɂȂÁ‚Ä‚¢‚Ü‚·B ÅŒã‚ÉA‚±‚̃vƒƒOƒ‰ƒ€‚ł̓rƒWƒ…ƒAƒ‹—v‘f‚Ì ARGBiƒAƒ‹ƒtƒ@AÔA—ÎAÂj‚Ì’l‚ðŽw’è‚·‚é•û–@‚ðЉ‚Ä‚¢‚Ü‚·B
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 1.2//EN" "ujml.dtd">
<ujml>
<application>
<state-variables>
<state-var name="sScore" type="boolean"/>
<state-var name="sBox" type="boolean" size="3"/>
</state-variables>
<script>
sScore = true;
sBox[ 0 ] = true;
sBox[ 1 ] = true;
sBox[ 2 ] = true;
</script>
<display>
<box>
<width>136</width>
<height>140</height>
</box>
</display>
<states>
<state var="sScore">
<transition value="true">
<display>
<label>
<text>Score</text>
<x>2</x>
<y>2</y>
<fg>&_COLOR_BLUE;</fg>
</label>
</display>
</transition>
</state>
<state var="sBox" index="0">
<transition value="true">
<display>
<box>
<x>5</x>
<y>20</y>
<width>30</width>
<height>50</height>
<fg>0xffcccccc</fg>
<bg>0xffcccccc</bg>
</box>
</display>
</transition>
</state>
<state var="sBox" index="1">
<transition value="true">
<display>
<box>
<x>10</x>
<y>25</y>
<width>30</width>
<height>50</height>
<fg>0xff999999</fg>
<bg>0xff999999</bg>
</box>
</display>
</transition>
</state>
<state var="sBox" index="2">
<transition value="true">
<display>
<box>
<x>15</x>
<y>30</y>
<width>30</width>
<height>50</height>
<fg>0xff666666</fg>
<bg>0xff666666</bg>
</box>
</display>
</transition>
</state>
</states>
</application>
</ujml>
ƒtƒ@ƒCƒ‹F DisplayZOrder.ujml
ƒvƒƒOƒ‰ƒ€‚ÌŽÀsŒ‹‰ÊF

‚±‚ê‚܂ł̗á‚Å‚Í UJML ‚ðŽg‚Á‚ĉæ–ʂɕ¨‚ð•\ަ‚·‚é•û–@‚ð‰ðà‚µ‚Ä‚«‚Ü‚µ‚½B‚Ü‚½ <scirpt> —v‘f‚ðŽg‚Á‚½ƒvƒƒOƒ‰ƒ€ƒƒWƒbƒN‚Ì•\Œ»•û–@‚àŠ_ŠÔŒ©‚邱‚Æ‚ª‚Å‚«‚½‚ÆŽv‚¢‚Ü‚·BUJML ‚͕ϔAŽZpŽ®A˜_—Eƒu[ƒŠƒAƒ“Ž®A•¶Žš—ñŽ®Aƒtƒ[§Œä•¶AŠÖ”‚ƃCƒxƒ“ƒg‚ðƒTƒ|[ƒg‚µ‚Ä‚¢‚Ü‚·B
‚±‚ê‚܂ł̗á‚Å‚ÍAƒXƒe[ƒg•Ï”‚Ì錾•û–@‚ÆŽg—p•û–@‚ðЉ‚Ü‚µ‚½BƒXƒe[ƒg•Ï”‚̓Xƒe[ƒg‘JˆÚ‚ɑΉž‚·‚邽‚ß‚Ì“à•”“I‚ȃI[ƒo[ƒwƒbƒh‚ðŽ‚Á‚Ä‚¢‚Ü‚·B ‚»‚±‚Å UJML ‚̓Xƒe[ƒg‚ðŽ‚½‚È‚¢’Pƒ•Ï”‚à”õ‚¦‚Ä‚¢‚Ü‚·B ƒXƒe[ƒg•Ï”‚Æ’Pƒ•Ï”‚Í‘¼‚̃vƒƒOƒ‰ƒ€Œ¾Œê‚̕ϔ‚Æ“¯—lAŽ®‚âŽÀs•¶‚ÉŽg—p‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
ŽŸ‚Ì—á‚Å‚ÍAƒXƒRƒA‚Ì’l‚ƃ{ƒbƒNƒX‚ÌF‚ðŠi”[‚·‚邽‚߂̕ϔ‚ð’ljÁ‚µ‚Ä‚¢‚Ü‚·B‚Ü‚½ XML ƒGƒ“ƒeƒBƒeƒB’è‹`‚ðŽg—p‚µ‚½’蔂Ì錾‚ƃfƒBƒXƒvƒŒƒC—v‘f‚É‚¨‚¯‚é•Ï”‚ƒ蔂̎g‚¢•û‚ðЉ‚Ä‚¢‚Ü‚·B
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 1.2//EN" "ujml.dtd" [
<!ENTITY MAX_BOXES "3">
<!ENTITY BOX_WIDTH "30">
<!ENTITY BOX_HEIGHT "50">
]>
<ujml>
<application>
<state-variables>
<state-var name="sScore" type="boolean"/>
<state-var name="sBox" type="boolean" size="&MAX_BOXES;"/>
</state-variables>
<variables>
<var name="mScore" type="int"/>
<var name="mBox" type="int" size="&MAX_BOXES;"/>
</variables>
<script>
mScore = 0;
sScore = true;
mBox[ 0 ] = 0xffcccccc;
sBox[ 0 ] = true;
mBox[ 1 ] = 0xff999999;
sBox[ 1 ] = true;
mBox[ 2 ] = 0xff666666;
sBox[ 2 ] = true;
</script>
<display>
<box>
<width>136</width> <height>140</height>
</box>
</display>
<states>
<state var="sScore">
<transition value="true">
<display>
<label>
<text><eval>mScore</eval></text>
<x>2</x> <y>2</y>
<fg>&_COLOR_BLUE;</fg>
</label>
</display>
</transition>
</state>
<state var="sBox" index="0">
<transition value="true">
<display>
<box>
<x>5</x> <y>20</y>
<width>&BOX_WIDTH;</width>
<height>&BOX_HEIGHT;</height>
<fg><eval>mBox[ 0 ]</eval></fg>
<bg><eval>mBox[ 0 ]</eval></bg>
</box>
</display>
</transition>
</state>
<state var="sBox" index="1">
<transition value="true">
<display>
<box>
<x>10</x> <y>25</y>
<width>&BOX_WIDTH;</width>
<height>&BOX_HEIGHT;</height>
<fg><eval>mBox[ 1 ]</eval></fg>
<bg><eval>mBox[ 1 ]</eval></bg>
</box>
</display>
</transition>
</state>
<state var="sBox" index="2">
<transition value="true">
<display>
<box>
<x>15</x> <y>30</y>
<width>&BOX_WIDTH;</width>
<height>&BOX_HEIGHT;</height>
<fg><eval>mBox[ 2 ]</eval></fg>
<bg><eval>mBox[ 2 ]</eval></bg>
</box>
</display>
</transition>
</state>
</states>
</application>
</ujml>
ƒtƒ@ƒCƒ‹FVariables.ujml
•\ަŒ‹‰ÊF

UJML‚̓AƒvƒŠƒP[ƒVƒ‡ƒ“‚̃tƒ[§Œä‚ÆŽ®‚Ì•]‰¿‚Ì‚½‚ß‚É ‚Q‚‚̃XƒNƒŠƒvƒgŒ¾Œê‚ðƒTƒ|[ƒg‚µ‚Ä‚¢‚Ü‚·B ‚±‚±‚܂ł̗á‚Å‚ÍA UJML ‚ª‘Ήž‚µ‚Ä‚¢‚é ECMA ƒXƒNƒŠƒvƒgiJavaScriptj‚̃TƒuƒZƒbƒg‚ðŽg‚Á‚Ä‚¢‚Ü‚µ‚½B JavaScript ‚Í <script> —v‘f‚É‹Lq‚µ‚Ü‚·B CAC++AJava ‚»‚µ‚Ä JavaScript ‚̂悤‚ȃvƒƒOƒ‰ƒ~ƒ“ƒOŒ¾Œê‚ɸ’Ê‚µ‚½l‚Å‚ ‚ê‚ÎA UJML ƒAƒvƒŠƒP[ƒVƒ‡ƒ““à‚Å JavaScript ‚ð‹Lq‚·‚é‚â‚è•û‚ªŽg‚¢‚â‚·‚¢‚Å‚µ‚傤B
UJML ‚͂܂½AJavaScript ‚Æ“¯“™‚Ì‹@”\‚ðŽ‚¿A‚©‚ÂAXML \•¶‚ðˆÛŽ‚·‚é UJML ƒXƒNƒŠƒvƒg‚É‚à‘Ήž‚µ‚Ä‚¢‚Ü‚·B UJML ƒXƒNƒŠƒvƒg‚Í <execute> —v‘f‚É‹Lq‚µ‚Ü‚·B ƒvƒƒOƒ‰ƒ}[‚ª‘Oq‚̃vƒƒOƒ‰ƒ~ƒ“ƒOŒ¾Œê‚ɸ’Ê‚µ‚ĂȂ¢ê‡‚ÍAUJML ƒXƒNƒŠƒvƒg‚ÌŠwK‚©‚çŽn‚ß‚é‚Ù‚¤‚ªŠy‚Å‚µ‚傤B ‚µ‚©‚µ UJML ƒXƒNƒŠƒvƒg‚Íç’·‚ɂȂ肪‚¿‚Å‚ ‚邽‚ßA•¡ŽG‚ÈŒvŽZ‚âƒvƒƒOƒ‰ƒ€‚̃tƒ[§Œä‚ð s‚¤ê‡‚ɃR[ƒh‚̉“ǫ‚ªˆ«‚‚È‚Á‚Ä‚µ‚Ü‚¢‚Ü‚·BƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚̃vƒƒOƒ‰ƒ€ƒƒWƒbƒN‚ª •¡ŽG‚ɂȂéꇂÍAJavaScript ‚Ì•û‚ªŠÈ’P‚Å‚ ‚邯Œ¾‚¦‚é‚Å‚µ‚傤B
ŽŸ‚Ì—á‚Å‚Í JavaScript ‚Æ UJML ƒXƒNƒŠƒvƒg‚ª“¯“™‚Å‚ ‚邱‚Æ‚ðŽ¦‚µ‚Ä‚¢‚Ü‚·B ‚±‚êˆÈŠO‚Ì—á‚Í‘S‚Ä JavaScript ‚ðŽg‚Á‚Ä‚¢‚Ü‚·B
‚±‚Ì—á‚Í‘O‰ñ‚Ì Variables.ujml ‚Ì UJML ƒXƒNƒŠƒvƒg”łł·F
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 1.2//EN" "ujml.dtd" [
<!ENTITY MAX_BOXES "3">
<!ENTITY BOX_WIDTH "30">
<!ENTITY BOX_HEIGHT "50">
]>
<ujml>
<application>
<state-variables>
<state-var name="sScore" type="boolean"/>
<state-var name="sBox" type="boolean" size="&MAX_BOXES;"/>
</state-variables>
<variables>
<var name="mScore" type="int"/>
<var name="mBox" type="int" size="&MAX_BOXES;"/>
</variables>
<execute>
<set var="mScore">0</set>
<set-state var="sScore">true</set-state>
<set var="mBox">
<index>0</index>
<val>0xffcccccc</val>
</set>
<set-state var="sBox">
<index>0</index>
<val>true</val>
</set-state>
<set var="mBox">
<index>1</index>
<val>0xff999999</val>
</set>
<set-state var="sBox">
<index>1</index>
<val>true</val>
</set-state>
<set var="mBox">
<index>2</index>
<val>0xff666666</val>
</set>
<set-state var="sBox">
<index>2</index>
<val>true</val>
</set-state>
</execute>
<display>
<box>
<width>136</width>
<height>140</height>
</box>
</display>
<states>
<state var="sScore">
<transition value="true">
<display>
<label>
<text>
<ref var="mScore"/>
</text>
<x>2</x>
<y>2</y>
<fg>&_COLOR_BLUE;</fg>
</label>
</display>
</transition>
</state>
<state var="sBox" index="0">
<transition value="true">
<display>
<box>
<x>5</x>
<y>20</y>
<width>&BOX_WIDTH;</width>
<height>&BOX_HEIGHT;</height>
<fg>
<ref var="mBox">
<index>0</index>
</ref>
</fg>
<bg>
<ref var="mBox">
<index>0</index>
</ref>
</bg>
</box>
</display>
</transition>
</state>
<state var="sBox" index="1">
<transition value="true">
<display>
<box>
<x>10</x>
<y>25</y>
<width>&BOX_WIDTH;</width>
<height>&BOX_HEIGHT;</height>
<fg>
<ref var="mBox">
<index>1</index>
</ref>
</fg>
<bg>
<ref var="mBox">
<index>1</index>
</ref>
</bg>
</box><