Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-12-2011, 22:37   #1 (permalink)
Balkan Boris
 
Benutzerbild von marconi
 
Registriert seit: Mar 2007
Beiträge: 283
Position von dynamischen Buttons in root

Abend die Herren,

bin mal wieder am Experimentieren. Grundsätzlich konnte ich meine Idee umsetzen, doch in Verwendung mit
z.B. einem dynamischen Menü bekomme ich es nicht hin, weil mir zusätzliche Kenntnisse fehlen.

kurz zum Aufbau:
Ich habe anstatt des Mauscursors einen Rahmen der sich bei Kontakt mit einem Button per Tween den Koordinaten
und der Breite des Buttons anpasst. Klappt soweit gut. (Beispiel im Anhang)

In dem Menü verwende ich eine onRollOver- und eine onRollOut-Funktion für alle erzeugten Buttons. Nun entsteht
aber das Problem, dass die x- und y-Koordinate dieser Buttons ja logischerweise immer _x = 0 und _y = 0 ist.

Wie bekomme ich denn die aktuelle Position des aktiven Buttons im _root heraus, damit sich der Rahmen auch zur
Position des Buttons bewegt?

Ich habe die Werte zur Zeit nur über die eindeutig Platzierung von nicht dynamischen Buttons im _root ermittelt:
PHP-Code:
this.onRollOver = function():Void {
    
_root.follow false;
    
TweenMax.to(_root.frame_cursortime, {_x:_root.btn1._x_y:_root.btn1._y_alpha:100tint:_root.colorOverease:tweenOut});
    
TweenMax.to(_root.frame_cursor.frame_middletime, {_width:Math.ceil(this._width 5), ease:tweenOut});
    
TweenMax.to(_root.frame_cursor.frame_righttime, {_x:Math.ceil(this._width 10), ease:tweenOut});
}

this.onRollOut = function():Void {
    
_root.follow true;
    
TweenMax.to(_root.frame_cursortime, {tint:_root.colorOutease:tweenOut});
    
TweenMax.to(_root.frame_cursor.frame_middletime, {_width:30ease:tweenOut});
    
TweenMax.to(_root.frame_cursor.frame_righttime, {_x:35ease:tweenOut});
    
TweenMax.to(_root.frame_cursortime, {tint:_root.colorOutease:tweenOut});

Ich weiß, dass _root.this für _root.btn_frame_over1 keinen Sinn macht, aber brauche was um die eigene Position im root zu ermitteln.
Spätestens wenn ich es über dynamisch erzeugte Buttons versuche.

Ich weiß es muss gehen und bin für jeden Ansatz dankbar.
__________________
Unbekannt verzogen (Heute um 03:44 Uhr)

Geändert von marconi (02-12-2011 um 03:38 Uhr)
marconi ist offline   Mit Zitat antworten
Alt 01-12-2011, 22:58   #2 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
hi,
sieht gut aus der effekt...
ist denn this:
PHP-Code:
this.onRollOver = function():Void 
hier der button, also _root.btn1? wenn ja warum nicht einfach this statt _root.btn1 schreiben? falls nö erklär mal bitte die zusammenhänge genauer oder poste einfach die fla zum besseren verständnis.

cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 01-12-2011, 23:23   #3 (permalink)
Balkan Boris
 
Benutzerbild von marconi
 
Registriert seit: Mar 2007
Beiträge: 283
Zitat:
hier der button, also _root.btn1?
Ja, genau! Ich habe in diesem Fall die rollover-Funktion direkt in den Button gelegt. Somit kann ich
ihn mehrfach verwenden und ihm über _root die Release-Funktion und den Namen geben. Ganz ähnlich
wie bei einem Menü mit dynamisch erzeugten Buttons bei dem im Grunde nur ein Button für alle definiert
wird.

Im _root kann er dann verschieden Instanznamen haben. Das führt aber zu meinem Problem, dass ich nicht
vorher die Position im _root festlegen kann wie: _x:_root.btn1._x, _y:_root.btn1._y (per Hand platziert).
Würde jetzt gerne auch (_x:this._x, _y:this._y) verwenden was aber logischerweise dann immer 0 ergibt.

Also müßte ich herausbekommen (Definition aus dem Button heraus) wo er sich selber im _root befindet.

Hoffe ich habe mich verständlich ausgedrückt

edit: "warum nicht einfach this statt _root.btn1"
Wie gesagt würde ich gerne, aber nimmt dann die Position innerhalb des Buttons also 0.
__________________
Unbekannt verzogen (Heute um 03:44 Uhr)

Geändert von marconi (01-12-2011 um 23:29 Uhr)
marconi ist offline   Mit Zitat antworten
Alt 01-12-2011, 23:31   #4 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
ach das ist verschachtelt oder wie?
schonmal mit
PHP-Code:
this._parent._x 
probiert?

cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 01-12-2011, 23:33   #5 (permalink)
Balkan Boris
 
Benutzerbild von marconi
 
Registriert seit: Mar 2007
Beiträge: 283
Hab noch mal nachgedacht: man könnte es mit hitTest und Mouse-Position abfragen umsetzen,
aber ich würde es doch gern mit onRollOver lösen, da das Menü schon mit hitTest ausgefahren wird.

Glaub ich jedenfalls
__________________
Unbekannt verzogen (Heute um 03:44 Uhr)
marconi ist offline   Mit Zitat antworten
Alt 01-12-2011, 23:37   #6 (permalink)
Balkan Boris
 
Benutzerbild von marconi
 
Registriert seit: Mar 2007
Beiträge: 283
Zitat:
schonmal mit this._parent._x probiert?
Ah, schon voll gefreut. Funktioniert aber nicht. Es wieder _x = 0 verwendet.

Aber so in der Art mein ich das.
__________________
Unbekannt verzogen (Heute um 03:44 Uhr)
marconi ist offline   Mit Zitat antworten
Alt 01-12-2011, 23:38   #7 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
Zitat:
Zitat von marconi Beitrag anzeigen
Hab noch mal nachgedacht: man könnte es mit hitTest und Mouse-Position abfragen umsetzen,
aber ich würde es doch gern mit onRollOver lösen, da das Menü schon mit hitTest ausgefahren wird.

Glaub ich jedenfalls
nee... hitTest sollte man auch nur wenn nötig benutzen. in diesem fall scheint ja einfach nur ein pfad problem vorzuliegen...?!

cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 01-12-2011, 23:40   #8 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
Zitat:
Zitat von marconi Beitrag anzeigen
Ah, schon voll gefreut. Funktioniert aber nicht. Es wieder _x = 0 verwendet.

Aber so in der Art mein ich das.
was spuckt dir denn ein:
PHP-Code:
tracethis._parent ); 
aus?
bzw ein:
PHP-Code:
tracethis._parent._parent ); 
bzw wie tief ist das denn verschachtelt oder hab ich das noch immer falsch verstanden?!

cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 01-12-2011, 23:46   #9 (permalink)
Balkan Boris
 
Benutzerbild von marconi
 
Registriert seit: Mar 2007
Beiträge: 283
Ne, du hast schon alles verstanden.

also trace( this._parent ); sagt er _level0.

Aber ich denke du meintest trace( this._parent._x ); und das sagt er ja 0.

Die Gedanke hat auch was, da ich schon mal an _parent.this gedacht hatte was
aber nicht geht.

Also eigentlich soll er seine Position eine Ebene höher abfragen.
__________________
Unbekannt verzogen (Heute um 03:44 Uhr)
marconi ist offline   Mit Zitat antworten
Alt 01-12-2011, 23:54   #10 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
Exclamation

Zitat:
Zitat von marconi Beitrag anzeigen
Aber ich denke du meintest trace( this._parent._x ); und das sagt er ja 0.
nee, schon so wie geschrieben... ich wollte den instanznamen haben

Zitat:
Zitat von marconi Beitrag anzeigen
Also eigentlich soll er seine Position eine Ebene höher abfragen.
das müsste dann aber passen... lade doch bitte einfach eben die fla hoch. das prob sollte dann in ein paar minuten gelößt sein. scheint grad eher ein verständigungs problem als ein pfad prob zu sein

cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 02-12-2011, 00:02   #11 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
Zitat:
Würde jetzt gerne auch (_x:this._x, _y:this._y) verwenden was aber logischerweise dann immer 0 ergibt.
kann es sein, dass btn1, etc alle oben links auf der Bühne ausgerichtet sind, und nur der eigentliche Inhalt an der richtigen Stelle liegt?

PHP-Code:
    ...
    var 
this.getBounds(_root);  //eigentlich this.getBounds(_root.frame_cursor._parent); aber das is ja momentan _root
    
TweenMax.to(_root.frame_cursortime, {_xb.xMin_y:b.yMin_alpha:100tint:_root.colorOverease:tweenOut});
... 
trace mal folgendes:
PHP-Code:
var _root.btn1.getBounds(_root.btn1);
trace("x:" b.xMin " y:"b.yMin " width:" + (b.xMax-b.xMin) + " height:" + (b.yMax-b.yMin)); 
normalerweise sollten hier x und y sehr nahe an 0, 0 liegen, oder bei ca -width/2, -height/2


_parent.this oder sonstwas.this macht keinen sinn, da this ein Eigenname ist, und immer das Objekt angibt, in dessem scope der Code gerade ausgeführt wird. das ist kein Name wie _parent.btn1
__________________
greetz Thomas

plz RTFM & Coding Conventions

Geändert von thomas_E (02-12-2011 um 00:05 Uhr)
thomas_E ist offline   Mit Zitat antworten
Alt 02-12-2011, 00:03   #12 (permalink)
Balkan Boris
 
Benutzerbild von marconi
 
Registriert seit: Mar 2007
Beiträge: 283
Also ich hoffe/denke, dass auch nicht viel braucht.

edit: das script bei dem ich "this._parent._x" probiert habe liegt in dem Button "btn_frame_over" mit dem Instanznamen "btn_frame_over1" im _root
__________________
Unbekannt verzogen (Heute um 03:44 Uhr)

Geändert von marconi (02-12-2011 um 03:39 Uhr)
marconi ist offline   Mit Zitat antworten
Alt 02-12-2011, 00:07   #13 (permalink)
Balkan Boris
 
Benutzerbild von marconi
 
Registriert seit: Mar 2007
Beiträge: 283
Zitat:
trace mal folgendes
Ah, ich verstehe. Kommt aber raus:
PHP-Code:
x:undefined y:undefined width:NaN height:NaN 
Das Problem ist aber, dass ich im _root (_root.btn1.getBounds) noch gar nicht weiß wie der Button heißt bzw. er mehrere verschieden Instanznamen
haben kann.
__________________
Unbekannt verzogen (Heute um 03:44 Uhr)

Geändert von marconi (02-12-2011 um 00:11 Uhr)
marconi ist offline   Mit Zitat antworten
Alt 02-12-2011, 00:08   #14 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
hey thomas, grüß dich!

@marconi, dann mach mal:
PHP-Code:
tracethis._x ); 
draus
wie zu begin schon beschrieben.. da kommt bei mir 50 raus. nicht 0!

cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 02-12-2011, 00:20   #15 (permalink)
Balkan Boris
 
Benutzerbild von marconi
 
Registriert seit: Mar 2007
Beiträge: 283
Boah salazar,

fetten Dank und die ganze Diskussion von mir war umsonst, wie peinlich.
Es klappt wie es soll. Keine Ahnung, aber genau das war das erste was
ich versucht hatte und es funktionierte am Anfang nicht.

Jetzt check ich das noch mit dem fertigen Menü das ich habe, was aber gehen müsste.

Danke
__________________
Unbekannt verzogen (Heute um 03:44 Uhr)
marconi 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
buttons auf dem root? flozwo ActionScript 1 2 26-06-2006 16:04
loadmovie mit dynamischen Buttons awexis ActionScript 1 2 26-08-2004 21:11
for(clip in root) für buttons??? xiam Flash MX 3 20-11-2003 16:21
_x und _y position aus mc zur root position? mort ActionScript 1 3 17-07-2002 23:08
buttons mit dynamischen text Theo Flash 4 und Flash 5 3 13-04-2002 08:12


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

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


Copyright ©1999 – 2012 Marc Thiele