Introdução a Canvas (HTML5)

Depois de muito tempo longe de javascript, eu voltei a estudar-lo, tudo por conta da do tão temido html5. Comecei a fazer experimentos com ajuda de meu colega Leo(@leonardomarciel) com canvas. Comecei no basicão algo inicialmente trabalhoso e acabei descobrindo um framework bastante legal depois de algumas pesquisas.

Canvas é um elemento html que permite desenhar gráficos bitmap através da linguagem javascript, canvas faz parte das novas especificações do HTML (HTML5) mais informações aqui :

http://www.whatwg.org/specs/web-apps/current-work/

O melhores browser do mercado Firefox, Chome, Safari dão suporte a canvas.
O pior browser do mercado Internet Explorer NÃO dá suporte, ou seja se está usando ie não verá nada de canvas.

Para utilizar o elemento canvas fazemos da seguinte forma :

<canvas id="meucavas" width="50" height="50"></canvas>

Onde passamos o id do canvas para futuramente fazer referencia e as propriedades largura e altura, se as propriedades não forem definidas elas assumem os valores 300 de largura por 150 de altura. Também podemos definir a largura e altura por CSS mas ela corre o risco de distorcer a imagem.

Como a tag canvas é uma novidade do HTML ela não tem suporte nos browser mais antigos como o firefox 1.0 e internet explorer. Para fazer o tratamento nesse caso incluimos dentro da tag canvas o nosso conteúdo alternativo. No momento que o browser não der suporte ele irá ignorar a tag e ler o conteúdo seguinte.

<canvas id="meucanvas">
Se o browser não tiver suporte irá exibir esse texto.
</canvas>

Esse texto dentro da tag vai aparecer se o browser não der suporte, dentro da tag também podemos colocar imagens como conteúdo alternativo ou até um elemento .

Até agora só falei do elemento canvas não fiz nenhuma edição em nossa tag, mas agora vamos começar a editar nosso canvas, o elemento tem dois tipos de renderização 2D e 3D, ou como é chamado contexto de renderização. Nesse tutorial vamos trabalhar com o 2D.

Para acessar o contexto de renderização utilizamos o método getContext(), e passamos como parâmetro o tipo do contexto “2d” ou “3d”. O uso desse método é feito da seguinte forma:

function init(){
	//acessando nosso elemento canvas
	var canvas = document.getElementById("meucanvas");
	//definindo o contexto
	var ctx = canvas.getContext("2d");		
}

Para fazer um tratamento caso o browser não tenha suporte a canvas fazemos da seguinte forma:

function init(){
	var canvas = document.getElementById("meucanvas");
	if(canvas.getContext){
		var ctx = canvas.getContext('2d');	
	}else{
		window.alert("desculpe seu browser não tem suporte a canvas, por favor instale um navegador descente.");
	}
}

Agora que temos o todo o tratamento para o canvas vamos criar um forma primitiva. Anteriormente só tinha exibido trechos do meu código HTML, dessa vez vou mostrar como o todo o esquema ficaria.

<html>
	<head>
	<script type="application/javascript">
 
		function init(){
		//acessando nosso elemento pelo id
		var canvas = document.getElementById("meucanvas");
		// utilizando uma condicional caso o browser não 
		//tenha suporte
		if(canvas.getContext){
			var ctx = canvas.getContext("2d");
			// definindo o preenchimento
			// passamos como paramentro as cores rgb
			ctx.fillStyle = "rgb(0,200,0)";
			//desenhando um quadrado
			//definimos os valores (x, y, largura, altura)
			ctx.fillRect(40,40, 80 , 80 );
 
		}else{
			window.alert("desculpe seu browser não tem suporte a canvas, por favor instale um navegador descente.");
		}
		}
	</script>
	</head>
	<body onload="init()">
	<canvas id="meucanvas" width="200" height="200"> </canvas>
	</body>
</html>

Na linha que passo o preenchimento “fillStyle” posso passar outro parâmetro “rgba(200,0,0,0.5)” onde eu passo as três cores dos padrão rgb e opacidade do elemento(alpha). Nesse tutorial vamos parando por aqui, próximos posts vou falar mais sobre o assunto.

Publicado em Desenvolvimento Web, Tutoriais | Deixar um comentário

Vaga desenvolvedor mobile

A Mobmidia está contratando desenvolvedores para mobile.
Preferencialmente alguém que já tenha experiência com desenvolvimento para iPhone ou Android.

Quem tiver interesse, me manda um email contando sua experiência na área e com seu currículo.

vitor.maciel@mobmidia.com

Mais informações sobre a empresa:

http://www.mobmidia.com

