Mostrando entradas con la etiqueta Adobe. Mostrar todas las entradas
Mostrando entradas con la etiqueta Adobe. Mostrar todas las entradas

lunes, 10 de marzo de 2014

Dibujar una nave sencilla con el API (AS 3.0)

Autor: Francisco Arce
Correo: fj_arce@yahoo.com.mx


Cuando hacemos juegos con ActionScript 3.0, es muy útil dibujar una nave sencilla con el API de dibujo, pues no necesitamos cargar ninguna imagen y resulta extremadamente ligera. A continuación mostramos en código de una clase llamad Nave que realiza este dibujo:

package {
   import flash.display.Sprite;

   public class Nave extends Sprite {
      public function Nave() {
         init(false);
      }
      public function init(llama:Boolean):void {
         graphics.clear();
         graphics.lineStyle(1,0);
         graphics.moveTo(10,0);
         graphics.lineTo(-10,10);
         graphics.lineTo(-5,0);
         graphics.lineTo(-10,-10);
         graphics.lineTo(10,0);

         if (llama) {
            graphics.moveTo(-7.5,-5);
            graphics.lineTo(-15,0);
            graphics.lineTo(-7.5,5);
         }
      }
   }
}   

http://www.pacoarce.com
         

viernes, 28 de febrero de 2014

ActionScript 3.0: Cambio color

Una aplicación clásica en los desarrollos educativos es que el usuario (por lo general un niño) iluminen un dibujo. Hay muchas maneras de hacerlo. Una forma de solucionar este problema es tener el dibujo dvidido en diferentes movie clips blancos y un gráfico con los contornos del dibujo.

Es importante nombrar a cada uno de los clips con nombres diferentes. Por lo general necesitamos hacer "grupos" de varios pedazos del dibujo, por ejemplo las manos, el cuello y la cara van del mismo color. También necesitaremos botoncitos que representen los diferentes botones para que el usuario seleccione el color. Por lo general utilizamos un cursor personalizado, ya sea un pincel o una brocha.

Para poder cambiar el movie clip, necesitamos un objeto intermedio donde almacenaremos el color, en este caso necesitamos un objeto ColorTransform. Dicha clase se encuentra en el paquete geom, y este a su ves en el paquete flash. Recuerda que si codificas en la línea de tiempo, no es necesario importar las clases del paquete flash, pero si trabajas en clases, tienes que importarla:

import flash.geom.ColorTransform;

Así que crea un objeto de tranformación de color, donde almacenaremos el color que haya seleccionado el usuario:

var colorInfo:ColorTransform;

Aqui almacenamos el color (en formato hexadecimal, de preferencia). Supongamos que desamos cambiar el color a amarillo:

colorInfo = new ColorTransform();
colorInfo.color = 0xffff00;

Ahora aplicamos este cambio al movie clip (digamos que se llama dibujo) con la siguiente asignación:

dibujo.transform.colorTransform = colorInfo;

Listo, el movie clip cambiará de color. Hay que remarcar que si el movie clip tiene un degradado o diferentes colores que los aplicamos en tiempo de autor ed decir, con el EDI, los colores se remplazarán por el color que aplicamos.

http://www.pacoarce.com

lunes, 3 de febrero de 2014

Insertar un registro en la base de datos con Adobe AIR

Para insertar un registro en una tabla, debe tener (obviamente) creada la base, la tabla y tener una conexión a la base de datos. Una vez realizada la conexión, deberá crea un objeto de la clase SQLStatement, la cual contiene la cadena del query a realizarse. El resultado exitoso se detecta con el evento SQLEvent.RESULT y el intento erróneo con SQLErrorEvent.ERROR.

El query se ejecuta con el método execute()

Para insertar hay que ejecutar un comando INSERT , pero lo parámetros se escriben con dos puntos (:) Los valores de los mismos se pasan con la propiedad "parameters". Es muy recomendable limpiar los parametros con el método clearParameters() para estar seguros de limpiar los mismos.

EJEMPLO:

var fecha:Date = new Date()
var query:SQLStatement = new SQLStatement();
query.sqlConnection=conn;
var queryText = "INSERT INTO 'registro' "+
"(id, usuario, libro, bloque, unidad, leccion, actividad, fecha, hora, accion) "+
" VALUES(:id, :usuario, :libro, :bloque, :unidad, :leccion, :actividad, :fecha, :hora, :accion)";
query.clearParameters();
query.parameters[":id"] = 0;
query.parameters[":usuario"] = usuario;
query.parameters[":libro"] = libro;
query.parameters[":bloque"] = bloque;
query.parameters[":unidad"] = unidad;
query.parameters[":leccion"] = leccion;
query.parameters[":actividad"] = actividad;
query.parameters[":fecha"] = fecha.fullYear+"/"+(fecha.month+1)+"/"+fecha.date;
query.parameters[":hora"] = fecha.hours+":"+fecha.minutes+":"+fecha.seconds;
query.parameters[":accion"] = accion;
//
query.text = queryText;
//
try {
   query.execute();
}
   catch(error:SQLError){
   trace("Error: " + error.toString());
}

http://www.pacoarce.com

miércoles, 8 de enero de 2014

Modificar las columnas de un data Grid con Adobe AIR

Uno de los controles más utilizados en el desarrollo de aplicaciones con AIR, Flash y Flex es el data Grid. Esta herramienta es aún más poderosa al momento de manipular las columnas por medio de la clase DataGridColumn. Para ello puede importar las siguientes tres clases que se muestra a continuación:

import fl.data.DataProvider;
import fl.controls.DataGrid;
import fl.controls.dataGridClasses.DataGridColumn;

Por ejemplo, una vez abierta una bas de datos, podemos leer una tabla y vaciarla en un datagrid de la siguiente forma:

function onQueryLeeTabla (e:SQLEvent) {
var q:SQLStatement=e.target as SQLStatement;
var r:SQLResult=q.getResult();
        //
var dp:DataProvider = new DataProvider();
//
datos_dg.addColumn(new DataGridColumn("Fecha"));
datos_dg.addColumn(new DataGridColumn("Cliente"));
datos_dg.addColumn(new DataGridColumn("Correo"));
datos_dg.addColumn(new DataGridColumn("Confirmada"));
//
datos_dg.dataProvider = dp;
datos_array = new Array();
datos_dg.dataProvider.removeAll();
for each (var o:Object in r.data) {
var obj:Object = new Object();
obj.Fecha = o.fecha;
obj.Cliente = o.cliente;
obj.Correo = o.correo;
obj.Confirmada = o.confirmada;
datos_dg.addItem(obj);
datos_array.push(o);
  reg++;
}
if(reg==0){
mensaje_txt.text = "No hay registros en la tabla";
} else {
//datos_dg.addEventListener(Event.CHANGE, onSelecciona);
//mensaje_txt.text = "Selecciona un registro";
}
}

Cursos gratuitos de programación web en: http://www.pacoarce.com

domingo, 15 de diciembre de 2013

Las instancias de los componentes en Coldfusion 10

Existen tres maneras de crear o llamar a un componente en Coldfusion 10:

• <cfinvoke> llama el metodo dentro de un componente
• <cfobject> crea una instancia de un componente
• createObject() Crea una sintancia de un componente

Caracteristicas de las instancias de los componentes

• Con una instancia se pueden llamar a varios metodos de componentese methods
• Podemos almacenar informacion en una instanciaa
• Podemos subir una instancia a la memoria cache
• Podemos crear diferentes instancias con diferentes datos del mismo componente

Crear una instancia con <cfobject>

• Use la etiqueta <cfobject> con las siguientes propiedades:
  • component: es la ruta del archivo del componente, como se utiliza en <cfinvoke>
  • name: el nombre que ser'a utilizado para llamar al componente en los programas
  • type: el tipo de objeto que sera instanciado (opcional)

• Ejemplo

<cfobject component="componentes.alumno" name="alumno" >

Uso de las instancias de un componente
Por medio de las instancias de un component de ColdFusion podemos llamar a los metodos y propiedades almacenadas en el mismo, por ejemplo:

<cfobject component="componentes.alumno" name="alumno" >
<cfset cali = alumno.calificacion >
<cfset promedio = alumno.promedio() >

Tambien podemos llamar a un metodo al momento de crearlo:


<cfset miAlumno= createObject("cfcAlumno", "components.alumno").init()>



Más información en: http://www.pacoarce.com