Recentemente Mirko Bordjoski postou em seu blog um editor de efeito de cores de imagens feito para Adobe Flex 4.5 utilizando o CMVC, segundo Mirko, uma customização do PureMVC.
Baixe o código fonte completo pra seus estudos.
Bons estudos…
Recentemente Mirko Bordjoski postou em seu blog um editor de efeito de cores de imagens feito para Adobe Flex 4.5 utilizando o CMVC, segundo Mirko, uma customização do PureMVC.
Baixe o código fonte completo pra seus estudos.
Bons estudos…
Na programação orientada a objetos um iterador é um objeto que possibilita o programador a examinar um objeto que contem outros objetos (container).
As semânticas de acesso dos iteradores são fixas e você pode implementar diversos tipos de iteradores de forma desacoplada a partir de uma interface.
Imagine um iterador como um cursor de uma base de dados onde os elementos são acessados sequencialmente (cursor).
Os arquivos utilizados podem ser encontrados em:
https://github.com/wlepinski/as3-patterns/tree/master/Iterator
Basicamente a interface de um iterador pode ser definida como:
|
1
2 3 4 5 6 7 8 |
public interface IIterator
? ? function first ():void; ? ? function next ():void; ? ? function isDone ():Boolean; ? ? function currentItem ():*; ? ? function hasNext():Boolean; |
Com essa interface podemos prover algumas implementações de iteradores para qualquer tipo de objeto que descreva qual o seu iterador, a interface abaixo será utilizada pelos nosso objetos que podem ser iterados.
|
1
2 3 4 5 6 7 |
public interface IAbstractList
? ? function createIterator ():IIterator; ? ? function count ():int; ? ? function append ( item:Object ):void; ? ? function remove ( item:Object ):void; |
Vamos criar um iterador (ArrayIterator) que implementa a interface IIterator e recebe como parâmetro no construtor um ArrayList que também vamos implementar a seguir:
Implementação do ArrayIterator:
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
public class ArrayIterator implements IIterator
? ? public var index:int = 0; ? ? public var list:ArrayList; ? ? public function ArrayIterator ( list:ArrayList ) |
Implementação do ArrayList:
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
public class ArrayList implements IAbstractList
? ? public var array:ArrayCollection = new ArrayCollection(); ? ? ? ? public function ArrayList () ? ? ? ? ? ? ? ? public function createIterator ():IIterator ? ? ? ? ? ? return new ArrayIterator( this ); ? ? ? ? ? ? public function count ():int ? ? ? ? ? ? return array.length; ? ? ? ? ? ? public function append ( item:Object ):void ? ? ? ? ? ? array.addItem( item ); ? ? ? ? ? ? public function remove ( item:Object ):void ? ? ? ? ? ? array.removeItemAt( array.getItemIndex( item ) ); ? ? } |
Podemos utilizar o iterador de duas formas, em um “for” ou em um “while”:
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
var list:IAbstractList;
var iterator:IIterator; // Utilizando o for???? iterator = list.createIterator(); // Usando while iterator = list.createIterator(); while ( iterator.hasNext() ) |
Todo mundo já deve estar careca de saber que a Adobe já anunciou o Flash Builder 4.5 e este será lançado em Maio de 2011.
Como você pode ter visto no anuncio, nós Flex developers poderemos criar aplicativos móveis para as plataformas Android, Blackberry Tablet OS e Apple iOS.
Aí vem o porém sobre as duas últimas plataformas e que podem gerar muita confusão no lançamento do Flash Builder em Maio. A Adobe planeja lançar um update em Junho de 2011 com suporte total ao Blackberry Tablet OS e Apple iOS, sem precisar abrir seu prompt de comando favorito. O que acontece na primeira versão lançada em Maio é o suporte total ao Google Android.
Na tabela abaixo retirada do Blog oficial da Adobe, explica melhor esta situação:
*Project will actually target AIR 2.5. You will need to make a manual change to your project to enable this configuration. This will be clearly documented on the Adobe Developer Center and RIM’s developer site upon launch in May, 2011.
Há outra coisa que a Adobe lembra é que com o novo Flash Builder 4.5, você pode criar projetos usando Flex Mobile ou apenas ActionScript puro. Existem algumas diferenças entre estes projetos.
Quando você cria um novo projeto Flex Mobile, você tem direito a usar todas as funcionalidades adicionados no core do Flex SDK, onde possuem componentes específicos para Mobile, como o ViewNavigatorApplication e ViewNavigator para manipular a navegação da aplicação e persistir os dados entre as views.
Já na criação de um projeto ActionScript Mobile, você poderá apenas escrever sua aplicação usando ActionScript puro, que é muito comum no desenvolvimento de jogos, porém não poderá utilizar as classes Flex dentro deste projeto.
É importante lembrar que ambos projetos, fornecem o fluxo completo no Flash Builder para desenvolver projetos mobile através do código e no design view, podendo pré-visualizar e debuggar a aplicação no desktop ou em seu aparelho (smartphone ou tablet).
Posso dizer que está cada vez mais gratificante poder trabalhar com a Flash Platform e ter entrado de cara neste mundo em 2008. Já se passaram 3 anos e vi muita evolução por parte da Adobe, mesmo por meio dos assuntos que rolaram sobre HTML5.
Por hoje é isso e até a próxima.
Mais informações em http://adobe.ly/hH0wtn
Olá a todos!
A Adobe lançou ontem a versão 5.5 da sua suite de produtos!
Para esta versão, o lema é claramente a possibilidade de criar conteúdo, para vários dispositivos, com o mínimo de esforço!
De entre as várias funcionalidades que foram adicionadas (algumas já terão sido por vós testadas, uma vez que a Adobe foi lançando várias versões beta das mesmas), destaco as seguintes:
Como podem ver, têm aqui informação suficiente para vos ocupar durante uns bons pares de dias
O software só deve ficar disponível no início de Maio, no entanto, podem já fazer a pré-compra no site da Adobe.
Um abraço a todos, Mauro.
Salve pessoal!
Essa semana eu inicie a fase de contratações da equipe que vai trabalhar comigo em um projeto nos próximos meses, entre horas de pesquisa e análise de possibilidades eu me deparei com uma situação engraçada e atípica, pesquisando sobre média salarial de profissionais de agências de publicidade encontrei um estudo feito pela ABRADI (Associação Brasileira de agências digitais), esse estudo mostra o salário dos profissionais de agências digitais descriminado por áreas e níveis de conhecimento.
Para minha surpresa percebi que nesse estudo Flash Developers estão na lista dos mais bem pagos do mercado, ficando atrás apenas de profissionais de atendimento, planejamento e diretores.
Essa grata surpresa me incitou a escrever uma matéria sobre quais são as principais características e os principais conhecimentos de um Flash Developer Sênior, basicamente nessa matéria vou descrever sob o meu ponto de vista os conhecimentos que um “Flash Developer” tem que ter para alcançar o topo da agência onde trabalha ou vai trabalhar.
O Flash há muito tempo desperta amor e ódio nas pessoas, varias vezes eu me vi incluso em “brigas” sobre qual é a melhor tecnologia e qual é o lugar do Flash na escala de desenvolvimento.
Minha opinião sobre o assunto sempre foi clara, caso alguém me mostre uma tecnologia que seja tão hibrida quanto o Flash no quesito integração com outras tecnologias, ferramentas de desenvolvimento, documentação oficial útil e descomplicada, cursos, metodologia, comunidade de desenvolvimento ativa, padronização de desenvolvimento e possibilidade de desenvolvimento para várias plataformas, nesse dia eu com certeza vou parar de trabalhar com Flash/Actionscript e aprender essa incrível tecnologia que terá batido o Flash, até esse dia, eu prefiro continuar no mundo da plataforma flash. Então fica a dica, não perca seu tempo nesse tipo de discussão, deixe que cada um escolha seu caminho, acredite, isso vai ser melhor para você!
Se você é um verdadeiro “Flash Developer” com certeza já fez alguma coisa em OOP, esse padrão de programação pode salvar a sua vida quando o tempo for curto e o projeto desafiador. Para saber mais acesse esse link
Frameworks ajudam você a manter um padrão de desenvolvimento e diminuem o tempo de tarefas simples, existem ótimos frameworks de desenvolvimento, entre eles eu destaco o Gaia Framework e o ASF-AS3(Neto Leal). Use sem moderação!
Não é novidade alguma que as redes sociais revolucionaram a forma como as coisas acontecem na web, então é muito importante que você saiba integrar diversos serviços ao seus sites/aplicativos em Flash, serviços como Youtube, Facebook, Twitter e Flickr tem áreas específicas para desenvolvedores de várias tecnologias e em todas elas você pode encontrar APIs para auxiliar no desenvolvimento de seus sites/aplicativos.
Não que você tenha que ser um expert nessa linguagem, mas é muito bom você ter a visão do “outro lado”, não serão poucas as vezes que vão querer que aquele “hotsitezinho” que você fez tenha uma área administrativa e grave/leia dados de um banco de dados, ou que aquele outro programador “mala” vai dizer que isso ou aquilo não é possível com flash, nesse caso eu indico duas tecnologias exatamente nessa ordem, Coldfusion e PHP. Não se esqueça de aprender a trabalhar bem com Mysql, mas atenção, você não vai se tornar o melhor programador Serve-Side do mundo então tente não perder sua “veia” de design com essas tecnologias o interessante é você ainda continuar “mandando bem” em áreas fundamentais como Motion e Design.
Isso pode levantar certa polêmica, mas a grande verdade é que se você pretende ser um Flash Developer e gerenciar um projeto é fundamental que você conheça profundamente o Photoshop, que tenha uma boa noção de design, tipografia e afins e conheça muito de motion design, por mais que digam o contrário 80% do trabalho de um Flash Developer é dar vida a interfaces malucas criadas por Diretores de Arte ainda mais malucos!
Falar isso para os desavisados pode parecer uma heresia, mas a verdade é que, seja um banner, um hotsite ou um grande site é muito melhor você fazer todas as transições e motions via código, nesse caso eu indico que você use a Greensock. Trabalhando dessa forma você terá uma facilidade maior na hora de fazer aquele ajuste fino ou implementar aquela alteração de última hora.
A comunidade de desenvolvimento Flash é muito unida, existem vários blogs como o meu que visam o crescimento profissional das pessoas sem nada em troca, é fundamental que você tenha boas referencias, que fique ligado nas constantes novidades que circulam no mundo da plataforma flash(sabe o que é molehill?), quer saber quem são as minhas referencias? Segue o link. Outra dica, tenha uma pagina de Labs sempre atualizada ou então crie um blog para compartilhar seus conhecimentos e experiências, isso coloca você em destaque na comunidade e pode abrir portas para bons trabalhos =)
A IDE do flash é muito boa, na versão CS5 o pessoal da Adobe melhorou bastante o editor de código, porém, ele está longe de ser a melhor opção do mercado, eu particularmente uso o FlashDevelop para fazer isso, mas o Flash Builder 4 também é uma boa opção, escolha a sua!
Há muito tempo o flash player domina as estatísticas de software mais instalado do mundo, mas é importante saber que o Flash não serve apenas para desenvolver sites, hoje em dia existe uma infinidade de dispositivos que utilizam o flash player, hoje você pode criar conteúdo para Iphone, Ipad, Smartphones com Android e tablets como o Motorola Xoom. Eu acho muito importante estar sempre ligado nessas novas possibilidades e de preferência ter um (ou todos) para estudos, pense fora da caixa, quem sabe isso não vai te render uma grana extra!
Tenha sempre um portfólio bem atualizado, eu não posso falar disso com muita autoridade, pois há três anos venho tentando ter tempo para atualizar meu site, kaekae, mas é fundamental que você tenha um portfólio online que mostre exatamente o que você é capaz de fazer, ele com certeza vai ser decisivo na hora da contratação para uma empresa ou freela.
É importante que você faça pelo menos uma vez ao ano uma reciclagem de seus conhecimentos, eu particularmente guardo 5% do que ganho ao ano para fazer isso, esse ano vou estar no FlashCampBrasil, uma dica que deixo são os cursos do Luciano Augusto o cara manda super bem em cursos a distância.
O maior erros do Flash Developer está na hora de passar o orçamento, acredite, nós estamos no topo da cadeia alimentar dos desenvolvedores, quando aparecer aquele freela não fique com medo de cobrar o valor real, você é um Flash Developer e sua hora é uma das mais caras do mercado.
Outra coisa importante são os prazos, saiba quanto tempo você leva para fazer determinadas atividades comuns a um Flash Developer, não cumprir prazos está fora de questão e lembre-se sempre existe alguém que conhece outro alguém e uma vez queimado no mercado você estará fadado ao limbo!
Não existe limite para a criatividade dentro do flash, não desanime o caminho é longo mais as recompensas em R$ são grandes depois de um tempo!
Deixe um comentário sobre esse artigo e não se faça de difícil se precisar de ajuda!
Um abraço
Sites de jogos online feitos com Adobe Flash se tornaram muito populares. Existem varias produtoras que se especializaram no desenvolvimento de jogos em Flash e nos últimos anos vimos um crescimento grande em relação aos jogos em Flash nas redes sociais a exemplos dos jogos casuais que encontramos no Facebook e Orkut.
O Adobe Flash oferece uma gama enorme de possibilidades para o desenvolvimento de jogos e recentemente com a nova API 3D do Flash Player(codinome Molehill), isso só aumentou e deu muita liberdade os desenvolvedores. Veja uma lista de demonstrações com Molehill.
Para alguns jogos é essencial que se tenha um simulador de física(gravidade, ação e reação, colisões etc), as chamadas engines de física, que são bem conhecidas pelo pessoal que já desenvolve em outras plataformas especificas para jogos. Alguns engines de físicas para o Adobe Flash são:
Você pode aproveitar também algumas bibliotecas ou códigos de jogos ja desenvolvidos e portar para o Flash atraves do Adobe Alchemy, para quem não sabe, o Adobe Alchemy converte código em C/C++ para ActionScript 3.0. Tanto que temos até produtoras portando jogos do Nintendo Wii para o Flash.
Sempre fui fã de games e desde meu primeiro video game, um Master System, sempre tive vontade de criar jogos e agora resolvi criar um site. Para criar um site de jogos em Flash, a empresa Mochi oferece opções entre plugin para WordPress, Game Site Script, Arcadem Pro 2.8+, phpArcadeScript e AV Arcade. O interessante da empresa é que a empresa oferece também os jogos e da a possibilidade de você publicar e ganhar alguma grana com seu próprio jogo. Meu jogo ainda está em produção e envolve Flash e Flash Media Server para algo mais interativo e em tempo real. Breve estarei disponibilizado no Mochi. Enquanto isso, aproveite alguns dos mais de 900 jogos online free feitos em Flash no site.

Continuando com a nossa série de posts sobre metadatas, dessa vez foi falar da metadata exclude. Essa metadata tem como principal objetivo esconder uma propriedade, efeito, evento ou estilo de um componente quando adicionado via MXML.
A metadata exclude não tem nenhuma utilidade quando estamos criando nosso componente sem utilizar nenhum outro componente como base, pois caso nosso objetivo seja esconder uma propriedade basta utilizarmos um modificador de acesso diferente de public, e caso seja esconder um efeito, evento ou estilo, basta não adicionar as metadatas Effect, Event ou Style.
Mas enfim, vamos a um exemplo prático.
No nosso exemplo, vamos extender a classe TextInput para criar uma nova caixa de texto chamada CPFInput. A CPFInput apenas limitará o usuário a digitar os valores entre 0 e 9, pontos e traços.
Criamos a nossa classe CPFInput e criamos uma restrição para digitar apenas os valores necessários.

Quando vamos utilizar a classe CPFInput, ainda é possivel determinar um valor para a propriedade restrict. Caso haja mudanças nessa propriedade a nossa classe irá perder todo o sentido, e não será mais útil no contexto aplicado. Para evitar isso vamos adicionar a metadata Exclude.
Em sintaxe: [Exclude(name="nome da propriedade, evento, efeito ou estilo", kind="property,event,effect,style")]
Nesse passo, adicionamos a metadata Exclude para esconder a propriedade restrict.

