IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH 8] Action sur MovieClip


Sujet :

Flash

  1. #1
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut [FLASH 8] Action sur MovieClip
    Salut,
    Pour ceux qui aurait lu mon Post précédent, les choses avancent mais j'aurais encore besoin d'un élcairage.

    Pour résumer :
    le chargement du xml se passe bien (function loadXml()
    la création d'une serie de clip avec chargement d'une image dedans se passe également bien (function makeStrip().
    Par contre je voudrais pouvoir commander une action quand on clique sur les clips, j'ai essayé différentes choses (cf code en rouge) mais sans succès...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    var path:String;
    var imgSrc:Array = new Array();
    var imgTitle:Array = new Array();
    var numImg:Number = 0;
    var xPos:Number = 10;
    var mcHeight = 100;
    var container:MovieClip = this.container;
    var listen:Object = new Object();
    var racine:MovieClip = this;
    var mc:MovieClipLoader = new MovieClipLoader();
    mc.addListener(listen);
    
      
    function loadXml(dir:Number){
    ...
    }
    
    function makeStrip() {
    	if (numImg > imgSrc.length - 1) {
    		return;
    	}
    	var mc = container.createEmptyMovieClip("mcImg" + numImg, numImg);
    
    	var mc.onPress = function(){ 
    		trace('action sur' + mc);
    	}
    	
    	
    	mclTmp = new MovieClipLoader();
    	mclTmp.onLoadInit = function(mc:MovieClip) {
    		mc.attachMovie("Button","Button_" + numImg, ++numImg)
    		ratio =  mc._width / mc._height;
    		mc._width = mcHeight * ratio;
    		mc._height = mcHeight;
    		mc._x = xPos;
    		xPos = xPos + mc._width + 10;
    		numImg++;
    		makeStrip();	
    	};
    	
    	mclTmp.loadClip(path + imgSrc[numImg], mc);
    	
    	my_button.addEventListener("click", clicked);
    }
    
    loadXml(2);
    Merci de vos conseils

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    642
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 642
    Points : 656
    Points
    656
    Par défaut
    Il manque un écouteur de ton bouton mc, non?

  3. #3
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    Il manque un écouteur de ton bouton mc, non?
    J'ai essayé de rajouter un écouteur.
    Mais ce n'est pas vraiment un bouton, c'est un juste MovieClip...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    function makeStrip() {
    	if (numImg > imgSrc.length - 1) {
    		return;
    	}
    	var mc = container.createEmptyMovieClip("mcImg" + numImg, numImg);
    	
    	var buttonListener:Object = new Object();
    	buttonListener.click = function(){
    		trace('test');
    	}
    	mc.addEventListener("click",buttonListener);
    	
    	mclTmp = new MovieClipLoader();
    	mclTmp.onLoadInit = function(mc:MovieClip) {
    		mc.attachMovie("Button","Button_" + numImg, ++numImg)
    		ratio =  mc._width / mc._height;
    		mc._width = mcHeight * ratio;
    		mc._height = mcHeight;
    		mc._x = xPos;
    		xPos = xPos + mc._width + 10;
    		numImg++;
    		makeStrip();	
    	};
    	mclTmp.loadClip(path + imgSrc[numImg], mc);
    }

  4. #4
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    j'essaie différente solution (cf ligne en rouge), certaines mieux que d'autres mais aucunes ne fonctionnement vraiment. Je sens qu'il me manque un petit truc... mais quoi?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    function makeStrip() {
    	if (numImg > imgSrc.length - 1) {
    		return;
    	}
    	//creates the clip
    	currentClip = "mcImg" + numImg;
    	var mc = container.createEmptyMovieClip(currentClip, numImg);
    	trace(mc); /* renvoie 
    				_level0.container.mcImg0
    				_level0.container.mcImg1
    				_level0.container.mcImg2
    				_level0.container.mcImg3
    				_level0.container.mcImg4
    				_level0.container.mcImg5
    				*/
    	
    	//manage events
    	//container.onMouseDown = function() { trace(this); } // renvoie _level0.container
    	//mc.onMouseDown = function(){ trace(this); } // ne fonctionne pas
    	//container.currentClip.onMouseDown = function(){ trace(this); } //ne fonctionne pas
    	container.mcImg0.onMouseDown = function(){ trace(this); } // renvoie _level0.container.mcImg0, mais fonctionne sur n'importe quelle image, pas seulement la première !
    
    	//Load the image and resize it
    	mclTmp = new MovieClipLoader();
    	mclTmp.onLoadInit = function(mc:MovieClip) {
    		//mc.attachMovie("Button","Button_" + numImg, ++numImg)
    		ratio =  mc._width / mc._height;
    		mc._width = mcHeight * ratio;
    		mc._height = mcHeight;
    		mc._x = xPos;
    		xPos = xPos + mc._width + 10;
    		numImg++;
    		makeStrip();	
    	};
    	mclTmp.loadClip(path + imgSrc[numImg], mc);
    }

  5. #5
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    bon ben voilà, je crois que ça marche...
    J'ai mis le onPress dans le onLoadInit...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    function makeStrip() {
    	if (numImg > imgSrc.length - 1) {
    		return;
    	}
    	//creates the clip
    	currentClip = "mcImg" + numImg;
    	var mc = container.createEmptyMovieClip(currentClip, numImg);
    
    	//Load the image and resize it
    	mclTmp = new MovieClipLoader();
    	mclTmp.onLoadInit = function(mc:MovieClip) {
    		mc.onPress = function(){ getURL("pages.php?img=" + mc,"","GET"); }
    		ratio =  mc._width / mc._height;
    		mc._width = mcHeight * ratio;
    		mc._height = mcHeight;
    		mc._x = xPos;
    		xPos = xPos + mc._width + 10;
    		numImg++;
    		makeStrip();	
    	};
    	mclTmp.loadClip(path + imgSrc[numImg], mc);
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH 8] Action sur boutons
    Par jack21 dans le forum Flash
    Réponses: 3
    Dernier message: 04/12/2006, 20h30
  2. [FLASH 8] handler sur movieClip
    Par luta dans le forum Flash
    Réponses: 2
    Dernier message: 17/10/2006, 15h10
  3. [FLASH MX2004 Pro] Action sur un MovieClip
    Par morgiane dans le forum Flash
    Réponses: 2
    Dernier message: 17/08/2006, 11h14
  4. [FLASH MX2004] héritage sur un movieClip
    Par j0hnmerrick dans le forum Flash
    Réponses: 2
    Dernier message: 31/05/2005, 10h08
  5. [Flash MX] Action sur un bouton
    Par WriteLN dans le forum Flash
    Réponses: 9
    Dernier message: 20/10/2003, 14h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo