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

ActionScript 3 Discussion :

Changement d'alpha d'un élément "loadé"


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Par défaut Changement d'alpha d'un élément "loadé"
    Bonjour,

    Etant débutant en AS3, je n'arrive pas à changer l'alpha d'un élément "loadé".

    J'utilise la classe "flash.display.Loader"

    Lorsque je fait par exemple :

    "Mon_Loader.alpha = 0"

    Rien ne se passe...

    Merci d'avance pour vos réponses !

  2. #2
    Membre chevronné Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Par défaut
    Mon_Loader.content.alpha = 0 ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Par défaut toujours pas ...
    Bonjour et merci pour ta proposition...

    mais d'apres la doc, il s'agit d'un element en lecture seule:

    content : DisplayObject
    [lecture-seule] Contient l’objet d'affichage racine du fichier SWF ou du fichier d’image (JPG, PNG ou GIF) qui a été chargé à l’aide de la méthode load() ou loadBytes().

    Donc je ne pense pas que se soit la solution...

    Faut il-jouer ave des filtres ? ou des mask ?

    Merci pour vos réponses !

  4. #4
    Membre chevronné Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Par défaut
    DisplayObject est l'objet qui implémente l'alpha dans la hierarchie de l'affichage flash ^^°

    Sinon j'ai fait un test les deux methode marche...

    loader.alpha = 0;
    loader.content.alpha = 0;


    voici mon code de test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var loader:Loader = new Loader();
     
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE,hihi);
    loader.load(new URLRequest('hihi.jpg'));
     
     
    addChild( loader );
     
    function hihi(e:Event):void{
    	loader.content.alpha = 0.5;
    }
    Bref , je pense que ton probleme ne viens pas de là , on peut voir ton code ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Par défaut mon code...
    Bonjour,

    Tout d'abord voici mon code simplifié afin de faciliter sa compréhention...

    En gros, j'ai déporté le traitement des evenements du loader afin de pouvoir réutiliser mon loader (object power ;-)

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
     
    public class CLoader extends Loader 
    {		
    	private var 	G_Request	:	URLRequest = null ;	
            private var	G_Loader_Traitment :	CLoader_Traitement = null ;
     
    	//----------------------------------------------------------------------------------------
            public function CLoader() 
    	{
    		super() ;
    		this.G_Request	 = new URLRequest() ;
    	}
     
    	//----------------------------------------------------------------------------------------
    	public function Init( 	Url 			: String			,
    				 	X_Pos		: Number 			,
    					Y_Pos		: Number			,
    					Height		: Number			,
    					Width		: Number			,
    					Name		: String			,
    					Traitment		: CLoader_Traitement ): void
    	{
     
    		this.G_Request.url	=	Url 		;					this.contentLoaderInfo.addEventListener(	IOErrorEvent.IO_ERROR, Traitment.ioErrorHandle );
    		this.contentLoaderInfo.addEventListener(	Event.COMPLETE , Traitment.completeHandler );
    		this.contentLoaderInfo.addEventListener(	HTTPStatusEvent.HTTP_STATUS , Traitment.httpStatusHandler );
    		this.contentLoaderInfo.addEventListener(	ProgressEvent.PROGRESS , Traitment.progressHandler );
    		this.contentLoaderInfo.addEventListener(	MouseEvent.CLICK , Traitment.clickHandler );
    		this.contentLoaderInfo.addEventListener(	Event.INIT , Traitment.initHandler );
    		this.contentLoaderInfo.addEventListener(	Event.OPEN , Traitment.openHandler );
    		this.contentLoaderInfo.addEventListener(	Event.UNLOAD , Traitment.unLoadHandler );
     
    		this.name						=	Name  ;
    		this.G_Loader_Traitment			= 	Traitment ;
     
     
    		// will be updated after complete loaded
    		this.x							=	X_Pos ;
    		this.y							=	Y_Pos ;
    	}
     
        }
    }
     
    //###############################################################################################
     
    package {
     
    	import CLoader_Traitement ;
     
     	public class CLoader_Traitement_Corps extends CLoader_Traitement 
    	{
     
    		import flash.events.*			;
    		import flash.display.Sprite 	;
    		import CLoader				;
     
    		//----------------------------------------------------------------------------------------
           		 public function CLoader_Traitement_Corps() 
    		{
               		 super() ;
    		}
     
    		//----------------------------------------------------------------------------------------
    		override public function Init( 	My_Loader		: CLoader ,
    								Name 			: String ,
    					 			autres_args		: Array ) : void
    		{
    			super.Init( My_Loader	 ,
    				   	Name 		,
    					autres_args 	);
     
    			this.G_Cible 	= autres_args[ 0 ] 	;	
    		}
     
    		//----------------------------------------------------------------------------------------
    		override public function completeHandler( e:Event ) : void 
    		{
    			super.completeHandler( e )	;
     
    			trace( "--- CLoader_Traitement_Corps : call of 'addChildAt' method ---" ); 
     
    			// add after complete load
    			this.G_Cible.addChild( 	super.Get_Loader()  );
    		}
    	}
    }
     
     
    //###############################################################################################
    	public class CCorps extends Sprite
    	{
    		private var	G_Loader					: 	CLoader = null ;
    		private var 	G_Loader_Traitment			:	CLoader_Traitement_Corps = null ;
     
    		//--------------------------------------------------------------------------------------------------
    		public function CCorps() : void
    		{
    			this.G_Loader				= new 	CLoader ;
    			this.G_Loader_Traitment		= new	CLoader_Traitement_Corps ;
    		}
     
    		//--------------------------------------------------------------------------------------------------
    		public function Init():void
    		{
    			this.G_Loader.Init( 	"test.swf"			,
    							100				,
    							100				,
    							100				,
    							100				,
    							C_Loader_Name	,
    							this.G_Loader_Traitment );
     
    			this.G_Loader_Traitment.Init(	this.G_Loader	,
    									 C_Loader_Traitment_Name ,
    							 		[ this.G_Rectangle_Arroni_Degrade  ] );
     
    			this.G_Loader.Load() ;
    		}
     
     
    		//--------------------------------------------------------------------------------------------------		
          public function Animer( ElementAfficher : String ) : void
    		{
    			this.G_Loader.content.alpha = 0.2 ;
    		}
     
    	}
    }
    La methode "Animer" est appellée via un bouton (non illustré ici...)
    j'ai vérifié que la méthode est bien appellée et que c'est la bon loader qui est concerné...

    J'avoue ne pas avoir de pistes...

    Merci de votre aide

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Par défaut petit detail...(qui a peut etre son importance )
    Je ne cherche pas a loader une image, mais un SWF !

    Merci pour vos participations...

  7. #7
    Membre chevronné Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Par défaut
    Tu t'entete ma parole ! Ca change rien que tu charge une image ou un swf, mon code ci-dessus marche aussi avec un swf vu que c'est hérité de DisplayObject. là est pas le probleme.

    Sinon j'ai lu ton code , plusieurs remarque :

    - tu utilises trop "this" quand le contexte n'est pas ambigue et sa rend le code lourd à lire.

    - Les noms de class sont pas très explicite : GLoader , CLoader , etc.. Surement tu t'y repere mais quand on débarque sur ton code c'est la misère.

    - Pourquoi ne pas avoir créer juste une class qui géré le traitement d'un loader via différente fonction static ( ça a l'air d'être le but ici ) ? J'ai peut être pas saisi le but réel de tes 3 class mais vu comme ça t'a l'air de t'être compliquer la tête..

    A part ça j'ai pas trouvé d'ou venait ton problème d'autant que tu précises que tu as vérifié l'appel de la méthode "animer" sur la bonne cible ( après le chargement je suppose enfin sinon t'aurais une exception )... Pour vérifier tu peux quand même lancé la fonction animer après la fin du chargement ( ça peut toujours servir à isolé le problème petit à petit ... )

    Mon conseil serait de simplifier ton code au niveau de ta structure , 3 class me parait trop pour un chargement de swf avec traitement. D'autant que t'a pas l'air très familiariser avec l'as3 qui est un langage souple, intuitif et évite ce genre de spaghetti !


  8. #8
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class CLoader_Traitement_Corps extends CLoader_Traitement
    ???

    ensuite ajoute ton "content" a un DisplayObject aprés l'evenement "COMPLETE" et l'alpha fonctionnera

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/08/2008, 10h17
  2. insertion d'élément db avec quotes
    Par hyipicai dans le forum Windows Forms
    Réponses: 7
    Dernier message: 19/10/2007, 07h49

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