2010-04-30

Getters y Setters en PHP 5 utilizando los métodos

Una manera simple de implementar los Getters y Setters en PHP 5 utilizando los métodos mágicos.

//Getters dentro de la clase
public function __get($strName) {
switch ($strName) {
case 'strA': return $this->strA;
case 'intB': return $this->intB;
default:
return parent::__get($strName);
}
}

//Setters dentro de la clase
public function __set($strName, $mixValue) {
switch ($strName) {
case 'strA':
$this->strA = $mixValue;
return true;
default:
return parent::__set($strName, $mixValue);
}
}

2010-04-29

GhostRec – Grabando la actividad de los visitantes de una web

GhostRec es una buena solución para poder obtener datos estadísticos de la actividad de los visitantes de nuestra web.

Después de instalar el código en nuestras páginas, podrá mostrarnos los clicks realizados por cada visita, los movimientos del ratón, los tiempos de lectura… todo como si hubiera una cámara grabando su actividad desde su hombro, enviando los datos directamente a quien necesita conocer el efecto de la web ante una nueva visita.

Una alternativa al conocido clicktale, herramienta imprescindible, principalmente, en sitios de comercio electrónico, donde es muy importante conseguir que el cliente use la web de forma natural e intuitiva.


Fuente: wwwhatsnew.com

2010-04-26

Opera Mobile 10 y Opera Widgets Mobile en nuestros escritorios

Hace un par de días, Opera anunciaba los emuladores de Opera Mobile 10 y de Opera Widgets Movil para poder usarlos sobre nuestros escritorios Windows, Linux y Mac. Estos emuladores, nos sirven para desarrollar nuestras aplicaciones móviles más cómodamente y poder testear como se verán estas en cualquier dispositivo móvil que disponga de esta versión de Opera.

2-multiple-opera-mobile-10s
(Ver Imagen)

Las herramientas, cumplen perfectamente su misión y nos muestran como se verán nuestras aplicaciones en este navegador. Además, para los desarrolladores podremos usar Dragonfly con esta versión y así depurar nuestras aplicaciones antes de subirlas a Internet. Una gran noticia para todos los desarrolladores web.

Tambien podes contrar con el emulardor de manera on-line es muy simple.

Link: Emulador OperaMini

Fuente: anieto2k.com

Pulse CMS: un simple pero potente admistrador de contenidos


Sin duda, Wordpress es el rey en el mundo de los CMS (sistemas de administración de contenidos). Su facilidad de instalación y de uso, sus posibilidades de personalización y su excelente optimización para los buscadores, han hecho de Wordpress uno de los CMS más utilizados en la actualidad.

Pero también existen otras opciones realmente muy buenas como Joomla, Drupal, Frog o el que les traigo hoy. Les estoy hablando de Pulse CMS, un excelente CMS pensado para sitios personales o de pequeñas empresas.

Pulse CMS no necesita instalación ni base de datos, solo tenemos que subir por FTP a nuestro hosting el directorio completo y cambiar la contraseña de administración.

Usar este administrador de contenidos es por demás de simple: el sistema se maneja por bloques que vamos creando desde el panel de administración. En cada bloque agregamos el contenido correspondiente mediante un completo editor WYSIWYG (fotos, textos, enlaces, etc.). Una vez tenemos nuestro bloque listo, solo tenemos que guardarlo, copiar el código PHP (Ej: ““) y pegarlo en el sector de nuestro diseño en donde queremos que aparezca ese contenido.

Pulse CMS es sin dudas uno de los administradores de contenido más simples y útiles que he usado hasta el momento. Pruébenlo y me cuentan.

Enlace: Pulse CMS
Descargar:
Pulse CMS

Fuente:adictosalared.com

2010-04-24

Lista de servidor CDN con Libreria JavaScripty CSS

Acá dejo una lista de servidores CDN con algunas librerías JavaScript y CSS para poner en nuestro sitio y tenes los archivos en otros servidor y balancear un poco mas la carga de nuestro sitio damas de que ya lo pudo haber cachado por en otro sitio que también lo vinculo a una mismo pagina.

JavaScript APIs

jQuery UI v1.8.0

http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.min.js

Also check out the css themes for jQuery UI.

ASP.NET Ajax Start.js beta 0911

http://ajax.microsoft.com/ajax/beta/0911/Start.js

Yahoo! User Interface Library (YUI) v3.0.0

http://yui.yahooapis.com/3.0.0/build/yui/yui-min.js

Check out the YUI3: Dependency Congfigurator.

CSS Recursos

2010-04-21

sitehoover – Una nueva forma de guardar tus sitios favoritosFue

sitehoover.com nos permite crear en pocos minutos una página personalizada con las informaciones de nuestros sitios web favoritos. En caso de tener canal RSS nos ofrecerá los últimos datos actualizados de cada uno, todo organizado de forma que sea sencillo encontrar cualquier cosa.

El conjunto de páginas puede compartirse y clasificarse con etiquetas, siendo sencillo encontrar nuevas webs dedicadas a los más diversos temas.

Podemos crear directorios con las miniaturas de las webs almacenadas en cada uno y usar un buscador, basado en Google, para limitar nuestras búsquedas a las direcciones que hemos almacenado.


Fuente: wwwhatsnew.com

2010-04-20

Graph Editor un editor de diagramas en línea

Existen varios programas para crear diagramas, de hecho Office tiene uno llamado Visio, u OpenOffice también los hace, pero siempre es bienvenida una alternativa en línea que no necesite instalación y que se use desde el navegador, en esta ocasión te muestro Graph Editor un poderoso editor de diagramas en línea con el que podrás crear gran variedad de diagramas de flujo, organigramas y todo lo que se ocurra.

Graph Editor tiene muchas opciones y una extensa librería de formas para usar en tus diagramas, desde los simples rectángulos y elipses, hasta nubes, hexágonos, cilindros, etc., y no podrían faltar las lineas para conectar las formas, además de que se pueden poner imágenes dentro de los diagramas también se pueden poner símbolos.

Entre las opciones una que me llamó la atención es la posibilidad de imprimir tu diagrama en un póster de varias páginas, es decir que la salida para imprimir no solamente lo pone en una hoja, es es muy útil para diagramas grandes que puedes imprimir en varias hojas tipo mosaico.

Enlace para probar Graph Editor.


Fuente: techtastico.com

2010-04-19

findicons.com – Un buscador de más de 300.000 iconos

En septiembre os hice una lista de excelentes buscadores de iconos de todo tipo. El tiempo pasa y continúo descubriendo nuevas opciones que os pueden interesar.

Aquí os dejo con findicons.com, un buscador de iconos gratuitos que cuenta con más de 300.000 en su base de datos. Con filtros que nos permiten encontrar exactamente el que estamos necesitando, presumen de ser la mayor base de iconos de la web.

Podemos contribuir a aumentar su colección enviando nuestras obras o usarlo simplemente para navegar entre los más de 2000 packs existentes.


Fuente:wwwhatsnew.com

2010-04-17

Pagos On-Line Gateway para sitios en Argentina

Medios de Pago Online

¿Cuáles son los gateway de pago que puedo integrar a mi sitio web para cobrar online?

A continuación, le brindamos una lista de los gateways de pago que Usted puede integrar en su sitio Web para empezar a cobrar sus ventas online.

Secure ePayments Argentina http://www.epayments.hsbc.com.ar
DineroMail Argentina http://www.dineromail.com
SUB1 Argentina http://www.sub1.com.ar
DECIDIR Argentina http://www.decidir.com
Pago Fácil – Ecommerce Argentina http://www.e-pagofacil.com/
RCC PAGOS Argentina http://www.rccpagos.com
ARCASH Argentina http://www.arcash.com.ar
Planet Payment Global http://www.planetpayment.com/
Pay Pal Global http://www.paypal.com/
2checkout Global http://www.2checkout.com/
Authorizenet USA http://www.authorizenet.com/
Ecommerce Bradesco Brasil http://www.bradesco.com.br/comercio/

http://www.certisur.com/gateway-de-pagos

https://www.epayments.hsbc.com.ar/IntroMerchant.aspx

www.dineromail.com

www.mercadopago.com

https://www.cuentadigital.com/

2010-04-15

Ejemplo de como acceso al API de bit.ly desde PHP

En este caso se trata de hacer un script PHP que se encargue de conectarse con el API, para enviar una URL larga y obtener una corta. Como veremos en este artículo, se trata de una tarea bastante sencilla, aunque requiere de varios pasos, que listamos a continuación.
  1. Componer una URL para la consulta en el API de bit.ly
  2. Acceder a esa URL por medio de PHP y recibir la información en formato JSON
  3. Convertir el JSON resultante en un array asociativo de PHP
  4. Acceder a los datos que necesitemos, es decir a la URL corta generada por bit.ly
Nota: La mayoría de las acciones que vamos a realizar las hemos trabajado anteriormente en distintos artículos de DesarrolloWeb.com, como podrían ser Lectura de texto de una URL o Consumo de JSON desde PHP.

El código del ejemplo básico de uso del API de bit.ly desde PHP que hemos creado es el siguiente:

//unas variables de configuración
$servicio_web = "http://api.bit.ly/";
$version_API = "version=2.0.1";
$usuario = "login=usuario"; //sustituye por tu usuario del API
$llave = "apiKey=R_000000"; //sustituye por tu clave del API

//la URL que quiero acortar
$URL_larga = "http://www.desarrolloweb.com/manuales/";

//codifico en formato de URL la URL larga
$query_URL = "&longUrl=" . urlencode("http://www.desarrolloweb.com/manuales/");

//genero la URL para consultar en el API de bit.ly
$URL_consulta_API = $servicio_web . "shorten?" . $version_API . "&" . $query_URL . "&" . $usuario . "&" . $llave;

//leo lo que me devuelve el API al hacer esa consulta, que estará en formato JSON
$respuesta_API = file_get_contents($URL_consulta_API);

//ahora tengo que consumir ese JSON para convertirlo en una estructura de datos accesible desde PHP
$respuesta_API = json_decode($respuesta_API, true);
//el true anterior hace que json_decode me devuelva sea un array asociativo.

//ahora podríamos mostar el contenido completo de la respuesta.
echo "

";
var_dump($respuesta_API);
echo "
";

//compruebo si hubo algún problema
if($respuesta_API["errorMessage"]==""){
//Todo bien, pues no hay errores
//muestro la URL corta generada por el API
echo $respuesta_API["results"][$URL_larga]["shortUrl"];
}else{
echo "Hubo un error";
}

Con esto tenemos listo un ejemplo de uso del API, que esperamos se haya podido entender a través de los comentarios. Recuerda sustituir por tus propios datos, tanto el usuario y clave del API como la URL que quieras acortar con bit.ly.

Como se ha podido comprobar, la tarea no es nada complicada, aunque todavía puede ser más fácil, como veremos en el siguiente artículo, en el que explicaremos y ofreceremos ejemplos sobre una clase PHP, de programación orientada a objetos, que existe para acceder al API de bit.ly de una manera más cómoda.


Fuente: desarrolloweb.com

2010-04-08

Cómo cambiar la apariencia de un canal de Youtube

La apariencia o interface que nos pone por defecto Youtube en nuestro canal, a muchos no nos gusta, y por ahí haciendo alguno que otro arreglo logramos que cambie en algo la apariencia. Pero seguro que algunos han visto canales de Youtube más vistosos o diferentes a los tradicionales (más o menos como el mío NivmarBlog) y mejor elaborados, hasta algunos piensan que para eso seguro metieron algún código HTML en alguna casilla (como se hace en myspace), o que son plantillas o themes para Youtube, pero no!, no es nada de lo que piensan, ni tampoco es que el usuario tenga privilegios o que pagó algún costo a Youtube y esas cosas, con un simple truco lo lograremos, así que sin más les doy el truco para que arreglen y puedan cambiar la apariencia de su canal de Youtube y se vea mucho mejor.

Pasos para cambiar la apariencia del canal de Youtube

Nos logueamos a nuestra cuenta de Youtube, y cambiamos el idioma de Youtube a English (US)

youtube-cambiar-apariencia

Luego clic en “Account” e ingresamos a “Edit Channel”

youtube-cambiar-apariencia-2

Pinchamos en “Upgrade my Channel!”

youtube-cambiar-apariencia-3

Ahora nos aparece un mensaje y le damos clic a “OK, cool, let’s go”

youtube-cambiar-apariencia-4

Con esto hemos aceptado que utilizaremos las nuevas características de Youtube que aún están en fase Beta, pero que funcionan muy bien.

Hecho lo anterior ya podemos regresar el idioma a como lo tenían, es decir si lo tenían en español, pues pongan español y listo todo volverá a estar como antes, con la salvedad que ahora tu canal se ve más “cool”.

youtube-cambiar-apariencia-5

Ahora con esta nueva apariencia del canal de Youtube, todas las modificaciones que le quieras hacer se harán desde su interfaz, en cada cajón verás el enlace de “Editar”.

Si quieres cambiar el fondo y opciones avanzadas o más generales, esas las encuentras en la parte superior del canal.

youtube-cambiar-apariencia-6

Si no les gusto como quedo su nueva apariencia (difícil) pueden regresar su canal a como estaba antes dando clic en el botón que se encuentra en la parte superior que dice “¡Revertir! Quiero mi antiguo canal de vuelta”.

Así que con este truco ya le podrás cambiar la apariencia a tu canal de Youtube, sobre todo si lo usas como Vlog (video blog) personal. Los colores y fondos y demás cosas corren por tu cuenta.



Fuente:
Link

10 trucos que todo usuario de YouTube debería conocer

Ustedes ya saben acerca de YouTube, el sitio más popular de vídeos de Internet. Y es que los medios de comunicación no dejan de nombrarlo y todo el mundo de usarlo. Pero, si desean hacer más que buscar y reproducir vídeos, aquí les dejo algunos de los mejores trucos que se pueden hacer con las URLs de YouTube, que sin duda todo usuario debería conocer...

1. Ver vídeos en alta definición

YouTube nos ofrece la posibilidad de ver videos en alta definición, pero sólo en algunos de ellos; sin embargo, nosotros podemos saber si un vídeo esta en alta definición cuando su URL contenga alguno de estos parámetros: ‘&fmt=18′ (estéreo, 480 x 270 de resolución) o ‘&fmt=22′ (estéreo, 1280 x 720 de resolución) para una aún mejor calidad. (En este post lo ampliamos Ver vídeos de Youtube en alta definición ya!)

2. Embeber vídeos en alta calidad

Mientras que el anterior truco funciona para la reproducción, si deseas embeber vídeos de alta calidad en un foro o blog debes añadir el parámetro “&ap=%2526fmt%3D18″ o “&ap=%2526fmt%3D22″ a la url proporcionada en el embed.

3. Ir al grano y enlazar la parte interesante

También podemos enlazar un vídeo donde la verdadera acción esta empezando; por ejemplo, en el minuto 03:22, ¿Cómo podemos hacer esto? Estamos con suerte. Todo lo que tenemos que hacer es añadir #t=03m22s (#t=XXmYYs para XX minutos y YY segundos) al final de la URL.

4. Ocultar el buscador del reproductor

searchbar

La caja de búsqueda aparece cuando nosotros pasamos el mouse sobre un vídeo embebido. Para ocultarla debemos añadir ‘&showsearch=0′ a la url del Embed.

5. Embeber solo una parte del vídeo

skipsecs

Solo añadimos ‘&start=30′ para omitir los primeros 30 segundos del vídeo. En general podemos modificar el valor después de start= por el número de segundos que queremos saltarnos. (Lee también Cómo embeber una parte de un vídeo en YouTube)

6. Auto reproducir un vídeo embebido

Normalmente, cuando embebemos un vídeo de YouTube y cargamos la página, el reproductor se carga y espera a que nosotros pulsemos el botón de play. Podemos hacer que el reproductor automáticamente corra el vídeo añadiendo el parámetro ‘&autoplay=1′ a la URL del código embed.

7. Repetir un vídeo embebido

Añadiendo el parámetro ‘&loop=1′ podemos hacer que el vídeo se reproduzca otra vez, sin la intervención del usuario, cuando el vídeo llega a su fin.

8. Deshabilitar los vídeos relacionados

Deshabilitar los videos  relacionados

Si no te gustaría publicar los vídeos de otros en tu página web, podemos deshabilitar la opción de vídeos relacionados. Sólo añadimos el parámetro ‘&rel=0′ al final de la URL del código embed y listo, los vídeos sugeridos ya no aparecerán.

9. Ver vídeos inaccesibles en nuestro país

Algunos vídeos están disponibles únicamente en ciertas partes del mundo. Tu dirección IP es usada para determinar la ubicación y luego permitir o denegar el acceso al vídeo. Cambia la url de http: //www.youtube.com/watch?v= a http: //www.youtube.com/v/.

Relacionado: YouTube discriminando países

10. Descargar Vídeos

Este no es exactamente un truco de youtube, pero es sencillo para descargar vídeos. Sólo debemos cambiar youtube por kickyoutube en la url del vídeo y la página de kickyoutube.com nos mostrará el enlace para descargar el vídeo que estábamos viendo.

¿Conocen algún otro truco o hack con la URL de YouTube? No olviden comentarlo!

Relacionado: Bajar vídeos de YouTube en distintos formatos

Vía | makeuseof



Fuente:
Link

Introducción a AMFPHP AS3 + PHP5

AMFPHP es una implementación en PHP, gratuita y de código abierto del AMF (Action Message Format), el cual es un formato binario basado en SOAP. AMF permite la serialización binaria de objetos y tipos nativos de ActionScript 2 y ActionScript 3 para ser enviados a servicios del lado del servidor. AMFPHP permite que aplicaciones realizadas en Flash, Flex y AIR puedan comunicarse directamente con objetos de clases de PHP.

Prácticamente, la forma en la que funciona se resume en que podemos crear clases en PHP, acceder a los métodos de esas clases por medio de Flash, Flex o AIR y obtener los datos retornados por esos métodos. Por ejemplo, podemos crear una clase para conectarnos a una base de datos en MySQL. Esta clase podría contener un método para insertar datos a la base, otro método para generar consultas y obtener en nuestra aplicación de Flash, Flex o AIR los registros regresados por la consulta.

En esta entrada veremos cómo está formado el AMFPHP y cómo acceder a él desde Flash CS3. Para una mejor explicación de cómo acceder a AMFPHP haremos una sencilla clase en PHP la cual no accederá a ninguna base de datos (eso lo dejaremos para nuestro próximo tutorial).

Tutorial

1. Baja el archivo amfphp-1.9.beta.20080120.zip de aquí. El amfphp-1.9 lo podemos usar con ActionScript 3 (Flash CS3, Flex y AIR), mientras que la versión anterior puede ser usada con ActionScript 2.

2. Descomprímelo y ponlo en algún directorio de tu servidor Web, en tu directorio htdocs o www en tu localhost. Si lo deseas, puedes renombrar la carpeta y ponerle AMFPHP1.9.

La estructura del directorio quedaría de la siguiente manera (en mi caso, la carpeta AMFPHP1.9 la puse en la carpeta raíz de mi servidor):

--> root ó carpeta raíz
-->AMFPHP1.9 (D)
--> browser (D)
--> core (D)
--> services (D)
--> gateway.php
--> globals.php
--> json.php
--> phpinfo
--> xmlrpc

Donde (D) indica que se trata de un directorio. Observa la carpeta browser, si accediéramos a él desde el navegador observaremos una aplicación creada en Flex donde nos muestra la lista de servicios que tenemos en AMFPHP, como se muestra en la siguiente liga. Si es la primera vez que accedes al browser, aparecerá la siguiente ventana de configuración:

Imagen 1: Ventana de Configuración de AMFPHP

En esta ventana de configuración deberás asegurarte que la dirección del Gateway es correcta. Después de hacer click en el botón Save te aparecerá la lista de servicios. Por default y cuando todavía no hemos creado ningún servicio nuevo, solamente aparecerá el servicio DiscoveryService. Importante: Cuando tenemos servicios que deben acceder a una base de datos o tratan información importante o crítica, lo mejor será no poner el directorio browser en el servidor. Continuando con nuestra estructura de directorios, como podrás imaginar, todos nuestros servicios (clases en PHP) deberán ir en el directorio services.

3. Vamos a crear una sencilla clase de PHP, la cual simulará las operaciones básicas de una calculadora. Sus métodos serán sumar, restar, multiplicar y dividir. Cada método recibirá como parámetro los dos números sobre los cuales hay que hacer la operación. Nota: Este tutorial es solamente para explicar cómo funciona AMFPHP y cómo podemos acceder a él desde Flash. Es por eso que nuestra clase de ejemplo es muy sencilla y muchos de ustedes dirán que no se requiere de PHP para sumar, restar, multiplicar y dividir dos números =0).
En PHP, al igual que en Flash, el nombre del archivo de una clase deberá tener el mismo nombre de la clase; por lo tanto, crea un nuevo archivo PHP, nómbralo Calculadora.php y guárdalo dentro del directorio services de nuestra carpeta AMFPHP19. Coloca el siguiente código dentro de Calculadora.php:

PHP:


  1. class Calculadora
  2. {
  3. /**
  4. * Suma dos números pasados por parámetro
  5. * @returns Regresa un valor numérico
  6. */
  7. function sumar($numeroA, $numeroB)
  8. {
  9. return ($numeroA + $numeroB);
  10. }

  11. /**
  12. * Resta dos números pasados por parámetro
  13. * @returns Regresa un valor numérico
  14. */
  15. function restar($numeroA, $numeroB)
  16. {
  17. return ($numeroA - $numeroB);
  18. }

  19. /**
  20. * Multiplica dos números pasados por parámetro
  21. * @returns Regresa un valor numérico
  22. */
  23. function multiplicar($numeroA, $numeroB)
  24. {
  25. return ($numeroA * $numeroB);
  26. }

  27. /**
  28. * Divide dos números pasados por parámetro
  29. * @returns Regresa un valor numérico
  30. */
  31. function dividir($numeroA, $numeroB)
  32. {
  33. return ($numeroA / $numeroB);
  34. }
  35. }

  36. ?>

Observa los comentarios antes de cada función; estos comentarios nos dan una descripción de qué es lo que hace cada método y además le estamos indicando qué es lo que nos regresa cada método (@returns). Si bien estos comentarios no son obligatorios, nos ayudarán a recordar en el momento en que queramos modificar el archivo. Además, dentro de la lista de servicios en el browser, cuando seleccionamos alguno de estos métodos se nos mostrará esta descripción (Como prueba, ingresa al navegador, de la lista de la izquierda selecciona la clase Calculadora y posteriormente selecciona de la ventana de la derecha el método dividir. Observarás que antes de los campos de texto para ingresar los números aparece la descripción del método). Ahora ingresa un número dentro del campo de texto $numeroA e ingresa otro número dentro del campo $numeroB, haz click en el botón Call y observa cómo en el área de resultados (Results) se muestra el resultado regresado por el método dividir de nuestra clase Calculadora en PHP.

4. Dentro de nuestra clase podemos utilizar métodos privados, los cuales no podrán ser utilizados desde el navegador de servicios (browser) ni desde nuestras aplicaciones en Flash, Flex o AIR. Esto es útil cuando dichos métodos realizan operaciones importantes o críticas y que requieran de mayor seguridad. Para establecer que un método es privado, bastará con agregarle un guión bajo (_) antes del nombre. Para hacer la prueba, agrega el siguiente código a la clase Calculadora.php (Insértalo antes de la última llave (}) y del tag de cierre de PHP (?>):

PHP:
  1. /**
  2. * Este método es privado y no aparecerá en el browser de servicios
  3. * @returns Regresa la fecha y tiempo del servidor
  4. */
  5. function _esteMetodoEsPrivado() {
  6. $fecha_hoy = date("d/m/Y") . ' ' . date("H:i:s");
  7. return $fecha_hoy;
  8. }

Observa cómo en el código anterior el nombre de la función empieza con guión bajo _, eso quiere decir que se trata de un método privado. El código de este método privado lo que hace es regresarnos la fecha y el tiempo del servidor (por medio del método date).

Desde nuestra clase de PHP podemos acceder a ese método privado por medio de otro método. Para acceder a este método es necesario utilizar la palabra clave $this. A continuación te muestro cómo:

PHP:
  1. /**
  2. * Este método es público y está accediendo a nuestro método privado
  3. * @returns Regresa la fecha y tiempo del servidor
  4. */
  5. function obtenFechaServidor() {
  6. $fecha_hoy = $this->_esteMetodoEsPrivado();
  7. return $fecha_hoy;
  8. }

El método obtenFechaServidor hace un llamado a la función esteMetodoEsPrivado y almacena en la variable $fecha_hoy el valor regresado por el método privado. Este valor es regresado por el método obtenFechaServidor.

Ingresa a nuestro navegador de servicios, selecciona la clase Calculadora y observa cómo el método esteMetodoEsPrivado no aparece dentro de los métodos de esta clase. Ahora haz click en el botón obtenFechaServidor y posteriormente en el botón Call. En el área de resultados (Results) se mostrará la fecha y hora del servidor.

Antes de pasar a la interfaz y al código ActionScript, te dejo el código completo del archivo Calculadora.php

PHP:


  1. class Calculadora
  2. {
  3. /**
  4. * Suma dos números pasados por parámetro
  5. * @returns Regresa un valor numérico
  6. */
  7. function sumar($numeroA, $numeroB)
  8. {
  9. return ($numeroA + $numeroB);
  10. }

  11. /**
  12. * Resta dos números pasados por parámetro
  13. * @returns Regresa un valor numérico
  14. */
  15. function restar($numeroA, $numeroB)
  16. {
  17. return ($numeroA - $numeroB);
  18. }

  19. /**
  20. * Multiplica dos números pasados por parámetro
  21. * @returns Regresa un valor numérico
  22. */
  23. function multiplicar($numeroA, $numeroB)
  24. {
  25. return ($numeroA * $numeroB);
  26. }

  27. /**
  28. * Divide dos números pasados por parámetro
  29. * @returns Regresa un valor numérico
  30. */
  31. function dividir($numeroA, $numeroB)
  32. {
  33. return ($numeroA / $numeroB);
  34. }

  35. /**
  36. * Este método es privado y no aparecerá en el browser de servicios
  37. * @returns Regresa la fecha y tiempo del servidor
  38. */
  39. function _esteMetodoEsPrivado() {
  40. $fecha_hoy = date("d/m/Y") . ' ' . date("H:i:s");
  41. return $fecha_hoy;
  42. }

  43. /**
  44. * Este método es público y está accediendo a nuestro método privado
  45. * @returns Regresa la fecha y tiempo del servidor
  46. */
  47. function obtenFechaServidor() {
  48. $fecha_hoy = $this->_esteMetodoEsPrivado();
  49. return $fecha_hoy;
  50. }
  51. }

  52. ?>

5. Crea un nuevo documento de Flash en Flash CS3 ActionScript 3.0. Cambia las dimensiones del área de trabajo por 300px de ancho y 190px de alto. Renombra la única capa que existe y ponle de nombre Forma. Agrega 3 textos, 3 TextInput(s) y 4 botones de tal forma que tu forma quede similar a la de la imagen:

Imagen 2: Forma de nuestra aplicación

El nombre de instancia de cada uno de los TextInput(s) es (de arriba a abajo):

  • numeroA_txt
  • numeroB_txt
  • resultado_txt

El nombre de instancia de cada uno de los botones es (de arriba a abajo):

  • mas_btn
  • menos_btn
  • por_btn
  • entre_btn

6. Agrega otra capa y ponle de nombre Acciones. Agrega el siguiente código a dicha capa:

Actionscript:
  1. /* Las siguientes librerías son necesarias para hacer las llamadas y conexión a AMFPHP */
  2. import flash.net.NetConnection;
  3. import flash.net.Responder;

  4. /* Dentro de la variable gateway especificamos la URL completa de donde se encuentra nuestro archivo gateway.php. Si estás trabajando en local, es posible que tu URL sea similar a http://localhost/AMFPHP1.9/gateway.php */
  5. var gateway:String = "http://localhost/AMFPHP1.9/gateway.php";
  6. /* Creamos una variable de tipo NetConnection para poder establecer la conexión. Este objeto funcionará como enlace entre el cliente y el servidor */
  7. var conexion:NetConnection = new NetConnection;
  8. /* Establecemos una conexión bidireccional entre el Flash Player y el servidor */
  9. conexion.connect(gateway);
  10. /* Este objeto de clase Responder se encargará de administrar los valores que son regresados por el servidor, ya sea si la operación fue todo un éxito o si hubo un error */
  11. var responder:Responder;
  12. /* Deshabilitamos el campo de texto donde se mostrará el resultado para que sea sólo de lectura */
  13. resultado_txt.enabled = false;

