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 <[email protected]>
> Mário Júnior teria como voce me mandar um exemplo do jeito que vc
> implementa codebehind?
>
>
> 2009/4/17 Piero Brito <[email protected]>
>
>> 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 <[email protected]>
>>
>>> Hum... q estranho...
>>>
>>> Da forma q eu faço uso repeaters sem problemas.
>>>
>>>
>>>
>>>
>>>
>>> 2009/4/17 Piero Brito <[email protected]>
>>>
>>>> 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 <[email protected]>
>>>>
>>>>> 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 <[email protected]>
>>>>>
>>>>>> 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 <[email protected]>
>>>>>>
>>>>>>> OK
>>>>>>> *Eduardo Kraus*
>>>>>>> Desenvolvedor
>>>>>>> [email protected]
>>>>>>> http://blog.mxml.com.br
>>>>>>>
>>>>>>>
>>>>>>> 2009/4/17 Piero Brito <[email protected]>
>>>>>>>
>>>>>>>> Isso mesmo Eduardo Kraus , funcionou perfeitamente.
>>>>>>>> Valeu demais pela ajuda.
>>>>>>>>
>>>>>>>> =)
>>>>>>>>
>>>>>>>> 2009/4/17 Eduardo Kraus <[email protected]>
>>>>>>>>
>>>>>>>> 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
>>>>>>>>> [email protected]
>>>>>>>>> http://blog.mxml.com.br
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2009/4/17 Piero Brito <[email protected]>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 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 [email protected]
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
-~----------~----~----~----~------~----~------~--~---