Agora não é mais possível ver a propriedade restrict quando utilizamos o componente via MXML.
Apesar da metadata Exclude “esconder” a propriedade, o que o Flash Builder faz é simplesmente removê-la do auto-complete, caso o desenvolvedor digite a propriedade e atribua um valor a ela, o processo funcionará normalmente. Isso acontece pois não temos como alterar o modificador de acesso da propriedade, e somente “mascarar” o seu acesso.
Uma das grandes vantagens de utilizar o MXML é ter a facilidade de compor os componentes através da utilização de tags e atributos. Basicamente todo arquivo MXML segue a estrutura:
Entender essa estrutura é simples, estamos setando novos valores para as propriedades do nosso componente base. Em exemplo prático temos:
Saber que uma instância da classe VerticalLayout está sendo atribuída a propriedade layout da classe Application é fácil, mas onde estamos atribuindo a instância da classe Group uma vez que ela não segue a estrutura base do MXML?
Para facilitar a utilização dos componentes no MXML, a Adobe criou a metadata DefaultProperty que, assim como o nome diz, determina uma propriedade a ser utilizada como padrão no MXML caso não haja sua especificação na composição do componentes, isso explica como conseguimos atribuir uma instância da classe Group em uma determinada propriedade da classe Application sem a necessidade de declará-la.
Vamos então criar um exemplo funcional de um componente com a metadata DefaultProperty?
Em sintaxe: [DefaultProperty("propriedade")]
No exemplo estou extendendo a classe DropDownList e apenas determinando que sua propriedade default é a propriedade prompt.
Na classe DropDownList precisamos abrir a tag da propriedade prompt antes de atribuir o seu valor.
Na nossa classe recém criada não precisamos abrir a tag da propriedade, pois avisamos o compilador que nossa propriedade padrão é o prompt, logo, qualquer valor atribuído diretamente a tag do componente base será direcionado a propriedade padrão.
Não posso deixar de comentar que a metadata DefaultProperty adicionada na classe NewDropDownList sobrescreveu a DefaultProperty dataProvider que ele herda da classe SkinnableDataContainer, logo muito cuidado na hora de utilizar essa metadata em componentes extendidos!
O livro “Dominando Orientação a objetos” está quase pronto. Estamos na fase de diagramação e revisão do texto. Muito em breve entraremos na pré venda.
Para matar a curiosidade geral da nação
, seguem algumas informações sobre o livro.
?
?
?
No capítulo 2, iremos com o uso da linguagem PHP explicar os principais conceitos da programação OO, conceitos estes que estão presentes em todas as linguagens que permitem a implementação de objetos.
No capítulo 3, ainda usando o PHP, iremos abordar um exemplo prático do uso da OO para facilitar o desenvolvimento de páginas HTML. Este exemplo visa reforçar os conceitos aprendidos e, o mais importante, visa mostrar que o uso do OO pode ser benéfico para o seu dia a dia.
No capítulo 4, iremos abordar o Java e exibir as suas principais características. O Java, por ser uma linguagem 100% OO, apresenta todas as funcionalidades que o OO possui, como classes abstratas, interfaces, sobrecarga de métodos, entre outros. Veremos apenas algumas teorias, que serão melhor explicadas no decorrer da obra.
No capítulo 5 apresentamos o C#, linguagem pertencente ao framework .Net da Microsoft, que é semelhante ao Java. Com esta linguagem, abordamos um exemplo para criação de SQLs para o acesso ao banco de dados.
No capítulo 6 apresentamos o Action Script, juntamente com o framework Flex, para aprendermos exclusivamente sobre Interfaces, algo tão falado e mal entendido pelos programadores. Você irá aprender a otimizar o seu código com o uso correto das interfaces.
O capítulo 7 volta a usar a linguagem PHP para introduzir o conceito de padrões de projeto. Usar somente OO não garante que o sistema está livre de problemas, é preciso combinar o conhecimento OO com os padrões (patterns) para que possamos criar sistemas com mais dinamiso e, principalmente, manuteníveis. Com o PHP iremos aprender o primeiro padrão, chamado “Factory”.
No capítulo 8 continuamos a estudar os padrões de projeto, usando agora o ActionScript e o Flex para ilustrar o padrão Observer, que apesar se ser pouco conhecido, é um ótimo aliado no desenvolvimento OO.
No capítulo 9 iremos aprender o padrão Singleton, muito usado em diversos frameworks. Inicialmente apresentamos o conceito e exibimos um exemplo em ActionScript para manipulação de janelas, além de um exemplo em PHP para leitura/escrita de um arquivo de log.
No capítulo 10 iremos, com PHP, criar um pequeno framework que envolve os conceitos de MVC e de injeção de dependência, além de usar outros padrões como o Singleton e o Factory.
No capítulo 11 criamos três exemplos que exibem inicialmente uma solução rápida para o problema proposto, mas ruim para a manutenção do código. Depois exibimos como usar a OO para melhorar cada um dos exemplos, utilizando inclusive padrões de projeto.
?
Gostaria de agradecer a todos os leitores que me escreveram sugerindo temas para o livro. Conforme combinado, as pessoas a seguir ganharão 20% de desconto na compra do livro
?
Você poderá comprar o livro no site www.danielschmitz.com.br, que é a nossa loja virtual. Ainda não está disponível para venda. Siga @Daniel_Schmitz para saber exatamente quando começará a pré venda
O livro “Dominando Orientação a objetos” está quase pronto. Estamos na fase de diagramação e revisão do texto. Muito em breve entraremos na pré venda.
Para matar a curiosidade geral da nação
, seguem algumas informações sobre o livro.
?
?
?
No capítulo 2, iremos com o uso da linguagem PHP explicar os principais conceitos da programação OO, conceitos estes que estão presentes em todas as linguagens que permitem a implementação de objetos.
No capítulo 3, ainda usando o PHP, iremos abordar um exemplo prático do uso da OO para facilitar o desenvolvimento de páginas HTML. Este exemplo visa reforçar os conceitos aprendidos e, o mais importante, visa mostrar que o uso do OO pode ser benéfico para o seu dia a dia.
No capítulo 4, iremos abordar o Java e exibir as suas principais características. O Java, por ser uma linguagem 100% OO, apresenta todas as funcionalidades que o OO possui, como classes abstratas, interfaces, sobrecarga de métodos, entre outros. Veremos apenas algumas teorias, que serão melhor explicadas no decorrer da obra.
No capítulo 5 apresentamos o C#, linguagem pertencente ao framework .Net da Microsoft, que é semelhante ao Java. Com esta linguagem, abordamos um exemplo para criação de SQLs para o acesso ao banco de dados.
No capítulo 6 apresentamos o Action Script, juntamente com o framework Flex, para aprendermos exclusivamente sobre Interfaces, algo tão falado e mal entendido pelos programadores. Você irá aprender a otimizar o seu código com o uso correto das interfaces.
O capítulo 7 volta a usar a linguagem PHP para introduzir o conceito de padrões de projeto. Usar somente OO não garante que o sistema está livre de problemas, é preciso combinar o conhecimento OO com os padrões (patterns) para que possamos criar sistemas com mais dinamiso e, principalmente, manuteníveis. Com o PHP iremos aprender o primeiro padrão, chamado “Factory”.
No capítulo 8 continuamos a estudar os padrões de projeto, usando agora o ActionScript e o Flex para ilustrar o padrão Observer, que apesar se ser pouco conhecido, é um ótimo aliado no desenvolvimento OO.
No capítulo 9 iremos aprender o padrão Singleton, muito usado em diversos frameworks. Inicialmente apresentamos o conceito e exibimos um exemplo em ActionScript para manipulação de janelas, além de um exemplo em PHP para leitura/escrita de um arquivo de log.
No capítulo 10 iremos, com PHP, criar um pequeno framework que envolve os conceitos de MVC e de injeção de dependência, além de usar outros padrões como o Singleton e o Factory.
No capítulo 11 criamos três exemplos que exibem inicialmente uma solução rápida para o problema proposto, mas ruim para a manutenção do código. Depois exibimos como usar a OO para melhorar cada um dos exemplos, utilizando inclusive padrões de projeto.
?
Gostaria de agradecer a todos os leitores que me escreveram sugerindo temas para o livro. Conforme combinado, as pessoas a seguir ganharão 20% de desconto na compra do livro
?
Você poderá comprar o livro no site www.danielschmitz.com.br, que é a nossa loja virtual. Ainda não está disponível para venda. Siga @Daniel_Schmitz para saber exatamente quando começará a pré venda