Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-08-2003, 17:17   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2002
Beiträge: 66
hittest+tweeningproblem

hallo allerseits,

ich brauche ein mouseover ohne finger, wobei das objekt
langsam verschwindet, wenn die maus drüber geht und auch
langsam wiederkommt, wenn die maus das objekt verlässt.

ich habe das objekt in einen mc gepackt und auf den mc die aktion:
ActionScript:
  1. onClipEvent (enterFrame) {
  2.  if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
  3.   play ();
  4.  } else {
  5.   gotoAndStop (1);
  6.  }
  7. }

im mc ist auf dem ersten frame der zeitleiste das objekt (sichtbar,
mit stop-aktion) und ab dem zweiten frame ein tween, der das
objekt unsichtbar werden lässt. am ende des tweens ist wieder
eine stop-aktion.

wenn ich den film nun teste, wird der mc zwar angesprochen,
aber das tweening wird in schleife abgespielt.
die stop-aktionen werden ignoriert. Anscheinend geht die hitTest-
abfrage ständig wiederholt und damit auch die play-aktion.

ich habe mal ein trace eingebaut:

ActionScript:
  1. onClipEvent (enterFrame) {
  2.  if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
  3.   trace ("hallo");
  4.  }
  5. }

und auch dann erscheinen im ausgabefenster tausende von "hallo"s, solange ich mich auf dem mc befinde.
wie kann ich erreichen, das der hittest nur einmal abgefragt wird,
bis die maus den mc wieder verlässt?

Ich habe auch schon versucht mit AS den alpha-wert
tweening-mässig herabzusetzen.
hat auch gut geklappt, reagiert nur viel, viel zu langsam und
irgendwann überhaupt nicht mehr.

ich würde es schon gerne mit einem normalen tweening machen.

ich hoffe, jemand von euch hat kann mir helfen, bin schon ganz
verzweifelt.

gruss gany
gany ist offline   Mit Zitat antworten
Alt 11-08-2003, 17:43   #2 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Hi,

logisch, dass es immer wieder ausgeführt wird, es steht ja auch im enterFrame, wird also einmal pro Frame ausgeführt.

schreib doch in eine Variable, dass der MC läuft und kombiniere das mit onClipEvent(mouseMove):

ActionScript:
  1. onClipEvent(mouseMove) {
  2.     if(this.hitTest(_root._xmouse,_root._ymouse,true)) {
  3.         if(!this.running) {
  4.             this.running = true;
  5.             play();
  6.         }
  7.     } else {
  8.         this.running = false;
  9.         gotoAndStop(1);
  10.     }
  11. }

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 11-08-2003, 18:07   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2002
Beiträge: 66
super sascha, hat auf anhieb geklappt!

ich versteh´ das aber nur so halb, bin allerdings auch ein ziemlicher AS-Anfänger.
mit variablen habe ich´s noch nicht so. das wort running hast du dir doch ausgedacht, oder?
oder erkennt flash das wort "running" als running oder liegt´s am ausrufungszeichen?

erlärs nur, wenn´s nicht zu viel mühe macht, ansonsten bin ich total glücklich!
danke,danke!!!!

ah, ich seh gerade, ich habe doch noch ein problem.
ich wollte doch, wenn die maus vom objekt runtergeht, das dann
noch ein tweening stattfindet, das es ausfadet.
jetzt habe ich auf dem mc:
ActionScript:
  1. onClipEvent (mouseMove) {
  2.     if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
  3.         if (!this.running) {
  4.             this.running = true;
  5.             play ();
  6.         }
  7.     } else {
  8.         this.running = false;
  9.         gotoAndPlay (12);
  10.     }
  11. }

ab frame 12 (im mc) der tween.
jetzt habe ich die kontrolle leider wieder verloren.
jetzt zappelt es, wenn ich nicht auf dem mc bin, oder so ähnlich.

hast noch eine idee?

liebe gruesse, gany
gany ist offline   Mit Zitat antworten
Alt 11-08-2003, 19:07   #4 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.298
ActionScript:
  1. onClipevent(enterFrame){
  2. if(this.hitTest(_root._xmouse,_root._ymouse) && this._alpha > 0){
  3. this._alpha -=5;
  4. } else if(!this.hitTest(_root._xmouse,_root._ymouse) && this._alpha <100){
  5. this._alpha +=5;
  6. }
  7. }
  8.  
  9. //oder auf ersten und 12ten frame ein stop()
  10.  
  11. onClipEvent (mouseMove) {
  12.         if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
  13.                 if (!this.running) {
  14.                         this.running = true;
  15. this.running1 = true;
  16.                         play ();
  17.                 }
  18.         } else if(this.running1){
  19.                 this.running = false;
  20. this.running1 = false;
  21.                 gotoAndPlay (12);
  22.         }
  23. }

if(!variablenname) bedeutet soviel wie if(variablenname==false)
und
if(variablenname) bedeutet soviel wie if(variablenname==true)

mfg geo
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker

Geändert von _geo_ (11-08-2003 um 19:15 Uhr)
_geo_ ist offline   Mit Zitat antworten
Alt 11-08-2003, 20:58   #5 (permalink)
Neuer User
 
Registriert seit: Aug 2002
Beiträge: 66
ja, klasse!

vielen, vielen dank für die promte hilfe.
funktioniert super.
danke auch für die erklärungen. ich glaube, was die scripte
angeht, muss ich wohl noch mal bisschen eingehender
über sie nachdenken müssen, das mit dem running1 und running.
die alpha-geschichte hatte ich schon mal so ähnlich ausprobiert
(ohne hitTest), auch einigermaßen erfolgreich. allerdings wurde
die reaktion immer langsamer, bis die ganze geschichte irgendwie
einschlief. also werde ich auf jeden fall dein script auch
malausprobieren. jetzt bin ich wirklich ausreichend versorgt.

bis dann, schönen abend noch.
ich werd´ auf jeden fall gut schlafen, danke noch mal

gany
gany ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 16:26 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele