Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #84, ДЕКАБРЬ 2005 г.

Предел мобильности!

Дмитриев Данил aka xbit

Хакер, номер #084, стр. 084-124-4


domain - имя домена для запрета доступа. Мобильный браузер будет просматривать, и сравнивать со значением этого атрибута все имена доменов, встречающиеся в документе. К примеру, встретив строку "<access domain="motorola.com"/>", браузер сможет зайти на www.motorola.com, но не сможет зайти на www.rola.com или на www.motorola.net.

path - путь для сравнения. Работает так же, как и атрибут домена. Так, если "<access path="/internal"/>" путь "/internal/wml" пройдет проверку, то "/internal-wml" - нет.

Элемент Access с примерно такими атрибутами: "<access domain="motorola.com" path="/spin"/>" разрешит ссылку на деку только со следующих адресов:

http://www.motorola.com/spin/getuid.cgi

https://www.motorola.com/spin/index.wml

http://www.motorola.com/spin/**********

А с этих запретит:

http://www.mot.com/spin/getuid.cgi

http://www.motorola.com/internal/spin/getuid.cgi

В качестве примера использования структур приведу более сложную, чем раньше деку:

<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<head>

<access domain="motorola.com" path="/spin"/>

</head>

<template>

<do type="accept" name="accept1" label="OK">

<go href="#accept"/>

</do>

</template>

<card id="start" title="Start Here">

<p>

Start Here.

</p>

</card>

<card id="accept" title="Okay Card">

<do type="accept" name="accept1" label="Okay">

<go href="#accept2"/>

</do>

<p>

Card Accept

</p>

</card>

<card id="accept2" title="OK Card" >

<do type="accept" >

<go href="#start" />

</do>

<p>

Card Accept2

</p>

</card>

</wml>

[WMLScript]

Если ты хочешь создать что-то реально хорошее, тебе не обойтись без библиотек, встроенных в спецификацию протокола WAP 1.1. Всего библиотек шесть: преобразование булевых, целых и обычных переменных (LANG);

операции с плавающей точкой (FLOAT);

операции со строками (STRING);

манипуляции с абсолютными и относительными URL (URL);

взаимодействие с WML-браузером (WMLBrowser)

и пара основных функций интерфейса пользователя (DIALOGS).

Давай разберемся с тем, как работать с этими библиотеками в процессе создания несложной игры magic square, в которой игрок помещает целые числа в квадратную матрицу, следя за тем, чтобы сумма чисел в столбцах равнялась сумме в строках. Итак, создадим WML-документ и назовем его magic.wml. Он будет содержать весь интерфейс пользователя и логику игры. А также создадим второй файл magic.wmls, в котором будут содержаться все вычисления.

Для начала мы должны описать взаимодействие между основными элементами пользовательского интерфейса и функциями WMLScript (то есть функциями наших библиотек).

Создадим деку. Она сначала будет спрашивать у игрока позицию и значение целого числа, которое будет помещено в массив, а затем будет вызывать функцию для того, чтобы положить этот элемент в массив. Ниже я привожу пример кода деки, вызывающей функцию. Обрати внимание, что когда игрок нажмет кнопку OK, чтобы ввести значение, наша дека вызовет функцию FormRow, находящуюся в /magic.wmls.

Назад на стр. 084-124-3  Содержание  Вперед на стр. 084-124-5