Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-06-2005, 12:22   #1 (permalink)
Flash and chips.
 
Benutzerbild von Zett
 
Registriert seit: Jun 2001
Ort: Graz
Beiträge: 531
mehrere onmouseover

Hallo,
gibt's eine Möglichkeit, ein onmouseover zu definieren, das separat von anderen arbeitet?
Konkret: Ich hab ein tooltip, und das soll bei jedem MC funktionieren, sobald dort die Variable tooltip= gesetzt ist. Also bei mouseover einfach die Variable abfragen, und wenn sie da ist, tooltip zeigen.
Und dazu muss ich den mc-prototyp umschreiben, also bei onmouseover: showTooltip(), oder so. Das würde dann aber alle individuellen onmouseovers überschreiben, oder? Kann ich das umgehen?

Thx in advance,
Zett.
__________________
The map is NOT the territory.
Zett ist offline   Mit Zitat antworten
Alt 07-06-2005, 12:30   #2 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Zitat:
Zitat von Zett
Das würde dann aber alle individuellen onmouseovers überschreiben, oder?
Nicht wenn du den Tooltip einfach in den RollOver packst.
ActionScript:
  1. this.mein_btn.onRollOver = function(){
  2. // ...deine Anweisungen und der...
  3. showTooltip()
  4. }
Sonst such mal nach ToolTip oder hitTest(), bzw schau mal
in meiner Signatur.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 07-06-2005, 12:44   #3 (permalink)
Flash and chips.
 
Benutzerbild von Zett
 
Registriert seit: Jun 2001
Ort: Graz
Beiträge: 531
Ich will ja nicht bei jedem mc das onRollOver schreiben, sondern ein globales movieclip.prototype.onRollOver. Und da möcht ich wissen, ob man das handlen kann, ohne dass die eigenen (möglichen) onRollOvers der MCs überschrieben werden (oder vice versa).

Also, damit ich ein tooltip hab, das ich ohne Probleme bei jedem swf einbauen kann, ohne dass irgendwas kaputt geht...
__________________
The map is NOT the territory.

Geändert von Zett (07-06-2005 um 12:45 Uhr)
Zett ist offline   Mit Zitat antworten
Alt 07-06-2005, 16:40   #4 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Schau mal ob du damit was anfangen kannst.
ActionScript:
  1. MovieClip.prototype.showTooltip = function(infoText) {
  2.     this.onMouseMove = function() {
  3.         if (this.hitTest(_root._xmouse, _root._ymouse, false)) {
  4.             this.createTextField("info_txt", 1, 0, 0, 0, 0);
  5.             this.info_txt.autoSize = true;
  6.             this.info_txt.text = infoText;
  7.             this.info_txt.background = true;
  8.             this.info_txt.backgroundColor = "0xffff99";
  9.             this.info_txt._x = this._xmouse;
  10.             this.info_txt._y = this._ymouse-this.info_txt._height;
  11.         } else {
  12.             this.info_txt.removeTextField();
  13.         }
  14.     };
  15. };
  16. var test_array = ["Home", "Contact", "Portfolio", "Impressum"];
  17. for (var i = 0; i<test_array.length; i++) {
  18.     this["test"+i+"_mc"].showTooltip(test_array[i]);
  19. }
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 07-06-2005, 16:51   #5 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Oder auch so:
ActionScript:
  1. MovieClip.prototype.showTooltip2 = function(infoText) {
  2.     this.createTextField("info_txt", 1, 0, 0, 0, 0);
  3.     this.info_txt.autoSize = true;
  4.     this.info_txt.text = infoText;
  5.     this.info_txt.background = true;
  6.     this.info_txt.backgroundColor = "0xffff99";
  7.     this.info_txt._x = this._xscale/3;
  8.     this.info_txt._y = this._yscale/3;
  9.     trace(this.info_txt._y+" "+this);
  10. };
  11. var test_array = ["Home", "Contact", "Portfolio", "Impressum"];
  12. for (var i = 0; i<test_array.length; i++) {
  13.     this["test"+i+"_mc"].ID = i;
  14.     this["test"+i+"_mc"].onRollOver = function() {
  15.         this.showTooltip2(test_array[this.ID]);
  16.     };
  17.     this["test"+i+"_mc"].onRollOut = function() {
  18.         this.info_txt.removeTextField();
  19.     };
  20. }
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 07-06-2005, 20:18   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
also so auf die schnelle kommste nicht um ein wenig hirnschmalt rum.
was nicht geht 2 parallele rollOver events,was geht: nen rollOver äähnliche funktion die von dem originalen rollOver aufgerufen wirst.
jetzt haste 2 möglichkeiten.
entweder du überschreibst den rollOver- aber dann wie folgt.
ActionScript:
  1. Movieclip.prototype.onRollOver=function(){
  2. //tooltip
  3. //..
  4. if(this._onRollOver!=undefined) this._onRollOver()
  5. }
  6. //auf nen x beliebigen mc mußte nun einen rollOver so definieren
  7. x._onRollOver=function(){}

geht natülrich auch andersrum
den tooltip in jeden onRollOber schreiben
this.onRollOver=function(){
this.tooltip()
}

bedenke aber, ein mousevent auf einen movieclip überdeckt alle mouseEvents innerhalb von diesem mc.
also ne recht schlechte idee jedem mc pauschal nen mousevent zuzuweisen

deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 08-06-2005, 12:05   #7 (permalink)
Flash and chips.
 
Benutzerbild von Zett
 
Registriert seit: Jun 2001
Ort: Graz
Beiträge: 531
danke für die denkanstösse!
zu meiner problemstellung kommt am ehesten die hittest-geschichte hin (interessanter ansatz, wär ich nicht drauf gekommen) - aber geht die nicht zu sehr auf die performanz?
ich werd's auf jeden fall mal ausprobieren...

thx!
Zett.
__________________
The map is NOT the territory.
Zett 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 22:51 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele