Apolline & Léon, la sorcière des Tuileries

Livres 3 Commentaires »

apollineetleonApolline et Léon sont curieux, courageux,
inventifs et attachants. Ils nous font vivre leurs
aventures quotidiennes peu banales.

Le premier épisode « La sorcière des Tuileries »
se déroule aux Jardins des Tuileries à Paris.
Les deux enfants sont intrigués par une vieille dame
aux allures de sorcière.
Ils décident de la suivre discrètement…


Par Avant Goût Studios : Développé en Flash / Air et destiné aux tablettes tactiles et mobiles (iOS, Android et Blackberry Playbook), le livre s’adresse aux enfants de 3 à 8 ans.

Dans chacune des pages du livre, le jeune lecteur est invité à lire, écouter et jouer.
Il peut ainsi faire bouger les nuages, jouer avec un ballon, donner du pain aux pigeons, jouer de la musique…

L’idée est interessante, et le support tablette est à mon avis tres adapté aux enfants. Avant-Goùt a réalisé intelligemment cette BD Interactive, nous attendons maintenant la suite ;)

Mots-clefs :, , , , , , , , , , ,
 

Google I/O : Vidéo, Android et Adobe

Android, Flash 1 Commentaire »

Pour ceux qui ne suivent pas l’actualité, Google tient en ce moment des conférences appelées Google Input/Ouput.

Format vidéo Internet

Pour le premier jour de conférence, nous avons eu droit – entre autre – à l’annonce du format vidéo WebM qui – normalement – devrai devenir le standard vidéo libre du net.
La raison de ce nouveau format, c’est que l’utilisation du H.264 est soumise à une licence payante. A cause de cela Firefox ne pouvait pas lire les vidéos H.264…

Android 2.2

Autre nouveauté, concernant Android.
Nous avons eu la confirmation de la nouvelle version Android 2.2 nommé Froyo, qui apporte son lot d’amélioration :

  • Support complet de Flash Player 10.1 et Adobe AIR 2.5
  • 2 à 5 fois plus rapide que les anciennes version grâce à un nouveau compilateur Dalvik JIT
  • Navigation internet 2 à 3 fois plus rapide grâce à un nouveau moteur Javascript
  • Installation des applications sur la carte SD possible en natif
  • Mise à jour automatique des applications installées à partir du Market

Pour ceux qui développent pour Android, la version 2.2 du SDK est disponible.

Google TV

Pour le coups, je ne vais pas m’étendre dessus, je préfère rediriger vers de l’information bien plus précise.
Vous pouvez donc aller faire un tour sur le 20minutes : HIGH-TECH – Via Android et un processeur Intel, Google veut marier la télé et le Web. Tout le Web…

Adobe

A cette occasion, Adobe en a profité pour ouvrir l’accès à la Bêta du Player Flash 10.1 pour Android et à la prerelease de Adobe AIR pour Android.

Alors que Adobe AIR peut s’installer sur Android 2.1, FP 10.1 doit être installé sur Android 2.2.
C’est dommage car très – très – peu de gens disposent de la nouvelle version Android Froyo, mais cela annonce aussi que Google ne devrai pas tarder à mettre à jour les terminaux ;)

Mots-clefs :, , , , , , ,
 

Récursion infinie en Flash

Flash 1 Commentaire »
public function fooLoop () : void
{
   //Pre traitement
   fooLoop ();
   //Post traitement
}

Voici le corps d’une fonction récursive.

Lorsque la pile est pleine, une jolie erreur du type StackOverFlowError est déclenchée.

Ce qui est intéressant de voir, c’est le comportement du Player et des navigateurs lorsque l’on traite cette erreur pour relancer la fonction récursive.

Voici le code utilisé :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
	layout="absolute">
	<mx:Script>
		<![CDATA[
			private function hack () : void
			{
				hack ();
			}
 
			private function click () : void
			{
				try
				{
					hack ();
				}
				catch (e: Error)
				{
					click();
				}
			}
		]]>
	</mx:Script>
	<mx:Button click="click ()" label="Nuked !" />
</mx:Application>

Avec Windows, en utilisant IE le navigateur monte en charge en utilisant la mémoire. Ce qui a pour conséquence logique de remplir le fichier d’échange. Une fois que la mémoire disponible est sèche, un mécanisme que je n’explique pas libère de la mémoire et le script continu son exécution.

Contrairement à Firefox qui après 400Mo d’utilisation mémoire, se positionne en « Ne réponds pas… » et se freeze de lui même.

Si vous voulez voir ce que cela donne, voici l’application.
Pensez à surveiller l’utilisation de votre mémoire ;)

This movie requires Flash Player 9

L’interet

Outre le fait de pouvoir faire joujou, ce script peut-être intéressant pour réaliser des traitements récursifs qui sont justement trop importants.
En, effet, vous pouvez le combiner à une variable statique pour continuer le traitement lorsque l’erreur de débordement est déclenchée.

Mots-clefs :, , ,
 

Flash – Restreindre l’instanciation d’une classe par un seul objet

AIR, Flash, Flex 4 Commentaires »

Comment restreindre l’instanciation d’une classe à une autre classe.

Voici une idée complètement « crazy » au quelle je vais apporter une solution à travers ce billet.
Nous allons utiliser un principe connu par de nombreux framework Web qui permet d’assurer la validité d’un formulaire: Le jeton !

L’intérêt étant de combiner cela avec le pattern Factory.

public class Master
{
	private static var _jeton	: Number	= -1;
 
	public function Master()
	{
	}
 
	public static function createSlave () : Slave
	{
		var _tmpSlave	: Slave;
 
		_jeton		= Math.random() * 500;
		_tmpSlave	= new Slave (_jeton);
		_jeton		= -1;
 
		return _tmpSlave;			
	}
 
	public static function get jeton () : Number
	{
		return _jeton;
	}
}
public class Slave
{
	public function Slave(_pJeton : Number = 0) : void
	{
		if (Master.jeton !== _pJeton && Master.jeton !== -1)
			throw new Error ("Instanciation obligatoire par Master.createSlave");
	}
}
new Slave (); //throw Error
Master.createSlave (); //Retourne un objet du type Slave
Mots-clefs :, , , , ,
 

[Flash] Convention de nommage – QUID « int & uint »

Flash Aucun commentaire »

Les conventions de nommage font parties de la vie d’un développeur qui souhaite faire du bon boulot.
En effet, cela permet une meilleur compréhension visuelle. Ce qui est pratique pour détecter certains problèmes évidents.

Bref, la convention de nommage concernant les classes est celle-ci :

  • 1ère lettre en majuscule
  • Mélange de minuscule, majuscule avec la première lettre de chaque mot en majuscule
  • Donner des noms simples et descriptifs
  • Éviter les acronymes : hormis ceux commum (XML, URL, HTML, …)

Analyse du contexte Flash

var _monText : String = "Hello world";
var _monNombre : int = 42;
var _monGrandNombre : int = int.MAX_VALUE;

En Flash, il existe deux types int et uint tout deux primitifs comme String ou Number. Ces types ont deux constantes de classe (MAX_VALUE, et MIN_VALUE).

Il s’agit donc de Classes, alors pourquoi la convention de nommage n’a pas été respectée ?

Après une recherche – très rapide grâce aux membres de mediabox – il en ressort que int et uint appartient à Number.

Si on analyse le code ci-dessous, on peut se rendre compte que le constructeur d’une variable de type int ou uint est Number.

var n_num: Number = 12.3;
trace(n_num["constructor"]); // [class Number]
 
var n_int: int = 12;
trace(n_int["constructor"]); // [class Number]
 
var n_uint: uint = 12;
trace(n_uint["constructor"]); // [class Number]
 
trace(n_num["constructor"] == n_int["constructor"]); // true
trace (typeof (n_num) + " " + typeof (n_int) + " " + typeof (n_uint)); //number number number

Grâce à cette démonstration par le code, nous pouvons constater que Flash respect bien la convention de nommage sur les classes, car int et uint ne sont que de « simples » appels à Number.

Maintenant, QUID de la gestion mémoire ?

PS: Autre blog, autre temps, troyworks s’est posé la même question sous une autre forme. Assez perturbant tout cela.

Mots-clefs :, , , , ,
 
Designed by NattyWP Wordpress Themes.
Images by desEXign.