Air
Evento BR Conference
27/04/10
O BR Conference 2010, é o primeiro evento realizado no Brasil sobre RIA (Rich Internet Application) e ColdFusion.
Com o apoio da Adobe Systems Inc’s e a participação de alguns dos melhores e mais renomados profissionais do mundo nas ferramentas e tecnologias ColdFusion, Flex, AIR, Flash Media Server e LiveCycle, o BR Conference 2010 é um evento criado por desenvolvedores para desenvolvedores.
O objetivo do evento é apresentar ao seu público soluções de alta escala, novos recursos e tendências do mercado no desenvolvimento de aplicações ricas para Web e Desktop, atendendo a necessidade de empresas, governo, estudantes e profissionais que desejem aprofundar seus conhecimentos.
Além das sessões, apresentações e painéis de discussão, o público terá a oportunidade de contato com os desenvolvedores, gurus, patrocinadores e dirigentes da comunidade.
O evento será uma ocasião oportuna para a formação de parcerias entre os setores privado, acadêmico e governamental e um momento único para as empresas divulgarem seus produtos e serviços a este público especializado.
Palestrantes
Comunidade Internacional: Raymond Candem, Ben Forta, Terrence Ryan, Adam Lehman, Lee Brimelow, Kevin Schmidt, Liz Frederick, Charlie Arehart;
Comunidade Nacional: Neto Leal, Fabio Vedovelli, Flavio Mikami, Lauro Santos, Gabriela Perry, Fransico Paulino (Tofinha).
Local e Datas do Evento
Data: 19, 20 e 21 de agosto de 2010 (quinta, sexta e sábado)
Local: Sendo definido – Rio de Janeiro – RJ.
Popularity: 10% [?]
Adobe AIR com SQLite
24/04/10
Adobe acrescentou a possibilidade de utilizar bancos de dados locais, quando eles criaram AIR. Este é um dos muitos recursos que ajudam a tornar o Adobe AIR uma ótima solução para aplicações desktop multi-plataforma. Neste rápido tutorial vou mostrar como criar um banco de dados de arquivo e abrir uma conexão com ele. O código é muito simples, então vamos pular direto para ele. A primeira coisa é criar um arquivo para o banco de dados. Em SQLite, que é o mecanismo de banco de dados utilizado no Adobe AIR, o banco de dados completo é armazenado em apenas um único arquivo. É realmente um sistema muito bom compacto e portátil. Eu usei a função applicationStorageDirectory sobre a classe File para criar um arquivo que aponta para o armazenamento de aplicação local e com o nome dbTest.db. No meu caso (no Seven), o caminho real no disco é C:\Users\usuário\AppData\Roaming\SQLiteExample\Local Store. O arquivo não é criado, até iniciar a aplicação.
import flash.data.SQLStatement; import flash.errors.SQLError; import flash.events.Event; import flash.events.SQLErrorEvent; import flash.events.SQLEvent; import flash.events.TimerEvent; import flash.filesystem.File; import flash.utils.Timer; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.utils.ObjectUtil; import org.osmf.events.TimeEvent; // sqlconn é uma variável que precisamos para definir uma // coneção com a nosso banco de dados private var sqlconn:SQLConnection = new SQLConnection(); // sqlstate é um SQLStatement que precisamos para executar // o executar os comandos sql private var sqlstate:SQLStatement = new SQLStatement(); // ArrayCollection é usado como dataprovider para a nossa datagrid. // Tem de ser bindable para que os dados em nosso datagrid // mudem automaticamente, quando mudamos o nosso ArrayCollection [Bindable] private var dp:ArrayCollection = new ArrayCollection(); // função que chamamos no inicio da aplicação private function init():void { // primeiro precisamos de "setar" o arquivo para o banco de dados // Se o banco de dados não existe, ele irá criar // um banco de dados quando inicia var db:File = File.applicationStorageDirectory.resolvePath("dbTest.db"); // depois de "setar" o arquivo para o banco de dados, // precisamos de abri-lo. sqlconn.openAsync(db); // precisamos de "setar" os event listners de para que possamos // saber se temos algum erro, quando o banco de dados é // totalmente aberto e também para saber quando recebemos um // resultado de uma query sql, o ultimo é para ler // os dados do banco de dados. sqlconn.addEventListener(SQLEvent.OPEN, db_opened); sqlconn.addEventListener(SQLErrorEvent.ERROR, error); sqlstate.addEventListener(SQLErrorEvent.ERROR, error); sqlstate.addEventListener(SQLEvent.RESULT, resault); } private function db_opened(e:SQLEvent):void { // quando um banco de dados é aberto precisamos do link do SQLStatment // para a nossa conexão, se não "setar" esta conexão vamos ter um // erro quando executar o SQLStatment. sqlstate.sqlConnection = sqlconn; // escrevemos o SQLStatment. // no SQLStatment criamos uma tabela no banco de dados com o nome "aluno", // com 3 colunas (id, nome, apelido) sqlstate.text = "CREATE TABLE IF NOT EXISTS aluno " + "( id INTEGER PRIMARY KEY AUTOINCREMENT, nome TEXT, apelido TEXT);"; // depois de conectar o SQLStatment a nossa SQLConnection e escrever o // comando sql, precisamos de executar o SQLStatment // nada vai mudar até executar o SQLStatment. sqlstate.execute(); // depois de carregar o banco de dados e criar a tabela // se já não existir, chamamos de método refresh() para popular o datagrid refresh(); } // função para adicionar um item no banco de dados private function addItem():void { // este comando SQL é para adicionar um item na tabela sqlstate.text = "INSERT INTO aluno (nome, apelido) " + "VALUES('"+nome.text+"','"+apelido.text+"');"; sqlstate.execute(); refresh(); } // função para chamar quando queremos fazer o refresh de dados no datagrid private function refresh(e:TimerEvent = null):void { // objeto timer que precisamos se o SQLStatment está ainda em execução, // caso contrário tentamos novamente depois de 10 milliseconds. var timer:Timer = new Timer(10,1); timer.addEventListener(TimerEvent.TIMER, refresh); if ( !sqlstate.executing ) // precisamos checar se o SQLStatment está ainda executando // o ultimo comando sql. // se sim, usamos o timer para voltar a executar em 10 milliseconds. // senão checar, podemos ter erro pq o SQLStatment // não pode executar 2 comandos aomesmo tempo. { // SQLStatment que retorna todos os dados da tabela "aluno". sqlstate.text = "SELECT * FROM aluno" sqlstate.execute(); } else { timer.start(); } } // função que é chamada se receber algum resultado do comando sql. // também pode ser chamado, quando for inserir algum dado private function resault(e:SQLEvent):void { // com o sqlstate.getResult().data pegamos o array de objetos // para cada linha do banco de dados var data:Array = sqlstate.getResult().data; // passamos o array de objetos para o // dataprovider para popular o datagrid dp = new ArrayCollection(data); } // função que remove um item do banco de dados private function remove():void { // SQLStatment para excluir da tabela o id que tem o // mesmo número que selecionamos no datagrid para excluir sqlstate.text = "DELETE FROM aluno WHERE id="+dp[dg.selectedIndex].id; sqlstate.execute(); refresh(); } // função que é chamada quando recebemos um erro do comando sql // ou conexão sql e mostra esse erro em um alert. private function error(e:SQLErrorEvent):void { Alert.show(e.toString()); }
Aplicação básica para entender e aprender como você pode armazenar dados em banco de dados SQLite. O exemplo é muito básico, mas você deve pegar uma idéia de como fazê-lo.
Aplicativo AIR aqui (view source habilitado).
Popularity: 72% [?]
Flex 4 in a week: Video Download Links
10/01/10
Download Flex 4 Videos (.flv):
Download Details:
Total Files : 53
Total Size: 1.38GB
Day 1: 13 files -> 387 MB
Day 2: 10 files -> 308 MB
Day 3: 11 files -> 248 MB
Day 4: 9 files -> 229 MB
Day 5: 10 files -> 246 MB
Basic Information:
Learn to use Flex 4 beta and Flash Builder 4 in a week by stepping through this video training course.
To get started, follow these steps:
- Download and install Flash Builder 4 beta (requires free Adobe membership).
- Download the project files for each training day.The project files include the starter and solution files for the listed exercises as well as transcripts of the training videos.Note: If you prefer, you can also download the starter and solution files for each exercise individually from the respective exercise pages.
- To maximize your learning, view the videos and complete the exercises in the order listed.
Important: This training is based on the Flex 4 beta 2 and Flash Builder beta 2 versions. Like beta software, this course is still in active development. If you run into problems and have questions, please post your question to the Flex in a Week forum. Also help us help you learn Flex better by telling us what works and what doesn’t work for you in the way this course is structured and presented, so we can make any necessary changes in time for the Flex 4 and Flash Builder releases.
Start Downloading ![]()
Day 1
- Day 1 project files (ZIP; 36.2 MB)
Exploring the basics
- Introducing Flex and the Adobe Flash Platform (8:37)
- Exploring Adobe Flash Builder 4 and projects (17:13)
- Understanding namespaces (7:01)
- Managing code and compiling applications (10:08)
- Laying out a form in Design mode (12:25)
- Introducing styling and skinning (8:34)
- Exercise: Creating and skinning an application
- Introducing data binding (5:35)
- Introducing data retrieval and handling with HTTPService (24:14)
- Exercise: Displaying retrieved XML data in application controls
Introducing object-oriented programming
- Implementing OOP concepts in Flex (31:06)
- Exercise: Creating MXML custom components with properties
- Programming ActionScript classes (26:26)
- Exercise: Creating an ActionScript class and instances
Understanding components and layouts
- Laying out Spark and MX components in containers (16:09)
- Exercise: Experimenting with container layouts
- Using constraints to control component layout (6:47)
- Exercise: Implementing a constraint-based layout
Day 2
- Day 2 project files (ZIP; 44.9 MB)
Handling events
- Implementing event handlers (12:40)
- Exercise: Handling a user event
- Understanding the event object and bubbling (21:11)
- Exercise: Using the event object
- Adding event listeners with ActionScript (7:48)
- Exercise: Using the addEventListener() method
Validating and formatting data
- Using formatters (5:25)
- Exercise: Formatting dates
- Validating form data (16:41)
- Exercise: Validating form data
Navigating application content
- Understanding MX navigator containers (10:13)
- Exercise: Navigating using MX navigator containers
- Controlling application states (16:11)
- Exercise: Creating and navigating application states
Animating components and states
- Animating components with effects (15:47)
- Exercise: Animating components with effects
- Animating states with transitions (24:32)
- Exercise: Applying transitions to view states
Day 3
- Day 3 project files (ZIP; 31.7 MB)
Controlling text display
- Introducing the text controls (14:12)
- Exercise: Using text controls
- Utilizing the Text Layout Framework (12:44)
- Exercise: Using text layout features
Controlling visual display with CSS
- Defining styles in CSS (9:59)
- Exercise: Defining selector styles
- Introducing advanced CSS selectors (8:29)
- Exercise: Using advanced CSS selectors
Skinning Spark components
- Introducing skinning (10:58)
- Drawing with FXG (3:25)
- Adding scrollbars (3:10)
- Exercise: Creating and applying skins
- Implementing skin states (7:55)
- Exercise: Creating states and transitions for a skin
- Implementing skin parts (9:11)
- Creating custom skin properties (8:09)
- Exercise: Customizing and reusing skins
Day 4
- Day 4 project files (ZIP; 35 MB)
Extending events
- Creating an event type and dispatching the event object (13:34)
- Exercise: Creating an event type and dispatching the event object
- Extending the Event class to pass data in the event object (18:16)
- Exercise: Extending the Event class to pass data in the event object
Accessing remote data
- Retrieving and handling data with HTTPService (17:57)
- Exercise: Populating an application with data and handling faults
- Introducing the MVC pattern (7:34)
- Exercise: Separating the model from the view
- Making HTTP request with parameters (6:01)
- Exercise: Making an HTTP request with parameters
- Using the Flash Builder data wizard (2:57)
- Exercise: Creating a master/detail interface with a wizard
Creating a typed data model
- Implementing a typed data model (12:49)
- Exercise: Creating and using a typed data model
- Implementing two-way binding (4:05)
- Exercise: Binding to a data model
- Using E4X to manipulate loaded data (No Link)
- Exercise: Manipulating data using E4X (No Link)
Day 5
- Day 5 project files (ZIP; 53.6 MB)
Displaying data with the DataGroup container
- Representing data in default item renderers (13:07)
- Exercise: Passing data to item renderers for display
- Creating a custom item renderer (9:17)
- Exercise: Displaying dynamic data in a custom item renderer
- Skinning the DataGroup container (8:01)
- Exercise: Skinning the DataGroup container
Displaying Data with the DataGrid control
- Creating and formatting the DataGrid control (12:45)
- Exercise: Using the DataGrid control
- Creating item renderers and item editors (14:26)
- Exercise: Creating item renderers and item editors
- Handling item renderer events (2:48)
- Exercise: Handling a DataGrid itemClick event
Deploying Flex and AIR Applications
- Understanding the bin-debug folder (6:51)
- Creating a production build (3:06)
- Exercise: Creating a production build
- Creating an Adobe AIR application (9:48)
- Exercise: Deploying to the desktop
This work is not licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported License.
Popularity: 31% [?]





