Accueil > Forum > > > > [AS3] Petit problème intégration diaporama
[AS3] Petit problème intégration diaporama
samedi 14 mai 2011 à 14:38:25 |
[AS3] Petit problème intégration diaporama

manamiroo
|
Bonjour à tous,
merci de lire mon sujet,
Je connais bien les fonctions de Flash mais reste débutante en ActionScript 3, or je suis en train de réaliser un site entièrement en Flash. Je rencontre actuellement un souci sur la partie galerie de mon site. Je m'explique : lorsqu'on clique sur "portfolio" dans le menu, pas de souci, le diaporama correspondant s'affiche et fonctionne sans problème. Le souci est que lorsque je veux retourner sur d'autres pages du site, comme Infos ou Liens, le diaporama reste affiché en superposition avec le reste...
En gros je voudrais que le diaporama disparaisse quand on passe à une autre catégorie de mon site. Comment faire ?
De plus, bien que le diaporama fonctionne sans problème, une erreur s'affiche en sortie, je ne sais pas si ça a un lien avec cet effet de superposition :
Code ActionScript : TypeError: Error #2007: Le paramètre child ne doit pas être nul.
at flash.display::DisplayObjectContainer/addChildAt()
at fl.controls::ProgressBar/drawTrack()
at fl.controls::ProgressBar/draw()
at fl.core::UIComponent/callLaterDispatcher()
Je précise que j'ai réalisé ce diaporama à partir d'un tuto trouvé sur le net...
Voilà le code du diaporama en lui-même :
Code ActionScript : import fl.controls.ProgressBar;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import flash.display.*;
var columns:Number;
var my_x:Number;
var my_y:Number;
var my_thumb_width:Number;
var my_thumb_height:Number;
var my_images:XMLList;
var my_total:Number;
var container_mc:MovieClip;
var preloaders_mc:MovieClip;
var full_mc:MovieClip;
var x_counter:Number = 0;
var y_counter:Number = 0;
var my_tweens:Array = [];
var container_mc_tween:Tween;
var full_tween:Tween;
var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("gallery.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
var myXML:XML = new XML(e.target.data);
columns = myXML.@COLUMNS;
my_x = myXML.@XPOSITION;
my_y = myXML.@YPOSITION;
my_thumb_width = myXML.@WIDTH;
my_thumb_height = myXML.@HEIGHT;
my_images = myXML.IMAGE;
my_total = my_images.length();
createContainer();
callThumbs();
myXMLLoader.removeEventListener(Event.COMPLETE, processXML);
myXMLLoader = null;
}
function createContainer():void {
container_mc = new MovieClip();
container_mc.x = my_x;
container_mc.y = my_y;
addChild(container_mc);
container_mc.addEventListener(MouseEvent.CLICK, callFull);
container_mc.addEventListener(MouseEvent.MOUSE_OVER, onOver);
container_mc.addEventListener(MouseEvent.MOUSE_OUT, onOut);
container_mc.buttonMode = true;
preloaders_mc = new MovieClip();
preloaders_mc.x = container_mc.x;
preloaders_mc.y = container_mc.y;
addChild(preloaders_mc);
}
function callThumbs():void {
for (var i:Number = 0; i < my_total; i++) {
var thumb_url = my_images[i].@THUMB;
var thumb_loader = new Loader();
thumb_loader.load(new URLRequest(thumb_url));
thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbLoaded);
thumb_loader.name = i;
thumb_loader.x = (my_thumb_width+10)*x_counter;
thumb_loader.y = (my_thumb_height+10)*y_counter;
if (x_counter+1 < columns) {
x_counter++;
} else {
x_counter = 0;
y_counter++;
}
var preloader_pb:ProgressBar = new ProgressBar();
preloader_pb.source = thumb_loader.contentLoaderInfo;
preloader_pb.x = thumb_loader.x;
preloader_pb.y = thumb_loader.y;
preloader_pb.width = my_thumb_width;
preloader_pb.height = my_thumb_height;
preloaders_mc.addChild(preloader_pb);
preloader_pb.addEventListener(Event.COMPLETE, donePb);
}
}
function thumbLoaded(e:Event):void {
var my_thumb:Loader = Loader(e.target.loader);
container_mc.addChild(my_thumb);
my_tweens[Number(my_thumb.name)]=new Tween(my_thumb, "alpha", Strong.easeIn, 0,1,0.5, true);
my_thumb.contentLoaderInfo.removeEventListener(Event.COMPLETE, thumbLoaded);
}
function callFull(e:MouseEvent):void {
var full_loader:Loader = new Loader();
var full_url = my_images[e.target.name].@FULL;
full_loader.load(new URLRequest(full_url));
full_loader.contentLoaderInfo.addEventListener(Event.INIT, fullLoaded);
var full_pb:ProgressBar = new ProgressBar();
full_pb.source = full_loader.contentLoaderInfo;
full_pb.x = (stage.stageWidth - full_pb.width)/2;
full_pb.y = (stage.stageHeight - full_pb.height)/2;
preloaders_mc.addChild(full_pb);
full_pb.addEventListener(Event.COMPLETE, donePb);
container_mc.removeEventListener(MouseEvent.CLICK, callFull);
container_mc.buttonMode = false;
container_mc.removeEventListener(MouseEvent.MOUSE_OVER, onOver);
container_mc.removeEventListener(MouseEvent.MOUSE_OUT, onOut);
container_mc_tween = new Tween(container_mc, "alpha", Strong.easeIn, 1,0.5,0.5, true);
}
function fullLoaded(e:Event):void {
full_mc = new MovieClip();
full_mc.buttonMode = true;
addChild(full_mc);
var my_loader:Loader = Loader(e.target.loader);
full_mc.addChild(my_loader);
full_tween = new Tween(my_loader, "alpha", Strong.easeIn, 0,1,0.5, true);
my_loader.x = (stage.stageWidth - my_loader.width)/2;
my_loader.y = (stage.stageHeight - my_loader.height)/2;
my_loader.addEventListener(MouseEvent.CLICK,removeFull);
my_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, fullLoaded);
}
function removeFull(e:MouseEvent):void {
var my_loader:Loader = Loader (e.currentTarget);
full_tween = new Tween(my_loader, "alpha", Strong.easeOut, 1,0,0.5, true);
full_tween.addEventListener(TweenEvent.MOTION_FINISH, tweenFinished);
container_mc_tween = new Tween(container_mc, "alpha", Strong.easeOut, 0.5,1,0.5, true);
}
function donePb(e:Event):void {
var my_pb:ProgressBar = ProgressBar(e.target);
preloaders_mc.removeChild(my_pb);
my_pb.removeEventListener(Event.COMPLETE, donePb);
}
function tweenFinished(e:TweenEvent):void {
var my_loader:Loader = Loader (e.target.obj);
my_loader.unload();
full_mc.removeChild(my_loader);
removeChild(full_mc);
full_mc = null;
container_mc.addEventListener(MouseEvent.CLICK, callFull);
container_mc.buttonMode = true;
container_mc.addEventListener(MouseEvent.MOUSE_OVER, onOver);
container_mc.addEventListener(MouseEvent.MOUSE_OUT, onOut);
var my_tween:Tween = Tween(e.target);
my_tween.removeEventListener(TweenEvent.MOTION_FINISH, tweenFinished);
}
function onOver(e:MouseEvent):void {
var my_thumb:Loader = Loader(e.target);
my_thumb.alpha = 0.5;
}
function onOut(e:MouseEvent):void {
var my_thumb:Loader = Loader (e.target);
my_thumb.alpha = 1;
}
Merci d'avance pour votre aide
|
|
samedi 14 mai 2011 à 22:21:39 |
Re : [AS3] Petit problème intégration diaporama

aerolyte
|
Bonjour, concernant l'erreur la réponse est simple:
Code ActionScript : preloaders_mc.addChild(full_pb);
comme tu as déclarer la variable preloaders_mc dans une fonction celle ci n'est reconnu que dans cette dernière et pas à la ligne affichée au dessus.
Déclare ta variable en début de classe
Pour faire "disparatre"le diaporama, le plus approprié est de supprimer les éléments ainsi que les events, afin de les rendres élisible au Garbage collector.
Cordialement
|
|
dimanche 15 mai 2011 à 14:18:18 |
Re : [AS3] Petit problème intégration diaporama

manamiroo
|
Bonjour,
Merci pour ta réponse, j'ai arrangé la variable (j'ai du aussi le faire pour container_mc) et plus d'erreur à présent.
Pour ce qui est de faire "disparaître" le diaporama, j'ai trouvé un truc tout simple. Au lieu d'insérer le code dans la main timeline, j'ai crée un clip et je l'ai inséré à l'intérieur. De cette manière le code ne se déclare que lorsque le clip se trouve visible.
Cordialement
|
|
dimanche 15 mai 2011 à 14:45:27 |
Re : [AS3] Petit problème intégration diaporama

aerolyte
|
Re,
ton "truc" n'est pas l'ideal pour la gestion de la memoire cache.
Si tu ouvres plusieurs fois de suite ta page diaporama, tu vas finir par remplir ta ram (servant de stockage à la mémoire cache) jusqu'a saturation et blocage browser, voir meme systeme d'exploitation.
la bonne solution est de faut passer par une suppression des éléments et de leur events.
Cordialement
|
|
Cette discussion est classée dans : var, mc, my, loader, thumb
Répondre à ce message
Sujets en rapport avec ce message
galerie photos avec plusieurs catégories [ par kestibibi ]
Bonjour, je tente depuis plusieurs jours de créer une galerie dynamique avec plusieurs catégories. J'ai "réussi" à un détail prés, lorsque l'on clic
Menu xml avec rollOver et rollOut [ par latour500 ]
Bonjour à tous, j'aimerai grossierement quelques conseils,je suis en train de construire un menu dynamique en As2, avec des sous menu, les fonctions s
probleme flashvars sur bdd xml [ par vilkoyote ]
Bonjour a tous :) Voila j'ai dev un petit flash en AS3 et j ai un problème de récupération de variable via la section AC_FL_RunContent du html génér
petite correction en as2 [ par tonydanza ]
Bonjour, J'ai besoin d modifier un code mais je n'y arrive pas. Dans le code suivant,je dois Changer les calendriers qui sont a l'interieur de: mbIn
attribut css dans champs de texte actionscript2 [ par jerrrrrry ]
bonjour j'aimerais crée un système d'incrémentation automatique dans un champs de texte crée en actionscriptil est dynamique j'aimerais que le nombre
Texte dynamique dans clip - XML [ par chindra ]
Bonjour,Je préviens de suite, je suis une méga débutante...je pratique Flash depuis seulement quelques mois et ce n'est pas du tout ma formation initi
Traduction d'un petit code AS1&2 vers AS3 [ par Syphou ]
Bonjour :-)J'ai trouvé un code en ActionScript 1&2 qui permet d'écrire en rond. Un fois compilé en swf j'ai tenté d'appeler une de ses méthodes via Fl
probleme de photo et galerie [ par phania ]
Bonjour je voudrais seulement que sur un click que l'image pop up ou de quoi semblable pour voir l'image en plus gros Le problème que j'ai est que si
probleme de lien d'une image tiré d'un xml [ par scoubydog ]
Bonjour, je suis en train de faire une galerie de photos et mon problème est que le code qui me permet de transformer chaque image miniature en bouton
Pb menu dynamique vertical [ par SuNn123 ]
Bonjour,J'essaie de réaliser mon menu personnalisé, après avoir lu qques pdf :var photo:Loader;for (var i:in
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|