Et boum !

12/12/2007 un commentaire

Un petit crash du player 9 !

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package net.tynambule.exp {
	import flash.display.MovieClip;
	import flash.display.LoaderInfo;
	import flash.display.Sprite;
	import flash.net.URLRequest;
	import flash.events.Event;
	import flash.display.Loader;
	[SWF(backgroundColor="#ffffff", frameRate="250", width="100", height="100")]
	public class MovieClipSpriteTest extends Sprite
	{
		public function MovieClipSpriteTest()
		{
			var l : Loader = new Loader();
			l.contentLoaderInfo.addEventListener(Event.INIT, onLoadInit);
			// Un SWF Flash 9/AS3 avec "Document class" défini à "MobileSprite"
			l.load(new URLRequest("swfexterne.swf"));
		}
		private function onLoadInit(e : Event) : void
		{
			var MobileSprite : Class = (e.target as LoaderInfo).applicationDomain.getDefinition("MobileSprite") as Class;
			var instance : MovieClip = new MobileSprite() as MovieClip;	// KA-BOOM
			this.addChild(instance);
		}
	}
}

Ce code fonctionne très bien si l’on utilise l’option « Linkage » d’un clip dans la bibliothèque, mais crash lamentablement si on place directement nos éléments sur la scène et que l’on défini une « Document class ». À noter que c’est l’instanciation de la classe récupérée qui foire, et non pas sa récuperation. Si l’on fait un describeType sur MobileSprite dans le code ci-dessus avant de créer l’instance, le retour est normal, il s’agit bien d’une classe qui étend bien MovieClip.

C’est pô bô. Allez, salut.

Categories: Code Tags: ,

Wide et highlighté !

11/12/2007 Aucun commentaire

Le blog est désormais plus large.

Ouais, à force, le format « timbre poste » en largeur, c’était pas forcément nécessaire. Ça augmente un peu la lisibilité du tout, il me reste un truc à faire au sujet des listings qui sont encore pas top à la lecture.

Allez, salut !

EDIT : Et en plus, maintenant, j’ai remplacé l’ancien highlighter par un nouveau, celui d’Alex Gorbatchev que l’on trouve ici : http://code.google.com/p/syntaxhighlighter/

Tout est en JS, et c’est vachement puissant.

Categories: Hors sujet Tags:

Astro (Flash Player 10) : AS3, ECMA4

10/12/2007 Aucun commentaire

Astro, le nom de code du prochain player Flash (le dixième), ne cesse de se découvrir. On en est désormais certains, l’AS3 restera en vigueur pour cette release. L’AS4 reste à l’horizon, mais lointain. En revanche, certains ajouts sont faits à la structure du langage pour se conformer au standard ECMA-232 Rev 4, et entre nous, ça dépote.

Les tableaux typés

1
2
3
4
5
// Crée un tableau où tous les éléments doivent être de type String
var typedArray:[String] = new [String]("Pomme", "Poire", "Banane");
 
// Alternative en variable anonyme :
["Pomme", "Poire", "Banane]:[String];

Les génériques typés

1
2
3
4
5
6
7
8
9
10
11
// Crée un objet générique avec trois propriétés typées
{x:100, y:150, z:50}:{x:Number, y:Number, z:Number};
 
// Défini un type d'objet générique type
Point3D = {x:Number, y:Number, z:Number};
 
// Et hop, on utilise ce type générique
var myPoint:Point3D = new Point3D();
myPoint.x = 100;
myPoint.y = 150;
myPoint.z = 50;

L’opérateur ‘like’

1
2
3
4
5
// Retourne vrai, car ces deux objets ont des propriétés communes (x, y), ainsi que d'autres points communs
trace(instanceOfSprite like instanceOfMovieClip);
 
// Retourne également vrai, même si les deux classes n'ont aucun parent commun !
trace(instanceOfSprite like instanceOfPoint);

Les types mixtes

1
2
3
4
5
6
7
// Définition d'un type acceptant à la foi les valeurs de types Number et String
type MixedType = (Number, String);
 
// Petit test :
var mt1:MixedType = "Pomme"; // Fonctionne correctement
var mt2:MixedType = 12; // Fonctionne également
var mt3:MixedType = {x: 12, y: 15}; // Erreur de compilation, ni Number ni String !

Espérons que tout ceci rentre dans le planning d’Adobe pour Astro, sans quoi il va falloir être très patient pour l’AS4… Allez, salut !

Categories: Code Tags: ,

La métadonnée Embed en AS3

06/12/2007 3 commentaires

Il y a peu, le monde merveilleux de l’ActionScript 3 s’est ouvert à moi. Même si certaines choses sont un peu déroutantes, ayant parcouru un très long chemin en AS2 (raah, l’absence de constructeurs private/protected! Enfoirés de l’ECMA, laissez tomber cet héritage par prototype à la con!), certaines des nouvelles fonctionnalités tuent carrément.

Un truc qui m’avait toujours gonflé en AS2, c’est la liaison entre les assets et le code. Je codais sous Eclipse en compilant avec MTASC, et je modifiais mes assets sous Flash. Seulement, histoire de pouvoir les associer à une classe, je devais, au choix, mettre ma classe sous Flash (et me taper une compilation AS par Flash d’environs 30 minutes), ou faire une grosse méthode bourrine à coup de Object.registerClass.

C’était, avouons-le, pas super beau. Mais désormais, en AS3, les gens d’Adobe ont rajoutés des métadonnées merveilleuses qui permettent de faire ça tout seul, et bien plus encore.

Lire la suite…

Categories: Code Tags: , ,

Amazon’s Mechanical Turks : Connectez vous à un négrier via WSDL

30/11/2007 un commentaire

Aujourd’hui, j’ai appris l’existence d’un web-service fourni par Amazon qui m’a fait gerber.

Ca s’appelle « Amazon.com: Mechanical Turk », et le principe est simple: vous avez des tâches ne nécessitant pas de qualification mais étant difficilement automatisable à effectuer. Par exemple, sur un grand nombre d’images photographiques, vous devez pour une raison quelconque déterminer lesquelles contiennent un être humain et lesquelles n’en contiennent pas.

S’il fallait écrire un logiciel pour le faire, il vous faudrait une armée d’ingénieurs en recherche et développement, et le résultat final serait dépendant en grande partie de la qualité des photos, et le nombre d’erreurs serait forcément très élevé. Bref, ça ne serait pas rentable de le faire automatiser. À l’inverse, s’il fallait payer de la main d’œuvre pour le faire, la qualité finale du service serait bien plus élevée, mais le cout resterait élevé.

C’est là que MTurk (c’est son petit nom) intervient. Il s’agit d’un service web vous permettant de créer des HITs (Humain Intelligence Tasks), d’y associer un prix (qui se veut dérisoire), et de les transmettre à des Workers – comprendre, à une armée d’esclave employés par Amazon dans des pays sous-développés à un salaire inhumain. Ces Workers effectueront votre sale boulot dans les temps que vous aurez déterminés, vous payerez la somme que vous avez déterminé en fonction du prix par HITs, Amazon prélèvera une commission dessus, et vous recevrez vos résultats sous forme de fichier XML dans les délais choisis par vous.

Merveilleux. À cela s’ajoute des outils de gestion des ressources humaines : un Worker ne vous satisfait pas? Bloquez le. Il ne travaillera plus jamais pour vous. Un autre fait du bon boulot ? Donnez lui un bonus, un dollar ou quelques miettes de pain, après tout, il faut rester humain, n’est-ce pas? Allez, salut.

Sources: Amazon.com, Mturk.com.

Categories: Conception Tags: