Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-12-2005, 12:45   #1 (permalink)
Achim - das Original
 
Benutzerbild von haedbaengae
 
Registriert seit: Feb 2002
Ort: Büllesfeld
Beiträge: 287
onRollOver Aktion unterbrechen

Hallo Zusammen,

steh mal wieder gerade im Wald. Wer kann mir sagen, wie ich eine onRollOver Akltion eines Buttons für eine gewisse Zeit unterbrechen kann.

In meiner Navi habe ich auf dyn. generierte Buttons ein RollOVer gelegt. Dies bewirkt dann, dass der Button sich bewegt. Wenn er nun mit anderen Buttons überlappt, die den gleichen Befehl haben, kommen die nicht mehr von einander weg.

Beispiel könnt Ihr hier anschauen: http://www.bullsfield-studio.de/test/3mj/

Dort mal in einen Unterpunkt die Submenü-Punkte abwechselnd auswählen. Da wird das Problem deutlich.

Jemand eine Idee?
Thanx!
__________________
dä hädbängä

Achim - das Original

Die Welt braucht mehr verrückte Menschen - seht doch, wohin uns die Normalen gebracht haben.
haedbaengae ist offline   Mit Zitat antworten
Alt 04-12-2005, 13:10   #2 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
per onRollOver? Hektische Sache, Deine Navi.
Das Wechselscript würde ich nur per onPress ausführen lassen.

Poste mal Deinen Code dazu. So ins Blaue kann ich Dir da nur den Trick
mit
PHP-Code:
myButton.enabled true false
geben.

--pp
~pyropete~ ist offline   Mit Zitat antworten
Alt 04-12-2005, 13:18   #3 (permalink)
Achim - das Original
 
Benutzerbild von haedbaengae
 
Registriert seit: Feb 2002
Ort: Büllesfeld
Beiträge: 287
ok, hier wird die Subnavi generiert:

Code:
//
// Sub-Navi
//
subNavi = function (mc, punkt) {
	anz = _global.mein_xml.firstChild.childNodes[punkt-1].childNodes.length;
	for (z=0; z<anz; z++) {
		tl.createEmptyMovieClip("sub"+z, 200+z);
		tl["sub"+z]._x = mein_xml.firstChild.childNodes[punkt-1].childNodes[z].attributes.xpos;
		tl["sub"+z]._y = mein_xml.firstChild.childNodes[punkt-1].childNodes[z].attributes.ypos;
		tl["sub"+z].fadeIn();
		tl["sub"+z].attachMovie("containerSub", "container", 20+i);
		// id für identifizierung
		tl["sub"+z].container.id = z;
		tl["sub"+z].container.mc = "sub";
		// Textfeld im Container mit Textformat
		tl["sub"+z].container.createTextField("mainText", 31, 0, 0, 200, 22);
		tl["sub"+z].container.mainText.embedFonts = true;
		tl["sub"+z].container.mainText.background = true;
		tl["sub"+z].container.mainText.backgroundColor = 0x333333;
		tl["sub"+z].container.mainText.setNewTextFormat(my_fmtSub);
		tl["sub"+z].container.mainText.htmlText = mein_xml.firstChild.childNodes[punkt-1].childNodes[z].attributes.inhalt;
		// Bei Mouse Over -> SubNavi nach rechts oben, aktiver Punkt nach links
		tl["sub"+z].container.onRollOver = function() {
			for (a=0; a<anz; a++) {
				if (a<>this.id) {
					tl["sub"+a].pos((850-this._width*anz)+((this._width+5)*a), 190);
				} else {
					tl["sub"+a].pos(90, 220);
					contentGen(punkt, this.id);
				}
			}
		};
	}
};
Hier ist der Prototype für "pos":

Code:
//
// Positionierung
//
MovieClip.prototype.pos = function(xP, yP) {
	this.onEnterFrame = function() {
		this._x += ((xP-this._x)/5);
		this._y += ((yP-this._y)/5);
		if ((Math.abs(xP-this._x)<1) && (Math.abs(yP-this._y)<1)) {
			this._x = xP;
			this._y = yP;
			delete this.onEnterFrame;
		}
	};
};
__________________
dä hädbängä

Achim - das Original

Die Welt braucht mehr verrückte Menschen - seht doch, wohin uns die Normalen gebracht haben.
haedbaengae ist offline   Mit Zitat antworten
Alt 04-12-2005, 13:31   #4 (permalink)
Achim - das Original
 
Benutzerbild von haedbaengae
 
Registriert seit: Feb 2002
Ort: Büllesfeld
Beiträge: 287
PHP-Code:
myButton.enabled true false
Das hat nicht funktioniert
__________________
dä hädbängä

Achim - das Original

Die Welt braucht mehr verrückte Menschen - seht doch, wohin uns die Normalen gebracht haben.
haedbaengae ist offline   Mit Zitat antworten
Alt 04-12-2005, 13:37   #5 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
PHP-Code:
//
// Sub-Navi
//
subNavi = function (mcpunkt) {
    
anz _global.mein_xml.firstChild.childNodes[punkt-1].childNodes.length;
    for (
z=0z<anzz++) {
        
tl.createEmptyMovieClip("sub"+z200+z);
        
tl["sub"+z]._x mein_xml.firstChild.childNodes[punkt-1].childNodes[z].attributes.xpos;
        
tl["sub"+z]._y mein_xml.firstChild.childNodes[punkt-1].childNodes[z].attributes.ypos;
        
tl["sub"+z].fadeIn();
        
tl["sub"+z].attachMovie("containerSub""container"20+i);
        
// id für identifizierung
        
tl["sub"+z].container.id z;
        
tl["sub"+z].container.mc "sub";
        
// Textfeld im Container mit Textformat
        
tl["sub"+z].container.createTextField("mainText"310020022);
        
tl["sub"+z].container.mainText.embedFonts true;
        
tl["sub"+z].container.mainText.background true;
        
tl["sub"+z].container.mainText.backgroundColor 0x333333;
        
tl["sub"+z].container.mainText.setNewTextFormat(my_fmtSub);
        
tl["sub"+z].container.mainText.htmlText mein_xml.firstChild.childNodes[punkt-1].childNodes[z].attributes.inhalt;
        
// Bei Mouse Over -> SubNavi nach rechts oben, aktiver Punkt nach links, Blödsinn!
        
tl["sub"+z].container.onPress = function() { // löst sicher das Prob
            
for (a=0a<anza++) {
                if (
a<>this.id) {
                    
tl["sub"+a].pos((850-this._width*anz)+((this._width+5)*a), 190);
                } else {
                    
tl["sub"+a].pos(90220);
                    
contentGen(punktthis.id);
                }
            }
        };
    }
}; 
Wie gesagt, machs mit onPress.

--pp

--pp
~pyropete~ ist offline   Mit Zitat antworten
Alt 04-12-2005, 13:38   #6 (permalink)
Achim - das Original
 
Benutzerbild von haedbaengae
 
Registriert seit: Feb 2002
Ort: Büllesfeld
Beiträge: 287
klar, will aber der Kunde nicht
__________________
dä hädbängä

Achim - das Original

Die Welt braucht mehr verrückte Menschen - seht doch, wohin uns die Normalen gebracht haben.
haedbaengae ist offline   Mit Zitat antworten
Alt 04-12-2005, 14:00   #7 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
also auf anhieb würde ich vorschlagen, die gesamte button-action in eine function zu legen.
wenn das rollOVer unterbrochen werde soll, schreibst du halt delete myButton.onRollOver
wenn es wieder einstarten soll, startest du die button-funktion wieder.
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 04-12-2005, 14:30   #8 (permalink)
Achim - das Original
 
Benutzerbild von haedbaengae
 
Registriert seit: Feb 2002
Ort: Büllesfeld
Beiträge: 287
das funzt leider auch nicht. Da das Problem liegt ja darin, dass die Bewegung erst bei MouseOver aufgerufen wird. Zu dem Zeitpunkt befinde ich mich ja bereits in der onRollOVer Funktion. Wenn ich diese dann delete, gibt es einen Rukursions-Fehler. Und wenn ich nach Beendigung der Bewegung die gleiche MouseOver wieder aufrufen würde, würde ich eine MouseOver in einer MouseOver aufrufen, die dann wieder die Bewegungs-Funktion aufrufen würde -> Endlosschleife.

Vielleicht habe ich aber auch den komplett falschen Ansatz. Muss man das ander lösen?
__________________
dä hädbängä

Achim - das Original

Die Welt braucht mehr verrückte Menschen - seht doch, wohin uns die Normalen gebracht haben.
haedbaengae ist offline   Mit Zitat antworten
Alt 04-12-2005, 14:38   #9 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
also ich hab mir jetzt mal dein beispiel angesehen.

HUI - das einzige, was mir dazu einfällt:
mach' ne callback-funktion rein.
und zwar tötest du ALLE onRollOvers, wenn eine bewegung eingeleitet wird und aktiverist sie wieder, wenn die bewegung abgeschlossen ist.
ich kann mir beim besten willen nicht vorstellen, daß sowas nicht funzt.
__________________
Design ist AUCH Geschmackssache.
Mr.Twister 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 00:00 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele