Aller au contenu | Aller au menu | Aller à la recherche

mercredi 24 janvier 2007

SWFAddress : Le bouton back is back

Oh que voilà une petite lib qui déboite (de thon) : SWFAddress !

Ca permet tout simplement de gérer en Flash (8 et +, ExternalInterface powered...) :

  • Le bouton BACK du navigateur
  • La réécriture d'URL dynamique
  • Le retour direct à une page

L'intégration est très simple : il suffit d'ajouter un js par dessus SWFObject, et en Flash d'utiliser une méthode SWFAddress.setValue("blablabla") pour stocker une valeur et l'évènement SWFAddress.onChange() pour capter les changements

Attention personnellement j'ai juste un peu galeré sous IE car mon HTML (et pas xHTML) ne lui plaisait pas, mais en nettoyant un peu façon xHTML, tout marche bien finallement.

Déniché par Thomas

[update]
La version 1.1 est sortie. Si vous voulez voir le binz en action, je m'en suis servi pour un site pro : Cuisines Teisseire.
[/update]

lundi 8 janvier 2007

Variable membre et réference

Encore une petite subtilité qui m'a fait arracher quelques cheveux cet après midi, et comme je suis pour la paix des cuirs chevelus, je vous la livre.

class Test {
	public var tab1:Array;
	public var tab2:Array = new Array();
	
	function Test () {
		this.tab1 = new Array()
	}
}

Dans cette classe, j'ai 2 variables membres tab1 et tab2; la diffèrence étant que tab1 est instanciée dans le constructeur et tab2 dans la définition de la classe (c'est pratique parfois)
Et la mauvaise surprise c'est qu'instancié de la sorte, le tab2 de chaque instance est en réalité une réference à un tableau instancié dans la classe, commun à toutes les instances de la classe.
Avec ce test :

var a:Test = new Test();
a.tab1.push(1);
a.tab2.push(1);

var b:Test = new Test();
b.tab1.push(2);
b.tab2.push(2);

trace ("a.tab1: " + a.tab1);
trace ("a.tab2: " + a.tab2);
trace ("b.tab1: " + b.tab1);
trace ("b.tab2: " + b.tab2);

voilà ce qu'on obtient en sortie :

a.tab1: 1
a.tab2: 1,2
b.tab1: 2
b.tab2: 1,2

Attention donc quand on veut donner une valeur initiale à des variables membres de type Array ou Object...

mardi 2 janvier 2007

AS3 Connecter un Joystick analogique

Avec l'introduction des sockets en AS3 il y'a vraiment moyen de s'amuser, c'est une passerelle de communication extrêmement souple, l'idée est de connecter un joystick analogique au player 9, des logiciels existent dèjà permettant de mapper les touches du joystick au clavier puis de faire une detection par la classe Key, ici nous obtenons des valeurs oscillant entre -100 et 100 par exemple, c'est vous qui choisissez l'amplitude, pratique pour des mouvements de caméra ou autres déplacements.

J'ai developpé une application "Flash Joystick Controller" permettant de gérer les inputs du joystick en DirectX, ces entrées sont ensuite envoyées à l'animation Flash connectée en tant que client par la classe Socket, un ByteArray est envoyé contenant l'état du joystick, les valeurs X et Y du pad mode analogique activé ou non puis les états des boutons, l'idée serait ensuite de livrer une API permettant d'appeler des méthodes déclenchant un comportement sur le joystick par exemple la vibration ou assigner les touches etc, bien sûr ceci est une expérimentation, histoire de jouer avec l'AS3 :)

Une vidéo et les sources sont disponible sur bytearray.org, pour vous donner une idée si vous n'avez pas de joystick sous la main :)