Accueil > Forum > > > > Comment bloquer un AttacheMoveiClip une fois qu'il est sur la scène ?
Comment bloquer un AttacheMoveiClip une fois qu'il est sur la scène ?
mardi 22 décembre 2009 à 14:47:35 |
Comment bloquer un AttacheMoveiClip une fois qu'il est sur la scène ?

BBFUNK01
|
Bonjour à toutes et à tous,
j'ai modifié un script de Carroussel qui fonctionne via un xml, lorsqu'on clique sur une des images du carroussel cela attache un clip sur la scène, j'aimerai qu'une fois que le clip est chargé sur la scène, il ne soit plus possible de charger le même clip sur la scène.
L'action pour charger les clips en cliquant sur les images du carroussel est la fonction "function released()", alors comment dois-je m'y prendre pour "bloquer" le chargement des clips ? Dois-je bloquer la fonction ?
Voici mon script pour que ce soit plus parlant :
Code ActionScript : import mx.utils.Delegate;
var numOfItems:Number;
var radiusX:Number = 180;
var radiusY:Number = 75;
var centerX:Number = 900;
var centerY:Number = 150;
var speed:Number = 0.05;
var perspective:Number = 1;
var home:MovieClip = this;
var tooltip:MovieClip = this.attachMovie("tooltip","tooltip",10000);
tooltip._alpha = 0;
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function()
{
var nodes = this.firstChild.childNodes;
numOfItems = nodes.length;
for(var i=0;i<numOfItems;i++)
{
var t = home.attachMovie("item","item"+i,i+1);
t.angle = i * ((Math.PI*2)/numOfItems);
t.onEnterFrame = mover;
t.toolText = nodes[i].attributes.tooltip;
t.icon.inner.loadMovie(nodes[i].attributes.image);
t.r.inner.loadMovie(nodes[i].attributes.image);
t.icon.onRollOver = over;
t.icon.onRollOut = out;
t.icon.onRelease = released;
t.image = nodes[i].attributes.image;
}
}
function over()
{
home.tooltip.tipText.text = this._parent.toolText;
home.tooltip._x = this._parent._x;
home.tooltip._y = this._parent._y - this._parent._height/2;
home.tooltip.onEnterFrame = Delegate.create(this,moveTip);
home.tooltip._alpha = 100;
}
function out()
{
delete home.tooltip.onEnterFrame;
home.tooltip._alpha = 0;
}
function released()
{
trace(this._parent.image);
var sou:Sound = new Sound();
sou.attachSound("click");
sou.start();
if (this._parent.image == "carroussel/disque.png"){
removeMovieClip("projet");
removeMovieClip("animation");
removeMovieClip("contact");
removeMovieClip("graphisme");
removeMovieClip("tarifs");
var clip:MovieClip = this._root.attachMovie("IDjukebox","jukebox",getNextHighestDepth()+1,{_x:600,_y:440});
clip.close_jukebox.onPress = function() {
this._parent.removeMovieClip();
}
}else if (this._parent.image == "carroussel/animation.png"){
removeMovieClip("projet");
removeMovieClip("contact");
removeMovieClip("tarifs");
removeMovieClip("graphisme");
removeMovieClip("jukebox");
var clip:MovieClip = this._root.attachMovie("IDanimation","animation",getNextHighestDepth()+1,{_x:600,_y:480});
clip.close_animation.onPress = function() {
this._parent.removeMovieClip();
}
}else if (this._parent.image == "carroussel/graphisme.png"){
removeMovieClip("projet");
removeMovieClip("jukebox");
removeMovieClip("contact");
removeMovieClip("tarifs");
removeMovieClip("animation");
var clip:MovieClip = this._root.attachMovie("IDgraphisme","graphisme",getNextHighestDepth()+1,{_x:300,_y:400});
clip.btnclose.onPress = function() {
this._parent.removeMovieClip();
}
}else if (this._parent.image == "carroussel/mail.png"){
removeMovieClip("graphisme");
removeMovieClip("jukebox");
removeMovieClip("animation");
removeMovieClip("projet");
removeMovieClip("tarifs");
var clip:MovieClip = this._root.attachMovie("IDcontact","contact",getNextHighestDepth()+1,{_x:330,_y:380});
clip.close_contact .onPress = function() {
this._parent.removeMovieClip();
}
}else if (this._parent.image == "carroussel/cadenas.png"){
removeMovieClip("animation");
removeMovieClip("jukebox");
removeMovieClip("contact");
removeMovieClip("graphisme");
removeMovieClip("tarifs");
var clip:MovieClip = this._root.attachMovie("IDprojet","projet",getNextHighestDepth()+1,{_x:626,_y:450});
clip.close_projet.onPress = function() {
this._parent.removeMovieClip();
}
}else if (this._parent.image == "carroussel/tarif.png"){
removeMovieClip("projet");
removeMovieClip("contact");
removeMovieClip("animation");
removeMovieClip("jukebox");
removeMovieClip("graphisme");
var clip:MovieClip = this._root.attachMovie("IDtarifs","tarifs",getNextHighestDepth()+1,{_x:300,_y:400});
clip.btnclose.onPress = function() {
this._parent.removeMovieClip();
}
}
}
function moveTip()
{
home.tooltip._x = this._parent._x;
home.tooltip._y = this._parent._y - this._parent._height/2;
}
xml.load("icons.xml");
function mover()
{
this._x = Math.cos(this.angle) * radiusX + centerX;
this._y = Math.sin(this.angle) * radiusY + centerY;
var s = (this._y - perspective) /(centerY+radiusY-perspective);
this._xscale = this._yscale = s*100;
this.angle += this._parent.speed;
this.swapDepths(Math.round(this._xscale) + 100);
}
this.onMouseMove = function()
{
speed = (this._xmouse-centerX)/10000;
}
stop();
Merci d'avance pour vos lumières.
BBFUNK01
|
|
mardi 22 décembre 2009 à 16:33:38 |
Re : Comment bloquer un AttacheMoveiClip une fois qu'il est sur la scène ?

