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 :

Affichage horloge digitale durant une animation


Sujet :

ActionScript 3

  1. #1
    Candidat au Club
    Homme Profil pro
    Instructeur
    Inscrit en
    octobre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Instructeur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : octobre 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Affichage horloge digitale durant une animation
    Bonjour
    Tout nouveau sur votre forum, j'ai un petit souci dans l'élaboration du code de mon animation.
    Cette animation comporte trois listes et une horloge:
    Mon problème est que lorsque l'horloge défile (boucle avec un gotoAndPlay (1) en frame 2, je ne peux pas effectuer de sélection. Si je retire le gotoAndPlay de la frame 2, la sélection est possible mais l'horloge est figée.

    Je voudrais que mon horloge défile l'heure en me laissant la possibilité de sélectionner un item dans les listes

    Voici le code que j'ai écris:
    Frame 1:

    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
    import fl.controls.List; 
    import fl.controls.TextArea; 
    import flash.events.Event; 
    import fl.data.DataProvider; 
    import fl.controls.SelectableList;
    import fl.managers.StyleManager; 
    import flash.events.MouseEvent;
    import flash.display.DisplayObjectContainer;
    import flashx.textLayout.container.ContainerController;
    import flash.events.TimerEvent;
    import flash.utils.Timer;
    import flash.display.MovieClip;
    
    
    
    /*-- "constructeur_List" = List of vehicules which are selectable by click on the left list----------*/
    
    var vehicule_List:List = new List(); 
    vehicule_List.setSize(445, 355);
    vehicule_List.move(55,195); 
    
    
    addChild(vehicule_List); 
    
    
    var vehicule:Array = [ 
    {label:"Voitures"}, 
    {label:"Avions"}, 
    {label:"Camions"},
    {label:"Helicoptères"},
    ]; 
    
    vehicule_List.dataProvider = new DataProvider(vehicule); 
    
    
    /*-------------------------------------- to select constructeur avion list------------------------*/
    vehicule_List.addEventListener(Event.CHANGE, gr_itemClick);
    function gr_itemClick(event:Event):void {
    	switch (event.target.selectedItem.label)
    	{
    		case "Avions":
    			addChild(constructeur_A_List);
    			break;
    	}
    }
    
    
    
    /*// list constructeur avions*/
    var constructeur_A_List:List = new List(); 
    constructeur_A_List.setSize(165, 355);
    
    constructeur_A_List.move(530,195); 
    
    var constructeur_A:Array = [ 
    {label:"Boeing"}, 
    {label:"Airbus"},
    {label:"Bombardier"}, 
    {label:"Mc Donnell Douglas"},
    ]; 
    
    constructeur_A_List.dataProvider = new DataProvider(constructeur_A); 
    
    
    /*-------------------------------------------------------------------------------------------------*/
    /*---to select or deselect constructeur avions ------------*/
    
    var selected_constructeur_List:List = new List(); // creates the third list (empty)
    selected_constructeur_List.setSize(165, 355); // size of the third list
    
    selected_constructeur_List.move(800,195); // position of the thrid list on the screen
    
    constructeur_A_List.addEventListener(Event.CHANGE, gr_hwClick); // permits to select and to remove an item from the second list and to place it into the third
    
    
    function gr_hwClick(event:Event):void {
    	addChild(selected_constructeur_List);
    	selected_constructeur_List.addItem(event.target.selectedItem);
    	constructeur_A_List.removeItem(event.target.selectedItem);
    }
    
    selected_constructeur_List.addEventListener(Event.CHANGE, gr_hw_back_Click); // permits to select and to remove an item from the third list and to place it into the second
    
    function gr_hw_back_Click(event:Event):void{
    	addChild(selected_constructeur_List);
    	constructeur_A_List.addItem(event.target.selectedItem);
    	selected_constructeur_List.removeItem(event.target.selectedItem);
    }
    
    /* ----------------------clock------------------*/
    
    var time:Date = new Date();
    var seconds = time.getSeconds()
    var minutes = time.getMinutes()
    var hours = time.getHours()
    
    if (seconds<10){
    	seconds = "0" + seconds;
    }
    if (minutes<10){
    	minutes = "0" + minutes;
    }
    if (hours<10){
    	hours = "0" + hours
    }
    clock_text.text = hours + ":" + minutes + ":" + seconds;


    Si quelqu'un peut m'aider, ce serait super.
    Merci d'avance
    Cordialement
    Franck

  2. #2
    Membre expérimenté
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    avril 2005
    Messages
    1 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2005
    Messages : 1 410
    Points : 1 573
    Points
    1 573
    Par défaut
    Bonsoir, pourquoi tu n'utilises pas l'événement ENTER_FRAME sur ton textField.

    Une horloge vite fait en as3 :

    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
     
    package
    {
    	import flash.display.Sprite;
    	import flash.events.Event;
    	import flash.text.TextField;
    	import flash.text.TextFormat;
    	import flash.text.TextFieldAutoSize;
     
     
    	public class Main extends Sprite
    	{
    		private var police:TextFormat = new TextFormat();
    		private var affichage:TextField = new TextField();
    		private var w:Number = stage.stageWidth;
    		private var h:Number = stage.stageHeight;
     
    		public function Main()
    		{
    			if (stage) init();
    			else addEventListener(Event.ADDED_TO_STAGE, init);
    		}
     
    		private function init(e:Event = null):void
    		{
    			removeEventListener(Event.ADDED_TO_STAGE, init);
    			// entry point
     
    			with (police)
    			{
    				font = "arial";
    				size = 80;
    				color = 0xFF0000;
    				bold = true;
    			}
     
    			with (affichage)
    			{
    				defaultTextFormat = police;
    	        	        autoSize = TextFieldAutoSize.LEFT;
    				text = "00 : 00 : 00";
    				x = (w - textWidth) / 2;
    				y = (h - textHeight) / 2;
    			        background = true;
    				backgroundColor = 0;
    			}
    	                addChild(affichage);
     
     
    			affichage.addEventListener(Event.ENTER_FRAME, render);
    		}
     
    		private function render(e:Event):void
    		{
     
    			var d:Date = new Date();
     
    			with (e.currentTarget)
    			{
    				text = formatage(d.getHours());
    				text += " : ";
    				text += formatage(d.getMinutes());
    				text += " : ";
    				text += formatage(d.getSeconds());
    			}
    		}
     
    		private function formatage(val:Number):String
    		{
    			if (val < 10) return "0" + val;
    			else return String(val);
    		}
     
    	}
     
    }
    Fichiers attachés Fichiers attachés

  3. #3
    Candidat au Club
    Homme Profil pro
    Instructeur
    Inscrit en
    octobre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Instructeur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : octobre 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Merci
    Bonsoir archimède
    j'ai résolu mon souci en remplaçant toutes les séquences crées par des clips.
    et hop, plus de souci avec mon horloge.
    encore merci de vous être donné la peine de chercher.
    Amicalement
    Franck

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

Discussions similaires

  1. Stopper un événement durant une animation
    Par doncho23 dans le forum jQuery
    Réponses: 1
    Dernier message: 27/04/2010, 23h13
  2. affichage ThickBox par rapport à une animation flash
    Par panganino dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 04/05/2009, 14h08
  3. affichage de news dans une animation flash
    Par nabians dans le forum Flash
    Réponses: 1
    Dernier message: 03/10/2007, 00h10
  4. Réponses: 5
    Dernier message: 19/07/2006, 19h36
  5. Réponses: 4
    Dernier message: 18/04/2004, 13h36

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