..:: MX Studio Fóruns ::..: Algumas perguntas relacionadas ao Flex2 e AS3 - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Algumas perguntas relacionadas ao Flex2 e AS3 addEventListener, Transforms e Flex 2

#1 User is offline   Micheeel 

  • Group: Membros
  • Posts: 173
  • Joined: 06-July 06

Posted 30 July 2006 - 12:27 AM

Salve pessoal.

Posso dizer que eu so frequento a área de Flash/AS porque é com isso que eu trabalho na maioria do tempo e tenho boa experiência com AS 2 e Flash...

Então resolvi me aventurar no Flex 2 e AS3, e caramba... é show de boa p/ fazer aplicativos WEB. Adorei demais isso, tanto que to aqui programando no final de semana blink.gif Nunca fiz isso na vida, só quando tinha trabalhos de faculdade smartass.gif Mas o TCC ta ai então me empolguei com o Flex 2 e to aqui, pau e corda.

Estou fazendo um MP3 player com playlist e tudo mais, tá bem bacana, fiz a classe já para controlar a MP3, ler ID3 tag, mudar volume, fazer o seektime e tudo mais pra praticar, essa tá 10 (diz a lenda hehehe)

Mas como todo principiante to me batendo com algumas coisas diferentes do AS3 e do Flex 2... são essas as perguntas

1. COMO eu passo parametros em uma função de um addEventListener?
Eu tenho algo assim:
ActionScript
volume_control.addEventListener(Event.ENTER_FRAME, enterFrameSeeker);

Há alguma forma de eu passar parametros ai para junto na função?! No AS2 até dava de fazer alguma coisa com o Delegate ou instanciar uma instancia da propria classe dentro de um objeto, mas e no AS3 / Flex2 como faz?

2. COMO eu faço para utilizar Transition de forma mais fácil sem digitar TODOS os componentes da tela no Targets?
ActionScript
<mx:transitions>
<!-- Define a transition for changing from any state to any state. -->
<mx:Transition id="myTransition" fromState="Main" toState="About">
<!-- Define a Parallel effect as the top-level effect.-->
<mx:Parallel targets="{[playlist, p1, p2, p3]}">
<!-- Define a Move and Resize effect.-->

Por exemplo ai... na linha "<mx:Parallel targets="{[playlist, p1, p2, p3]}">", eu tenho que passar todos os componentes no Targets da tela p/ eles receberem a ação na hora de mudar de um State para outro?... não tem um * (asterisco) da vida que pegue tudo que tem na tela?

3. Aproveitando a pergunta 2, como faço p/ quando ir para outro State ele não permitir mais o acesso aos componentes debaixo da tela de "Ajuda" por exemplo?
Se usa o "<mx:RemoveChildAction />" ? Não deu mto certo aqui...

4. Qual a forma mais "correta" de se fazer as interfaces no Flex 2?
Por exemplo... devo criar um State "Principal" e a partir deste ir fazendo as telas, ou posso começar pelo "<Base state>" e ir fazendo ali mesmo?
Qual dessas abordagens é o mais correto e no que implica uma e outra?

OPCIONAL ESSA tongue.gif 5. Alguém tem alguma sugestão de TCC para Ciencias da Computação na área de RIA ou Flash em geral?
Fazer não é o problema, ter a idéia e o desafio é... e to sem idéias sad.gif
0

#2 User is offline   pcsilva 

  • Group: Moderadores
  • Posts: 1940
  • Joined: 23-January 05

Posted 01 August 2006 - 04:39 PM

Salve,

Eu estou vendo mais a conectividade por enquanto, mas vou tentar dar uma mão, passando uns links, e vamos desenrolar esse assunto ai que achei bem interessante.

QUOTE(Micheeel @ 30/7/2006 00:07:17)
1. COMO eu passo parametros em uma função de um addEventListener?
Eu tenho algo assim:
ActionScript
volume_control.addEventListener(Event.ENTER_FRAME, enterFrameSeeker);

Há alguma forma de eu passar parametros ai para junto na função?! No AS2 até dava de fazer alguma coisa com o Delegate ou instanciar uma instancia da propria classe dentro de um objeto, mas e no AS3 / Flex2 como faz?
View Post


http://www.darronschall.com/weblog/archives/000191.cfm


QUOTE(Micheeel @ 30/7/2006 00:07:17)
2. COMO eu faço para utilizar Transition de forma mais fácil sem digitar TODOS os componentes da tela no Targets?
ActionScript
<mx:transitions>
        <!-- Define a transition for changing from any state to any state. -->
        <mx:Transition id="myTransition" fromState="Main" toState="About">
            <!-- Define a Parallel effect as the top-level effect.-->
            <mx:Parallel targets="{[playlist, p1, p2, p3]}">
                <!-- Define a Move and Resize effect.-->

Por exemplo ai... na linha "<mx:Parallel targets="{[playlist, p1, p2, p3]}">", eu tenho que passar todos os componentes no Targets da tela p/ eles receberem a ação na hora de mudar de um State para outro?... não tem um * (asterisco) da vida que pegue tudo que tem na tela?
View Post


Como disse estava vendo outra coisa, mas quem sabe voce fazendo um loop criando o parallel dinamicamente e adicionando ele no transitions, isso associado ao initialize do application.

Starting a Parallel effect in ActionScript is usually a five-step process:

1. Create instances of the effect objects to be composited together; for example:

myFadeEffect = new mx.effects.Fade(target);

2. Set properties, such as duration, on the individual effect objects.
3. Create an instance of the Parallel effect object; for example:

myParallelEffect = new mx.effects.Parallel();

4. Call the addChild() method for each of the effect objects; for example:

myParallelEffect.addChild(myFadeEffect);

5. Invoke the Parallel effect's play() method; for example:

myParallelEffect.play();

http://livedocs.macromedia.com/flex/2/lang...s/Parallel.html


QUOTE(Micheeel @ 30/7/2006 00:07:17)
3. Aproveitando a pergunta 2, como faço p/ quando ir para outro State ele não permitir mais o acesso aos componentes debaixo da tela de "Ajuda" por exemplo?
Se usa o "<mx:RemoveChildAction />" ? Não deu mto certo aqui...
View Post


Não sei como está fazendo mas dê uma olhada neste exemplo.

http://livedocs.macromedia.com/flex/2/docs/00000947.html

QUOTE(Micheeel @ 30/7/2006 00:07:17)
4. Qual a forma mais "correta" de se fazer as interfaces no Flex 2?
Por exemplo... devo criar um State "Principal" e a partir deste ir fazendo as telas, ou posso começar pelo "<Base state>" e ir fazendo ali mesmo?
Qual dessas abordagens é o mais correto e no que implica uma e outra?
View Post


http://livedocs.macromedia.com/flex/2/docs/00000936.html



QUOTE(Micheeel @ 30/7/2006 00:07:17)
OPCIONAL ESSA  tongue.gif 5. Alguém tem alguma sugestão de TCC para Ciencias da Computação na área de RIA ou Flash em geral?
Fazer não é o problema, ter a idéia e o desafio é... e to sem idéias sad.gif
View Post


dry.gif
Deixo esta pra galera, mas pode ser pensando em algo na área de monitoração de máquinas, o que acha?
0

#3 User is offline   Micheeel 

  • Group: Membros
  • Posts: 173
  • Joined: 06-July 06

Posted 02 August 2006 - 11:23 AM

Primeiramente, obrigado pela resposta! smile.gif

Deixa eu continuar a "conversa"...

QUOTE(pcsilva @ 1/8/2006 15:08:59)
Salve,

Eu estou vendo mais a conectividade por enquanto, mas vou tentar dar uma mão, passando uns links, e vamos desenrolar esse assunto ai que achei bem interessante.

QUOTE(Micheeel @ 30/7/2006 00:07:17)
1. COMO eu passo parametros em uma função de um addEventListener?
Eu tenho algo assim:
ActionScript
volume_control.addEventListener(Event.ENTER_FRAME, enterFrameSeeker);

Há alguma forma de eu passar parametros ai para junto na função?! No AS2 até dava de fazer alguma coisa com o Delegate ou instanciar uma instancia da propria classe dentro de um objeto, mas e no AS3 / Flex2 como faz?
View Post


http://www.darronschall.com/weblog/archives/000191.cfm


