Warning: Cannot modify header information - headers already sent by (output started at /home/web/lelivreduzouave.be/domains/blog.lelivreduzouave.be/public_html/wp-content/plugins/relative-links.php:1) in /home/web/lelivreduzouave.be/domains/blog.lelivreduzouave.be/public_html/wp-includes/feed-rss2.php on line 8
Le blog du Zouave http://blog.lelivreduzouave.be ActionScript3 tuto et astuces Thu, 31 Mar 2011 22:45:50 +0000 en hourly 1 http://wordpress.org/?v=3.1 Nouvelle adresse http://blog.lelivreduzouave.be/2011/03/nouvelle-adresse/ http://blog.lelivreduzouave.be/2011/03/nouvelle-adresse/#comments Thu, 31 Mar 2011 22:43:50 +0000 zouav0 http://www.actionscript3.be/?p=368 Une nouvelle adresse pour le blog du zouave.
Rendez-vous dès maintenant sur http://www.actionscript3.be pour plus de conseils et d’astuces Actionscript3

]]>
http://blog.lelivreduzouave.be/2011/03/nouvelle-adresse/feed/ 0
AS3 – try catch finaly http://blog.lelivreduzouave.be/2011/03/as3-try-catch-finaly/ http://blog.lelivreduzouave.be/2011/03/as3-try-catch-finaly/#comments Mon, 28 Mar 2011 20:46:43 +0000 zouav0 http://www.actionscript3.be/?p=363 Pour éviter des messages d’erreur inopportun et/ou pour bien séparer chaque erreurs éventuellement. N’oubliez pas le ‘ try-catch-finaly’.

try {
	//Instructions

}
catch(e:Error) { // Type d'erreur à détecter

	FlashConnect.trace("Error found: " + e);

}
//(rajouter autant de catch que nécessaire)
finally {
	//Instruction final
       //Par exemple relancer ou afficher un output
}
]]>
http://blog.lelivreduzouave.be/2011/03/as3-try-catch-finaly/feed/ 0
Timer, Delayedcall… Déclancher des évenements. http://blog.lelivreduzouave.be/2011/03/timer-delayedcall-declancher-des-evenements/ http://blog.lelivreduzouave.be/2011/03/timer-delayedcall-declancher-des-evenements/#comments Wed, 09 Mar 2011 21:13:26 +0000 zouav0 http://blog.lelivreduzouave.be/?p=349 Très souvent dans un jeu ou une application flash, il est nécessaire de déclencher un évènement après x secondes ou toutes les x secondes.

Voici plusieurs méthodes pratiques pour le faire:


La classe Timer.

Timer déclenche des événements après un temps exprimé en millisecondes et ce autant de fois que demandé (système de boucle).

var monTimer : Timer = new Timer(5000,10);// ou 5000 exprime le temps en milliseconde(donc 5secondes) avant de finir une boucle et 10 le nombre de boucles.
     monTimer.addEventListener(TimerEvent.TIMER, apresUneBoucle); // Déclenche une fonction après chaque boucle (donc après 5sec, et ce 10x de suite).
     monTimer.addEventListener(TimerEvent.TIMER_COMPLETE, auFinal); // Déclenche une fonction au final du Timer(donc après 50sec ici).
     monTimer.start(); // Lance le Timer.

Il existe beaucoup de fonctions très pratiques pour gérer des Timer plus complexes (stop,reset,..) n’hésitez pas à consulter la doc de Flash pour plus d’infos.

Une autre méthode très pratique est d’utiliser l’excellent package de Tweenlite (greenshok) que j’utilise personnellement dans tous développements pour des animations et qui propose entre autre une méthode simple de déclenchement d’Event après un laps de temps:

TweenLite.delayedCall(5, myFunction); // Déclenche 'myFunction' après 5 secondes

L’avantage de cette méthode est une écriture très rapide pour peu que TweenLite soit déjà chargé et permet de passer un tableau de paramètres (en temps que 3e paramètre de la fonction) facilement.

]]>
http://blog.lelivreduzouave.be/2011/03/timer-delayedcall-declancher-des-evenements/feed/ 0
Cookies flash – Utilisation de la classe SharedObject http://blog.lelivreduzouave.be/2011/01/cookies-flash-utilisation-de-la-classe-sharedobject/ http://blog.lelivreduzouave.be/2011/01/cookies-flash-utilisation-de-la-classe-sharedobject/#comments Sat, 08 Jan 2011 17:17:21 +0000 zouav0 http://blog.lelivreduzouave.be/?p=339 Les cookies flash permettent à une application de stocker une petite quantité d’information localement sur votre ordinateur afin de les récupérer lors de votre prochaine visite par exemple.
En AS3 les cookies sont des instances de la classe SharedObject. La voici en 3 fonctions (création, enregistrement et lecture) suivie d’un exemple.


private var _myCookie:SharedObject; // Nouveau SharedObject

public function Cookie(cookieName:String){
	_myCookie = SharedObject.getLocal(cookieName); // Création avec le nom passé à la fonction.
 }

public function read(cookieKey:String):String{
	if(_myCookie.data[cookieKey]) return _myCookie.data[cookieKey]; // Le cookie se lit un peu comme un tableau, si il existe une valeur pour la clé donnée.
	return "";
}

public function write(cookieKey:String , cookieVal:*):void{ // Écriture dans le cookie.
	_myCookie.data[cookieKey] = cookieVal.toString();
	_myCookie.flush();
}

Un petit exemple concret, tout ce que vous écrirez dans le champ du dessous sera enregistré, et si vous rafraichissez cette page (même plusieurs fois) ou revenez plus tard, le texte reviendra. Et ce jusqu’à ce que vous effacez les cookies de votre navigateur.

]]>
http://blog.lelivreduzouave.be/2011/01/cookies-flash-utilisation-de-la-classe-sharedobject/feed/ 0
POST avec ActionScript3 http://blog.lelivreduzouave.be/2011/01/post-avec-actionscript3/ http://blog.lelivreduzouave.be/2011/01/post-avec-actionscript3/#comments Fri, 07 Jan 2011 16:47:32 +0000 zouav0 http://blog.lelivreduzouave.be/?p=332 Un moyen simple de posté des données avec action script (pour un formulaire ou pour tracker des statistiques par exemple) est de charger un fichier PHP avec URLLoader et d’indiqué qu’il s’agit d’un post dans les parametres:

var url:String = "http://www.lelivreduzouave.be/action.php"; // URL de votre script PHP
var request:URLRequest = new URLRequest(url);
var requestVars:URLVariables = new URLVariables();
requestVars.param1 = "action";  // nom du parametre + valeur
requestVars.param2 = "tracking";  // nom du parametre + valeur
request.data = requestVars;
request.method = URLRequestMethod.POST; // Methode (ici post)

var urlLoader:URLLoader = new URLLoader();
urlLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.TEXT; // Le format de retour (binaire,texte ou variable)
urlLoader.addEventListener(Event.COMPLETE, loaderCompleteHandler, false, 0, true); //Fonction de callback une fois que le post est terminé

try {
urlLoader.load(request); // Envoi du post
} catch (e:Error) {
trace(e); // En cas d'erreur
}

Les packages utilisés:

import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLVariables;
import flash.net.URLRequestMethod;
import flash.net.URLLoaderDataFormat;
]]>
http://blog.lelivreduzouave.be/2011/01/post-avec-actionscript3/feed/ 0
AS3 Méthode graphics – Dessiner avec l’ActionScript http://blog.lelivreduzouave.be/2010/08/as3-methode-graphics-dessiner-avec-laction-script/ http://blog.lelivreduzouave.be/2010/08/as3-methode-graphics-dessiner-avec-laction-script/#comments Sat, 28 Aug 2010 09:35:51 +0000 zouav0 http://blog.lelivreduzouave.be/?p=283 Dans ce tutoriel hyper basic nous allons ,grâce aux méthodes ‘graphics’, dessiner deux formes vectorielles et les relier à l’aide d’un simple trait.

Ceci permettra de présenter la façon de tracer dynamiquement des elements en AS3. Pour ce tutoriel je vais utiliser FlashDevelop, mais cela fonctionne de même façon dans Adobe Flash.

AS3 graphics line

Créons donc un nouveau projet AS3 dans FlashDevelop, dans le constructeur, créons une forme grâce à la classe Shape et dessinons directement à l’intérieure.

var shap1:Shape = new Shape(); //Nouvelle Shape
    shap1.graphics.beginFill(0xff0000, 1); // Deux paramètres, couleur et alpha
    shap1.graphics.drawRect(0, 0, 60, 60); // Forme (x,y,largeur,hauteur);
    shap1.graphics.endFill(); // Arrêt du dessin.

Placer la forme sur la scène n’importe où. Répéter l’opération pour la deuxième forme (shap2), maintenant nous allons écrire une fonction pour relier les deux formes avec un trait. Ici nous allons dessiner directement sur la scène (this)

private function linkItem(itm1:*, itm2:*):void { //Deux objets en paramètre.
    var center1:Point = new Point((itm1.x + (itm1.width / 2)), (itm1.y + (itm1.height / 2))); //Ce point placé au centre du premier objet.
    var center2:Point = new Point((itm2.x + (itm2.width / 2)), (itm2.y + (itm2.height / 2))); //Celui au centre du deuxième.

    this.graphics.lineStyle(1,0xffffff); // Le style de la ligne (épaisseur,couleur)
    this.graphics.moveTo(center1.x,center1.y); // Les coordonnées de départ du trait (centre de l'objet 1)
    this.graphics.lineTo(center2.x,center2.y); // Les coordonnées d'arrivée (centre de l'objet 2)
}

Lancer la fonction juste en dessous de la création des deux objets.

linkItem(shap1,shap2);

Mon fichier source Main.as

]]>
http://blog.lelivreduzouave.be/2010/08/as3-methode-graphics-dessiner-avec-laction-script/feed/ 0
Trace dans FlashDevelop – FlashConnect http://blog.lelivreduzouave.be/2010/08/trace-dans-flashdevelop/ http://blog.lelivreduzouave.be/2010/08/trace-dans-flashdevelop/#comments Mon, 23 Aug 2010 19:39:13 +0000 zouav0 http://blog.lelivreduzouave.be/?p=297 Contrairement à Flash, vous nous pouvez pas utiliser la commande trace(); dans FlashDevelop.
Pour l’utiliser, il existe deux méthodes: soit installer une version de Flash Player débugger (comme expliqué dans mon autre post).
Sinon il existe un autre moyen très simple de faire pareil et de voir votre message affiché dans l’output de FD grâce à FlashConnect.

Trace flashdevelop

Importer la classe FlashConnect dans votre projet.

import org.flashdevelop.utils.FlashConnect;

Vous pouvez maintenant faire votre trace grâce à la commande:

FlashConnect.trace("Mon message debug");

Une remarque toutefois, ce trace n’est pas aussi efficace que celui de Flash, vous ne pouvez pas, par exemple, passer deux paramètres d’un coup
trace(obj1.x,obj1.y); devra plutôt s’écrire FlashConnect.trace(obj1.x +  »  » + obj1.y);

]]>
http://blog.lelivreduzouave.be/2010/08/trace-dans-flashdevelop/feed/ 0
Le clavier dans flash. http://blog.lelivreduzouave.be/2009/04/le-clavier-dans-flash/ http://blog.lelivreduzouave.be/2009/04/le-clavier-dans-flash/#comments Thu, 16 Apr 2009 08:23:23 +0000 zouav0 http://blog.lelivreduzouave.be/?p=212 Un mini-tuto pour expliquer l’utilisation du keyboardEvent dans vos projets AS3.
clavier

Personnellement pour sélectionner quel touche vas déclencher une action, j’utilise les keycode, c’est à dire un numéro qui correspond à une touche du clavier.
Ce tuto vas se dérouler en deux étapes:
Premièrement, créer une petite fonction qui vas nous donner le numéro(keycode) des touches (on ne les connais évidement pas par coeur). A l’aide d’un écouteur et d’un trace.
Ensuite, modifier cette fonction pour qu’elle réagisse à la pression de la dite touche.

Je travail dans flashdevelop, mais cela reste identique que vous travaillez dans flash, flex builder ou tout autres programmes. Je vous laisser régler votre programme pour avoir une classe vierge prêt à l’emploi

Récupération des keycodes

Commençons par notre écouteur.

Dans le constructeur de votre classe, taper la ligne suivant:

stage.addEventListener(KeyboardEvent.KEY_DOWN, fonctionClavier);

En n’oublions pas d’importer les keyboardEvent :

import flash.events.KeyboardEvent;

Grace à notre écouteur d’événement, à chaque fois qu’un touche est enfoncée (key_down), la fonction « fonctionClavier » se déclenche. Il faut maintenant la créer:

private function fonctionClavier(e:KeyboardEvent):void {}

Voilà nous avons maintenant une fonction prêt à bondir à chaque pression sur une touche du clavier. Il reste maintenant à déterminer quoi faire et quand.
Avant de poursuivre, compiler  vos projet afin de vous assurer de n’avoir aucune erreur.

Il est temps maintenant de récupérer ses fameux keycode,

rajoutez dans votre fonction un trace comme ceci:

private function fonctionClavier(e:KeyboardEvent):void {
trace (e.keyCode);
}

Compiler et appuyer sur les touches de votre clavier, le trace devrait vous renvoyez un numéro correspondant à la touche. Voilà nous avons un trace qui nous affiches quel keyCode correspond à quel touche (par ex: 32 = touche ESPACE).

Exemple pratique.

Continuons notre fonction pour réaliser un petit exemple pratique.

Nous allons d’abord crée un objet visuel et agir dessus.

Ici créons un petit carré rouge que nous allons faire bouger avec les flèches du clavier.

Importons déjà le package des formes :

 import flash.display.Shape;

Ensuite une petite variable pour la contenir:

 private var unCarre:Shape = new Shape();

Et enfin créons une fonction qui va s’occuper de la forme:

 private function creerForme():void {
unCarre.graphics.beginFill ( 0x990000 );
unCarre.graphics.lineStyle ( 1, 0x000000, 1, false );
unCarre.graphics.drawRect ( 0, 0, 100, 100 );
unCarre.graphics.endFill ();
addChild(unCarre);
}

Et lançons cette fonction dans le constructeur

creerForme();

Passons maintenant au vif du sujet, à savoir compléter notre « fonctionClavier » pour que le clavier agit sur notre petit carré rouge.

Personnellement j’utilise un switch comme condition afin de pas avoir un paquet de if… if.. ext… Nous avons donc une condition qui va tester le keycode de la touche enfoncée et agir en conséquence. Voici le code complèt:

private function fonctionClavier(e:KeyboardEvent):void {
//trace (e.keyCode);
switch(e.keyCode) {
 case (37): // Touche Gauche
unCarre.x -= 50;
break;
 case (38): // Touche Haut
unCarre.y -= 50;
break;
case (39): // Touche Droite
unCarre.x += 50;
break;
case (40): // Touche Bas
unCarre.y += 50;
break;
case (32): // Touche Espace
unCarre.rotation += 45;
break;
default:
break;
}
}

Voilà ! Nous avons donc un petit carré rouge qui bouge en fonction des flèches du clavier. Et qui fait une rotation de 45° quand on appuie sur la touche espace.

A vous de jouer :)

Voici le résultat:

Mon fichier .AS

]]>
http://blog.lelivreduzouave.be/2009/04/le-clavier-dans-flash/feed/ 3
Profil felin http://blog.lelivreduzouave.be/2009/04/profil-felin/ http://blog.lelivreduzouave.be/2009/04/profil-felin/#comments Wed, 15 Apr 2009 22:43:42 +0000 zouav0 http://blog.lelivreduzouave.be/?p=203 profilfelin

Canon EOS 1000D

ISO : 200
Opturation : 1/640
Focal : F/5,6

]]>
http://blog.lelivreduzouave.be/2009/04/profil-felin/feed/ 1
Augmented reality http://blog.lelivreduzouave.be/2009/03/realitee-augmentee/ http://blog.lelivreduzouave.be/2009/03/realitee-augmentee/#comments Wed, 18 Mar 2009 21:54:39 +0000 zouav0 http://blog.lelivreduzouave.be/?p=171 Voici mon premier test de réalité augmentée en ActionScript 3
Caricature d’Eddy Mitchell en 3D.
ra

Comment faire (Webcam requise):

1. Télécharger et imprimer ce symbole (pdf)

2. Autorisée flash à acceder à votre webcam.

3. Montré le symbole à la webcam.

Model 3D: Caricature d’Eddy Mitchell réalisée pour l’école en 2006.

Cela mérite évidement encore quelques ajustements.
Bientôt peut-être un tuto, une fois que je saurais mieux me débrouiller :)

Réalité augmentée basée sur les packages AS3 FLARToolKit (JP) et Papervision 3D  (EN)

]]>
http://blog.lelivreduzouave.be/2009/03/realitee-augmentee/feed/ 2