bali_balo
|
Réponse acceptée !
Salut,
une solution serait par exemple de stocker dans un tableau la référence de tous les clips chargés sur la scène. Ensuite lorsque tu veux en charger un, tu vérifie s'il n'est pas déjà présent dans ce tableau.
bali_balo....=]
|
|
mardi 22 décembre 2009 à 17:09:42 |
Re : Comment bloquer un AttacheMoveiClip une fois qu'il est sur la scène ?

BBFUNK01
|
Ok, donc d'après toi il faut que je me renseigne du côté de "array" ?
Est-ce que tu as une idée ou un lien qui pourrait m'aider pour la mise en forme s.t.p. ? Je n'ai encore jamais utilisé "array" dans Flash.
Merci pour ta réponse rapide en tout cas !
BBFUNK01
|
|
mardi 22 décembre 2009 à 17:34:33 |
Re : Comment bloquer un AttacheMoveiClip une fois qu'il est sur la scène ?

bali_balo
|
le plus simple serait de consulter la doc en ligne : http://livedocs.adobe.com/flash/9.0_fr/main/wwhelp/wwhimpl/js/html/wwhelp.htm
Tu auras toute les réponses à tes questions :)
bali_balo....=]
|
|
mardi 22 décembre 2009 à 17:37:36 |
Re : Comment bloquer un AttacheMoveiClip une fois qu'il est sur la scène ?

BBFUNK01
|
OK, c'est noté. Merci pour le tuyau ! :)
BBFUNK01
|
|
mercredi 23 décembre 2009 à 14:09:40 |
Re : Comment bloquer un AttacheMoveiClip une fois qu'il est sur la scène ?

BBFUNK01
|
Salut Bali-Balo,
bon j'ai regardé sur la doc en ligne de Flash ainsi que sur d'autres liens trouvés sur Google, et je t'avoue que je suis un peu largué. Est-ce que tu peux m'aiguiller un peu stp sur la manière d'arranger mon code ?
Dois-je placer mon "array" avant ma fonction "function released()", ou après ?
Dois-je dire à Flash : "en cliquant sur une des images, ça range le clip rattaché à cette image dans le tableau, donc ensuite si je reclique sur cette image, le tableau analyse les clips chargés dans le tableau et empêche le chargement d'un 2ème clip identique" ?
Sinon, j'avais pensé faire un truc différent : après le script qui charge le clip dans ma "function released()", insérer une condition qui dirait : "attachMovie("mon clip") enabled = false", mais comme mes clips ont un nom de liaison et pas de nom d'occurence je ne sais pas si c'est possible, et je ne sais pas non plus si ça peut marcher. Qu'est-ce que tu en penses ?
Merci,
BBFUNK01
|
|
mercredi 23 décembre 2009 à 15:23:28 |
Re : Comment bloquer un AttacheMoveiClip une fois qu'il est sur la scène ?

bali_balo
|
je te réponds dans la soirée
bali_balo....=]
|
|
mercredi 23 décembre 2009 à 16:34:21 |
Re : Comment bloquer un AttacheMoveiClip une fois qu'il est sur la scène ?

BBFUNK01
|
OK, ça marche. Merci beaucoup car étant encore débutant en flash, là pour moi c'est du lourd.
A tout à l'heure.
BBFUNK01
|
|
jeudi 24 décembre 2009 à 00:52:20 |
Re : Comment bloquer un AttacheMoveiClip une fois qu'il est sur la scène ?

BBFUNK01
|
Re Bali-Balo,
j'ai essayé de modifier mon de script en supprimant la "function released()" et en la remplaçant par la "function define()", le but étant de définir chaque image du Carroussel comme un bouton unique afin de pouvoir ensuite mettre un "btn.enabled = false;" dessus pour éviter le chargement d'autres clips identiques.
Malheureusement ça ne marche pas, après est-ce que tu penses que l'idée de départ est bonne ?
Voici mon script :
Code ActionScript : import mx.utils.Delegate;
var numOfItems:Number;
var radiusX:Number = 180;
var radiusY:Number = 75;
var centerX:Number = 900;
var centerY:Number = 150;
var speed:Number = 0.05;
var perspective:Number = 1;
var home:MovieClip = this;
var tooltip:MovieClip = this.attachMovie("tooltip","tooltip",10000);
tooltip._alpha = 0;
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function()
{
var nodes = this.firstChild.childNodes;
numOfItems = nodes.length;
for(var i=0;i<numOfItems;i++)
{
var t = home.attachMovie("item","item"+i,i+1);
t.angle = i * ((Math.PI*2)/numOfItems);
t.onEnterFrame = mover;
t.toolText = nodes[i].attributes.tooltip;
t.icon.inner.loadMovie(nodes[i].attributes.image);
t.r.inner.loadMovie(nodes[i].attributes.image);
t.icon.onRollOver = over;
t.icon.onRollOut = out;
t.icon.onRelease = define;
t.image = nodes[i].attributes.image;
}
}
function over()
{
home.tooltip.tipText.text = this._parent.toolText;
home.tooltip._x = this._parent._x;
home.tooltip._y = this._parent._y - this._parent._height/2;
home.tooltip.onEnterFrame = Delegate.create(this,moveTip);
home.tooltip._alpha = 100;
}
function out()
{
delete home.tooltip.onEnterFrame;
home.tooltip._alpha = 0;
}
function define(){
if (this._parent.image == "carroussel/disque.png"){
t.icon.onRelease = btn_jukebox;
}else if (this._parent.image == "carroussel/animation.png"){
t.icon.onRelease = btn_animation;
}else if (this._parent.image == "carroussel/graphisme.png"){
t.icon.onRelease = btn_graphisme;
}else if (this._parent.image == "carroussel/mail.png"){
t.icon.onRelease = btn_contact;
}else if (this._parent.image == "carroussel/cadenas.png"){
t.icon.onRelease = btn_projet;
}else if (this._parent.image == "carroussel/tarif.png"){
t.icon.onRelease = btn_tarifs;
}
}
btn_jukebox.onRelease = function(){
var sou:Sound = new Sound();
sou.attachSound("click");
sou.start();
removeMovieClip("projet");
removeMovieClip("animation");
removeMovieClip("contact");
removeMovieClip("graphisme");
removeMovieClip("tarifs");
btn_jukebox.enabled = false;
var clip:MovieClip = this._root.attachMovie("IDjukebox","jukebox",getNextHighestDepth()+1,{_x:600,_y:440});
clip.close_jukebox.onPress = function(){
this._parent.removeMovieClip();
btn_jukebox.enabled = true;
}
}
btn_animation.onRelease = function(){
var sou:Sound = new Sound();
sou.attachSound("click");
sou.start();
removeMovieClip("projet");
removeMovieClip("contact");
removeMovieClip("tarifs");
removeMovieClip("graphisme");
removeMovieClip("jukebox");
btn_animation.enabled = false;
var clip:MovieClip = this._root.attachMovie("IDanimation","animation",getNextHighestDepth()+1,{_x:600,_y:440});
clip.close_animation.onPress = function(){
this._parent.removeMovieClip();
btn_animation.enabled = true;
}
}
btn_graphisme.onRelease = function(){
var sou:Sound = new Sound();
sou.attachSound("click");
sou.start();
removeMovieClip("projet");
removeMovieClip("jukebox");
removeMovieClip("contact");
removeMovieClip("tarifs");
removeMovieClip("animation");
btn_graphisme.enabled = false;
var clip:MovieClip = this._root.attachMovie("IDgraphisme","graphisme",getNextHighestDepth()+1,{_x:600,_y:440});
clip.close_graphisme.onPress = function(){
this._parent.removeMovieClip();
btn_graphisme.enabled = true;
}
}
btn_contact.onRelease = function(){
var sou:Sound = new Sound();
sou.attachSound("click");
sou.start();
removeMovieClip("graphisme");
removeMovieClip("jukebox");
removeMovieClip("animation");
removeMovieClip("projet");
removeMovieClip("tarifs");
btn_contact.enabled = false;
var clip:MovieClip = this._root.attachMovie("IDcontact","contact",getNextHighestDepth()+1,{_x:600,_y:440});
clip.close_contact.onPress = function(){
this._parent.removeMovieClip();
btn_contact.enabled = true;
}
}
btn_projet.onRelease = function(){
var sou:Sound = new Sound();
sou.attachSound("click");
sou.start();
removeMovieClip("animation");
removeMovieClip("jukebox");
removeMovieClip("contact");
removeMovieClip("graphisme");
removeMovieClip("tarifs");
btn_projet.enabled = false;
var clip:MovieClip = this._root.attachMovie("IDprojet","projet",getNextHighestDepth()+1,{_x:600,_y:440});
clip.close_projet.onPress = function(){
this._parent.removeMovieClip();
btn_projet.enabled = true;
}
}
btn_tarifs.onRelease = function(){
var sou:Sound = new Sound();
sou.attachSound("click");
sou.start();
removeMovieClip("projet");
removeMovieClip("contact");
removeMovieClip("animation");
removeMovieClip("jukebox");
removeMovieClip("graphisme");
btn_tarifs.enabled = false;
var clip:MovieClip = this._root.attachMovie("IDtarifs","tarifs",getNextHighestDepth()+1,{_x:600,_y:440});
clip.close_tarifs.onPress = function(){
this._parent.removeMovieClip();
btn_tarifs.enabled = true;
}
}
function moveTip()
{
home.tooltip._x = this._parent._x;
home.tooltip._y = this._parent._y - this._parent._height/2;
}
xml.load("icons.xml");
function mover()
{
this._x = Math.cos(this.angle) * radiusX + centerX;
this._y = Math.sin(this.angle) * radiusY + centerY;
var s = (this._y - perspective) /(centerY+radiusY-perspective);
this._xscale = this._yscale = s*100;
this.angle += this._parent.speed;
this.swapDepths(Math.round(this._xscale) + 100);
}
this.onMouseMove = function()
{
speed = (this._xmouse-centerX)/10000;
}
Merci,
BBFUNK01
|
|
jeudi 24 décembre 2009 à 10:20:52 |
Re : Comment bloquer un AttacheMoveiClip une fois qu'il est sur la scène ?

bali_balo
|
Oupss chté un peu oublié ^^
Ce midi si j'ai le temps.
bali_balo....=]
|
|
Cette discussion est classée dans : function, var, clip, parent, removemovieclip
Répondre à ce message
Sujets en rapport avec ce message
Appel de var d'un txt dasn un movie clip [ par Burnside ]
Je n'arrrive pas a faire apparaître une variable qui se trouve dans un txt dans un movie clip.Merci,Burnside
mc_clip.duplicateMovieClip ???? ehehh [ par mica1 ]
Hoïbon ma question est simplej'aimerais duplikatouiller une clipouille mais bon le ptit problème c'est que ce petit clipouille contient des champs de
loadvars() [ par snowteam ]
j'ai un petit problème. sur me scene, j'ai un clip qui contient une image (n1) avec un texte dont la variable est nom1.dans l'action script de mon cli
loadvars() [ par snowteam ]
j'ai un petit problème. sur me scene, j'ai un clip qui contient une image (n1) avec un texte dont la variable est nom1.dans l'action script de mon cli
help grattflash [ par dogimo ]
alors voilà mon prob, ce script est superbe et je le trouve plus sympa que les petits carrés qui partent en fadeout généralement.donc voilà mon prob :
Problème de _parent [ par CyberP ]
J'ai créé une classe Socket en ActionScript 2Voici le nécessaire pour mon problème :class Socket { var sock:XMLSocket; function SocketManager() { s
Pb de preload de site [ par ceramicord ]
Bonjour, J'ai fait un site et je viens de vouloir changer mon preload. L'ancien était automatisé.J'ai donc réalisé un clip et j'ai tenter de charger
Pb de code [ par Xciting ]
Bonjour a tous, j essaie de me faire un tit jeu tres simple. Je vous explique le fonctionnement: Sur le flash, il y a deux lettres : une en bas et une
problème player 6/player7 [ par jacknikolson ]
j'ai un petit souci que je vais vous exposer.j'ai une petite anim que j'utilisais sous flash5.un clip vide avec son code :onClipEvent (load) { direc =
duplicateMovieClip [ par lalelilo ]
Bonjour,Je souhaite dupliquer un clip enfant contenu dans un clip parent, et que le clip enfant dupliqué soit instancié dans le clip parent. Ex :._roo
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
|