helyoWAP

TUTORIAL WM
(08)
 Programas comentados: phone12.wml - phone13.wml

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.

 

WirelessBRASIL                 Portal helyoWAP                    Anterior                    Próxima