Guardar imagen generado por usuario desde Aplicacion AIR usando clases de JPG y PNG Enconder y Flash CS4

11 09 2009

Mientras que cualquier persona con un conocimiento íntimo de la codificación de bits de información pueden escribir sus propios JPG o PNG codificador, ¿no es genial saber que Adobe ya ofrece clases para esto?

Requisito previos de conocimiento

  • El conocimiento intermedio de ActionScript 3
  • Una comprensión básica de la creación de aplicaciones AIR

Materiales de referencia
DescargarCódigo fuente FLash CS4

Cómo la Biblioteca de clases obligatorias

Mientras que cualquier persona con un conocimiento íntimo de la codificación de bits de información pueden escribir sus propios JPG o PNG codificador, ¿no es genial saber que Adobe ya ofrece clases para cuidar de él? Si la cabeza de más a as3corelib Adobe Google página de código, puede descargar numerosas clases que le ayudarán en el desarrollo web o AIR basadas en aplicaciones de Flash. En este artículo uso de tres clases particulares que me permita codificar BitmapData en JPG y PNG. Estas tres categorías son las JPGEncoder, cadena de bits (se usa en conjunción con la clase JPGEncoder) y las clases PNGEncoder en el paquete com.adobe.images

image001
Leer el resto de esta entrada »





SQLite en Adobe AIR

10 08 2009





Crear Aplicacion Flex con Bases de datos y PHP

30 06 2009

Usted desea crear una aplicación sencilla pero no tiene tiempo suficiente?

Este tutorial muestra cómo crear rápidamente aplicaciones web utilizando la función de Flex Builder “Crear la aplicación de la base de datos” Aquí hay un ejemplo que utilizan php como back-end y MySql como DataSource, puede utilizar Asp.net ColdFusion J2EE u otras tecnologías como de fondo y cualquier otra base de datos como DataSource

En primer lugar, usted tiene que configurar el MySql de datos mediante la creación de una base de datos y una tabla;
Crear una base de datos

CREATE DATABASE `users` ;

Crear tabla:

CREATE TABLE `accounts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 16 ) NOT NULL ,
`password` VARCHAR( 32 ) NOT NULL ,
`priviledge` INT( 1 ) NOT NULL
) ENGINE = innodb;

De crear un proyecto que utiliza tecnología de servidor como PHP:
Haga clic derecho sobre el panel de navegación Flex -> Nuevo -> Proyecto de Flex;
Elija el nombre del proyecto y seleccione Servidor de aplicaciones PHP como el tipo de
Haga clic en Siguiente;
Antes de hacer clic en el botón Finalizar estar seguro de que la carpeta raíz de la web URL principal y son válidas, para ello puedes hacer clic en Validar la configuración;

Ahora usted puede crear su aplicación!

Elija Datos -> Crear aplicaciones de base de datos desde el menú principal;

Seleccione su proyecto y crear una conexión nueva, darle un nombre a bis descripción (opcional) y comprobar la bandera de conexión automática cuando haya finalizado el asistente;

Configuración de la conexión por el llenado de texto y, a continuación, haga clic en Probar conexión
Este es un ejemplo típico de una conexión a MySql

Host URL: localhost
Database Name:users
User Name: root
Password: DatabasePasswordForRoot

Si su conexión es válida puede hacer clic en terminar y volver a la pantalla principal en la que puede seleccionar la tabla y la clave primaria;
En este ejemplo el nombre de la tabla de cuentas y es la clave principal de identificación es

Haga clic en el botón Siguiente;
elija la carpeta de origen y el nombre del archivo PHP y pasar;

en esta pantalla se puede ver toda la columna de su mesa y usted puede elegir uno que desea mostrar la columna y en la que habilita el filtrado;

Haga clic en Finalizar y eso es todo!





Cargar Fotografia con Flex

24 03 2009

Aqui les dejo un ejemplo de como cargar una fotografia al servidor luego a nuestra aplicacion. aqui directamente los codigos. El resultado sera como como se muestra en la imagen.

img

UploadFile.mxml

<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” xmlns:comps=”comps.*”>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
function uploadedListener(){
trace("Archivo cargado");
}

function selectedListener(){
trace("Archivo seleccionado");
}
]]>
</mx:Script>
<mx:Panel title=”Subir Archivo”>
<comps:BrowseDir dirname=”images/”
uploadURL=”upload.php”
fileUploaded=”uploadedListener();”
fileSelected=”selectedListener();”
/>
</mx:Panel>
</mx:Application>

Creamos en Thumbnail

<?xml version=”1.0″?>
<mx:Canvas xmlns:mx=”http://www.adobe.com/2006/mxml” borderStyle=”none”
>
<mx:Image id=”image” width=”60″ height=”60″  source=”{data.data}”/>
<mx:Label
id=”nombre_txt”
text=”{data.label}”
width=”150″
x=”68″ y=”10″
/>

<mx:Text text=”12585″ x=”156″ y=”10″/>
</mx:Canvas>

Creamos nueva carpeta desde donde llamaremos para buscar el archivos a subir. en este caso le llame a la carpeta “comp”. el siguiente archivo debe ir dentro de ella. archivo  BrowseDir.mxml

<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Canvas xmlns:mx=”http://www.adobe.com/2006/mxml” creationComplete=”init();” height=”444″ currentState=”base”>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import flash.net.FileReference;
import flash.net.URLRequest;
import flash.net.URLRequestMethod
import mx.events.ItemClickEvent;
import flash.events.Event;
//
[Inspectable(defaultValue="images")]
private var _dirname:String;
//
[Inspectable(defaultValue=false)]
private var _autoUpload:Boolean;
//
[Inspectable(defaultValue=undefined)]
private var _params:Object;
//
[Inspectable(defaultValue="upload.php")]
private var _upload_url:String;
//
var imagesFilter:FileFilter = new FileFilter(“Imagenes”, “*.jpg;*.gif;*.png;*.bmp”);
private var fileref:FileReference = new FileReference();
var imagenSeleccionada:Boolean = false;
private function init(){
fileref.addEventListener(Event.SELECT, selectHandler);
fileref.addEventListener(Event.OPEN, openHandler);
fileref.addEventListener(ProgressEvent.PROGRESS, progressHandler);
fileref.addEventListener(Event.COMPLETE, completeHandler);
subir_btn.enabled = false;
loadDirData();
}
var externalXML:XML;
var loader:URLLoader = new URLLoader();
function loadDirData(){
var request:URLRequest = new URLRequest(“dir2xml.php?dir=”+_dirname+”&rnd=”+Math.random());
loader.load(request);
loader.addEventListener(Event.COMPLETE, onComplete);
}
function onComplete(event:Event) {
loader.removeEventListener(Event.COMPLETE,onComplete);
//var loader:URLLoader = URLLoader(event.target);
externalXML = new XML(loader.data);
var _array:Array = new Array();
var n = 0;
for each (var grupo:XML in externalXML..file){
_array[n] = {label:grupo.toString(),data:”"+_dirname+”"+grupo.toString()};
n++;
}
files_list.dataProvider = _array;
}
public function set dirname(_str:String):void{
_dirname = _str
}
public function set uploadURL(_str:String):void{
_upload_url = _str
}
public function set params(o:Object){
_params = o;
}
public function get fileName():String{
return file_path.text;
}
public function set fileSelected(f:String){
var _array = files_list.dataProvider;
for(var d = 0;d<_array.length;d++){
if(_array[d].label == f){
files_list.selectedIndex = d;
return;
}
}
files_list.selectedIndex = -1;
}
public function get fileSelected():String{
return files_list.selectedItem.label;
}
private function searchFile():void{
fileref.browse([imagesFilter]);
}
public function reset():void{
uploadProgress.setProgress(0,1);
file_path.text = “”;
}

var loader_del:URLLoader = new URLLoader();
function delFile(){
var request:URLRequest = new URLRequest(“delFile.php?file=”+files_list.selectedItem.data);
loader_del.load(request);
loader_del.addEventListener(Event.COMPLETE, onDelete);
}
function onDelete(event:Event){
loadDirData();
}
public function uploadFile():void{
var request:URLRequest = new URLRequest();
var variables:URLVariables = new URLVariables();
variables.dir = _dirname;
for(var d in _params){
variables[d] = _params[d]
}
request.data = variables;
request.method = URLRequestMethod.POST;
request.url = _upload_url;
fileref.upload(request);

}
private function selectHandler(event:Event):void {
dispatchEvent(new Event(“fileSelected”));
subir_btn.enabled = true;
file_path.text = fileref.name;
}
private function openHandler(event:Event):void {
// is opened
}
private function progressHandler(event:ProgressEvent):void {
uploadProgress.setProgress(event.bytesLoaded, event.bytesTotal);
}
private function completeHandler(event:Event):void {
loadDirData()
uploadProgress.label = “Carga completada!”;
dispatchEvent(new Event(“fileUploaded”));
}
private function changeState(){

if(currentState == “upload”)currentState = “base”;
else currentState = “upload”;
}
]]>
</mx:Script>
<mx:Metadata>
[Event(name="fileUploaded", type="flash.events.Event")]
[Event(name="fileSelected", type="flash.events.Event")]
</mx:Metadata>
<mx:states>
<mx:State name=”base”>
<mx:SetProperty target=”{files_list}” name=”height” value=”399″/>
<mx:RemoveChild target=”{uploadForm}”/>
<mx:SetProperty target=”{add_btn}” name=”label” value=”Agregar archivo”/>
</mx:State>
<mx:State name=”upload”>
<mx:SetProperty target=”{files_list}” name=”height” value=”289″/>
<mx:SetProperty target=”{uploadForm}” name=”y” value=”287″/>
<mx:SetProperty target=”{add_btn}” name=”label” value=”Cancelar”/>
<mx:SetProperty target=”{formitem1}” name=”label” value=”Progreso”/>
</mx:State>
</mx:states>
<mx:transitions>
<mx:Transition id=”toUpload” fromState=”base” toState=”upload”>
<mx:Sequence targets=”{[uploadForm, files_list]}”>
<mx:RemoveChildAction/>
<mx:Resize target=”{files_list}”/>
<mx:AddChildAction/>
</mx:Sequence>
</mx:Transition>
<mx:Transition id=”toBase” fromState=”upload” toState=”base”>
<mx:Sequence targets=”{[uploadForm, files_list]}”>
<mx:RemoveChildAction/>
<mx:Resize target=”{files_list}”/>
<mx:AddChildAction/>
</mx:Sequence>
</mx:Transition>
</mx:transitions>
<mx:List id=”files_list” width=”268″  height=”331″ itemRenderer=”Thumbnail”>

</mx:List>
<mx:Form y=”330″ id=”uploadForm”>
<mx:FormItem label=”Subir Archivo:”>
<mx:HBox>
<mx:Button label=”Buscar” click=”searchFile()”/>
<mx:Button label=”Subir” id=”subir_btn” click=”uploadFile();”/>
</mx:HBox>
</mx:FormItem>
<mx:FormItem label=”Archivo”>
<mx:Text id=”file_path” text=”"/>
</mx:FormItem>
<mx:FormItem label=”Progress” id=”formitem1″>
<mx:ProgressBar id=”uploadProgress” label=”" mode=”manual” width=”150″ />
</mx:FormItem>
</mx:Form>
<mx:ControlBar y=”400″>
<mx:Button label=”Agregar” id=”add_btn” click=”changeState();”/>
<mx:Button label=”Borrar” click=”delFile()”/>
</mx:ControlBar>
</mx:Canvas>

A continuación los archivos php para subir estas imagenes, estos archivo pueden poner en el src de tu proyecto o directamente en el bin de tu proyecto.

upload.php

<?
$uploadFile = “images/”.$_FILES['Filedata']['name'];
move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile);
?>

delFile.php

<?
unlink($file);
echo (“ok”);
?>

Este archivo es para leer todos los archivos que tenemos en la carpeta “images” que tienes que crear en el mismo directorio donde estan tus archivos php

dir2xml.php

<?
echo “<files>”;
if ($gestor = opendir($dir.’/')) {
while (false !== ($archivo = readdir($gestor))) {
if($archivo != “..” && $archivo != “.”)
echo “<file>”.$archivo.”</file>”;
}
closedir($gestor);
}
echo “</files>”;
?>





Video Tutoriales Completos

12 03 2009

El mayor centro hispano de recursos educativos audiovisuales libres y gratuitos. Video Tutoriales Completos de diferentes lenguajes de programación, como de diseño gráfico, Ofimática, Multimedia y mucho mas…

http://www.illasaron.com/

illa

En este sitio encontraras Cursos Completos en Video de los siguientes Lenguajes de programación, Pueden descargarlo o directamente ver en el Sitio

pro

ENLACE: Enlace