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)});
}
}
private function diapoApparait(pEvt:Event):void {
if(container1.alpha==0){
TweenLite.to(container1,2,{alpha:1,ease:Linear.easeNone});
}else{
TweenLite.to(container0,2,{alpha:1,ease:Linear.easeNone});
}
chrono.start();
}
function echecChargement( pEvt:IOErrorEvent ):void {
var messageErreur = new TextField;
messageErreur.text = "Echec chargement image n°"+indice+"\nLe fichier "+url+" n'existe pas...";
messageErreur.autoSize = TextFieldAutoSize.LEFT;
messageErreur.selectable = false;
addChild(messageErreur);
}
private function chronoAction(event:TimerEvent) {
indice++;
indice %= nbrDiapos;
charger();
}
}
}
Merci d'avance
PS: Pour tester cette classe, il faut charger diaporama AS3 et remplacer le contenu du package diapo.as
Christophe
Webcréa sarl
[ Lien ]