{lang: 'de'}
Flashhilfe.de - Flash Community

Animation abspielen wenn Maus bestimmten Bereich berüht [Flash 11]

 


AntwortenRegistrieren Seite1  

s.Woelfchen#1
Benutzerbild von s.Woelfchen
Beiträge: 20
Registriert: Dec 2011

04.02.2012, 12:02

Huhu, ich bastle grade ein Menü mit 4 Bereichen. Die Menüpunkte (Movieclips) kommen zur Laufzeit mit addChild auf die Bühne und beinhalten in ihrer eigenen Zeitleiste eine Animation. Ich möchte nun aber nicht dass alle ihre Animation abspielen, sondern nur das woraus der Mauszeiger gerade zeigt (Bühne teile ich in 4 Bereiche auf). Wie mach ich das, dass er das erst abspielt, wenn ich mit der Maus drauf gehen und die anderen nichts tun?

Überfragte Grüße
Schlagwörter: Animation, maus roll over
s.Woelfchen#2
Benutzerbild von s.Woelfchen
Beiträge: 20
Registriert: Dec 2011

Themenautor/in

04.02.2012, 14:02

Ich hab jetzt mal ein bissel gebastelt und möchte den statischen MC bei Mause OVER durch einen mit Animation ersetzen. Das klappt auch, er nimmt aber den animierten nicht wieder weg, also die Mouse OUT funktion geht nicht, weil er die Childs die ich entfernen möchte nicht erkennt. Liegt dass daran dass AS3 da innerhalb der Funktion nicht drauf zugreifen kann?

Hier mein Code:

ActionScript:
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
// Menüpunkte statisch auf die Bühne bringen

var typoanimation_instanz_sta:typoanimation_sta = new typoanimation_sta();
this.addChild(typoanimation_instanz_sta);
typoanimation_instanz_sta.x = 30;
typoanimation_instanz_sta.y = 90;

var bewegungsquiz_instanz_sta:bewegungsquiz_sta = new bewegungsquiz_sta();
this.addChild(bewegungsquiz_instanz_sta);
bewegungsquiz_instanz_sta.x = 400;
bewegungsquiz_instanz_sta.y = 90;


var gestaltgesetze_instanz_sta:gestaltgesetze_sta = new gestaltgesetze_sta();
this.addChild(gestaltgesetze_instanz_sta);
gestaltgesetze_instanz_sta.x = 20;
gestaltgesetze_instanz_sta.y = 400;

var freieaufgabe_instanz_sta:freieaufgabe_sta = new freieaufgabe_sta();
this.addChild(freieaufgabe_instanz_sta);
freieaufgabe_instanz_sta.x = 500;
freieaufgabe_instanz_sta.y = 400;



// bewegte Menüpunkte

//bereich typoanimation
stage.addEventListener(MouseEvent.MOUSE_OVER, wackeln)

function wackeln (event:MouseEvent):void
{
     
  if (mouseY < 320 && mouseX < 400)
  {
     trace ("Bereich Typoanimation");
     var typoanimation_instanz_ani:typoanimation = new typoanimation();
     this.addChild(typoanimation_instanz_ani);
     typoanimation_instanz_ani.x = 30;
     typoanimation_instanz_ani.y = 90;
 
     removeChild(typoanimation_instanz_sta);
  }
 
 
  //bereich gestaltgesetze
else if (mouseY > 320 && mouseX < 400)
  {
     trace ("Bereich Gestaltgesetze");
     var gestaltgesetze_instanz_ani:gestaltgesetze = new gestaltgesetze();
     this.addChild(gestaltgesetze_instanz_ani);
     gestaltgesetze_instanz_ani.x = 20;
     gestaltgesetze_instanz_ani.y = 400;
 
     removeChild(gestaltgesetze_instanz_sta);
  }
 
  //bereich bewegungsquiz
else if (mouseY < 320 && mouseX > 400)
  {
     trace ("Bereich Bewegungsquiz");
     var bewegungsquiz_instanz_ani:bewegungsquiz = new bewegungsquiz();
     this.addChild(bewegungsquiz_instanz_ani);
     bewegungsquiz_instanz_ani.x = 400;
     bewegungsquiz_instanz_ani.y = 90;
 
     removeChild(bewegungsquiz_instanz_sta);
  }
 
  //bereich freieaufgabe
else (mouseY > 320 && mouseX < 400)
  {
     trace ("Bereich Freiaufgabe");
     var freieaufgabe_instanz_ani:freieaufgabe = new freieaufgabe();
     this.addChild(freieaufgabe_instanz_ani);
     freieaufgabe_instanz_ani.x = 500;
     freieaufgabe_instanz_ani.y = 400;
 
     removeChild(freieaufgabe_instanz_sta);
  }
}


///////////// wackelnde wieder statisch machen


stage.addEventListener(MouseEvent.MOUSE_OUT, stehen)

function stehen(event:MouseEvent):void
{
     
  if (mouseY < 320 && mouseX < 400)
  {
     removeChild(typoanimation_instanz_ani);
     trace ("Bereich Typoanimation");
     var typoanimation_instanz_sta:typoanimation = new typoanimation();
     this.addChild(typoanimation_instanz_sta);
     typoanimation_instanz_sta.x = 30;
     typoanimation_instanz_sta.y = 90;
 
     
  }
 
 
  //bereich gestaltgesetze
else if (mouseY > 320 && mouseX < 400)
  {
        removeChild(gestaltgesetze_instanz_ani);
     trace ("Bereich Gestaltgesetze");
     var gestaltgesetze_instanz_sta:gestaltgesetze = new gestaltgesetze();
     this.addChild(gestaltgesetze_instanz_sta);
     gestaltgesetze_instanz_sta.x = 20;
     gestaltgesetze_instanz_sta.y = 400;
 
 
  }
 
  //bereich bewegungsquiz
else if (mouseY < 320 && mouseX < 400)
  {
     removeChild(bewegungsquiz_instanz_ani);
     trace ("Bereich Bewegungsquiz");
     var bewegungsquiz_instanz_sta:bewegungsquiz = new bewegungsquiz();
     this.addChild(bewegungsquiz_instanz_sta);
     bewegungsquiz_instanz_sta.x = 400;
     bewegungsquiz_instanz_sta.y = 90;
 
     
  }
 
  //bereich freieaufgabe
else (mouseY > 320 && mouseX < 400)
  {
        removeChild(freieaufgabe_instanz_ani);
     trace ("Bereich Freiaufgabe");
     var freieaufgabe_instanz_sta:freieaufgabe = new freieaufgabe();
     this.addChild(freieaufgabe_instanz_sta);
     freieaufgabe_instanz_sta.x = 500;
     freieaufgabe_instanz_sta.y = 400;
 
 
  }
}

micB#3
Benutzerbild von micB
Beiträge: 186
Registriert: Jun 2009

05.02.2012, 14:46

hi,
ich glaube, dass du es im ansatz schon komplizierter machst als nötig.
in deinem ersten post schreibst du, dass du buttons hast mit eingebauter animation.
also könntest du sie doch im 1.frame stoppen, bei mouseOver starten und bei mouseOut wieder in den 1. frame schicken und stoppen.
dazu solltest du deine eventListener nicht an die stage hängen, sondern direkt an die buttons.
ActionScript:
1
2
3
4
5
6
7
var typoanimation_instanz_sta:typoanimation_sta = new typoanimation_sta();
this.addChild(typoanimation_instanz_sta);
typoanimation_instanz_sta.x = 30;
typoanimation_instanz_sta.y = 90;
typoanimation_instanz_sta.stop();
typoanimation_instanz_sta.addEventListener(MouseEvent.MOUSE_OVER, wackeln);
typoanimation_instanz_sta..addEventListener(MouseEvent.MOUSE_OUT, stehen);


ActionScript:
1
2
3
4
5
6
7
8
function wackeln (event:MouseEvent):void
{
  event.currentTarget.gotoAndPlay(2);
}
function stehen(event:MouseEvent):void
{
  event.currentTarget.gotoAndStop(1);
}
Geändert von micB am 05.02.12 um 14:58 Uhr
s.Woelfchen#4
Benutzerbild von s.Woelfchen
Beiträge: 20
Registriert: Dec 2011

Themenautor/in

05.02.2012, 16:49

Aber wenn ich dann im 2. Frame bin wackeln doch alle, oder? Ich habe ja 4 Punkte, die wackeln können. Versteh ich irgendwie nicht :[
micB#5
Benutzerbild von micB
Beiträge: 186
Registriert: Jun 2009

05.02.2012, 20:54

mit "event.currentTarget.gotoAndPlay(2)" sprichst du die zeitleiste des clips an, der den event ausgelöst hat.
"event.currentTarget" kann z.b. "typoanimation_instanz_sta" sein, wo entweder ein mouseOver oder ein mouseOut ausgelöst wurde.
und mit dem 2.frame von "typoanimation_instanz_sta" (dem currentTarget) haben die anderen buttons nix zu tun.
s.Woelfchen#6
Benutzerbild von s.Woelfchen
Beiträge: 20
Registriert: Dec 2011

Themenautor/in

05.02.2012, 21:12

Aaaah vielen Dank! Ich arbeite das morgen mal ein. Hoffe es klappt dann :-))

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2024 Sebastian Wichmann - Flashhilfe.de