Então, dei uma olhada no material e parece interessante, mas achei que havia uma forma nativa de ser feito isso no Flex2/AS3. Pelo jeito não alteraram nada nesse sentido... Claro que é possivel fazer um "workaround" tanto na classe como utilizando a implementação dele, mas eu pensei que haviam feito algo diferente sobre o assunto que não encontrei.

QUOTE(pcsilva @ 1/8/2006 15:08:59)
QUOTE(Micheeel @ 30/7/2006 00:07:17)
2. COMO eu faço para utilizar Transition de forma mais fácil sem digitar TODOS os componentes da tela no Targets?
ActionScript
<mx:transitions>
         <!-- Define a transition for changing from any state to any state. -->
         <mx:Transition id="myTransition" fromState="Main" toState="About">
             <!-- Define a Parallel effect as the top-level effect.-->
             <mx:Parallel targets="{[playlist, p1, p2, p3]}">
                 <!-- Define a Move and Resize effect.-->

Por exemplo ai... na linha "<mx:Parallel targets="{[playlist, p1, p2, p3]}">", eu tenho que passar todos os componentes no Targets da tela p/ eles receberem a ação na hora de mudar de um State para outro?... não tem um * (asterisco) da vida que pegue tudo que tem na tela?
View Post


Como disse estava vendo outra coisa, mas quem sabe voce fazendo um loop criando o parallel dinamicamente e adicionando ele no transitions, isso associado ao initialize do application.

Starting a Parallel effect in ActionScript is usually a five-step process:

1. Create instances of the effect objects to be composited together; for example:

myFadeEffect = new mx.effects.Fade(target);

2. Set properties, such as duration, on the individual effect objects.
3. Create an instance of the Parallel effect object; for example:

myParallelEffect = new mx.effects.Parallel();

4. Call the addChild() method for each of the effect objects; for example:

myParallelEffect.addChild(myFadeEffect);

5. Invoke the Parallel effect's play() method; for example:

myParallelEffect.play();


http://livedocs.macromedia.com/flex/2/lang...s/Parallel.html


Eu havia lido esse documento no livedocs. Mas ainda assim os passos para criar efeitos deveriam ser aplicados de componente em componente... No caso eu encontrei informações para facilitar isso.

Passar/criar/adicionar os efeitos via AS ou até mesmo passar 300 componentes no target dá um certo trabalho. Eu imaginava que se de alguma forma eu conseguisse acessar um array dos componentes presentes na tela no atual instante, eu apenas passava esse array pro Targets dos Transitions e teria resolvido o problema de forma simples.

O que encontrei várias pessoas fazendo para resolver esse problema de "preguiça", sim porque não deixa de ser, bastava preencher o Targets certinho, mas o que achei foi o pessoal colocando tudo dentro de um canvas ou painel. Então no Target você passa somente esse painel e manda ele aplicar um filtro ali, que iria servir para tudo e todos componentes visiveis na tela.



QUOTE(pcsilva @ 1/8/2006 15:08:59)
QUOTE(Micheeel @ 30/7/2006 00:07:17)
3. Aproveitando a pergunta 2, como faço p/ quando ir para outro State ele não permitir mais o acesso aos componentes debaixo da tela de "Ajuda" por exemplo?
Se usa o "<mx:RemoveChildAction />" ? Não deu mto certo aqui...
View Post


Não sei como está fazendo mas dê uma olhada neste exemplo.

http://livedocs.macromedia.com/flex/2/docs/00000947.html


Já para remover a ação dos DataGrids (exemplo) ali dentro desse canvas, ou fora dele, depois de aplicado o filtro, ai preciso pesquisar mais. O que vi que tá sendo uma prática meio "comum", é aplicar outro canvas por cima, com transparencia e sem ação nenhuma. Assim bloqueia o acesso do usuário ao canvas debaixo.... mas isso é meio...... lixo. ohmy.gif blink.gif Vou ver mais afundo como fazer isto.

O <mx:AddChildAction/> eu havia pego deste livedoc ai mesmo, mas depois de aplicado ele ainda permite acesso ao dataGrid por exemplo... ele ainda executa os efeitos de mouseover no datagrid (aquele azul qndo passa o mouse em cima por padrão). Talvez seja necessário botar os componentes como enabled = false; e depois inverter para true... mas ainda estou vendo.

