segunda-feira, 25 de janeiro de 2010

Leitor de RSS para ASP

Confere ai a página de leitura de RSS em asp


Muito Bom para linkar seu site ao Twitter ou até para criar sua propria ferramenta e ganhar dinheiro na WEB

<%
Dim objLeitorRSS
Dim Mensagem
Dim Cont
Dim objRSSChannel
Set objLeitorRSS    = New LeitorRSS
Mensagem            = ""
If Not objLeitorRSS.ReadURL("http://rss.terra.com.br/0,,EI4795,00.xml") Then
    Mensagem = objLeitorRSS.MensagemErro
Else
    Set objRSSChannel = New Channel
    Set objRSSChannel = objLeitorRSS.RSSChannel
End If
%>



Leitor RSS 2.0


<%If Not Mensagem = "" Then%> <%Else%> <% For Cont = 1 To objRSSChannel.Item.Count%> <%Next%> <% Set objRSSChannel = Nothing End If %>
<%=Mensagem%>
<%=objRSSChannel.Title%> <%=objRSSChannel.PubDate%>
<%=objRSSChannel.Image.Title%>
<%=objRSSChannel.Description%>
<%=objRSSChannel.Item.Item(Cont).Title%> <%=objRSSChannel.Item.Item(Cont).PubDate%> <%=objRSSChannel.Item.Item(Cont).Description%> Source: <%=objRSSChannel.Item.Item(Cont).Source.Url%>
<% Set objLeitorRSS = Nothing %>

Incorporar Twitter e FLASH

Esse post foi criado para quem já tentou incorporar o RSS do twitter no seu Flash.


O Maior problema é que o Flash bloqueia o compartilhamento de informação com um servidor externo, e por isso não exibe os posts diretamente do RSS do Twitter então temos que gera-lo dentro do mesmo servidor.


Vejam como


Criem um arquivo .php chamado twitter.php dentro das tags php



/*
* Esse código foi criado por Adriano Moura
* Sem fins lucrativos apenas para aprendizagem!
* Não pode ser vendido, nem com nenhum fim lucrativo
*/
#Essa função aqui precisa do curl ativado em seu sistema de PHP
#caso não tenha entre no php.ini de seu servidor... ou localhost e descomente o curl.dll
#para saber o que curl faz acesse http://www.php.net/curl
function get_content($url)
{
$ch = curl_init();

curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_HEADER, 0);

ob_start();

curl_exec ($ch);
curl_close ($ch);
$string = ob_get_contents();

ob_end_clean();

return $string;
}

#Aqui eu coloco meu arquivo XML que vai ser puxado do twitter... então coloquei um legal aqui como o da CocaCola de Exemplo
$content = get_content ("http://twitter.com/statuses/user_timeline/94402657.rss");
header("Content-type:text/xml");

echo $content



FLASH

No flash incorpore utilizando o xml normalmente da seguinte forma

System.useCodepage = true;
var arquivo:XML = new XML();
arquivo.load("twitter.php");
arquivo.ignoreWhite = true;
arquivo.onLoad = function(ok) {
    if (ok) {
        for(i=0;i<5;i++) {
        texto += this.childNodes[0].childNodes[0].childNodes[i].childNodes[0].childNodes[0]
       }
       trace(texto)
        }else{
        texto = "erro"
    }
}


OK

Valeu galera e comentem

Mágica com Realidade Aumentada

Esse post do site iMaster já e meio antigo mas ainda sim o mais completo que já vi
Realidade Aumentada e Interação estão na pauta do InterCon 2009. No Ambiente Criação e Inovação, representantes do laboratorio.us farão uma demonstração de computação pervasiva. Além disso, acontecerão discussões sobre games, produção interativa, propagandas trasmídia e interativa. Já na área de Mobilidade, dentro do Ambiente Tecnolgoia, Fabiano Coura, diretor de planejamento da Neogama/BBH vai falar sobre a presença mobile do Bradesco com a Realidade Aumentada (veja aqui o vídeo de um app para iPhone usando RA). Esses são apenas alguns temas que o InterCon 2009 vai trazer para você. Não perca.



Você já deve ter ouvido falar em Realidade Aumentada, uma tecnologia que está virando moda em uma velocidade assustadora. Que tal começarmos a "brincar" de Realidade Aumentada? Acreditem, é mais simples do que possa parecer.

O que é Realidade Aumentada?

Basicamente, Realidade Aumentada, ou simplesmente "RA", é a sobreposição de objetos virtuais tridimensionais gerados por computador, com objetos reais, misturando o real e o virtual, abrindo um leque de infinitas possibilidades em diversas áreas, principalmente na web e na publicidade.

Com a RA, é possível trazer ou transformar objetos reais em virtuais, interagindo e acrescentando, possibilitando jogos mais interativos, publicidade, navegação, entre muitas outras utilidades, incluindo a medicina. Seu potencial é assustador.
Fazendo uma busca rápida no Google por Realidade Aumentada ou "Augmented Reality", você encontrará exemplos fantásticos do uso da tecnologia. Um ótimo exemplo é o http://www.livingsasquatch.com, onde o pé grande virtual se materializa e você pode interagir com sua personalidade.

Com o princípio da tecnologia, é possível desenvolver a RA em praticamente qualquer linguagem de programação. O principal kit de desenvolvimento é conhecido como ARToolKit, desenvolvido em C. Disponível gratuitamente no site do laboratório HITL da Universidade de Washington (http://www.hitl.washington.edu/artoolkit/download/), o ARToolKit emprega métodos de visão computacional para detectar marcadores na imagem capturada por uma câmera. O rastreamento ótico do marcador permite o ajuste de posição e orientação para realizar a renderização do objeto virtual, de modo que esse objeto pareça estar "atrelado" ao marcador. Há também uma versão para Java e uma adaptação para o Flash, em ActionScript 3, e é com este último que desenvolveremos a RA para a web.

Requisitos

Para a mágica da RA precisamos de 3 elementos básicos:
  • Um objeto real com um código impresso ou formato específico.
  • Uma câmera que realize uma leitura desse objeto.
  • Um software que interprete a leitura da câmera e crie o mundo tridimensional de interação.
Na web, podemos resumir esses três elementos em:
  • Um papel com um código impresso em alto contraste.
  • Uma webcam.
  • Um filme Flash na página com um framework 3D + um framework de leitura da webcam.

Começando a mágica

Aqui faremos a nossa própria realidade aumentada que consistirá basicamente em:
  • Criar nossa própria marcação (marker) que é o desenho que será lido pela webcam, no qual o objeto virtual ficará "acoplado".
  • Criar um SWF utilizando 2 frameworks: o FLARToolKit, que é uma adaptação em AS3 do original ARToolKit, e o Papervision 3D para criar o ambiente de interação tridimensional.
Usaremos um modelo 3D de um patinho de borracha, importado de um arquivo .dae em formato Collada. Esse formato pode ser exportado de um software 3D como o 3D Studio, ou Cinema 4D do modelo 3D de sua preferência.
Para facilitar, disponibilizarei o source já com o Papervision 3D 2 e o FLARToolKit prontos para exportar o SWF, assim como o arquivo .dae do patinho já pronto também. O importante é que consigamos fazer a base da tecnologia. A partir dela você será capaz de ajustar da forma como quiser e até mudar o objeto virtual 3D no Flash.

Criando sua marca

O primeiro passo é gerar sua marca, seu código RA que será lido pela webcam. Você pode criar on-line, no site: http://flash.tarotaro.org/ar/MarkerGeneratorOnline.html. O aplicativo permite que você coloque um desenho em frente à webcam para gerar a partir dele, ou enviar uma imagem. Sua marca deve ser um desenho simples, preto e branco, com alto contraste e de preferência envolto por um quadrado bem delimitado.
Com sua marca pronta, clique em Save. O aplicativo irá gerar um arquivo .pat, que passará as coordenadas de sua marca para o FLARToolKit. No nosso exemplo, você deverá salvar este arquivo na pasta Data, com o nome marker.pat. Caso deseje alterar, será necessário alterar também o caminho no AS principal.
O exemplo do artigo contém um PDF (marker.pdf) com a marca que já está sendo usada no exemplo para impressão e testes.

Juntando tudo

Agora é a vez de o SWF juntar os 2 frameworks, carregar o arquivo gerado de sua marca, e o modelo 3D. Vamos ao código.
Arquivo ExemploAR.as:

package {
import flash.events.Event;
import flash.events.MouseEvent;
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.objects.parsers.DAE;
[SWF(width=640, height=480, frameRate=30, backgroundColor=0x0)]
public class ExemploAR extends PV3DARApp {
private var universe:DisplayObject3D;
private var daeFile:DAE;
public function ExemploAR() {
this.init('Data/camera_para.dat', 'Data/marker.pat');
}
protected override function onInit():void {
super.onInit();
daeFile = new DAE();
daeFile.load("duck.dae");
daeFile.z = 20;
daeFile.scaleY = 0.4;
daeFile.scaleZ = 0.4;
daeFile.rotationX = 90;
this.universe = new DisplayObject3D();
this.universe.addChild(daeFile);
this.universe.z = -20;
this._baseNode.addChild(this.universe);
}
}
}
Agora é só criar um .FLA que chame esse arquivo ExemploAR.as como classe principal. Imprima sua marca e execute o SWF... Voilá! Se tudo der certo, seu SWF pedirá permissão para ativar a webcam e o patinho seguirá sua marca onde você mexer em frente à webcam.
É importante que a luz do ambiente esteja boa e permita um bom contraste na sua marca. Quanto mais fosca a impressão, melhor. Tintas mais brilhantes podem gerar reflexo e afetar a leitura da webcam.
Espero que tenham gostado! Fiquem à vontade para configurar o objeto 3D da forma que quiserem e até mudar o arquivo .dae. Você também pode baixar gratuitamente arquivos .dae para testes na internet, mas eu encorajo que você crie seu próprio em um software 3D.
Clique aqui e faça o download dos arquivos de exemplo.

sexta-feira, 22 de janeiro de 2010

Detecção de Movimento no FLASH

 No Blog do Erick Souza ele postou o seguinte tutorial de interação com Web Cam no FLASH.

Segundo ele é com base nesse código que ele faz uns modelos de detecção de movimento que também tem no site, muito bom. Confiram


//importando as classes que serão utilizadas
import flash.display.*;
import flash.geom.*;

//objeto Camera
var camera:Camera = Camera.get();
//anexar o objeto Camera ao objeto video que esta no movieClip mcCam
mcCam.webcam.attachVideo(camera);

//objeto BitmapData da imgem final
var imagem:BitmapData = new BitmapData(camera.width, camera.height, false, 0);
//objeto BitmapData que conterá a imagem modificada
var imagemContainer:BitmapData = new BitmapData(camera.width, camera.height, false, 0);

//objeto retangulo, define a área da imagem fonte no método threshold
var retangulo = new Rectangle(0, 0, camera.width, camera.height);
//objeto ponto, os pontos correspondem ao topo na esquerda da imagem fonte no método threshold
var ponto = new Point(0, 0);

//função que desenhará a nova imagem
function atualizarImagem():Void{
//desenha a imagem da webcam no objeto BitmapData
imagemContainer.draw(mcCam.webcam);
//através do método threshold é efetuada a troca de cores
imagem.threshold(imagemContainer, retangulo, ponto, "<", 8000000, 0x006600, 0xFF0000, false); imagem.threshold(imagemContainer, retangulo, ponto, ">", 8000000, 0xFF3333, 0xFF0000, false);
imagem.threshold(imagemContainer, retangulo, ponto, ">", 10000000, 0xFFFF66, 0xFF0000, false);
imagem.threshold(imagemContainer, retangulo, ponto, ">", 12000000, 0x99FF66, 0xFF0000, false);
imagem.threshold(imagemContainer, retangulo, ponto, ">", 15000000, 0xFFFFFF, 0xFF0000, false);
};

//movieClip para armazenar as imagens modificadas
this.createEmptyMovieClip('mcCamModificado', this.getNextHighestDepth());
mcCamModificado._x = 20;
mcCamModificado._y = mcCam._y + mcCam._height + 20;

//primeira imagem modificada
mcCamModificado.createEmptyMovieClip('cam1', mcCamModificado.getNextHighestDepth());
mcCamModificado.cam1.attachBitmap(imagem, mcCamModificado.getNextHighestDepth()); //anexa a imagem

//segunda imagem modificada
mcCamModificado.createEmptyMovieClip('cam2', mcCamModificado.getNextHighestDepth());
mcCamModificado.cam2.attachBitmap(imagem, mcCamModificado.getNextHighestDepth()); //anexa a imagem
mcCamModificado.cam2._xscale = -100; //inverte a imagem
mcCamModificado.cam2._x = mcCamModificado.cam1._x +mcCamModificado.cam1._width + mcCamModificado.cam1._width - 1;

//a função setInterval executa a atualização das imagens
setInterval(atualizarImagem, 50);

LINK PARA A POSTAGEM ORIGINAL

MODELOS



Fonte: http://blog.ericksouza.com/60/

sexta-feira, 8 de janeiro de 2010

Limpar Input Text ao clicar com o mouse

Hoje tinha que montar uma página de contato para um cliente, e coloquei na cabeça que queria que o Input Text apaga-se quando o usuário fosse digitar, com um pouco de busca consegui, confiram como

nome.onSetFocus = function() {
     if (nome.text  == "seu nome") {
     nome.text = "";
}
Explicando

nome - Instancia do input Text
seu nome - Descrição do campo. (deve estar escrito no campo anteriormente)

Valeu