Publicado em Vagas | Com a tag , , , | Deixar um comentário

A Playlore Gameworks procura um programador

para trabalhar com desenvolvimento de jogos.

Requisitos:
- C / C++
- OpenGL
- DirectX
- Visual Studio
- Gostar de jogos

Diferenciais:
- Torque 3D
- Unity
- Unreal
- Conhecimento em inglês

Quem se interessar, mandar currículo para: joao.pascoal@playlore.com

Publicado em Vagas | Com a tag , , | Deixar um comentário

Vaga de estágio – Design Gráfico

Mobmidia está com uma vaga de estágio (4h) de Design Gráfico/Arte.

Quem tiver interesse ou alguma indicação para fazer, me mandem um email para:
vitor.maciel@mobmidia.com

Para conhecer mais sobre a empresa:

http://www.mobmidia.com

Publicado em Vagas | Com a tag , , | Deixar um comentário

Vaga para Webdesigner no Jc Online – Recife

Perfil do Webdesigner:
Experiência em HTML, CSS e Padrõs Web
Experiência em Photoshop / Corel / Flash / Dreamweaver / Fireworks
Desejável que tenha formação profissional em Webdesigner
Perfil do Emprego:
Carga horária: 44 horas semanais
Contrato carteira assinada (+ benefícios)

Os Interessados devem enviar o currículo e portfólio para os seguintes e-mails: smorais@jc.com.br e acfranca@jc.com.br.

Publicado em Vagas | Com a tag , , | Deixar um comentário

Evento Change TextField – Como contar o número de caracteres

A Classe TextField tem 4 eventos: change, link, scroll e input. Nesse tutorial vou trabalhar com o evento “change” para fazer um pequeno contador de caracteres. O evento change como o nome sugere é chamado quando o inputText é alterado. Então vamos começar o tutorial:

package
{
	//importando as classes necessárias
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.text.TextField;
	import flash.text.TextFieldType;
 
	/**
	 * ...
	 * @author Fellyph Cintra
	 */
	public class ContaTexto extends MovieClip
	{
		//
		public var campoInput	:TextField;
		public var campoConta	:TextField;
		public var titulo		:TextField;
 
		public var contador		:Number = 0;
		public var maximo		:Number = 140;
 
		public function ContaTexto()
		{
			// instanciando os campos
			campoConta 	= new TextField();
			campoInput 	= new TextField();
			titulo 		= new TextField();
 
			//definindo nosso campo input
			campoInput.type = TextFieldType.INPUT;
 
			//definindo a quantidade maxima de caracteres que é 140
			campoInput.maxChars = maximo;
 
			//adicionando os campos ao palco
			addChild(campoInput);
			addChild(campoConta);
			addChild(titulo);
 
			titulo.text = "digite seu texto";
			titulo.x = 50
			titulo.y = 30
 
			//definindo algumas caracteristicas do textIpunt
			campoInput.width		= 200;
			campoInput.height 		= 80;
			campoInput.border		= true;
 
			// definir como multline
			campoInput.multiline	= true;
 
			// definir a quebra de linha quando chegar no final
			campoInput.wordWrap		= true;
			campoInput.x 			= 50;
			campoInput.y 			= 50;
 
			campoConta.width 		= 50;
			campoConta.height 		= 20;
			campoConta.border		= true;
			campoConta.y 			= 135;
			campoConta.x 			= 200;
 
			campoConta.text 		= "140";
 
			//adicionando o evento change ao campo de texto
			//notem que change não um TextEvent e sim um Event
			campoInput.addEventListener(Event.CHANGE, onChange);
		}
 
		private function onChange(e:Event):void
		{
			// subitraindo o numero maximo pela quantidade de caracteres
			campoConta.text = maximo - campoInput.text.length  + "";
		}
 
	}
 
}

O código já está comentado para facilitar o entendimento, mas o princípio básico é:

  • Definir a quantidade máxima de caracteres
  • Adicionar o evento de listener
  • E fazer o tratamento na função que o listener chama

o resultado vai ser o seguinte:

(Either JavaScript is not active or you are using an old version of Adobe Flash Player. Please install the newest Flash Player.)

Publicado em Flash, Tutoriais | Com a tag , , , | Deixar um comentário

Clássicos dos clientes

A um tempo tinha visto esse vídeo bastante engraçado brincando com alguns clichês de clientes, com certeza você já passou por isso ou vai passar.

Publicado em Geral | Com a tag , , | Deixar um comentário

Resumo Interact – parte 2

