Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-05-2004, 20:05   #1 (permalink)
vodoo
Gast
 
Beiträge: n/a
Variable, ein function zuweisen?

Da bin ich schon wieder mit folgendem Prob:

Ich mache bei einem button klciek z.B. auf homebutton das hier: _global.section = "home"

kann ich das dann sagen? Oder muss man das anders schreiben?

ActionScript:
  1. MovieClip.prototype.abfrage = function() {
  2.     _global.section.mover(20, 200, 10)
  3. };

danke
  Mit Zitat antworten
Alt 23-05-2004, 22:06   #2 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
Vielleicht erzählst Du uns mal, was Du genau machen willst?!

Verstehe Dein Problem nicht ganz, bzw. was Du genau machen willst!
__________________
Gruß
PIXIX
PIXIX ist offline   Mit Zitat antworten
Alt 23-05-2004, 22:58   #3 (permalink)
Gib her, ich mach das!
 
Registriert seit: Jul 2003
Ort: Karlsruhe/Kassel
Beiträge: 270
wenn _global.section gleich einem String ist, dass kannst du sicherlich nicht eine Funktion mover aufrufen, die sich auf den String bezieht.
Wo hast du die Moverfunktion eigentlich her/deklariert?
Dr.Atom ist offline   Mit Zitat antworten
Alt 24-05-2004, 09:11   #4 (permalink)
vodoo
Gast
 
Beiträge: n/a
Immer wenn ich auf einen button klicke,
wird
ActionScript:
  1. _global.section = "dergeklicktebutton"

So und jetzt um nicht ein ding 100 millionen mal zu schreiben wollte ich wissen, ob man irgendwie das so machen kann, dass der active button, also _global.section, eine function bekommt.........

Jetzt verstanden?

danke
  Mit Zitat antworten
Alt 24-05-2004, 09:43   #5 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
Hi,

Du kannst Dir einen prototypen bauen, diesen kannst Du jedem Deiner Buttons zuweisen aber auch wieder löschen.

Hier mal ein Beispiel:

ActionScript:
  1. Button.prototype.meineFunktion = function(){
  2.     this.onRelease = function(){
  3.         trace(this._name + " onRelease ");
  4.         meineAndereFunktion(arguments);
  5.         }
  6.     this.onRollOver = function(){
  7.         trace(this._name + " onRollOver ");
  8.         meine2teAndereFunktion(arguments);
  9.         }
  10.     }
  11. // hier erfolgt die Funktionszuweisung auf Deinen Button
  12. // meinButton bekommt jetzt alle Funktionen, die Du im
  13. //Prototypen zuvor angegeben hast!
  14. meinButton.meineFunktion();
  15.  
  16. // löschen einer zugewiesenen Funktion:
  17. delete meinButton.onRollOver;
  18. delete meinButton.onRelease;

Jetzt könntest Du in einer anderen Funktion abfragen, ob eine bestimmte Variable einen bestimmten Wert und ggf. dem jeweiligen Button Deine Prototype-Funktion zuweisen.
ActionScript:
  1. if(_global.section == "meinButton"){
  2. meinButton.meineFunktion() // Prototype-Funktionszuweisung
  3. }

Ist es das, was Du brauchst?
__________________
Gruß
PIXIX
PIXIX ist offline   Mit Zitat antworten
Alt 24-05-2004, 11:04   #6 (permalink)
vodoo
Gast
 
Beiträge: n/a
Nicht ganz, aber trotzdem danke....

Was ihc wollte ist, dass ich nicht diese tausend if abfragen machen muss also

ActionScript:
  1. if(_global.section == "home") {
  2. meinButton.dieFunction(argumente) }
  3. if(_global.section == "portfolio") {
  4. meinButton.dieFunction(argumente) }

Das ganze wollte ich einfach so machen, dass er dem button , der zurzeit, global.section ist, die function macht........
  Mit Zitat antworten
Alt 24-05-2004, 11:15   #7 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
Das kannst Du doch in einer for-schleife abfragen:

ActionScript:
  1. meineButtons = ["home","portfolio","show","referenzen","kontakt","about us"];
  2. for(i=0;i<meineButtons.length;i++){
  3.     if(_global.section == meineButtons[i]){
  4. // hier muss der instanzname des buttons, der selbe sein wie im Array
  5.         _root[meineButtons[i]].meineFunktion();
  6.         }
  7.     }
__________________
Gruß
PIXIX
PIXIX ist offline   Mit Zitat antworten
Alt 24-05-2004, 11:28   #8 (permalink)
vodoo
Gast
 
Beiträge: n/a
okay, jetzt ,musst du mir noch erklären was das bedeutet mit dem i und for weil das kenne ich noch nicht
  Mit Zitat antworten
Alt 24-05-2004, 11:47   #9 (permalink)
wissbegierig
 
Registriert seit: Nov 2003
Ort: Hamburg
Beiträge: 206
Also....

Es wird ein Array angelegt mit Werten Deiner Buttons:
ActionScript:
  1. meineButtons = ["text1","text3","text3"];
Ein Array hat immer einen "index" in diesem Fall wäre von meineButtons der index 0 = "text1", aussehen tut das so:
meineButtons[0] würde ergeben = "text1"
meineButtons[1] würde ergeben = "text2"
usw....

du legst eine for-schleife an:
ActionScript:
  1. for(i=0;i<meineButtons.length;i++)
Bedeutet: Anfangs ist i=0; i wird so lange plus 1 addiert bis i die länge des arrays erreicht hat. In diesem Beispiel würde i 2 erreichen. Du hast zwar 3 Elemente in Deinem Array aber das erste Element ist immer an der Stelle 0.

Wenn Du weißt, wieviele Elemente Dein Array beinhaltet, kannst Du die For-Schleife auch statisch gestalten. Bsp:
ActionScript:
  1. meinArray = ["text1","text2","text3","text4","text5"];
Schleife müßte so aussehen:
ActionScript:
  1. for(i=0;i<4;i++){// anweisung //}
  2.  

Vorheriges Beispiel:
ActionScript:
  1. meineButtons = ["home","portfolio","show","referenzen","kontakt","about us"];
  2. for(i=0;i<meineButtons.length;i++){
  3.         if(_global.section == meineButtons[i]){ // wenn global.section eines der Werte aus dem Array hat.z.B. "home"
  4.                 // hier muss der instanzname des buttons, der selbe sein wie im Array
  5.                 _root[meineButtons[i]].meineFunktion();
  6. // diese zeile könnte ergeben: _root.show.meineFunktion();
  7.         }
  8. }

Ich kann nicht gut erklären, du solltest Dir einfach mal ein paar Tutorials durchlesen. z.B. auf: www.flashworker.de oder www.flash4all.de
__________________
Gruß
PIXIX
PIXIX 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 08:27 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele