VistaFlow - Simulador do Windows Vista
sexta-feira, 30 de outubro de 2009
Postado por Luiz Henrique de Angeli às 02:00 0 comentários
Marcadores: Flex
Physics Form
quinta-feira, 29 de outubro de 2009
Um exemplo muito interessante de Formulario, clique no botão "Login" e veja o resultado.
Postado por Luiz Henrique de Angeli às 02:00 0 comentários
Marcadores: Flex
Sites com ferramentas interessantes para o programador e desenvolvedor Adobe Flex
quarta-feira, 28 de outubro de 2009
Navegando no Blog Fernando Hidemi Uchiyama encontrei alguns links interessantes para desenvolvimento FLEX.
Guia de Referência para Flex 2.0 - Documentação de todas as classes, métodos e propriedades do Actionscript 3. Este guia vai ser o seu amigo diário enquanto programando com Actionscript 3 e Flex.
Flex Componente Explorer - Amostra dos componentes disponíveis no Adobe Flex Builder, com source code disponível. Uma boa fonte de consulta para quem está construindo uma aplicação e tem dúvidas sobre qual componente usar.
Flex Style Explorer - Site da Adobe onde é possível testar folha de estilo (CSS) para os componentes disponíveis no Flex Builder. Outro amigo diário de todo desenvolvedor Flex.
Flex Primitive Explorer - Site em Flex onde é possível visualizar e testar as classes das formas primitivas Star, Burst, Polygon, Gear, Wedge e Arc. O melhor de tudo é que é possível copiar o código fonte dos exemplos para a sua aplicação Flex.
Flex Filter Explorer - Em vez de perder tempo testando os filtros, use este site para escolher o filtro e a configuração que mais lhe agradam. Depois é só copiar e colar o código fonte.
Flex Charting Explorer - Aplicativo que permite testar os gráficos do Flex. Últil para quem não quer perder tempo.
Flex Transitions and Effects Explorer - Permite testar transições e efeitos.
Flex Button Style Explorer - Site muito legal onde existe a possibilidade de estilizar o componente Button de uma forma bem atraente e copiar o código fonte.
Flex Transitional Flips Explorer - Site onde é possível testar transições de troca de janela. Bem interessante, pena que não mostra o código-fonte.
Postado por Luiz Henrique de Angeli às 02:00 0 comentários
Marcadores: Flex
Formatando uma Data
terça-feira, 27 de outubro de 2009
Abaixo um exemplo para formatar uma data de um DateChooser.
FormataData.mxml
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:DateChooser id="dtcPrincipal" x="20" y="10"/>
<mx:DateFormatter id="dtfFormata" formatString="DD/MM/YYYY"/>
<mx:Label x="20" y="198" text="Data Selecionada : {dtfFormata.format(dtcPrincipal.selectedDate)}" fontWeight="bold"/>
</mx:Application>
Postado por Luiz Henrique de Angeli às 02:00 0 comentários
Marcadores: Flex
Somando e Subtraindo Datas
segunda-feira, 26 de outubro de 2009
Um simples exemplos para somar e subtrair Datas.
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:TitleWindow x="64" y="10" width="450" layout="horizontal" title="Somando Datas">
<mx:DateField id="dtfData" formatString="DD/MM/YYYY"/>
<mx:Label text="+" fontWeight="bold" fontSize="12"/>
<mx:NumericStepper id="nmsDias"/>
<mx:Label text="=" fontWeight="bold" fontSize="12"/>
<mx:DateField formatString="DD/MM/YYYY" selectedDate="{somarData(dtfData.selectedDate,nmsDias.value)}"/>
</mx:TitleWindow>
<mx:TitleWindow x="64" y="118" width="450" layout="horizontal" title="Subtraindo Datas">
<mx:DateField id="dtfInicial" formatString="DD/MM/YYYY"/>
<mx:Label text="-" fontWeight="bold" fontSize="12"/>
<mx:DateField id="dtfFinal" formatString="DD/MM/YYYY"/>
<mx:Label text="{subtrairData(dtfInicial.selectedDate,dtfFinal.selectedDate)}"/>
</mx:TitleWindow>
<mx:DateFormatter id="dtfFormatada" formatString="DD/MM/YYYY"/>
<mx:Script>
<![CDATA[
private function somarData(data : Date, dias : int):Date
{
return new Date(data.getTime() + (dias * 1000 * 60 * 60 * 24));
}
private function subtrairData(dataInicial : Date, dataFinal : Date):int
{
return Math.abs((dataFinal.getTime() - dataInicial.getTime()) / (1000 * 60 * 24 * 60));
}
]]>
</mx:Script>
</mx:Application>
Postado por Luiz Henrique de Angeli às 02:00 0 comentários
Marcadores: Flex
Trabalhando com Data Inicial e Data Final
sexta-feira, 23 de outubro de 2009
Abaixo um exemplo de como bloquear o inicio ou fim de um DateField, utilizado principalmente em telas que tenha um campo com Data Inicial e Final.
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Form x="202" y="10" width="393" height="180" backgroundColor="#FFFFFF">
<mx:FormItem label="Data Inicial" direction="horizontal">
<mx:DateField dayNames="{dayNames}" monthNames="{monthNames}" formatString="{formatString}" id="dtfInicial" change="{bloqueiaDataFinal(DateField(event.target),dtfFinal)}"/>
<mx:FormItem label="Data Final">
<mx:DateField id="dtfFinal" dayNames="{dayNames}" monthNames="{monthNames}" formatString="{formatString}"/>
</mx:FormItem>
</mx:FormItem>
</mx:Form>
<mx:Script>
<![CDATA[
[Bindable] private var dayNames : Array = ["D","S","T","Q","Q","S","S"];
[Bindable] private var monthNames : Array = ["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"];
[Bindable] private var formatString : String = "DD/MM/YYYY";
private function bloqueiaDataFinal(dtfInicial : DateField, dtfFinal : DateField):void
{
dtfFinal.selectableRange=
{
rangeStart : new Date(dtfInicial.selectedDate.fullYear,dtfInicial.selectedDate.month,dtfInicial.selectedDate.date)
};
dtfFinal.text='';
}
]]>
</mx:Script>
</mx:Application>
Postado por Luiz Henrique de Angeli às 02:00 0 comentários
Marcadores: Flex
Alerta de Mensagem
quinta-feira, 22 de outubro de 2009
Publiquei a alguns dias um exemplo do Fabiel Prestes de Alerta de Mensagem similar ao MSN. Fiz um exemplo bem parecido com o exemplo mostrado.
JanelaMensagem.mxml
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
width="200"
height="150"
styleName="opaquePanel"
layout="vertical"
creationCompleteEffect="{EfeitoJanelaCima}"
removedEffect="{EfeitoJanelaBaixo}"
creationComplete="init()"
showCloseButton="true"
close="{fechaJanela()}"
verticalScrollPolicy="auto" horizontalScrollPolicy="off"
moveEffect="Move">
<mx:Move xTo="{Application.application.width - this.width}"
xFrom="{Application.application.width- this.width}"
yTo="{Application.application.height - (this.height*ordem)}"
yFrom="{Application.application.height}"
id="EfeitoJanelaCima"
duration="500"/>
<mx:Move xTo="{Application.application.width - this.width}"
xFrom="{Application.application.width- this.width}"
yTo="{Application.application.height}"
yFrom="{Application.application.height- (this.height*ordem)}"
id="EfeitoJanelaBaixo"
duration="500"/>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.events.CloseEvent;
import com.adobe.ac.mxeffects.Pop;
import mx.managers.PopUpManager;
import mx.controls.Alert;
import flash.utils.setTimeout;
import mx.core.Application;
[Bindable] public var ordem : int = 1;
[Bindable] public var tempo : int = 0;
[Bindable] private var idTimeOut : uint;
[Bindable] public var arrLista : ArrayCollection;
private function init():void
{
if(tempo > 0)
idTimeOut = setTimeout(fechaTempo,tempo*1000);
this.addEventListener(Event.CLOSE,function (e:Event):void
{
for(var i:int=arrLista.getItemIndex(e.currentTarget)+1; i< arrLista.length ; i++)
JanelaMensagem(arrLista.getItemAt(i)).moveBaixo();
arrLista.removeItemAt(arrLista.getItemIndex(e.currentTarget));
});
this.ordem = arrLista.length+1;
arrLista.addItem(this);
}
public function moveBaixo():void
{
this.move(this.x,(this.y+this.height));
ordem--;
}
private function fechaTempo():void
{
dispatchEvent(new Event(CloseEvent.CLOSE));
fechaJanela();
}
private function fechaJanela():void
{
PopUpManager.removePopUp(this);
clearTimeout(idTimeOut);
}
]]>
</mx:Script>
</mx:TitleWindow>
Usando.mxml
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*"
verticalScrollPolicy="off" horizontalScrollPolicy="off">
<mx:Button x="227" y="174" label="Abrir Janela" click="abrir()" height="100" width="226" fontSize="14"/>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Text;
import mx.controls.Label;
import mx.controls.Alert;
import mx.events.StateChangeEvent;
import mx.events.FlexEvent;
import mx.events.CloseEvent;
import mx.managers.PopUpManager;
[Bindable] private var arrListaJanela : ArrayCollection = new ArrayCollection();
public function abrir():void
{
var janela1 : JanelaMensagem = new JanelaMensagem();
var texto : Text = new Text();
janela1.title='luizdeangeli.blogspot.com'
janela1.tempo = 10;
janela1.arrLista = arrListaJanela;
texto.width=175;
texto.setStyle("color","red");
texto.text='Esta é uma mensagem do blog do Luiz. Esta é uma mensagem do blog do Luiz. Esta é uma mensagem do blog do Luiz.';
janela1.addChild(texto);
PopUpManager.addPopUp(janela1,this,false);
}
]]>
</mx:Script>
</mx:Application>
Postado por Luiz Henrique de Angeli às 02:00 0 comentários
Marcadores: Flex
Exemplo de Validação de Formulários
quarta-feira, 21 de outubro de 2009
Fiz um exemplo simples de validação de formulários, esta validação também pode ser utilizado com os validadores CNPJ, CPF, E PIS que coloquei a alguns dias no blog.
Exemplo.mxml
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:TitleWindow title="Exemplo de Validação de Campos" x="102" y="40" width="438" layout="absolute">
<mx:Form x="0" y="0" width="100%" height="100%">
<mx:FormItem label="Código" width="100%" required="true">
<mx:TextInput id="txiCodigo" width="50"/>
</mx:FormItem>
<mx:FormItem label="Nome" width="100%" required="true">
<mx:TextInput id="txiNome" width="296"/>
</mx:FormItem>
<mx:FormItem label="Sexo" width="100%" required="true">
<mx:ComboBox id="cbbSexo" prompt="Selecione o sexo">
<mx:dataProvider>
<mx:Array>
<mx:Object data='M' label='Masculino'/>
<mx:Object data='F' label='Feminino'/>
</mx:Array>
</mx:dataProvider>
</mx:ComboBox>
</mx:FormItem>
<mx:FormItem label="Data" width="100%" required="true">
<mx:DateField id="dtfData"/>
</mx:FormItem>
</mx:Form>
<mx:ControlBar horizontalAlign="right">
<mx:Button label="Salvar" click="salvar()"/>
</mx:ControlBar>
</mx:TitleWindow>
<mx:Array id="arrCampos">
<mx:StringValidator source="{txiCodigo}" property="text" required="true" requiredFieldError="Campo Obrigatório"/>
<mx:StringValidator source="{txiNome}" property="text" required="true" requiredFieldError="Campo Obrigatório"/>
<mx:StringValidator source="{dtfData}" property="text" required="true" requiredFieldError="Campo Obrigatório"/>
<mx:NumberValidator source="{cbbSexo}" property="selectedIndex" minValue="0" lowerThanMinError="Campo Obrigatório" requiredFieldError="Campo Obrigatório"/>
</mx:Array>
<mx:Script>
<![CDATA[
import mx.validators.Validator;
import mx.controls.Alert;
import mx.events.ValidationResultEvent;
public function salvar():void
{
if(!validaForm(arrCampos))
return
//CONTINUAR O PROCESSO DE GRAVAÇÃO
}
public function validaForm(ArrayCampos:Array):Boolean
{
var validatorErrorArray:Array = Validator.validateAll(ArrayCampos);;
var isValidForm:Boolean = validatorErrorArray.length == 0;
if (isValidForm) {
return true;
} else {
var err:ValidationResultEvent;
var errorMessageArray:Array = [];
for each (err in validatorErrorArray)
{
var errField:String = FormItem(err.currentTarget.source.parent).label
errorMessageArray.push(errField + ": " + err.message);
}
Alert.show(errorMessageArray.join("\n\n"), "ATENÇÃO: Dados Inválidos", Alert.OK);
}
return false;
}
]]>
</mx:Script>
</mx:Application>
Postado por Luiz Henrique de Angeli às 02:00 2 comentários
Marcadores: Flex
AutoComplete no Input
terça-feira, 20 de outubro de 2009
Postado por Luiz Henrique de Angeli às 02:00 0 comentários
Marcadores: Flex
WSMonitor e Actionscript 3 Garbage Collector: Monitorando a memória no Adobe Flex e Flash
segunda-feira, 19 de outubro de 2009
Postado por Luiz Henrique de Angeli às 05:03 0 comentários
Marcadores: Flex
Aplicação em Flex
quinta-feira, 15 de outubro de 2009
Postado por Luiz Henrique de Angeli às 06:05 0 comentários
Marcadores: Flex
Contrast-A
Postado por Luiz Henrique de Angeli às 02:00 0 comentários
Marcadores: Flex
Mindset Geometrics
quarta-feira, 14 de outubro de 2009
Postado por Luiz Henrique de Angeli às 02:00 0 comentários
Marcadores: Flex
Criando “Alerta de Mensagens” similar ao MSN
terça-feira, 13 de outubro de 2009
Postado por Luiz Henrique de Angeli às 02:00 0 comentários
Marcadores: Flex
EFFlex Explorer
sexta-feira, 9 de outubro de 2009
Postado por Luiz Henrique de Angeli às 02:00 0 comentários
Marcadores: Flex
Efeitos 3D - Cubo
quinta-feira, 8 de outubro de 2009
Postado por Luiz Henrique de Angeli às 08:00 0 comentários
Tour Flex em Tempo Real
quarta-feira, 7 de outubro de 2009
Postado por Luiz Henrique de Angeli às 08:00 0 comentários
Reflexão de Imagem
terça-feira, 6 de outubro de 2009
Abaixo um exemplo de Reflexão de Imagens no Flex
Veja funcionando : http://graphics-geek.blogspot.com/2009/03/video-moment-of-reflexion.html
Download do Source: http://graphicsgeek1.googlepages.com/ReflexionSrc.zip
Fonte : http://graphics-geek.blogspot.com/
Postado por Luiz Henrique de Angeli às 02:00 0 comentários
Marcadores: Flex
FLEX + WEB CAM + PHP
segunda-feira, 5 de outubro de 2009
Postado por Luiz Henrique de Angeli às 08:00 0 comentários
Componente para Download com Barra de Progresso
sexta-feira, 2 de outubro de 2009
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="400"
height="130"
title="Download"
showCloseButton="true"
close="PopUpManager.removePopUp(this)"
creationComplete="init()">
<mx:NumberFormatter id="numberFormatter" rounding="up"/>
<mx:ProgressBar id="pgbProgresso" mode="manual" labelPlacement="center" width="100%" height="100%"/>
<mx:ControlBar horizontalAlign="center">
<mx:Button label="Cancelar" click="{PopUpManager.removePopUp(this)}"/>
</mx:ControlBar>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.managers.PopUpManager;
import mx.rpc.events.ResultEvent;
[Bindable] private var downloadURL :URLRequest;
[Bindable] private var file :FileReference;
[Bindable] public var fileName :String;
[Bindable] public var fileUrl :String;
private function init():void {
file = new FileReference();
file.addEventListener(Event.CANCEL, cancelHandler);
file.addEventListener(Event.COMPLETE, completeHandler);
file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
file.addEventListener(Event.OPEN, openHandler);
file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
file.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
file.addEventListener(Event.SELECT, selectHandler);
pgbProgresso.label = "AGUARDANDO ARQUIVO";
pgbProgresso.setStyle("color",uint(0x999999));
downloadURL = new URLRequest();
downloadURL.url = fileUrl;
if(!fileName)
{
var arrayUrl : Array = fileUrl.split('/');
fileName = arrayUrl[arrayUrl.length-1];
}
file.download(downloadURL, fileName);
}
private function cancelHandler(event:Event):void {
PopUpManager.removePopUp(this)
}
private function completeHandler(event:Event):void {
pgbProgresso.setProgress(0,100);
pgbProgresso.label = "DOWNLOAD CONCLUÍDO!";
Alert.show("DOWNLOAD CONCLUÍDO","Atenção");
PopUpManager.removePopUp(this);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
private function openHandler(event:Event):void {
trace("openHandler: " + event);
}
private function progressHandler(event:ProgressEvent):void {
var file:FileReference = FileReference(event.target);
pgbProgresso.setProgress(event.bytesLoaded,event.bytesTotal);
pgbProgresso.label = "CARREGANDO " + numberFormatter.format(pgbProgresso.percentComplete) + "%";
pgbProgresso.setStyle("color",uint(0x000000));
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
pgbProgresso.label = "ERRO AO BAIXAR ARQUIVO!";
pgbProgresso.setStyle("color",uint(0xCC0000));
}
private function selectHandler(event:Event):void {
var file:FileReference = FileReference(event.target);
trace("selectHandler: name=" + file.name + " URL=" + downloadURL.url);
}
]]>
</mx:Script>
</mx:TitleWindow>
Usando.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Button label="Download" click="download()"/>
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
private function download():void
{
var download : Download = new Download();
download.fileUrl = "http://fpdownload.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_10_active_x.exe";
PopUpManager.addPopUp(download,this,true);
PopUpManager.centerPopUp(download);
}
]]>
</mx:Script>
</mx:Application>
Postado por Luiz Henrique de Angeli às 08:00 0 comentários
Marcadores: Flex
Glass TV
quinta-feira, 1 de outubro de 2009
Postado por Luiz Henrique de Angeli às 08:00 0 comentários