post isso em um blog ...

saintbr.     =]

----- Original Message ----- 
From: "RoCkRaiN" <[EMAIL PROTECTED]>
To: "flexdev" <flexdev@googlegroups.com>
Sent: Tuesday, May 22, 2007 1:48 PM
Subject: [flexdev] HSlider



Boa tarde flexdevels.

Vou escrever aqui um artigo para as pessoas que estão iniciando agora
com o Flex, assim como eu, e desta forma podemos trocar algum
conhecimento de forma simples para assim nivelarmos todos os usuarios.

Espero que gostem.

O HSlider é um componente simples porem muito funcional e que garante
ao usuario uma experiencia que não é comum na internet.

Vamos colocar a mão na massa então.

Crie um novo projeto chamado Flexdev.
File > New > Flex Project um assistente se abrirá para vc selecionar a
forma com que projeto acessará os dados, selecione "Basic" e em
seguida "Next", em seguida preencha o campo "Project name" com o nome
do seu projeto (Flexdev) e então "Finish".

Selecione a guia "Design" e na janela "Components" clique e arraste
para sua area de desenvolvimento os componentes a seguir:

Layout: Panel
<mx:panel id="painel1" title="Exemplo de aplicação do controle
HSlider." height="100%" width="95%"
        paddingTop="10" paddingBottom="10" paddingLeft="10"
paddingRight="10 >

Controls: Image
<mx:Image id="imagemExemplo">
Na janela de propriedades preencha o campo "source" com o endereço em
que sua imagem está localiazada

Controls: Label
<mx:Label color="blue" text="Movimente a seta para alterar as
dimensões da imagem."/>

Layout: HBox
<mx:HBox height="100%" width="100%"></mx:HBox>

Controls: HSlider
<mx:HSlider id="hSlider"
        minimum="0" maximum="100"  value="100" dataTipPlacement="top"
dataTipPrecision="0"  snapInterval="1" tickInterval="10"
labels="['0%','100%']" allowTrackClick="true" liveDragging="true"
change="changeSize();"/>
         </mx:HSlider>

Bom vamos dar uma passada por cada componente e falar um pouco sobre
cada um deles.

O painel servirá de fronteira para nossa aplicação, ou seja todos os
outros componentes deverão estar inseridos na tag <mx:panel></
mx:panel>.

A imagem será usada para visualizarmos como o HSlider funciona, com
ele definiremos as medida da imagem.

O Label será usado para orientarmos nosso usuário de como ele deverá
proceder com relação ao HSlider.

O HBox servira para posicionarmos nossa Imagem dentro do painel, isso
quer dizer que o componente Image deverá estar inserido na tag
<mx:HBox></mx:HBox>.

Em nosso objeto de estudo farei uma analise um pouco mais detalhada.
<mx:HSlider id="hSlider"
     "minimum" É o valor minimo permitido pelo controle
     "maximum" É o valor maximo permitido pelo controle
     "dataTipPlacement" Define a posição em que será exibida a dica de
ferramenta
     "dataTipPrecision" Define o numero de casas que existirão depois
do ponto flutuante, padrão = 2
     "value" Contem a posição da seta, e é um numero entre as
propriedades minimum e maximum
     "snapInterval"  É o intervalo entre um valor e outro definido
dentro do escopo minimum e maximum
     "labels" É o texto que será apresentado acima da barra deslizante
     "allowTrackClick"  Define se ao clicar na barra ao inves da seta
ela se moverá ou não
     "tickInterval" É a distancia entre uma marca de intervalo e outra
dentro do escopo definido pelas propriedades minimum e maximum
     "liveDragging" Define se é possivel arrastar livremente a seta
sobre a barra
     "change" Define qual será a ação do sistema quando a posicão da
seta for alterada com relação a barra.
/>

mais sobre esse componente.
http://livedocs.adobe.com/flex/201/langref/mx/controls/HSlider.html#propertySummary

Vamos agora escrever o Script que cuidara do funcionamento do nosso
exemplo.
Clique na guia Source
abra a tag Script

<mxScript> ele fará o resto por vc, :D

dentro da tag <![CDATA[

Defina duas variaveis para receber os valores de altura e largura da
nossa imagem:
 private var larguraImagem:Number=0;
 private var alturaImagem:Number=0;

Agora a função que será executada no evento "change" do HSlider:
private function alteraTamanho():void
          {
             imagemExemplo.width = uint( larguraImagem*hSlider.value/
100 );
             imagemExemplo.height = uint( alturaImagem*hSlider.value/
100 );
          }


Nosso código deverá se parecer com o código a seguir:


<?xml version="1.0"?>
<!-- Exemplo de aplicação do controle Hslider. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";>

    <mx:Script>
        <![CDATA[

          private var larguraImagem:Number=0;
          private var alturaImagem:Number=0;

          // Evento que altera o tamanho da imagem
          private function alteraTamanho():void
          {
             imagemExemplo.width = uint( larguraImagem*hSlider.value/
100 );
             imagemExemplo.height = uint( alturaImagem*hSlider.value/
100 );
          }
        ]]>
    </mx:Script>


    <mx:Panel id="painel1" title="Exemplo de aplicação do controle
Hslider." height="100%" width="95%"
        paddingTop="10" paddingBottom="10" paddingLeft="10"
paddingRight="10">

        <mx:HBox height="100%" width="100%">
            <mx:Image id="imagemExemplo" source="@Embed('Data/
Nokia_6630.gif')"
                creationComplete="larguraImagem = imagemExemplo.width;
alturaImagem = imagemExemplo.height;" />
        </mx:HBox>

        <mx:Label color="blue" text="Movimente a seta para alterar as
dimensões da imagem."/>

        <mx:HSlider id="hSlider"
        minimum="0"
        maximum="100"
        value="100"
            dataTipPlacement="top"
            dataTipPrecision="2"
            snapInterval="1"
            tickInterval="10"
            labels="['0%','100%']"
            allowTrackClick="true"
            liveDragging="true"
            change="alteraTamanho();"/>
        </mx:Panel>
</mx:Application>

Bom é isso espero que seja util, qualquer duvida é só mandar e-mail ou
responder ao grupo.

Abraços e até o proximo artigo.





--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a