webcrea92
Messages postés88Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention 1 novembre 2009
-
12 juin 2009 à 15:55
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 2013
-
12 juin 2009 à 17:04
Bonjour,
J'essaye de modifier cette classe comme on me l'a suggéré (voir la source diaporama AS3)
J'ai 1 truc qui me choque et 1 truc que je n'arrive pas à faire :
1/ Je teste l'alpha pour savoir quel container est masqué, et donc lancer la transition, je pense qu'il y'a mieux à faire
2/ Je n'arrive pas à affecter l'image chargée qui est dans 'contenu' à l'image afficher sans faire de addChild. pourtant j'ai bien 2 objet bitmap (enfin je crois)
Est-ce que quelqu'un peut m'aider?
package {
import flash.display.*;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
// Import pour le chronometre
import flash.events.TimerEvent;
import flash.utils.Timer;
// Import pour le message d'erreur
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
// Import de la biblio Tweenlite de greensock.com
import gs.TweenLite;
import gs.easing.*;
import gs.events.TweenEvent;
public class Diapo extends Sprite {
private var cheminDiapos:String="diapos/";
private var nomDiapos:String="nantilly";
private var sufDiapos:String=".jpg";
private var url:String="";
private var nbrDiapos:int=5;
private var indice:int=0;
private var largeur=591;
private var hauteur=197;
private var image0:BitmapData = new BitmapData (largeur, hauteur, false, 0xFF0000);
private var container0:Bitmap = new Bitmap(image0);
private var image1:BitmapData = new BitmapData (largeur, hauteur, false, 0x0000FF);
private var container1:Bitmap = new Bitmap(image1);
private var chargeur:Loader=new Loader;
private var cli:LoaderInfo=chargeur.contentLoaderInfo;
private var chrono:Timer=new Timer(5000,1);
public function Diapo() {
container0.alpha=0;
addChild(container0);
addChild(container1);
cli.addEventListener( IOErrorEvent.IO_ERROR, echecChargement );
cli.addEventListener( Event.COMPLETE, chargementTermine);
chrono.addEventListener(TimerEvent.TIMER_COMPLETE,chronoAction);
charger();
}
public function charger():void {
// construction de l'url du fichier à charger
url=cheminDiapos + nomDiapos + indice + sufDiapos;
// url à atteindre
var maRequete:URLRequest=new URLRequest(url);
// chargement du contenu
chargeur.load(maRequete);
}
function chargementTermine(pEvt:Event):void {
var objetLoaderInfo:LoaderInfo=LoaderInfo(pEvt.target);
var contenu:Bitmap = Bitmap ( objetLoaderInfo.content );
trace(contenu);
if(container1.alpha==0){
trace(container1);
TweenLite.to(container0,2,{alpha:0,ease:Linear.easeNone,onComplete:diapoApparait(pEvt)});
}else{
trace(container0);
TweenLite.to(container1,2,{alpha:0,ease:Linear.easeNone,onComplete:diapoApparait(pEvt)});
}
}
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 12 juin 2009 à 16:44
Pour afficher tes bitmaps, il faut déjà les créer dés le début de ta classe, ensuite les remplir avec le contenu de ton loader :
//dans le corps de ta classe :
var container0:Bitmap = new Bitmap();
var container1:Bitmap = new Bitmap();
[...]
//dans ta fonction "chargementTermine"
var contenu:Bitmap = this["container"+(indice%2)]; //à tester, car c'est de mémoire
contenu = new Bitmap(pEvt.currentTarget.content );
par exemple ...
ensuite, tu n'a qu'à modifier l'alpha de container1 (qui se trouve au-dessus de l'autre) et qui te permettras d'afficher/masquer progressivement l'autre
sachant que si l'alpha est à 0 tu le passe à 1 et inversement ...
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 12 juin 2009 à 17:04
relis mieux ce que je t'ai donnéet compare avec ton code ... ce n'est pas vraiment pareil.
Moi je n'ai créé de BitmapData nulle part et toi tu attribue le contenu de ton loader à une variable dont tu ne fais rien : "contenu"