Continuando meu resumo selecionei alguns palestras para comentar. A segunda palestra que vou comentar foi a palestra de Horácio Soares(@horaciosoares) falou sobre acessibilidade, frisou que as dificuldades não são só para deficientes, usuários normais também sofrem com sites mau elaborados falou sobre o projeto Aria e HTML 5:

http://www.w3.org/WAI/PF/aria/

ARIA é a sigla de Accessible Rich Internet Applications, é o desenvolvimento de aplicações ricas e acessíveis, vale a pena dar uma olhada no link acima.

Depois foi a vez de Gustavo Fortes é Sócio-Diretor de Criação da Espalhe, responsável pela campanha Vasco minha pele. Falou sobre marketing de guerrilha e mídia socializada. Falou como a “mídia do povo” é superior a mídia burguesa, como simples pessoas superam ações milionárias de grandes agências. Falou sobre os novos formatos de mídias, antes para se fazer uma campanha concentrava a força em um meio, por exemplo, TV e  hoje podemos fazer uma divulgação em teia diversificar os meios e as quantidades de fontes desse meio, esse formato de divulgação é chamado de teia. O slide do Gustavo podemos ver no link abaixo:

http://www.slideshare.net/marketingdeguerrilha/espalhe-no-interact-2010

Outra palestra que chamou bastante atenção Roberto Cassano falando sobre gambiarra como do processo criativo, falou como a gambiarra ajuda na produção de um conteúdo criativo com uma produção flexível. Mas claro a gambiarra do bem, tudo com uma boa administração.

O evento terminou com o Pablo Ibarrolaza um hermano com muita competência no que faz, trabalha com e-commerce. Foi um evento maravilhoso um parabéns pra organização ótimos palestrantes de alto nível. A cidade não precisa falar nada , Rio de Janeiro é uma cidade linda pena que estava chovendo no dia.

Publicado em Eventos | Com a tag , , | Deixar um comentário

Vaga desenvolvedor flash – sp

Agência de internet contrata DESENVOLVEDOR FLASH / CSS para integrar o time de desenvolvedores web da Hyperativa, utilizando as mais recentes tecnologias e padrões de desenvolvimento.

O profissional terá como principais atribuições:
• Ter facilidade em identificar e solucionar problemas.
• Lidar com projetos críticos de diversos clientes distintos.
• Desenvolver e aplicar metodologias e padrões.

Requisitos:

Conhecimentos avançados em:
- Flash Actionscript 3(Flex, FDT)
- HTML(Tableless)
- CSS
- Javascript(jQuery)

Local de Trabalho: Av.Brigadeiro Faria Lima
Carga Horária de 2° a 5°feira das 9h às 19h/ 6°feira das 9h às 18h

Disponibilidade para início imediato!

Contratação CLT, com pacote de benefícios (vale alimentação, refeição, plano de saúde Amil e vale-transporte)

Se você preenche os requisitos desejados e se interessa pela vaga, mande um email para vagas@hyperativa.com.br. Serão aplicados testes de conhecimento na entrevista.

Publicado em Vagas | Com a tag , , | Deixar um comentário

Resumo Interact 2010 (#interact) – Parte 1

Vou falar um pouco sobre o #interact e vou dividir esse post em duas partes aqui vai a primeira. Esse ano graças ao apoio da Cherryplus tive a oportunidade de ir para o evento Interact 2010 no Rio de Janeiro um evento que valeu muito a pena. As palestras com ótimo nível, o evento ocorreu no dia 17 de julho. Infelizmente eu não tinha levado minha câmera nem tirei foto nem gravei nada. Mas o pessoal da organização gerou três vídeos sobre o evento, para quem perdeu o evento vale a pena dar uma olhada.

Da chuva cheguei um pouco atrasado no evento só perdi a palestra do grande Ricardo Piologo e peguei a palestra de Tiago Luz pela metade.

Das Palestras que me chamaram a atenção foi a de Alexandre Bessa especialista de redes sociais, falou sobre os tipos de usuários (os que geram conteúdo, os que espalham e os que consomem o conteúdo), comportamentos de usuários nas rede sociais, mostrou exemplos que o ambiente influência diretamente no perfil do usuário.
O que motiva um usuário nas redes sociais? Para quem ele gera conteúdo ? Qual a verdadeira moeda que as pessoas buscam nesse ambiente? essa foram as grandes perguntas que foram os pilares de sua palestra. Fez uma análise do Orkut, Twitter e Facebook. Mostrou alguns vídeos interessantes ilustrando o comportamento das pessoas perante a tecnologia.

continua no próximo post…

Publicado em Eventos | Com a tag , , , , | Deixar um comentário
Get Adobe Flash playerPlugin by wpburn.com wordpress themes