helyoWAP |
|
TUTORIAL
WM |
Autor: Helio Fonseca Rosa
Esta página contém muitas figuras. Aguarde a carga se a conexão estiver lenta.
Introdução
No programa phone7.wml estudamos o elemento "select".
Vamos repetir o trecho abaixo para lembrar com foi atribuído um valor ou conteúdo
à variável horoscopo:
<p>
Escolha um signo:
<select name="horoscopo"
ivalue="2">
<option
value="Evite fazer promessas.">Capricornio</option>
<option
value="Aguarde grandes acontecimentos.">Peixes</option>
<option
value="Um novo amor espera por voce.">Aries</option>
</select>
</p>
Ao ser escolhida uma opção, o conteúdo do
atributo "value=" (no caso, uma mensagem) é armazenado na variável horoscopo
criada pelo atributo "name=".
Vimos que horoscopo é uma posição da memória,
cujo conteúdo fica disponível para os cards de um mesmo deck.
Quando o controle do programa volta para este card e o usuário escolhe uma nova
opção, a nova mensagem é armazenada em horoscopo,
apagando o conteúdo anterior. Aí está o conceito de "variável",
uma posição de memória cujo conteúdo "varia".
Este é um dos métodos para "transportar" um dado de um card para
outro.
No trecho de programa acima, poderíamos dizer
que a variável horoscopo foi criada de um modo implícito,
dentro da estrutura do elemento "select"
Vejamos agora como atribuir explicitamente um valor
a uma variável.
Como nos casos anteriores, estude a listagem do programa e tente entendê-la
antes de ler os comentários.
Programa phone12.wml
Objetivo:
Fazer um programa para atribuir valores às variáveis dentro de um card e
exibir estes valores em outro card.
Programa phone12.wml (código):
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card>
<p align="center">
<b>*** helyoWAP ***</b><br/>
CORES<br/>
Este card atribui nomes de cores as variaveis
de nomes cor_1, cor_2 e cor_3
</p>
<do type="accept" label="Exibir">
<go href="#exibe_var">
<setvar name="cor_1" value="azul"/>
<setvar name="cor_2" value="marron"/>
<setvar name="cor_3" value="verde"/>
</go>
</do>
</card>
<card id="exibe_var">
<p align="center">
<b>*** helyoWAP ***</b><br/>
CORES
</p>
<p align="left">
Primeira cor =
$(cor_1)<br/>
Segunda cor =
$(cor_2)<br/>
Terceira cor =
$(cor_3)<br/>
</p>
</card>
</wml>
Para conferência, o autor
copiou/colou a listagem acima no "Bloco de Notas" do Windows, o que
cancela qualquer tipo de formatação anterior. Em seguida, alinhou todas as
linhas à esquerda (o processo de copiar/colar pode trazer algum código espúrio,
não visível). Após, gravou o programa como phone12.wml.
Neste processo, o "Bloco de Notas" , automaticamente, mudou a extensão
para phone12.wml.txt!!! . Utilizando o Windows
Explorer (recomendado nestes casos) o arquivo foi renomeado para phone12.wml.
Em seguida foi testado com êxito no OWG1 Simulator.
O leitor pode utilizar um simulador ou um celular WAP para acessar este programa
no seguinte endereço da WEB:
http://sites.uol.com.br/helyomobile/wml/phone12.wml
. As telas poderão ter uma aparência diferente, dependo das características técnicas
do simulador ou celular utilizado.
Comentários:
A inicialização explícita de uma variável é proporcionada pelo elemento
"setvar" associado ao conjunto "do" e "go"
que programa a tecla "ACCEPT". O trecho de código que produz este
efeito está reproduzido abaixo:
<do type="accept"
label="Exibir">
<go href="#exibe_var">
<setvar name="cor_1" value="azul"/>
<setvar name="cor_2" value="marron"/>
<setvar name="cor_3" value="verde"/>
</go>
</do>
Os atributos
"name" e" value" do elemento <setvar> dão nome e
conteúdo às variáveis.
Cuidado - fonte de erros !!! O elemento
<go> visto até agora terminava com uma barra antes do fechamento da tag,
como por exemplo, <go href="phone9.wml"/> . Na
sintaxe atual, foi suprimida a barra mas acrescentada uma tag de
fechamento </go> .
Reparar também na barra antes do fechamento de <setvar>.
Resumo do que foi mostrado neste exemplo: as variáveis foram criadas e receberam seu valor inicial no primeiro card. O usuário precisou pressionar a tecla "ACCEPT" para poder ver as variáveis na segunda tela, no formato definido pelo programa.
Programa phone13.wml
Objetivo: Mostrar outra maneira de inicializar uma variável, desta vez sem
necessidade de nenhuma ação por parte do usuário, ou seja, a variável
é criada e recebe seu valor no card que exibe a tela, sem ação do usuário..
Desejamos obter a seguinte seqüência de telas, a terceira sendo exibida
automaticamente após 4 segundos de exibição da segunda.
phone13.wml(código)
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card>
<p align="center">
<b>*** helyoWAP ***</b><br/>
CORES<br/>
Este card atribui nomes de cores as variaveis
de nomes cor_1, cor_2 e cor_3
</p>
<do type="accept" label="Exibir">
<go href="#exibe_var1">
<setvar name="cor_1" value="azul"/>
<setvar name="cor_2" value="marron"/>
<setvar name="cor_3" value="verde"/>
</go>
</do>
</card>
<card id="exibe_var1" ontimer="#exibe_var2">
<timer value="40"/>
<p align="center">
<b>*** helyoWAP ***</b><br/><br/>
Conjunto 1<br/>
cor1 =
$(cor_1)<br/>
cor2 =
$(cor_2)<br/>
cor3 =
$(cor_3)<br/>
</p>
</card>
<card id="exibe_var2">
<onevent type="onenterforward">
<refresh>
<setvar name="cor_1" value="branco"/>
</refresh>
</onevent>
<p align="center">
<b>*** helyoWAP ***</b><br/><br/>
Conjunto 2<br/>
cor1 =
$(cor_1)<br/>
cor2 =
$(cor_2)<br/>
cor3 =
$(cor_3)<br/>
</p>
</card>
</wml>
Para conferência, o autor copiou/colou a listagem acima no "Bloco de
Notas" do Windows, o que cancela qualquer tipo de formatação anterior.
Em seguida, alinhou todas as linhas à esquerda (o processo de copiar/colar
pode trazer algum código espúrio, não visível). Após, gravou
o programa como phone13.wml.
Neste processo, o "Bloco de Notas" , automaticamente, mudou a extensão
para phone13.wml.txt!!! . Utilizando o Windows
Explorer (recomendado nestes casos) o arquivo foi renomeado para phone13.wml.
Em seguida foi testado com êxito no OWG1 Simulator.
O leitor pode utilizar um simulador ou um celular WAP para acessar este
programa no seguinte endereço da WEB:
http://sites.uol.com.br/helyomobile/wml/phone13.wml
. As telas poderão ter uma aparência diferente, dependo das características
técnicas do simulador ou celular utilizado.
Comentários:
Este é o programa anterior (phone12.wml) modificado.
O segundo card foi renomeado e recebeu um temporizador :
<card id="exibe_var1" ontimer="#exibe_var2">
Foi acrescentado um terceiro card : <card
id="exibe_var2"> . Notar que os três elementos <setvar>
estão no "interior" das tags <onevent> e <refresh>
:
<onevent type="onenterforward">
<refresh>
<setvar name="cor_1" value="branco"/>
</refresh>
</onevent>
O elemento <onevent> associa a execução de uma tarefa à ocorrência
de uma mudança de estado ou de situação. Essa mudança de estado foi a
abertura automática da tela graças ao "timer", sem ação do usuário.O
elemento <refresh> produz uma renovação ou limpeza do
conteúdo das variáveis indicadas, inclusive modificando sua exibição na
tela.
A terceira tela é então exibida sem nenhuma ação do usuário , com novos
valores para a variável.
Os labels "Back" que aparecem na segunda e terceira tela foram colocados automaticamente pelo simulador.
Atenção: Notar
que o conjunto de cores da segunda tela NÃO é idêntico ao da terceira. Há
uma variação na primeira cor.
Com finalidade didática, o card que é exibido após 4 segundos teve
redefinida apenas a variável cor_1.
Como as variáveis cor_2 e cor_3 não foram redefinidas, seus conteúdos
permaneceram os mesmos na memória.
Não sofreram a ação do "refresh" e foram exibidos do mesmo modo
anterior.