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] Gestion du son des flv ?


Sujet :

Flash

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Points : 9
    Points
    9
    Par défaut [FLASH 8] Gestion du son des flv ?
    Logiciel utilisé: flash 8 AS.20
    Format video: flv

    Bonjour tous le monde ca fait 1 semaines que je me tire les cheveux pour résoudre un problème avec le composant vidéo, vous s'avez quand on clique sur l'onglet du panneau bibliothèque on peut choisir vidéo. Et bien j'ai créé 3 vidéos ou plutôt récepteurs vidéos que j'ai nommé "container", "containerM1", "containerM2".

    J'ai créé du code AS.20 pour l'importation et la gestion de la vidéo "container" . Jusque la je n'ai eu aucun problème tous fonctionne à merveille. Par contre les deux autres vidéos "containerM1" et "containerM2" je me contente juste d'importer les vidéos et de les jouer donc pas de boutons pour ces deux la. Le problème est que je n'arrive pas à couper le son de mes deux vidéos "containerM1", "containerM2" car ces deux vidéos sont la en tan que vinettes vidéos qui plupart auront un comportement de boutons pour lancer une vidéo dans "container".

    Pourtant j'ai créé 3 objet Sound différent pour chaque vidéo et quand je modifie en direct le Sound des deux vignettes via un setVolume(0); rien à faire le son des 3 vidéo se joue en même temps alors imaginez le bazar sonore que ca engendre. Voici mon code AS.20 :

    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
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    ///////////////////////////////LANCEMENT DU SCRIPT PHP POUR LA CREATION DU XML////////////////////////////////
    /*le code placer entre ces deux balise( /* )sont de simple commentaire non pris en conte */
    //----------------------------------------------------------------------------------//
    //initialisation du root sur cette animation. Tous les _root enoncer dans cette animation 
    //ce refereront sur sont propre root en cas de chargement de cette animation dans un autre swf.
    this._lockroot = true;
    //----------------------------------------------------------------------------------//
    //on exécute le fichier php qui crée l'arborescence du dossier mp3 en fichier xml
    var loadPhP = new LoadVars();
    //loadPhP.load("php/xml.php?antiCache="+Math.random());
    loadPhP.load("php/xml_video.php");
    ///////////////////////////FIN LANCEMENT DU SCRIPT PHP POUR LA CREATION DU XML/////////////////////////////
    //
    //////////////////////////////////////INITIALISATION DES VARIABLES/////////////////////////////////////////
    //liste_video sera le lien racine du fichier xml a lire
    var liste_video:String = "xml/liste_video_1.xml";
    //on creer un tableau pour la recuperation des url des videos a charger
    var url_array:Array = new Array();
    //ici on initialise une variable i pour la gestion de la lecture des videos
    var i:Number = 0;
    /////////////////////////////FIN INITIALISATION DES VARIABLES////////////////////////////////////////////
    //
    ///////////////////////RECUPERATION DU FICHIER XML///////////////////////////////////////
    //on crée un nouvel objet XML
    var chargeXML:XML = new XML();
    //on charge le fichier xml dans notre objet grace a notre tableau url_array
    chargeXML.load(liste_video);
    //on ignore les eventuels espaces blanc entre les lignes du fichier xml
    chargeXML.ignoreWhite = true;
    //on verifie le chargement du xml
    chargeXML.onLoad = function(reussi:Boolean) {
    	//si le chargement et ok alors on execute le code ci-dessous
    	if (reussi) {
    		var videoTotal:Number = chargeXML.firstChild.childNodes.length;
    		//ici on suprime le bug pour le videoTotal inaxessible depuis nos boutons next et precedent
    		_root.videoTotal = videoTotal;
    		trace("le nombre de video est de = "+videoTotal);
    		for (numVideo=0; numVideo<=videoTotal-1; numVideo++) {
    			var urlVideo:String = chargeXML.firstChild.childNodes[numVideo].attributes.fichier;
    			url_array.push(urlVideo);
    			trace("l'url de la video "+[numVideo+1]+" = "+url_array[numVideo]);
    		}
    		//apres avoir lancer le code ci-dessus en cas de reussite du chargement xml on lance la lecture du fichier video
    		chargeVideo(i);
    		chargeVideoM1(i);
    		chargeVideoM2([2]);
    	} else {
    		trace("erreur de chargement XML");
    	}
    };
    //////////////////////////////FIN RECUPERATION DU FICHIER XML//////////////////////////////////////////
    //
    ////////////////////////////VIDEO TRAITEMENT//////////////////////////////////////////
    /*La classe NetConnection permet de lire des fichiers FLV en flux continu à partir
    d'un lecteur local ou d'une adresse HTTP. */
    var connexionVideo:NetConnection = new NetConnection();
    /*Ouvre une connexion locale permettant de lire les fichiers vidéo (FLV) à partir d'une adresse 
    HTTP ou du système local de fichiers.*/
    connexionVideo.connect(null);
    /*La classe NetStream fournit des méthodes et des propriétés permettant de lire des fichiers Flash 
    Video (FLV) à partir du système de fichiers local ou d'une adresse HTTP*/
    var controlVideo:NetStream = new NetStream(connexionVideo);
    /*Spécifie un flux vidéo (source) à afficher dans notre recepteur vidéo "ecran" figurant sur la Scène*/
    ecran.attachVideo(controlVideo);
    // Définir la durée du tampon :   
    controlVideo.setBufferTime(5);
    ////////////////////////barre de progression du stream////////////////////////////////////////////
    _root.barre_mc._xscale = 0;
    function flvProgress():Void {
    	var loaded_interval:Number = setInterval(checkBytesLoaded, 500, controlVideo);
    }
    function checkBytesLoaded(my_ns:NetStream) {
    	var pctLoaded:Number = Math.round(my_ns.bytesLoaded/my_ns.bytesTotal*100);
    	infosStream_mc.loaded_txt.text = Math.round(my_ns.bytesLoaded/1000)+" of "+Math.round(my_ns.bytesTotal/1000)+" KB loaded ("+pctLoaded+"%)";
    	barre_mc._xscale = pctLoaded;
    	if (pctLoaded>=100) {
    		clearInterval(loaded_interval);
    	}
    }
    /////////////LES METADONNEES//////////////////////////////////////////////////////////////////
    /////AFFICHAGE DU TEMP DE LA VIDEO EN COUR////////////////////////////////////////////////////
    controlVideo.onMetaData = function(myMeta) {
    	for (var i in myMeta) {
    		//trace(i+":\t"+myMeta[i]);
    		var duree:Number = myMeta.duration;
    		//videoDuree_txt.text = "Durrée : "+duree+" secondes";
    		var minutes = Math.floor(duree/60);
    		/*ici Renvoie la valeur minimale du temp ecoule avec un modulo de 60 pour obetenir des minutes*/
    		/*Le modulo de x et y (x % y) est le reste de la division de x par y*/
    		var secondes = Math.floor((duree)%60);
    		/*on met en forme l'affichage sur 2 chifres si minute ou secondes sont inferieur ou egale a 9 alors on place un 
    		zero devant.*/
    		//minutes = minutes<=9 ? "0"+minutes : minutes;
    		//secondes = secondes<=9 ? "0"+secondes : secondes;
    		if (minutes<=9) {
    			minutes = "0"+minutes;
    		}
    		if (secondes<=9) {
    			secondes = "0"+secondes;
    		}
    		/*on assigne le champ de texte dynamique au valeur de minutes et de secondes*/ 
    		infosStream_mc.videoDuree_txt.text = "Durée : "+minutes+":"+secondes;
    	}
    };
    ////////////////////////////////////////////////////////////////////////////////////////////////
    //
    /////////////////LECTURE VIDEO///////////////////////////////////////////////////////////////////////
    function chargeVideo(i):Void {
    	var videoUrl:String = url_array[i];
    	trace("url de la video par defaut = "+url_array[i]);
    	/*on demande de lire le fichier video1.flv du dossier video grace a la méthode play.*/
    	///////////////////////lecture auto////////////////////////////////////////////////////////////////////////
    	controlVideo.play(videoUrl);
    	flvProgress();
    }
    //////////////////////////FIN TRAITEMENT VIDEO//////////////////////////////////////
    //
    ////////////////////////////////////FONCTIONS DES BOUTONS//////////////////////////////////////////
    //
    //--------------------------------BOUTON LECTURE-------------------------------------------------
    boutonLecture_btn.onRollOver = function() {
    	infos_txt.htmlText = "<b>Vidéo lecture</b>";
    };
    boutonLecture_btn.onRollOut = function() {
    	infos_txt.htmlText = "";
    };
    boutonLecture_btn.onPress = function() {
    	/*on demande de lire le fichier video1.flv du dossier video grace a la méthode play.*/
    	chargeVideo(i);
    };
    //----------------------------------BOUTON ARRET------------------------------------------------------------
    boutonArret_btn.onRollOver = function() {
    	infos_txt.htmlText = "<b>Vidéo stop</b>";
    };
    boutonArret_btn.onRollOut = function() {
    	infos_txt.htmlText = "";
    };
    boutonArret_btn.onPress = function() {
    	/*On utilise un paramètre vide pour la méthode play de façon a arrêter le lecture sans perdre 
    	le flux vidéo déjà charger que l'on aurai perdu si l'on avait utilise un stop au lieu de play*/
    	controlVideo.play("");
    };
    //-------------------------------------------BOUTON REMBOBINAGE------------------------------------------------
    boutonRembobinage_btn.onRollOver = function() {
    	infos_txt.htmlText = "<b>Vidéo retour arrière</b>";
    };
    boutonRembobinage_btn.onRollOut = function() {
    	infos_txt.htmlText = "";
    };
    boutonRembobinage_btn.onPress = function() {
    	//on demande au flux vidéo de retourné a son début donc parametre de la méthode seek a 0
    	controlVideo.seek(controlVideo.time-5);
    };
    //-----------------------------------------BOUTON AVANCE RAPIDE-------------------------------------------
    boutonAvanceRapide_btn.onRollOver = function() {
    	infos_txt.htmlText = "<b>Vidéo avance rapide</b>";
    };
    boutonAvanceRapide_btn.onRollOut = function() {
    	infos_txt.htmlText = "";
    };
    boutonAvanceRapide_btn.onPress = function() {
    	//on demande au flux vidéo de retourné a son début donc parametre de la méthode seek a 0
    	controlVideo.seek(controlVideo.time+5);
    };
    //-------------------------------------------BOUTON VIDEO SUIVANTE---------------------------------------------
    boutonNext_btn.onRollOver = function() {
    	infos_txt.htmlText = "<b>Vidéo suivante</b>";
    };
    boutonNext_btn.onRollOut = function() {
    	infos_txt.htmlText = "";
    };
    boutonNext_btn.onPress = nextBouton;
    function nextBouton() {
    	infos_txt.htmlText = "";
    	if (i>=videoTotal-1) {
    		i = videoTotal-1;
    		chargeVideo(i);
    		infos_txt.htmlText = "<b>plus de vidéos</b>";
    	} else {
    		i++;
    		chargeVideo(i);
    	}
    }
    //-----------------------------------------------BOUTON PRECEDENT----------------------------------------
    boutonPrecedent_btn.onRollOver = function() {
    	infos_txt.htmlText = "<b>Vidéo précédente</b>";
    };
    boutonPrecedent_btn.onRollOut = function() {
    	infos_txt.htmlText = "";
    };
    boutonPrecedent_btn.onPress = function() {
    	if (i>0) {
    		i--;
    		chargeVideo(i);
    	} else {
    		i = 0;
    		chargeVideo(i);
    	}
    };
    //-----------------------------------------BOUTON PAUSE---------------------------------------------------
    boutonPause_btn.onRollOver = function() {
    	infos_txt.htmlText = "<b>Pause</b>";
    };
    boutonPause_btn.onRollOut = function() {
    	infos_txt.htmlText = "";
    };
    boutonPause_btn.onPress = function() {
    	//on invoque la méthode pause
    	controlVideo.pause();
    };
    /////////////////////////////////////FIN FONCTIONS DES BOUTONS////////////////////////////////////////////////
    //
    ///////////////////////////GESTION DU TEMP DE LA VIDEO EN LECTURE/////////////////////////////////////////////
    function afficherTemps():Void {
    	/*on met dans une variable le temp ecoule depuis le lancement de sa lecture*/
    	var tempsEcoule:Number = controlVideo.time;
    	/*ici Renvoie la valeur minimale du temp ecoule divisé par 60 pour obetenir des minutes*/
    	var minutes = Math.floor(tempsEcoule/60);
    	/*ici Renvoie la valeur minimale du temp ecoule avec un modulo de 60 pour obetenir des minutes*/
    	/*Le modulo de x et y (x % y) est le reste de la division de x par y*/
    	var secondes = Math.floor((tempsEcoule)%60);
    	/*on met en forme l'affichage sur 2 chifres si minute ou secondes sont inferieur ou egale a 9 alors on place un 
    	zero devant.*/
    	//minutes = minutes<=9 ? "0"+minutes : minutes;
    	//secondes = secondes<=9 ? "0"+secondes : secondes;
    	if (minutes<=9) {
    		minutes = "0"+minutes;
    	}
    	if (secondes<=9) {
    		secondes = "0"+secondes;
    	}
    	/*on assigne le champ de texte dynamique au valeur de minutes et de secondes*/ 
    	infosStream_mc.affichageTemps.text = "Position :"+minutes+":"+secondes;
    	infosStream_mc.totalVideo_txt.text = i+1+" / "+videoTotal;
    }
    /*on actualise l'affichage du temp toutes les 100 milli-seconde grace a setInterval
    Appelle une fonction ou une méthode d'un objet à des intervalles périodiques pendant la lecture d'un fichier SWF. 
    Vous pouvez utiliser setInterval() pour exécuter une fonction de manière répétitive dans le temps. */
    var lancerAffichageTemps:Number = setInterval(afficherTemps, 100);
    ////////////////////////FIN GESTION DU TEMP DE LA VIDEO EN LECTURE//////////////////////////////////////////////
    //
    //////////////////////////////////////////LECTURE CONTINUE///////////////////////////////////////////////////
    //Définissons une fonction onStatus() pour suivre les différents états
    controlVideo.onStatus = function(infoObject) {
    	//on surveille la fin de la video de façon à lancer la video suivante.
    	if (infoObject.code == "NetStream.Buffer.Empty") {
    		//ici on fait appel a la video suivante des la fin d'une video ce presente
    		nextBouton();
    	}
    };
    //////////////////////////////////////FIN LECTURE CONTINUE///////////////////////////////////////////////////
    //
    //////////////////////////////////////commande du volume sonore de la video/////////////////////////////
    var DmcSound = new Sound("_root.volume_commande_mc");
    _root.volume_commande_mc.attachAudio(controlVideo);
    DmcSound.setVolume(0);
    /*-----------------------------------------------------------------*/
    function SetVolume(volumeVideo) {
    	var echelleVolume = Math.round(volumeVideo);
    	_root.DmcSound.setVolume(echelleVolume);
    	trace(echelleVolume);
    	infos_txt.htmlText = "<b>"+echelleVolume+" %</b>";
    }
    ///////////////////////////GESTION DES MINIATURES VIDEO/////////////////////////////////
    ////////////////////////////VIDEO TRAITEMENT M1//////////////////////////////////////////
    /*La classe NetConnection permet de lire des fichiers FLV en flux continu à partir
    d'un lecteur local ou d'une adresse HTTP. */
    var connexionVideoM1:NetConnection = new NetConnection();
    /*Ouvre une connexion locale permettant de lire les fichiers vidéo (FLV) à partir d'une adresse 
    HTTP ou du système local de fichiers.*/
    connexionVideoM1.connect(null);
    /*La classe NetStream fournit des méthodes et des propriétés permettant de lire des fichiers Flash 
    Video (FLV) à partir du système de fichiers local ou d'une adresse HTTP*/
    var controlVideoM1:NetStream = new NetStream(connexionVideoM1);
    /*Spécifie un flux vidéo (source) à afficher dans notre recepteur vidéo "containerM1" figurant sur la Scène*/
    containerM1.attachVideo(controlVideoM1);
    // Définir la durée du tampon :   
    controlVideoM1.setBufferTime(5);
    ////////////////////////////VIDEO TRAITEMENT M2//////////////////////////////////////////
    /*La classe NetConnection permet de lire des fichiers FLV en flux continu à partir
    d'un lecteur local ou d'une adresse HTTP. */
    var connexionVideoM2:NetConnection = new NetConnection();
    /*Ouvre une connexion locale permettant de lire les fichiers vidéo (FLV) à partir d'une adresse 
    HTTP ou du système local de fichiers.*/
    connexionVideoM2.connect(null);
    /*La classe NetStream fournit des méthodes et des propriétés permettant de lire des fichiers Flash 
    Video (FLV) à partir du système de fichiers local ou d'une adresse HTTP*/
    var controlVideoM2:NetStream = new NetStream(connexionVideoM2);
    /*Spécifie un flux vidéo (source) à afficher dans notre recepteur vidéo "containerM2" figurant sur la Scène*/
    containerM2.attachVideo(controlVideoM2);
    // Définir la durée du tampon :   
    controlVideoM2.setBufferTime(5);
    /////////////////LECTURE VIDEO M1///////////////////////////////////////////////////////////////////////
    function chargeVideoM1(i):Void {
    	var videoUrlM1:String = url_array[i];
    	trace("url de la video par defaut = "+url_array[i]);
    	/*on demande de lire le fichier video1.flv du dossier video grace a la méthode play.*/
    	///////////////////////lecture auto////////////////////////////////////////////////////////////////////////
    	controlVideoM1.play(videoUrlM1);
    }
    /////////////////LECTURE VIDEO M2///////////////////////////////////////////////////////////////////////
    function chargeVideoM2(i):Void {
    	var videoUrlM2:String = url_array[i];
    	trace("url de la video par defaut = "+url_array[i]);
    	/*on demande de lire le fichier video1.flv du dossier video grace a la méthode play.*/
    	///////////////////////lecture auto////////////////////////////////////////////////////////////////////////
    	controlVideoM2.play(videoUrlM2);
    }
    //////////////////////////FIN TRAITEMENT VIDEO//////////////////////////////////////
    //
    //////////////////////////////////////commande du volume sonore de la videoM1/////////////////////////////
    var DmcSoundM1 = new Sound(controlVideoM1);
    //_root.volume_commandeM1_mc.attachAudio(controlVideoM1);
    DmcSoundM1.setVolume(0);
    //////////action du bouton_mc utilisé pour un effet alpha sur la video vignettes/////////////////////////
    this.containerM1_btn._alpha = 80;
    this.containerM1_btn.onRollOver = function():Void  {
    	this._alpha = 100;
    };
    this.containerM1_btn.onRollOut = function():Void  {
    	this._alpha = 80;
    };
    //////////////////////////////////////commande du volume sonore de la video M2/////////////////////////////
    var DmcSoundM2 = new Sound(controlVideoM2);
    //_root.volume_commandeM2_mc.attachAudio(controlVideoM2);
    DmcSoundM2.setVolume(0);
    //////////action du bouton_mc utilisé pour un effet alpha sur la video vignettes/////////////////////////
    this.containerM2_btn._alpha = 50;
    this.containerM2_btn.onRollOver = function():Void  {
    	this._alpha = 100;
    };
    this.containerM2_btn.onRollOut = function():Void  {
    	this._alpha = 80;
    };
    J’imagine bien que mon code n’est pas parfait mais il fonctionne très bien et il est assez long donc toutes suggestions a l’amélioré et pour l’optimisé seront les bienvenues.
    Étant donne la longueur du code je pense que je ne risque pas d’avoir de réponse rapide alors je suis prêt a attendre le temps qu’il faudra. Je vous mets les sources ici et le visuel ici Merci de votre aide bonne soirée a tous le monde bye.

  2. #2
    Membre émérite
    Avatar de jean philippe
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 062
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 062
    Points : 2 313
    Points
    2 313
    Par défaut
    salut
    Il te faut créer un objet sound pour pouvoir le controler
    comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    this.createEmptyMovieClip("flv_mc1", this.getNextHighestDepth());
    flv_mc1.attachAudio(controlVideoM1);
    var audio_sound:Sound = new Sound(flv_mc1);
    audio_sound.setVolume(0);
    je te joins tes fichiers corrigés

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Points : 9
    Points
    9
    Par défaut
    Merci tu est vraiment super je vais regarder ca de tres pret Merci merci merci .

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Points : 9
    Points
    9
    Par défaut
    Voila problème résolu, j'ai créé un troisième objet sound pour ma video principale et viré le code qui n'avait plus lieu d'être.

    Merci encore.

    PS: voici le lien du site flash sur lequel sera adapter ce lecteur video allez dans menu / video botafogo Paintball

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/10/2006, 13h55
  2. [FLASH 8] Gestion des collisions
    Par celinha dans le forum Flash
    Réponses: 12
    Dernier message: 23/06/2006, 11h15
  3. Réponses: 4
    Dernier message: 14/12/2004, 17h37
  4. [FLASH MX2004] Gestion des clips
    Par laurent1 dans le forum Flash
    Réponses: 6
    Dernier message: 28/11/2004, 10h53
  5. [flash mx]la gestion du son et de la video
    Par freshguicha dans le forum Flash
    Réponses: 5
    Dernier message: 03/04/2004, 12h50

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