da forma q te mostrei...

- tenho um classe MXML (sim, arquivos MXML tmabém são classes) q sempre
chamo-as de UI (user Interface):
tipo assim: (exemplo hipotético)


LoginUI.mxml
========================
<panel>
   <textinput id="tiLogin" />
   <textinput id="tiSenha" />
   <button id="btLogin" />
</panel>


Essa classe só tem os componentes, nenhum evento, nenhum comportamento..
nada.. só os componentes por si mesmo e estilos que tb podem ser definidos
no css.

Depois, terei minha classe AS3 que vai extender o MXML dando o devido
comportamento a essa tela:

Login.as
==========================
public class Login extends LoginUI {

   //aqui já tenho acesso aos meus componentes por herança

   //construtor
   public function Login() {
      super();
   }


   //sobrescrevendo o método que é excutado após a criação de todos os
componentes filho, durante o ciclo de vida do objeto.
   override protected function childrenCreated():void {
      super.childrenCreated();

     //nesse momento, meus controles já estão inicializados e prontos para
serem usados.
     //nesse ponto, eu amarro os comportamentos desses componentes

    btLogin.addEventListener(MouseEvent.CLICK, onBtLoginPerformed);

   }

   //método executado qnd o botao de login sofrer um MouseEvent.CLICK.
   protected function onBtLoginPerformed(e:MouseEvent):void{
      Alert.show('botão login pressionado');
   }

}



Daí, no meu application eu declaro meu componente que possui os
comportamentos, e não o UI.

<application xmlns:comp="components.*">

  <comp:Login />
  <!-- Atenção.. repare q estou declarando o componente da minha classe e
não a UI. -->

</application>


Dessa forma fica bem mais reaproveitável.

Pense que eu tenha outra janela q use o mesmo padrão da login... mas o
*comportamento
*dela tem q ser diferente... tudo bem, posso simplesmente criar uma nova
classe NovaTela.as que extends a LoginUI do mesmo geito.


A idéia é abstrair *totalmente* o UI do comportamento programático do AS3.
Ainda assim, fazemos bom uso de um dos pilares da OO que é a herança.



Espero ter entendido.


Abraços, bons estudos.




2009/4/17 Piero Brito <pie...@gmail.com>

> Mário Júnior teria como voce me mandar um exemplo do jeito que vc
> implementa codebehind?
>
>
> 2009/4/17 Piero Brito <pie...@gmail.com>
>
>> Pois é muito estranho mesmo, já tentei de tudo e não consegui e também não
>> achei nada na net.
>> Valeu pela ajuda
>>
>> 2009/4/17 Mário Júnior <juninho...@gmail.com>
>>
>>> Hum... q estranho...
>>>
>>> Da forma q eu faço uso repeaters sem problemas.
>>>
>>>
>>>
>>>
>>>
>>> 2009/4/17 Piero Brito <pie...@gmail.com>
>>>
>>>> Mário Júnior eu entendi o jeito que voce usa o codebehind mas o estranho
>>>> é que sempre usei desse jeito e dava certo, mas agora eu descobri que o 
>>>> erro
>>>> não está no check e sim no mx:Repeater pois quando eu tirei o chekbox de
>>>> dentro do repeater ( no MXML ) parou de dar erro na criação da tela.
>>>> Valeu
>>>>
>>>> 2009/4/17 <juninho...@gmail.com>
>>>>
>>>>>  Piero... se reparar bem, o exemplo do link q vc mandou é "inverso" a
>>>>> forma que eu utilizo.
>>>>> Lá ele cria o componente com classe AS e faz um UI dele em MXML.
>>>>>
>>>>> Oq eu faço é criar o UI em MXML com os componentes padrões... e dou o
>>>>> comportamento para eles em AS.
>>>>> Olha lá o mxml dele é a classe que ele escreveu em as.
>>>>>
>>>>> Enfim, mas q há algo de estranho com a mensagem (erro de cast???),
>>>>> realmente há.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 2009/4/17 Piero Brito <pie...@gmail.com>
>>>>>
>>>>>> Na verdade não funcionou não é que o cache aqui não tinha sido apagado
>>>>>> , quando eu fui abrir de novo continuou com o mesmo erro.
>>>>>> TypeError: Error #1034: Falha de coerção de tipo: não é possível
>>>>>> converter [...@4ee6709 em mx.controls.CheckBox. =(
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2009/4/17 Eduardo Kraus <eduardokr...@gmail.com>
>>>>>>
>>>>>>>   OK
>>>>>>>      *Eduardo Kraus*
>>>>>>> Desenvolvedor
>>>>>>>  eduardokr...@gmail.com
>>>>>>> http://blog.mxml.com.br
>>>>>>>
>>>>>>>
>>>>>>> 2009/4/17 Piero Brito <pie...@gmail.com>
>>>>>>>
>>>>>>>> Isso mesmo Eduardo Kraus , funcionou perfeitamente.
>>>>>>>> Valeu demais pela ajuda.
>>>>>>>>
>>>>>>>> =)
>>>>>>>>
>>>>>>>> 2009/4/17 Eduardo Kraus <eduardokr...@gmail.com>
>>>>>>>>
>>>>>>>>   tenta
>>>>>>>>>                    <mx:Form x="46" y="167" >
>>>>>>>>>                        <mx:Repeater id="rpt_acesso"
>>>>>>>>> dataProvider="{arr_acesso}">
>>>>>>>>>                               <mx:CheckBox id="chk_acesso"
>>>>>>>>> label="{rpt_acesso.
>>>>>>>>> currentItem.label*.toString()*}" enabled="true"  />
>>>>>>>>>                           </mx:Repeater>
>>>>>>>>>
>>>>>>>>>      *Eduardo Kraus*
>>>>>>>>> Desenvolvedor
>>>>>>>>>  eduardokr...@gmail.com
>>>>>>>>> http://blog.mxml.com.br
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2009/4/17 Piero Brito <pie...@gmail.com>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Alguem usa code behind?
>>>>>>>>>> Eu to com um problema na hora de declarar uma variavel do tipo
>>>>>>>>>> CheckBox no meu code behind, quando eu declaro a váriavel dá o
>>>>>>>>>> seguinte erro: Error #1034: Falha de coerção de tipo: não é
>>>>>>>>>> possível
>>>>>>>>>> converter [...@4ebab69 em mx.controls.CheckBox.
>>>>>>>>>> ChecBox no Mxml:
>>>>>>>>>> <mx:Form x="46" y="167" >
>>>>>>>>>>                        <mx:Repeater id="rpt_acesso"
>>>>>>>>>> dataProvider="{arr_acesso}">
>>>>>>>>>>                               <mx:CheckBox id="chk_acesso"
>>>>>>>>>> label="{rpt_acesso.currentItem.label}" enabled="true"  />
>>>>>>>>>>                           </mx:Repeater>
>>>>>>>>>> </mx:Form>
>>>>>>>>>> ChecBok na Classe:
>>>>>>>>>> public var chk_acesso:CheckBox;
>>>>>>>>>>
>>>>>>>>>> Obrigado =)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Piero Silva Brito
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Piero Silva Brito
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Mário Júnior
>>>>> Programador Java / Adobe Flex
>>>>> http://blog.mariojunior.com
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Piero Silva Brito
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Mário Júnior
>>> Programador Java / Adobe Flex
>>> http://blog.mariojunior.com
>>>
>>>
>>>
>>
>>
>> --
>> Piero Silva Brito
>>
>
>
>
> --
> Piero Silva Brito
>
> >
>


-- 
Mário Júnior
Programador Java / Adobe Flex
http://blog.mariojunior.com

--~--~---------~--~----~------------~-------~--~----~
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 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Reply via email to