QUOTE(pcsilva @ 1/8/2006 15:08:59)
QUOTE(Micheeel @ 30/7/2006 00:07:17)
4. Qual a forma mais "correta" de se fazer as interfaces no Flex 2?
Por exemplo... devo criar um State "Principal" e a partir deste ir fazendo as telas, ou posso começar pelo "<Base state>" e ir fazendo ali mesmo?
Qual dessas abordagens é o mais correto e no que implica uma e outra?
View Post


http://livedocs.macromedia.com/flex/2/docs/00000936.html


Esse doc também havia lido... mas não responde minha pergunta. Na verdade eu queria saber quais as implicações de fazer o layout todo no '<Base state>' ou criar novos states, não criando nada no '<Base state>'. Queria saber por questões de padronização que o pessoal usa, formalidades e até p/ entender se isso melhora algo na compilação/runtime da aplicação...

QUOTE(pcsilva @ 1/8/2006 15:08:59)
QUOTE(Micheeel @ 30/7/2006 00:07:17)
OPCIONAL ESSA  tongue.gif 5. Alguém tem alguma sugestão de TCC para Ciencias da Computação na área de RIA ou Flash em geral?
Fazer não é o problema, ter a idéia e o desafio é... e to sem idéias sad.gif
View Post


dry.gif
Deixo esta pra galera, mas pode ser pensando em algo na área de monitoração de máquinas, o que acha?
View Post


Obrigado pela dica! Eu poderia fazer esse monitoramento usando SNMP mesmo... junto com PHP p/ requisitar as informações... é interessante. Vou dar uma consultada nos possíveis orientadores p/ o TCC p/ ver o que dizem.

Eu gostei muito do que o Flex2 pode trazer p/ área de RIA, batendo meio que de frente com o Ajax, mas com mto mais facilidades... afinal debugar JavaScript em 30 navegadores diferentes porque cada um interpreta de uma forma diferente o JS para fazer Ajax do zero, é dose.

Mas enfim... acho que o livro do O'Reilly vem p/ ajudar bastente na área. Já li o de AS2 dele e é um livro muito bom. Se te interessar...
http://www.amazon.com/gp/product/059652689...glance&n=283155

0

#4 User is offline   pcsilva 

  • Group: Moderadores
  • Posts: 1940
  • Joined: 23-January 05

Posted 03 August 2006 - 03:04 AM

1,2,3 - uma solução mais aprimorada poderia ser construida caso pudessemos visualizar o actionscript final, o que será compilado pelo Flex, concorda?
Então vai ai:
click com o botão direito do mouse na pasta do projeto, em seguda em propridades, vá direto para Flex Compiler, no input "Additional Compiler arguments" adicione " -keep-generated-actionscript" (sem as aspas), click em Apply e depois em Ok, abra o arquivo da aplicação, tecle F11 feche a janela do debug, click com o o botão direito no projeto e peça um refresh, será criada a pasta generated, nela podemos encontrar varios arquivos iniciados por _, e mais os arquivos do projeot terminados por -generated.as e -interface.as.
Fica mais facil para o estudo da construção de uma aplicação por actionscript 3 no flex.

4 - sinceramente ainda não percebi a diferença, entre varios e apenas um.

5 - inicialmente havia pensando em algo mais simples, como um gerenciamento de politicas de administração, gerenciamento de softwares de cada maquina, com um ping down/up para os leds. Agora uma solução baseada em snmp, demanda divisão por community, você quem sabe.

Abraços
0

#5 User is offline   Micheeel 

  • Group: Membros
  • Posts: 173
  • Joined: 06-July 06

Posted 07 August 2006 - 02:43 PM

pcsilva,

Deixa eu te perguntar uma coisa... na verdade um problema que me ocorreu agora...

Qual a melhor forma de organizar um projeto/RIA que possui várias interfaces/States diferentes?!

Eu tenho aqui um aplicativo que estou fazendo no trabalho pra me ajudar que é p/ dar manutençao em sites a partir do Flex... Mas as interfaces/states de cada área muda muito, e com isso o código do MXML inicial tá ficando gigante com muitos States. Veja:

CODE
<mx:states>
<mx:State name="home">
<mx:AddChild position="lastChild">
<mx:Panel y="100" width="730" height="600" layout="absolute" title="Área de Manutenção" horizontalCenter="-5" id="painelHome">
<mx:Panel y="10" width="165" height="225" layout="absolute" title="Dicas da Vovó Lydia" x="10">
<mx:Image y="10" source="images/manut/lampada.png" horizontalCenter="0"/>
<mx:LinkButton y="66" label="Adicionar" width="100%" horizontalCenter="0" click="currentState = 'dicas_adicionar';"/>
<mx:LinkButton y="96" label="Editar" width="100%" horizontalCenter="0"/>
<mx:LinkButton y="126" label="Estatísticas" width="100%" horizontalCenter="0"/>
</mx:Panel>
<mx:Panel y="10" width="165" height="225" layout="absolute" title="Concurso de Receitas" x="185">
<mx:Image y="10" source="images/manut/caixapapeis.png" horizontalCenter="0"/>
<mx:LinkButton y="66" label="Aprovar" width="100%" horizontalCenter="0"/>
<mx:LinkButton y="96" label="Editar" width="100%" horizontalCenter="0"/>
<mx:LinkButton y="126" label="Estatísticas" width="100%" horizontalCenter="0"/>
</mx:Panel>
<mx:Panel y="250" width="165" height="225" layout="absolute" title="Livro de Receitas" x="185">
<mx:Image y="10" source="images/manut/livroaberto.png" horizontalCenter="0"/>
<mx:LinkButton y="66" label="Adicionar" width="100%" horizontalCenter="0"/>
<mx:LinkButton y="96" label="Editar" width="100%" horizontalCenter="0"/>
<mx:LinkButton y="156" label="LinkButton" width="100%" horizontalCenter="0"/>
<mx:LinkButton y="126" label="Estatísticas" width="100%" horizontalCenter="0"/>
</mx:Panel>
<mx:Panel y="10" width="165" height="225" layout="absolute" title="Viva Melhor" x="535">
<mx:Image y="10" source="images/manut/pessoabrilho.png" horizontalCenter="0"/>
<mx:LinkButton y="66" label="Adicionar" width="100%" horizontalCenter="0"/>
<mx:LinkButton y="96" label="Editar" width="100%" horizontalCenter="0"/>
<mx:LinkButton y="126" label="Estatísticas" width="100%" horizontalCenter="0"/>
</mx:Panel>
<mx:Panel y="250" width="165" height="225" layout="absolute" title="Chamadas" x="10">
<mx:Image y="10" source="images/manut/speaker.png" horizontalCenter="0"/>
<mx:LinkButton y="66" label="Página Inicial" width="100%" horizontalCenter="0"/>
<mx:LinkButton y="96" label="Viva Melhor" width="100%" horizontalCenter="0"/>
<mx:LinkButton y="126" label="Livro de Receitas" width="100%" horizontalCenter="0"/>
<mx:LinkButton y="156" label="Receitas do Concurso" width="100%" horizontalCenter="0"/>
</mx:Panel>
<mx:Panel y="10" width="165" height="225" layout="absolute" title="ABC dos Alimentos" x="360">
<mx:Image y="10" source="images/manut/potelupa.png" horizontalCenter="0"/>
<mx:LinkButton y="66" label="Adicionar" width="100%" horizontalCenter="0"/>
<mx:LinkButton y="96" label="Editar" width="100%" horizontalCenter="0"/>
<mx:LinkButton y="126" label="Estatísticas" width="100%" horizontalCenter="0"/>
</mx:Panel>
</mx:Panel>
</mx:AddChild>
</mx:State>


Então, quais outras formas que eu tenho p/ fazer isso sem poluir e destruir a legibilidade do código?

Eu sei que existe o <mx:Script src="bblablabla.as">, mas isso também não soluciona. Ajuda, mas não resolve.

Tem como eu fazer essas interfaces em outros MXMLs e ir alternando entre eles como se eu tivesse um flash que chama outro SWF por cima e assim vai? Ou isso somente é possivel com componentes e fim?

Muito obrigado.
0

#6 User is offline   pcsilva 

  • Group: Moderadores
  • Posts: 1940
  • Joined: 23-January 05

Posted 07 August 2006 - 03:25 PM

http://livedocs.macromedia.com/flex/2/docs/00000448.html


Usa o repeater, para diminuir os state.
http://livedocs.macromedia.com/flex/2/lang...e/Repeater.html
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)