Bonsoir,
Je voudrais créer une horloge mais par l'intermédiaire d'une classe (afin qu'elle soit réutilisable dans plusieurs programmes).
Voici le code de la classe de l'horloge (pour l'instant il ne comprend que le fond)
Je voudrais que les aiguilles, dont le code de classe suit, puissent être intégrées au dessin de l'horloge (dans la classe horloge) [ remarque : les aiguilles sont destinées à bouger par la suite de façon indépendante]
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 /////////////////// /* UneHorloge.as */ /////////////////// dynamic class UneHorloge extends MovieClip { private var taille:Number; private var conteneur_mc:MovieClip; public var couleur_trait:Number=0xFF6600; public var couleur_fond:Number=0x00FF99; public var couleur_grande_aiguille:Number=0x660000; public var couleur_petite_aiguille:Number=0xFFCC00; public var place:Array; public function UneHorloge(tal:Number,cible:MovieClip,nom:String,profondeur:Number) { taille=tal; conteneur_mc=cible.createEmptyMovieClip(nom,profondeur); conteneur_mc.clear(); dessine(); } public function dessine() { // dessine le fond conteneur_mc.lineStyle(4,couleur_trait); conteneur_mc.moveTo(0,0); conteneur_mc.moveTo(0-taille,0); conteneur_mc.beginFill(couleur_fond,100); var pas_dessin:Number=100; var curseur_dessin:Number=1; while (curseur_dessin<pas_dessin+1) { conteneur_mc.lineTo(-taille+2*taille*curseur_dessin/pas_dessin,2*taille/pas_dessin*Math.sqrt(curseur_dessin*(pas_dessin-curseur_dessin))); curseur_dessin++; } curseur_dessin=pas_dessin-1; while (curseur_dessin>1) { conteneur_mc.lineTo(-taille+2*taille*curseur_dessin/pas_dessin,-2*taille/pas_dessin*Math.sqrt(curseur_dessin*(pas_dessin-curseur_dessin))); curseur_dessin--; } conteneur_mc.endFill(); // comment rajouter les aiguilles ? } public function setPos(pos:Array) { place=new Array(2); place=pos; conteneur_mc._x=place[0]; conteneur_mc._y=place[1]; } }
La seule fonction que je connaisse est attach.Movie mais elle implique que le clip à attacher soit présent dans la bibliothèque (ce qui n'est pas le cas ici puisqu'il provient d'une classe …) et l'autre que j'ai trouvée est load.movie mais elle semble ne servir qu'à attacher des .swf.
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 //////////////////// /* UneAiguille.as */ //////////////////// dynamic class UneAiguille extends MovieClip { private var taille:Number; private var conteneur_mc:MovieClip; public var couleur:Number; public var angle:Number; public function UneAiguille(tal:Number,col:Number,cible:MovieClip,nom:String,profondeur:Number) { taille=tal; couleur=col; conteneur_mc=cible.createEmptyMovieClip(nom,profondeur); conteneur_mc.clear(); dessine(); } public function dessine() { conteneur_mc.lineStyle(1,couleur); conteneur_mc.moveTo(0,0); conteneur_mc.beginFill(couleur,100); conteneur_mc.lineTo(Math.floor(85*taille/100),-Math.floor(15*taille/100)); conteneur_mc.lineTo(taille,0); conteneur_mc.lineTo(Math.floor(85*taille/100),+Math.floor(15*taille/100)); conteneur_mc.lineTo(0,0); conteneur_mc.endFill(); } }
D'avance merci pour votre aide.![]()
Partager