Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-01-2005, 17:39   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 39
dynamisches Menu mt dynamischen zielen

Hallo!

Also ich habe zwar schon ähnliche Beiträge gefunden die das Problem behandeln kann mir aber gerade keinen Reim darauf machen.

Ich erstelle ein Textmenu aus einer xml Datei das klappt soweit. Jetzt möchte ich jedem Textfeld ein anderes onRelease(mach dies und das) zuweisen, das klappt nicht. Was momentan passiert ist, dass nur der letzte Wert gespeichert wird. Ich habe 20 Textfelder das bedeutet egal auf welchen Text-Button ich klicke ich lande bei dem Letzten eintrag.

Ich hoffe Ihr könnt mir gerade auf die Sprünge helfen!

Was ich vergessen habe... Die Ziele der Navi steht nicht in der xml. Also der erste Button der erstellt wurde soll mc1 laden der zweite mc2 usw.(Denke das ist das kleinere Problem, hoffe ich zumindest)

Hier mein AS:

PHP-Code:
MovieClip.prototype.textFeld = function(idtxtxtxtytxtTexttxtRebeneformat) {
    
this.createTextField([id+"_txt"], ebenetxtxtxty-42000);
    
with (this[id+"_txt"]) {
        
autoSize txtR;
        
multiline true;
        
text txtText;
        
setTextFormat(format);
    }
};
function 
createTxt(itxthebene) {
    
this.createEmptyMovieClip("t"+itxtebene);
    
textFeld("t"+i3h+this._heighttxt"left"ebenetxtForm);
    
cHeight this._height;
    
Trace("i ="+i);
    
//this.onRelease = function(){
        
this.onRelease=function(){
            
knotenBeschr _root.xmlMenu.firstChild.childNodes[i].childNodes[1].childNodes;                    
Trace("knotenBeschr ="+knotenBeschr);
            
Trace("ebene-1 ="+ebene);
            
_root.content_m.inhalt.createTxt("t"+1knotenBeschr20ebene-1);
            
_root.content_m.scroll1.scroller();
            
        }


Geändert von supafunk (25-01-2005 um 18:01 Uhr)
supafunk ist offline   Mit Zitat antworten
Alt 26-01-2005, 00:04   #2 (permalink)
...
 
Benutzerbild von flash bier
 
Registriert seit: Nov 2001
Beiträge: 1.227
könnte an dieser Zeile im onRelease liegen:
ActionScript:
  1. knotenBeschr = _root.xmlMenu.firstChild.childNodes[i].childNodes[1].childNodes;
das weiss Flash nicht, was i ist, da der onRelease-Part ja später unabhängig vom vorherigen Code arbeitet.
Mach mal vor dem Release noch etwa:
ActionScript:
  1. this._sein_i=i;
dann kannst du auch nachher bezug auf diese Variable nehmen mit
ActionScript:
  1. knotenBeschr = _root.xmlMenu.firstChild.childNodes[this._sein_i].childNodes[1].childNodes;
verstehst du was ich meine ?
Kann aber nun auch nicht sagen, ob nur an dem lag, ist auf jeden Fall mal ein Grund mehr, dass es nicht geht...

MfG flash bier
__________________
Schweig oder sprich Worte, die besser sind als Schweigen !

Geändert von flash bier (26-01-2005 um 00:05 Uhr)
flash bier ist offline   Mit Zitat antworten
Alt 26-01-2005, 00:11   #3 (permalink)
Trickster
 
Registriert seit: Aug 2003
Ort: Bremen
Beiträge: 631
guck mal bei mir hier rein, vlt. hillft das weiter... vielleicht kannst du dann auch mir helfen : http://www.flashforum.de/forum/showthread.php?t=155672
__________________
Carpe diem!
HaZuLiD0 ist offline   Mit Zitat antworten
Alt 27-01-2005, 15:44   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 39
@flash bier

werd ich nacher mal probieren, bin noch bei der Arbeit. Aber danke schonmal!

@HaZuLiD0
entweder das hat was mit der Firewall hier zu tun, oder dein Link klappt nicht. Ich werd es auf jeden Fall nacher nochmal probieren!

Wie kann ich dir helfen?! ...gerne
supafunk ist offline   Mit Zitat antworten
Alt 27-01-2005, 18:04   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 39
@flash bier

Ich hab´s grad getestet... Leider kein Erfolg!

Der gleiche Fehler wie vorher....


Zitat:
das weiss Flash nicht, was i ist, da der onRelease-Part ja später unabhängig vom vorherigen Code arbeitet.
Genau das vermute ich auch! Nur wie kann ich das bewerkstelligen das jeder die mc´s wissen welche´s onRelease zu ihnen gehört?!!?

Ich hoffe Ihr könnt mir helfen!

Geändert von supafunk (28-01-2005 um 11:57 Uhr)
supafunk ist offline   Mit Zitat antworten
Alt 28-01-2005, 14:31   #6 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 39
So jetzt hab ich das ganze mal so lange vereinfacht bis ich folgende Lösung gefunden habe:

Code:
der Rest siehe oben....

function createTxt(i, txt, h, ebene) {
	this.createEmptyMovieClip("movie", ebene);
	movie.textFeld("t", 3, h+this._height, txt+i, "left", ebene+40, txtForm);
	movie.onRelease = function() {
		trace("onRelease"+i+" aufgerufen");
	};
}

...der Rest siehe oben
Also wenn ich dem movie den ich erstelle direkt einen Namen gebe funktioniert es.

Wenn ich dem Movie den Namen aber als Variable "t"+i übergeben will geht es nicht!

Hilfe!
supafunk ist offline   Mit Zitat antworten
Alt 28-01-2005, 23:36   #7 (permalink)
...
 
Benutzerbild von flash bier
 
Registriert seit: Nov 2001
Beiträge: 1.227
habe dein ding nicht in vollem umfang angeschaut, deswegen hier nocheinmal ein paar gesichtete fehler, was aber nicht heisst, dass es nach der fehlerbehebung funktioniert:
ActionScript:
  1. function createTxt(i, txt, h, ebene) {
  2.     this.createEmptyMovieClip("movie", ebene);
  3.     movie.textFeld("t", 3, h+this._height, txt+i, "left", ebene+40, txtForm);
  4.     movie.onRelease = function() {
  5.         trace("onRelease"+i+" aufgerufen");
  6.     };
  7. }
Zeile2: this.createEmptyMovieClip("movie", ebene);
Da kommts zu einem Fehler, da Du in Flash eindeutige Bezeichner vergeben musst. Wenn du diesen part nur 1x aufrufst, geht das ja in ordnung, jedoch beim zweiten erstellen eines movieclips mit dem namen "movie" ist dein Bezeichner nicht mehr eindeutig, da es nun 2 MCs mit bezeichner "movie" gibt.
Da hilft es nichts, den auf eine andere Stufe zu packen !!
Lösung: this.createEmptyMovieClip("movie"+ebene, ebene);

Zum anderen hast du wieder den selben fehler wie oben:
im onRelease hast du eine Variable i, die später beim betätigen des buttons
keinen wert haben wird !
also nochmal: den wert von i musst du vorher dem MC fest zuteilen, damit du später drauf zugreifen kannst!

Vielleicht hilft dir ja das weiter:
ActionScript:
  1. MovieClip.prototype.textFeld = function(txt) {
  2.     this.createTextField("text_feld",1,10,10,200,200);
  3.     this.text_feld.text =txt;
  4. }
  5.  
  6. function createTxt(i, txt, h) {
  7.     this.createEmptyMovieClip("t"+i,i);
  8.     this["t"+i].textFeld(txt);
  9.     this["t"+i]._y=h;
  10.     this["t"+i]._sein_i = i; // <--------------------------------------
  11.     this["t"+i].onRelease=function(){//                                         
  12.         this.text_feld.text = "Schau her, ich kenn mein i: "+ this._sein_i;
  13.     }
  14. }
  15.  
  16. counter = 0;
  17. hoehe = 0;
  18. text1 ="Dies ist der ";
  19. text2 = ".te Text";
  20. text3 = "0"
  21. for (i=0;i<=10;i++){
  22.     createTxt(counter,text1+text3+text2,hoehe);
  23.     text3 = String(counter+1);
  24.     counter += 1;
  25.     hoehe +=20;
  26. }

MfG flash bier

PS: Schieb doch mal die Fla mit der xml rüber, dass man sich das mal anschauen kann!
__________________
Schweig oder sprich Worte, die besser sind als Schweigen !
flash bier ist offline   Mit Zitat antworten
Alt 29-01-2005, 12:12   #8 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 39
Erstmal danke dafür das du dich meinem Problem annimmst!

ich hab das ganze movie genannt und auch nur einen erstellt. Ich wollte mal testen ob ich völlig daneben liege mit dem was ich das gemacht hab.

Das mit dem sein_i hab ich leider erfolglos getestet.

Ich hab nochmal die ursprüngliche fla und die xml drangehängt. (Mittlerweile soviele varianten probiert das ich selbst bald nicht mehr durchblicke...)

Es geht um den content_l da sind oben zwei mc´s es geht um den rechten mov_projekte.

Darin ist das script um das es geht.

In dieser Version werden die Textfelder zu Schaltflächen.


Vielen Dank schonmal für Deine weitere Hilfe!!!
Angehängte Dateien
Dateityp: zip dynam_txt_buttons.zip (7,7 KB, 20x aufgerufen)
supafunk ist offline   Mit Zitat antworten
Alt 30-01-2005, 13:17   #9 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 39
Problem gelöst!!!

Siehe anderer Thred
supafunk 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 05:51 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele