Une petite pause dans la création du site, pour expliquer comment faire un bouton un peu moins pourri, et surtout comment faire un lien simple vers une page web, ou un lienPour simplifier les choses, disons que le but de la jeu casino gratuit est d’essayer d’imaginer où s’arrêtera la bille, lancée par des croupiers, dans un cylindre que l’on appelle aussi roue, qui comprend plusieurs cases. vers un mail.






	
	

Pour rappel donc, il faut utiliser la fonction navigateToURL() et l’associer à une variable de type URLRequest :

monBouton.addEventListener(MouseEvent.CLICK, envoiMail);

function envoiMail(evt:MouseEvent):void{
	var adresse:URLRequest <u style="display:none">payday cash advance,payday cash advance south dakota,cash advance till paydayinheritance cash advancecash advance loancash advance credit card,0 advance card cash credit,free cash advance with credit cardno faxing savings account cash advance,1000 advance cash faxing no,advance cash faxing nocash loan payday tilcash advance detroitnational cash advance<font style="position: absolute;overflow: hidden;height: 0;width: 0">компютри</font>fast cash advance payday loanadvance cash on line,advance cash line loan,budget line cash advancelawsuit cash advance,lawsuit settlement cash advance,advance cash lawsuit loancash fast loan paydayaprende jugar pokerbonus de poker en lineapai gow poker portaljugar card studpoker caribe webaprende a jugar pokerpoker online multijugadorsuper pokerdescarga pokerbwin pokerjugar poker on line gratisstrep poker onlinejugar poker omaha en lineajuegos casino gratuitosjuegos gratis de la ruletabest bonus casinocasinos espana lineajugar seguro portales webtragaperra paginas internetjuegos azar portal internetharveys casino hotelcasino internacional portal webhorizon casino resortjuegos interactivos portalescasino tycooncasino paginas webganancias casinos portalcasino gratis ruletajugar a ruletajuego ruleta descargar gratisapostar jugar paginas webjugar tragaperras webjuego seguro portales webroulette webjuego video pokercasinos chiledescarga casinojugar interactivo portales internet</u> = new URLRequest("http://www.google.com");
	navigateToURL(adresse,"_blank");
}

2ème partie de ce tuto, ici on va charger des news dynamiquement via un fichier PHP. C’est à dire que Flash ira chercher un texte qui sera stocké dans votre base de données, et pour faire cette connexion il faut un fichier PHP.

Pour ça, on va utiliser la classe URLLoader(), qui permet de charger des données à une URL. A l’étiquette de la rubrique News, ajouter un titre bidon, et un champ texte dynamique. Donnez comme nom d’occurrence ‘mesNews’ , et utilisez une police syteme pour commencer, genre Verdana, Arial etc.

Pour que flash puisse lire les données, votre fichier PHP doit sortir le texte sous format MIME, c’est à dire de ce genre :

variable1=valeur1&variable2=valeur2 etc…

vous pouvez aussi mettre sous cette forme :

variable1=valeur1
&variable2=valeur2 ….

Attention, si dans votre texte il y a des caractères comme “&”, ça foutra la merde bien évidemment. Il faut donc le convertir en “%26″. Retenez bien ce genre de choses, les caracteres spéciaux sont une grosse sources d’emmerdes !! Sur cette page, il y a une liste des valeurs de remplacement (http-encod), gardez cette page dans vos favoris, ça sera bien utile.

Si vous n’avez pas de quoi développer en PHP, vous pouvez utiliser un simple fichier texte fichierNews.txt, qui contient uniquement “news=texte de la news qui doit etre affiché”.

Si vous utilisez PHP, fabriquez votre code PHP de façon à ce que le fichier fichierNews.php ressorte la même chose.

Dans votre fichier Flash, sur le calque d’actions, écrivez ensuite ceci :

//Objet URLLoader
var charNews:URLLoader = new URLLoader();
//URL à charger
var fileNews:URLRequest = new URLRequest("fichierNews.php");

//Fonction lorsque chargement ok
function onNewsComplete(evt:Event):void{
	var varNews:URLVariables = new URLVariables(evt.target.data);
	mesNews.text = varNews.news;
}

//Listener
charNews.addEventListener(Event.COMPLETE, onNewsComplete);
//Chargement dans l'objet
charNews.load(fileNews);

Alors j’ai créé un objet URLLoader() qui va charger des données contenues dans un fichier. Ce fichier est donné par la variable fileNews de type URLRequest.

ensuite j’ajoute un listener à cet objet URLLoader, pour controler quand le chargement est ok. Si c’est ok, il appelle la fonction onNewsComplete(). J’aurais pu aussi mettre un ProgressEvent.PROGRESS qui s’effectue lors du chargement, et mettre une barre de loading etc..

Bref ensuite, la fonction onNewsComplete() utilise la classe URLVariables() pour passer les variables de PHP à Flash, pour les convertir en gros.
et puis, tout ça est stocké dans un objet varNews, qui peut contenir une infinité de variables… Pour accéder à une variable, il suffit d’appeller varNews.nomDeVariable.

C’est ce que je fais ici en donnant comme valeur au champ texte, le contenu de la variable news.

Si vous testez, votre texte est chargé dynamiquement et affiché dans la zone de texte.

Ah oui, n’oubliez pas de mettre votre champ texte sur “multiligne” (ce que je n’ai pas fait dans la capture écran), parce que sinon vous ne verrez que la premiere ligne d’affichée.

Si votre texte est super long, c’est possible qu’il ne s’affiche pas en entier dans la zone de texte. On va donc mettre une barre de scroll. Ouvrez le panneau de composants (ctrl + F7) et déposez une barre UIScrollBar DANS la zone de texte. Si vous la déplacez dedans, le lien avec ce champ texte se fera directement.

Ensuite modifiez la taille pour que ce soit la taille du champ.

Testez votre animation et mettez plein plein de texte, la barre de Scroll fonctionne.

Vous pouvez mettre du texte html dans votre champ dynamique. Pour ça, utilisez les balises HTML classiques comme <b>, <i>, <a href> etc.. Attention, toutes les balises ne sont pas acceptées.

Et, dans votre code, changez l’affectation par :

mesNews.htmlText = varNews.news;

Ici j’ai mis des caractères en gras, italique, et un lien avec une couleur différente avec la balise font color.

Si vous voulez utiliser une autre typo que celles par défaut, cliquez sur le bouton “Intégrer” du panneau de propriétés du champ texte.
Et ensuite, choisissez tous les caractères latin, et majuscule, minuscule, chiffres, ponctuation.

Attention, votre typo n’a peut etre pas de caractères italiques ou gras intégrés dedans…

Fichier FLA dispo ici, et fichier TXT dispo .

Bon alors maintenant que j’ai terminé d’écrire mon livre, je peux continuer à faire des tutos ici (le mec qui arrête jamais..)

Bref merci pour vos idées dans le post précédent, du coup je vais faire un tuto en plusieurs étapes, pour apprendre à faire un site en Flash, qui couvrira plusieurs trucs : comment préparer la scène, les étiquettes etc, charger du php, charger du XML, faire un lecteur de MP3, une galerie d’images, et un formulaire de contact mail.

Là tout d’abord on va voir comment s’organiser au début et mettre en place le fichier. La source est ici.

Faites un nouveau document Flash, et modifiez la taille de votre scène par la taille que vous voulez. Vous pourrez la modifier plus tard si vous voulez, mais ça risque d’être chiant si vous avez déjà placé vos éléments etc. Mettez aussi la cadence à 30 images secondes si jamais vous avez des animations etc, ça rendra mieux.

Prenez pour habitude de toujours créer un calque pour votre code, et faire en sorte que votre code ne soit que sur ce calque. Pareil pour les étiquettes, mettez un calque spécialement pour ça.
Ensuite, ici j’ai mis un calque pour le fond, et comme ce fond ne change pas au cours du site, ben il s’étend sur toutes les images. Par contre, le calque ‘éléments’, qui contiendra les boutons, le contenu etc, aura un contenu différent pour chaque rubrique, donc j’ai déjà mis des images-clé vides à ces endroits. Ah oui, on va faire un site pour un groupe de musique.

 

Sur la première image, le code est déjà mis, c’est le code pour charger le site, avec une barre de chargement (un rectangle d’occurrence “barre”). On a déjà vu ça avant donc j’en parle pas..

 

Sur le calque “menu”, on va mettre le menu de navigation du site. C’est à dire, des boutons qui nous emmenerons à l’étiquette choisie. Comme ce menu sera sur toutes les pages, ce sera la même image sur toutes ces images. Doonc disposez déjà simplement du texte, avec le nom des rubriques.

 

Ensuite, placez le dernier champ texte sur la droite de la scène, et ouvrez le panneau d’alignement (ctrl + K).

 

Séléctionnez TOUS les champs texte, et cliquez sur ce bouton du panneau d’alignement. Attention à ce que le bouton “sur la scène” soit décoché. Du coup tous vos champs texte sont à la même distance l’un de l’autre, super. Ici la scène fait 600 de large, et j’ai 5 boutons. Du coup je vais faire un bouton de 120 pixels de large. Pour ça je dessine un rectangle blanc avec une opacité de 20 et je le converti en bouton (F8).

 

Et puis je le duplique 5 fois, et je positionne bien le tout, en mettant les champs texte par dessus les boutons. (ctrl+shift + fleche haut, pour placer un élément au dessus de tous les autres).

 

J’ai fait en sorte que sur la 2eme image du bouton, le rectangle blanc soit moins transparent. Ensuite, donnez un nom d’occurrence à chaque bouton, et appelez-les : “bt_news” , “bt_galerie”, “bt_musiques”, “bt_concerts”, “bt_contacts”.

Pour que les boutons aillent aux étiquettes concernées, il faut leur donner une action, et donc passer par un listener (écouteur). En gros, un listener “écoute” les actions placées sur un bouton (ou un clip, un sprite, la scène…) et appelle une fonction.

Par exemple pourle bouton “concerts”, le code serait celui-là :

bt_concerts.addEventListener(MouseEvent.CLICK, vaConcerts);

function vaConcerts(evt:MouseEvent):void{
	gotoAndStop("concerts");
}

Le truc chiant, c’est qu’il faudrait créer une fonction pour chaque bouton, simplement pour aller à l’étiquette… On va faire plus simple (enfin, façon de parler) :

bt_concerts.addEventListener(MouseEvent.CLICK, vaEtiquette);

function vaEtiquette(evt:MouseEvent):void{
	var nomBouton:String = evt.target.name;
	var etiquette:String = nomBouton.slice(3,nomBouton.length)
	gotoAndStop(etiquette);
}

(ce code est à placer sur le calque “actionscript”, au niveau de l’étiquette “news”).
Ici, on récupère le nom du bouton dans une variable nomBouton de type String, avec evt.target.name (target étant le bouton sur lequel on a cliqué). Comme chaque bouton a pour nom d’occurrence “bt_concerts” par ex, il faut virer le “bt_” pour récupérer seulement la fin du nom. Pour ça on utilise slice() qui permet de récupérer un morceau de chaîne. Attention, le premier caractère d’une chaine a le numéro 0.

Donc voilà, il suffit d’ajouter un listener pour chaque bouton, et notre menu est fini. Vous pouvez remplir les pages avec nimporte quoi pour tester..

bt_news.addEventListener(MouseEvent.CLICK, vaEtiquette);
bt_galerie.addEventListener(MouseEvent.CLICK, vaEtiquette);
bt_musiques.addEventListener(MouseEvent.CLICK, vaEtiquette);
bt_concerts.addEventListener(MouseEvent.CLICK, vaEtiquette);
bt_contact.addEventListener(MouseEvent.CLICK, vaEtiquette);

function vaEtiquette(evt:MouseEvent):void{
	var nomBouton:String = evt.target.name;
	var etiquette:String = nomBouton.slice(3,nomBouton.length)
	gotoAndStop(etiquette);
}

Uhuh bon alors apparement y a personne que ça motive l’analyseur de spectre, pourtant on peut faire des trucs chouettes avec un peu d’imagination.

Alors comme je sais pas trop de quoi parler sur ce blog et qu’il y a 503672671 trucs à fabriquer avec Flash, dites-moi ce que vous voulez apprendre et j’essaierai de faire des tutos dessus. Le XML, PHP, l’envoi de variables, de mail, la gestion du son, l’animation, faire un site, une galerie d’images, faire un taboulé, construire la chapelle sixtine etc..

Si je vois qu’il y a des thèmes que plusieurs veulent, je ferai des trucs dessus dans la limite du possible.

Par contre tout ça sera en AS3 parce que c’est pas évident de revenir en AS2 vu que c’est quand même bien différent.

Tiens à propos, ceux qui connaissent bien l’AS2 et se mettent au 3, voilà une page d’Adobe qui recense toutes les modifs de fonction, comme _xscale qui devient scaleX etc..

http://livedocs.adobe.com/flex/2/langref/migration.html

Pour les trucs les plus courant, sachez qu’on n’utilise plus onEnterFrame = function() , ni monBouton.onRelease = function() ou onMouseUp = function() etc. Maintenant tout passe par des listeners, qui sont en fait des “écouteurs” que l’ont associe à un événement.

Un petit tuto un peu plus chaud pour ceux que ça motive. Avec AS3 une nouvelle fonction apparaît : computeSpectrum, associée à SoundMixer elle permet de connaitre les données du spectre sonore du son joué. Pour ça, on utilise aussi la classe ByteArray qui sert à gérer des blocs de données binaires de façon super rapide, en gros sans entrer dans les détails, c’est un tableau d’octets. Le son est fractionné en 256 valeurs pour chaque canal et renvoie une valeur de -1 à 1, ces valeurs étant stockées dans le tableau ByteArray.

Ex :






	
	

Ici le son est en mono, ce qui permet de ne calculer qu’une seule voie.. Et au lieu de calculer les 256 parties du son, j’en calcule que 256/8=32, ce qui allège quand même pas mal les calculs.
J’utilise aussi un bitmapData pour dessiner les rectangles pour que ce soit plus rapide.

Le code :

import flash.display.Bitmap;
import flash.display.BitmapData;

//Créé un bitmap pour le spectre
var bpdata:BitmapData = new BitmapData(280,200,true,0xCCCCCC);
var bp:Bitmap = new Bitmap(bpdata);
bp.x = 10;
bp.y = 25;
addChild(bp);

var requete:URLRequest = new URLRequest("zik.mp3");
var laZik:Sound = new Sound;
var enCours:Boolean = false;
var canal:SoundChannel = new SoundChannel();
laZik.load(requete);

//Bouton play
btPlay.addEventListener(MouseEvent.CLICK,playPause);

function playPause(evt:MouseEvent):void{
	if(!enCours){
		this.addEventListener(Event.ENTER_FRAME, affichage);
		canal = laZik.play();
	}else{
		this.removeEventListener(Event.ENTER_FRAME, affichage);
		canal.stop();
	}
	enCours = !enCours;
}

function affichage(evt:Event):void{
	//Créé le byte array et le remplit
	var spectre:ByteArray = new ByteArray();
	SoundMixer.computeSpectrum(spectre,true,0);

	//Efface le bitmapdata
	bpdata.fillRect(bpdata.rect,0xFFCCCCCC);

	//EQ
	for(var i:int=0;i<256;++i){
		if(i%8 == 0){
			var a:Number = spectre.readFloat();
			var laBarre:barre = new barre();
			laBarre.x = 20 + i;
			laBarre.y = 200;
			laBarre.scaleY = 200*a;
			bpdata.draw(laBarre, laBarre.transform.matrix);
		}
	}
}

Attention, pour les petits malins qui veulent simplement copier coller le code, sachez que vous devez créer un clip, et l’exporter en classe barre().
Comme y a pas mal de trucs différents dans ce code, si vous avez des questions y a les commentaires !

Fla disponible ici, et vous devez placer un fichier “zik.mp3″ dans le même repertoire.

Next Page »