Actionscript/ AS 3.0/ Dev. Software/ Flex 3/ Flex Componentes/ Google/ Labs/ Open-source

Criando um tradutor em Flex usando o Google

Essa também veio lá do meu blog em inglês. Como criar uma ferramenta de tradução em Flex usando os recursos on-line que o google tem?

Google está cada vez mais entrando na esfera do Flash player e outras plataformas deixando-as consumir seus serviços, prova disso foi os outros testes feitos anteriormente à isso.

Para usar o serviço de tradução do Google é bem simples, ele respondendo com formato de dados em JSON, REST, XML, TXT no Flex fica mais fácil.

Para encurtar muito nessa explicação aqui abaixo você tem o código fonte da aplicação. Lembrando que para executá-la. É necessário você baixar o código fonte dele, devido ter algumas dependências de classes.

Código fonte

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
< ?xml version="1.0" encoding="utf-8"?>
<mx :Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="626">
	</mx><mx :Script>
		< ![CDATA[
			import mx.collections.ArrayCollection;
			import mx.rpc.events.ResultEvent;
			import com.adobe.serialization.json.JSON;
			[Bindable]public var googleText:String = "http://ajax.googleapis.com/ajax/services/language/" ;
			[Bindable]public var tsrc:String ="translate?v=1.0&q=";
			[Bindable]public var lanpair:String = "&langpair=";
			[Bindable]public var pairCode:String = "%7C";
			private function onJSONLoad(event:ResultEvent):void
			{
				var rawData:String = String(event.result);
				if(JSON.decode(rawData).responseData.translatedText !=null){
				var decoded:String =JSON.decode(rawData).responseData.translatedText;
				}else {
					decoded = "None support";
				}
				txtdest.text = decoded;
			}
		]]>
	</mx>
	<mx :Array id="langFrom">
		<mx :Object  value="auto" label="Select Language"/>
		<mx :Object  value="ar" label="Arabic"/>
		<mx :Object  value="bg" label="Bulgarian"/>
		<mx :Object  value="zh-CN" label="Chinese"/>
		<mx :Object  value="hr" label="Croatian"/>
		<mx :Object  value="cs" label="Czech"/>
		<mx :Object  value="da" label="Danish"/>
		<mx :Object  value="nl" label="Dutch"/>
		<mx :Object  value="en" label="English"/>
		<mx :Object  value="fi" label="Finnish"/>
		<mx :Object  value="fr" label="French"/>
		<mx :Object  value="de" label="German"/>
		<mx :Object  value="el" label="Greek"/>
		<mx :Object  value="hi" label="Hindi"/>
		<mx :Object  value="it" label="Italian"/>
		<mx :Object  value="ja" label="Japanese"/>
		<mx :Object  value="ko" label="Korean"/>
		<mx :Object  value="no" label="Norwegian"/>
		<mx :Object  value="pl" label="Polish"/>
		<mx :Object  value="pt" label="Portuguese"/>
		<mx :Object  value="ru" label="Russian"/>
		<mx :Object  value="es" label="Spanish"/>
		<mx :Object  value="sv" label="Swedish"/>
	</mx>
	<mx :Array id="langTo">
		<mx :Object  value="ar" label="Arabic"/>
		<mx :Object  value="bg" label="Bulgarian"/>
		<mx :Object  value="zh-CN" label="Chinese (Simplified)"/>
		<mx :Object  value="zh-TW" label="Chinese (Traditional)"/>
		<mx :Object  value="hr" label="Croatian"/>
		<mx :Object  value="cs" label="Czech"/>
		<mx :Object  value="da" label="Danish"/>
		<mx :Object  value="nl" label="Dutch"/>
		<mx :Object  value="en" label="English"/>
		<mx :Object  value="fi" label="Finnish"/>
		<mx :Object  value="fr" label="French"/>
		<mx :Object  value="de" label="German"/>
		<mx :Object  value="el" label="Greek"/>
		<mx :Object  value="hi" label="Hindi"/>
		<mx :Object  value="it" label="Italian"/>
		<mx :Object  value="ja" label="Japanese"/>
		<mx :Object  value="ko" label="Korean"/>
		<mx :Object  value="no" label="Norwegian"/>
		<mx :Object  value="pl" label="Polish"/>
		<mx :Object  value="pt" label="Portuguese"/>
		<mx :Object  value="ru" label="Russian"/>
		<mx :Object  value="es" label="Spanish"/>
		<mx :Object  value="sv" label="Swedish"/>
	</mx>
	<mx :ComboBox id="langFromCbx" prompt="Select a language" x="28.5" y="64" dataProvider="{langFrom}"/>
	<mx :HTTPService id="googleTransService"
		 url="{googleText + tsrc+txtsource.text + lanpair + String(langFromCbx.selectedItem.value)+pairCode+String(langToCbx.selectedItem.value)}"
		 useProxy="false" showBusyCursor="true" result="onJSONLoad(event)"  resultFormat="text"/>
	<mx :TextArea id="txtsource" x="28.5" y="124" width="569" height="116"/>
	<mx :TextArea id="txtdest" x="28.5" y="274" width="569" height="248"/>
	<mx :Button x="473.5" y="61" label="Translate" click="googleTransService.send()" width="124" height="28"/>
	<mx :ComboBox id="langToCbx" x="222.5" y="64" prompt="Select a language" dataProvider="{langTo}"></mx>
	<mx :Label x="30.5" y="45" text="Translate from:"/>
	<mx :Label x="28.5" y="98" text="Text to Translate"/>
	<mx :Label x="28.5" y="248" text="Result Text translated"/>
	<mx :Label x="222.5" y="45" text="Translate To:"/>
[Update] Alguns códigos exibidos neste post podem não aparecer corretamente, devido a um problema antigo em um plug-in para exibir código fonte. Pedimos desculpas.

Actionscript Frameworks/ AS 3.0/ Flash/ Flash CS 3/ Flex/ Flex 3/ Flex 3 Open-Source/ Flex Componentes/ frameworks/ Labs

Componente Google Maps para Flex 3

Eu só tinha anunciado essa notícia no Blog em inglês. E cometi o erro de não publicar aqui também na versão Brasileira.

O Componente mapas do google para o Flex aka(GoogleFlexMaps). Eu até tinha publicado a tão recém e aguardada obra do Google para plataforma Flash Player, tornando assim usar seus serviços tão htmlzados.
Em fim, Vocês pode usar o componente que torna a sintaxe bem mais fácil, bem mais completa ao ponto de vista de desenvolvimento Flex.

1
2
3
4
5
6
7
8
< ?xml version="1.0" encoding="utf-8"?>
<mx :Application xmlns:google="com.igorcosta.*"  xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
 
    <google : GoogleFlexMap
      key="sua chave de desenvolvedor"
      width="100%" height="100%"/>
 
</mx>

E quanto aos desenvolvedores Flash? Eu também pensei neles e fiz uma alteração no componente .swc que pode aceitar dentro do Flash. Basta apenas usar uma instancia nova. Porém não garanto 100% perfeição em todos os recursos que o Google Maps funciona, para isso indico o SDK padrão do Flex.

Baixe aqui o .swc para seus projetos tanto em Flex quanto Flash.

Veja aqui a documentação do Componente* ( em ingles)

Caso você seja curioso ou quer o código fonte por simplesmente por gostar de fazer hacks,

Boa sorte em seus uso.

Flex/ Notícias

Preciso de indicação para o manifesto Flex Brasil

No dia 10 de abril eu postei a continuação do Manifesto Flex Brasil. Iniciado pelo pessoal da DClick e parado por mim.

Por que parado por mim? Não é que eu não queira, é que eu tou sem saber qual blog eu indico. Lembram que sempre colocava blogs aqui na lista “Novo Blog que fala de flex e tal…”. Parou de chegar os links. E os que eu já havia colocado a notícia boa parte deles estão mortos.

Por favor me ajudem indicando um blog para a corrente não quebrar e eu passar a bola.

[ATUALIZADO] Eu passo a bola para Márcio Rosa .

Dicas/ Flex

É feito com Flex ou Flash?

Semana passada eu recebi 1 e-mail de um leitor fazendo a pergunta que entitula esse post, e hoje recebi mais outro.

Realmente é dificil perceber se é feito com Flex ou com Flash quando se tem uma aplicação bem acabada e quando é totalmente customizado toda sua interface gráfica.

Na dúvida, fica aqui um link que até eu tenho, que é o do James Ward.

http://www.jamesward.org/is_it_flex/

Só basta colocar a URI do .swf e pronto, ele te dirá se é ou não feito com Flex.

Porém fica a dica, tem muita coisa que pessoas envolvem Flex e Flash juntos no geral eu aconselho olhar esse link e não considerar tudo só Flex.

Flex

Flex-Brasil agora tem bate-papo

Notícia fresquenha direto da lista. Mário Júnior anunciou o Bate-papo exclusivo da lista Flex-Brasil.

Como eu vejo isso?

Uma excelente oportunidade de conhecer dev2dev.
Conhecer potenciais clientes.
Saber as últimas oportunidades sobre trabalho.
Fazer networking é importantíssimo para uma carreira IT no Brasil, onde ter contatos vale mais que ter dinheiro.

Visite http://www.flexbrasil.org/batepapo

Oportunidades de emprego

Oportunidade de emprego para ColdFusion (2 vagas)

Essa oportunidade para trabalhar apenas em São Paulo, veja abaixo a descrição, se você está a procura de trabalhar como desenvolvedor ColdFusion, essa é a oportunidade de re-garimpar seus conhecimentos e alavancar sua carreira. Lembrando que em minha opinião vale a pena.

O grupo Meta, há 18 anos no mercado, com 5 empresas especializadas em TI (Meta Informática – Consultoria, Outsourcing e Serviços / Worbi – internet Corporativa / Addvisor – SAP / Síncrono – governança de TI / Audicom – Solução Fiscal), com atuação em nacional e internacional, com 800 profissionais e 150 clientes ativos.

Estamos com 02 oportunidades para atuar em empresa de Telecom na cidade de São Paulo, como analista programador ColdFusion, projeto por tempo indeterminado.
Descrição das Atividades:
Suas atividades consintem em ralizar o suporte de 2º nível seguindo os níveis de serviços acordados. Realizar follow-up com os fornecedores no intuito de atender as demandas de suporte nos mesmos prazos acordados. Realizar follow-up destes incidentes com a área cliente. Gerenciar estes chamados (incidentes) Apoiar a equepe de TI em algumas tarefas administrativas e acompanhar eventuais implantações dos produtos.

Conhecimentos Técnicos:
Conhecimento em alguma ferramenta de desenvolvimento WEB (ASP, .NET,
ColdFusion)
Conhecimentos em banco de Dados Oracle
Boa noção de Gestão de Clientes / Fornecedores
Noções dos Processos de Recursos Humanos
Bom relacionamento Interpessoal
Caso haja interesse, encaminhar currículo para ariana.viana@metainf.com.

Obrigada!

Dicas

Melhore como desenvolvedor é sua obrigação

Ao longo de tempo eu aprendi que nada é bom, mesmo tendo se esforçado ou contribuído com códigos eu nunca fico satisfeito com o resultado final, acabando até as vezes desobedecendo boas práticas.
Já fui criticado por isso e com os meus erros aprendi a melhorar, acho que é uma obrigação de quem está neste meio de desenvolvimento.

Peguei essas críticas e aproveitei para melhorar, o meu primeiro passo foi comprar este livro “Beautiful code“, o livro sem dúvidas conseguiu fazer eu enxergar coisas que mesmo na experiência do dia-a-dia não conseguia.
Independente de qual linguagem de programação o livro fale, ele te dá certo tipos de informações que você por sua vez possa achar lindo a maneira como os autores descrevem o problema e trazem a solução.

Sem falar na equepe de autores, antes do livro eu não conhecia nenhum deles, porém o titulo que me chamou atenção, é um seleto grupo de gênios propriamente dito que te ajudam a pensar melhor.

Se você tiver essa mentalidade de sempre mudar para melhor, aconselho comprar esse livro e aprender com ele. Valeu cada dólar gasto.

Flex-Brasil Pergunta

[Flex-Brasil]Loop através de itens do Form para limpar, validar,salvar

Essa é uma pergunta da comunidade Flex-Brasil:

Fagner M. Vila escreveu:
>
> digamos q possuo um formulário com uns 50 campos tipo InputText
> e tenho um botao Limpar ao final caso deseje limpar todos os campos
> como fazer isso sem ter que setar campo a campo como vazio?!
> existe uma forma mais simples?
>
> obrigado abraço.
>
>

Resposta:

1 código fala mais que mil palavras.

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
	<mx :Script>
		< ![CDATA[
			import mx.controls.TextInput;
 
				public function limparInputs():void{
			    var values : Object = new Object();
			    var itensdoForlumario:Array = FormularioBox.getChildren();
 
			    for (var i:int = 0; i < itensdoForlumario.length; i++)
			    {
			        var formItem:Array = itensdoForlumario[i].getChildren();
			      	if(formItem[0] is TextInput){
			      		 formItem[0].text = '';
			      		 formItem[0].htmlText ='';
			      	}
			    }
			}
		]]>
	</mx>
	<mx :Form defaultButton="{meuBtn}" x="55" y="34" id="FormularioBox">
		</mx><mx :FormItem label="Label">
			<mx :TextInput/>
		</mx>
		<mx :FormItem label="Label">
			<mx :TextInput/>
		</mx>
		<mx :FormItem label="Label">
			<mx :TextInput/>
		</mx>
		<mx :FormItem label="Label">
			<mx :TextInput/>
		</mx>
		<mx :FormItem label="Label">
			<mx :TextInput/>
		</mx>
		<mx :FormItem label="Label">
			<mx :TextInput/>
		</mx>
		<mx :FormItem label="Label">
			<mx :TextArea text="teste"/>
		</mx>
 
	<mx :Button id="meuBtn" x="231" y="286" label="Limpar" click="limparInputs()"/>
<!-- -->
[Update] Alguns códigos exibidos neste post podem não aparecer corretamente, devido a um problema antigo em um plug-in para exibir código fonte. Pedimos desculpas.