Revisa con atención el código anterior y los comentarios que están insertados en él. Hasta ahora solamente hemos importado las librerías que necesitamos, hemos declarado e instanciado las variables que usaremos a lo largo del programa.

Coloca el siguiente código debajo del anterior. Aquí estamos declarando cuatro métodos que serán llamados dependiendo de si el usuario hizo click en el botón de mas, menos, por o entre. Observa bien que el código de cada uno de estos métodos sólo cambia en la llamada de los métodos de la clase (la última línea de cada método, antes de }), es por eso que sólo comentaré la primera función (suma).

Actionscript:
  1. function suma(evento:MouseEvent) :void {
  2. /* Obtenemos el valor ingresado en cada uno de los campos de texto */
  3. var numeroA:Number = Number(numeroA_txt.text);
  4. var numeroB:Number = Number(numeroB_txt.text);

  5. /* Le especificamos a la variable responder qué métodos debe llamar en caso de éxito (método respuesta) o en caso de error (método error) */
  6. responder = new Responder(respuesta, error);

  7. /* Invocamos, por medio del método call, al método sumar que se encuentra en la clase Calculadora (Calculadora.sumar). El segundo parámetro del método call es nuestro objeto de la clase Responder (el que se encargará de gestionar los valores obtenidos de dicha llamada. Por último, le pasamos como cuarto y quinto parámetro los dos números que deberá recibir la función sumar. */
  8. conexion.call("Calculadora.sumar", responder, numeroA, numeroB);
  9. }

  10. function resta(evento:MouseEvent) :void {
  11. var numeroA:Number = Number(numeroA_txt.text);
  12. var numeroB:Number = Number(numeroB_txt.text);

  13. operacion_mc.gotoAndStop("menos");
  14. responder = new Responder(respuesta, error);

  15. conexion.call("Calculadora.restar", responder, numeroA, numeroB);
  16. }

  17. function multiplicacion(evento:MouseEvent) :void {
  18. var numeroA:Number = Number(numeroA_txt.text);
  19. var numeroB:Number = Number(numeroB_txt.text);

  20. operacion_mc.gotoAndStop("por");
  21. responder = new Responder(respuesta, error);

  22. conexion.call("Calculadora.multiplicar", responder, numeroA, numeroB);
  23. }

  24. function division(evento:MouseEvent) :void {
  25. var numeroA:Number = Number(numeroA_txt.text);
  26. var numeroB:Number = Number(numeroB_txt.text);

  27. operacion_mc.gotoAndStop("entre");
  28. responder = new Responder(respuesta, error);

  29. conexion.call("Calculadora.dividir", responder, numeroA, numeroB);
  30. }

Después del código anterior solamente nos faltan los métodos respuesta y error, además de las acciones de cada uno de nuestros botones:

Actionscript:
  1. /* En caso de éxito tras ejecutar el método call, esta función es llamada pasándole como parámetro un objeto con el resultado regresado. Este resultado lo mostraremos dentro del TextInput resultado_txt. */
  2. function respuesta(resultado:Object):void {
  3. resultado_txt.text = String(resultado);
  4. }

  5. /* En caso de error tras ejecutar el método call, esta función es llamada pasándole como parámetro un objeto con el error generado. Este error lo desplegaremos dentro de un trace. */
  6. function error(error:Object):void {
  7. trace("Error: " + error.description);
  8. }

  9. /* Establecemos las acciones de nuestros botones */
  10. mas_btn.addEventListener(MouseEvent.CLICK, suma);
  11. menos_btn.addEventListener(MouseEvent.CLICK, resta);
  12. por_btn.addEventListener(MouseEvent.CLICK, multiplicacion);
  13. entre_btn.addEventListener(MouseEvent.CLICK, division);

A continuación puedes ver el SWF funcionando. A este archivo le añadí un campo de texto dinámico en el lado inferior derecho en el cual muestro el resultado de hacer una llamada al método obtenFechaServidor de nuestra clase Calculadora. No olvides bajar los archivos de este tutorial que se encuentran al final de esta entrada.



Descargar Archivo


Fuente:
LINK