Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash MX

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-08-2004, 16:12   #1 (permalink)
Grillmeister
 
Benutzerbild von Schaschlick
 
Registriert seit: Jul 2003
Ort: Stuttgart
Beiträge: 188
buttons + abfrage von instanznamen

guten tag!
folgendes: ich hab mehrere buttons mit den instanznamen "bt_1" "bt_2" "bt_3" ... und mit
PHP-Code:
_root.übergabe this._name
übergebe ich die instanznamen an eine funktion. nur weiß ich nich, wie ich die funktion schreiben kann, weil ich nicht ewig viele if abfragen machen will. deshalb meine frage. meine funktion is totaler schwachsinn, das weiß ich auch, aber ich poste sie trotzdem, weil ich denk ihr wisst was ich machen will und muss es dann nicht mit komplizierten wörtern erklären.
PHP-Code:
if (_root.übergabe = ["bt_"]+z){
     
altesBild = ["Bild"]+;
    }; 
Bild+z soll am schluss Bild1 oder Bild2,... ergeben. hat mir jmd lösungsansätze meines problems?
__________________
Der Schwabe an sich kann alles nur KEIN Hochdeutsch
Schaschlick ist offline   Mit Zitat antworten
Alt 17-08-2004, 16:53   #2 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
HI,

mit _root.uebergabe = this._name übergibst du den Namen des Button an eine Variable. Sollte uebergabe eine Funktion sein, ist sie das die längste Zeit gewesen

Bin mir nicht sicher, was du willst, aber so könnte ich mir das vorstellen:

ActionScript:
  1. bt_1.idx = 1;
  2. bt_1.onRelease = function() {
  3.     _root.meineFkt(this.idx);
  4. };
  5.  
  6. // die FUnktion
  7. meineFkt = function(idx) {
  8.     altesBild = this["Bild"+idx];
  9.     // ...
  10. }

So was?

Du kannst natürlich auch this._name übergeben und dir den Index aus dem Namen ziehen...

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 17-08-2004, 17:02   #3 (permalink)
Grillmeister
 
Benutzerbild von Schaschlick
 
Registriert seit: Jul 2003
Ort: Stuttgart
Beiträge: 188
mir is grad soeben selbst aufgefallen, dass ich ein riesen denkfehler hab !!
Ich übergeb ja eigentlich immer den instanznamen von dem Button den ich grad geklickt hab, aber ich brauch die Instanz von dem, der zuvor aktiv war??!! hab heut glaub irgendwie zu lang mit allem beschäftigt und jetzt werf ich wieder alles durcheinander. hast du mir da vielleicht ein ansatz? :-/
__________________
Der Schwabe an sich kann alles nur KEIN Hochdeutsch
Schaschlick ist offline   Mit Zitat antworten
Alt 17-08-2004, 17:06   #4 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
ActionScript:
  1. uebergabe = function(bt) {
  2.     this.oldBt = this.bt;
  3.     this.bt = bt;
  4. }

Schreib ihn einfach in eine lokale Variable...

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 17-08-2004, 22:01   #5 (permalink)
Grillmeister
 
Benutzerbild von Schaschlick
 
Registriert seit: Jul 2003
Ort: Stuttgart
Beiträge: 188
Ich komm mit deinem tipp nicht ganz so zurecht mein bisheriges script von meinem button sieht so aus:
PHP-Code:
btn1.onRelease = function(){
    
_root.aktiv "Bild2";
    
this.gotoAndPlay(41);
    
_root.bilder.gotoAndPlay("preload_2");

mein ziel ist es, dass sich später die buttons "merken" können welcher button zuvor aktiv war. und welcher aktiv ist.Ich hoffe jmd versteht was ich meine.
__________________
Der Schwabe an sich kann alles nur KEIN Hochdeutsch
Schaschlick ist offline   Mit Zitat antworten
Alt 18-08-2004, 08:48   #6 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
ok, Zwischenfrage: warum sollen die anderen wissen, welcher Button zuletzt aktiv war? Welche Infos willst du abfragen und/oder verwerten?

Ich dachte außerdem, du verwendest für jeden Button die gleiche Funktion...
Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 18-08-2004, 12:22   #7 (permalink)
Grillmeister
 
Benutzerbild von Schaschlick
 
Registriert seit: Jul 2003
Ort: Stuttgart
Beiträge: 188
ich hab mir halt ne maske mittels AS zusammengebastelt und zwei darunter liegende mc's mit mehreren Schlüsselbildern und immer ein anderes bild darin. ein mc is dafür zuständig die neuen bilder mit effekt einzublenden und der andere is dafür da das alte bild drunter anzuzeigen. Mein Problem ist nun, dass ich dem mc der die alten bilder unter dem anderen anzeigt nicht weiß welches Bild zuvor "aktiv" war. Vielleicht gibt es auch eine ganz andere einfachere Lösung, aber ich hab mich bis jetzt soweit durchgeschlagen, dass es evtl auch so klappen könnte.ich hoff ihr versteht mein Problem.
__________________
Der Schwabe an sich kann alles nur KEIN Hochdeutsch
Schaschlick ist offline   Mit Zitat antworten
Alt 18-08-2004, 13:58   #8 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
und warum machst du es dann nicht so, wie ich es vorher geschrieben habe?!

ActionScript:
  1. btn1.onRelease = function(){
  2.     _root.altAktiv = _root.aktiv;
  3.     _root.aktiv = "Bild2";
  4.     this.gotoAndPlay(41);
  5.     _root.bilder.gotoAndPlay("preload_2");
  6. }

Damit hast du sowohl das aktuelle als auch das vorherige in zwei Variablen gespeichert...

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 18-08-2004, 18:33   #9 (permalink)
Grillmeister
 
Benutzerbild von Schaschlick
 
Registriert seit: Jul 2003
Ort: Stuttgart
Beiträge: 188
yeah, hat mir auf jeden weitergeholfen, aber jetzt spackt meine Maske rum. Auf die Idee mit der Variablen hät ich glaub au selber drauf kommen können, aber mein hirn war blockiert Jetzt maskiert er immer nur die hälfte vom bild mit effekt und danach *schwups* is das ganze bild aufgedeckt.
ich hab hier mal die vereinfachte fla. sorry, dass ich n paar avatars von euch genommen hab, ich hoff ihr seids mir net bös.
Angehängte Dateien
Dateityp: zip ff.zip (30,9 KB, 2x aufgerufen)
__________________
Der Schwabe an sich kann alles nur KEIN Hochdeutsch
Schaschlick ist offline   Mit Zitat antworten
Alt 19-08-2004, 08:09   #10 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Hi,

also, da sind so ein paar Sachen nicht ganz in Ordnung.
Zum einen verwendest du auf 4 Frames den gleichen Code. Natürlich, damit er auch bei jedem Wechsel ausgeführt wird. Du kannst diesen Code aber auch einmal in eine Funktion schreiben und diese immer wieder aufrufen...
Hier liegt zwar nicht der Fehler, aber sinnvoller ist es ohnehin mit Funktionen.

Dann machst du if-Abfragen, die schlichtweg keine sind:
if(altesBild = Bild2) {
//...
}

1. du vergleichst eine Variable mit einer anderen Variablen. Bild2 wird wohl nicht definiert sein.
2. Der Vergleichsoperator ist ==, nicht =. Letzteres ist eine Zuweisung
Die if-Abfrage funktioniert ergo nicht.

Da du aber jeweils genau den Inhalt von altesBild verwendest, um einen Frame anzuspringen, schreib doch einfach:
holder.gotoAndStop(altesBild);

Du machst außerdem eine Zuweisung:
altesBild = holder.gotoAndStop();

Das bringt nichts, da gotoAndStop(); keinen Wert liefert.

An einer anderen Stelle vergleichst du (wieder mit = statt ==...) currentFrame mit _totalframes.

currentFrame ist eine beliebige Variable ud diesem Fall wohl undefined.
Du meinst sicherlich _currentframe...

Hier noch etwas: mit "streifen"+anzahl kommst du hier nicht weiter, da i immer kleiner ist als anzahl, also: "streifen"+(anzahl-1).

Deine Streifen sind außerdem zu klein für die Bilder, die du jetzt verwendest.

das wird schon

grüße
sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 19-08-2004, 11:03   #11 (permalink)
Grillmeister
 
Benutzerbild von Schaschlick
 
Registriert seit: Jul 2003
Ort: Stuttgart
Beiträge: 188
Es ist wohl kaum zu verheimlichen, dass ich keine so gut wie keine Ahnung von AS hab. Bei mir ist es mehr so die Probiervorgehensweise naja, hat ja auch fast alles so weit geklappt ^^. der effekt war zumindest ansatzweise zu erkennen Ich hab jetzt mal n bissl weiter "gecodet" und nun klappt alles, nur mein "btn1" macht nicht so recht was er soll. bei dem klappt es nie mit dem bildanzeigen. ich denk, dass es nicht so ein markanter Fehler ist, wie es zuvor der Fall war. Hier mein neues Script:
PHP-Code:
stop();

    
_root.dupzeit 400;
    
_root.delzeit 500;
    
_root.abstand 10;
    
_root.anzahl 700/(_root.abstand);

aufbau = function(){

    
neuesBild _root.aktiv;
    
altesBild _root.altAktiv;

    
holder.gotoAndStop(altesBild);

//Maske erstellen und platzieren
    
_root.bilder.createEmptyMovieClip("maske"0);
    
this.maske.attachMovie("dup""streifen"400);
//Eigenschaften für Streifen

    
xPos=0;

//Streifen entfernen und aktuelles Bild anzeigen
movieclip.prototype.enthuellen = function() {
    
wzeit setInterval(function () {
        
_root.bilder.maske.unloadMovie();
        
//aktuelles Bild anzeigen
        
holder.gotoAndStop(altesBild);
        
//bilder_mc.gotoAndStop(20);
            
clearInterval(wzeit);
    }, 
_root.delzeit);
};
 
laden = function () {
    if (
i<_root.anzahl) {
        
//neues Bild
        
bilder_mc.gotoAndStop(neuesBild);
        
//zu überblendendes Bild
        
holder.gotoAndStop(altesBild);
        
//Streifen duplizieren
        
_root.bilder.maske.streifen.duplicateMovieClip("streifen"+ii++);
        
//Position der duplizierten Streifen
        
_root.bilder.maske["streifen"+i]._x xPos;
        
xPos += _root.abstand;
    }  else {
        
clearInterval(inter);
           if(
_root.anzahl == i){
            
enthuellen();
            
i=0;
           }
        }    
};
//Duplizierungsintervall von Streifen
inter setInterval(laden_root.dupzeit);
//Maske setzen
_root.bilder.bilder_mc.setMask(_root.bilder.maske);
}; 
und ein großes lob an ludabruda, für das was er bisher schon geleistet hat *thumbsup*
__________________
Der Schwabe an sich kann alles nur KEIN Hochdeutsch
Schaschlick ist offline   Mit Zitat antworten
Alt 19-08-2004, 13:30   #12 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
wo genau liegt das Script denn jetzt?
Könntest du nochmal eine neue fla uppen?

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 19-08-2004, 13:57   #13 (permalink)
Grillmeister
 
Benutzerbild von Schaschlick
 
Registriert seit: Jul 2003
Ort: Stuttgart
Beiträge: 188
das script liegt im ersten Schlüsselbild von "Bilder" und in den nachfolgenden wird die funktion "aufbau" immer aufgerufen. aber ich häng trotzdem mal die fla an.
Angehängte Dateien
Dateityp: zip ff.zip (30,4 KB, 1x aufgerufen)
__________________
Der Schwabe an sich kann alles nur KEIN Hochdeutsch
Schaschlick ist offline   Mit Zitat antworten
Alt 19-08-2004, 14:01   #14 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
hi,

du hast zwar im ersten Frame die Funktion, rufst sie dort aber nicht auf...
Außerdem brauchst du die einzelnen Frames in Bilder auch nicht mehr.
Schreib einfach:

ActionScript:
  1. btn4.onRelease = function(){
  2.     _root.altAktiv = _root.aktiv;
  3.     _root.aktiv = "Bild4";
  4.     //this.gotoAndPlay(41);
  5.     _root.bilder.aufbau();
  6. }

dann gehts.

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 19-08-2004, 14:20   #15 (permalink)
Grillmeister
 
Benutzerbild von Schaschlick
 
Registriert seit: Jul 2003
Ort: Stuttgart
Beiträge: 188
echt voll in ordnung wie schnell du hier hilfst! es klappt alles hervorragend, nur steh ich wieder vor nem neuen problem, wenn ich jetzt auf einen button klick, so lang die animation läuft, hat die animation danach einen fehler. deshalb hab ich solang der aufbau läuft die buttons deaktiviert. _root.btn1.enabled = false; funktioniert auch, aber wenn ich jetzt 2x hintereinander auf den selbigen button klicke, bleiben alle deaktiviert und die navigation is dann nicht mehr einsatzfähig.
so deaktivier ich sie:
PHP-Code:
laden = function () {
    
//Buttons deaktivieren
    
_root.btn1.enabled false;
    
_root.btn2.enabled false;
    
_root.btn3.enabled false;
    
_root.btn4.enabled false;
    
_root.btn5.enabled false;
.
.

so scheitert mein versuch sie wieder zu aktivieren wenn ich 2 mal auf den selbigen button klicke
PHP-Code:
else {

        
clearInterval(inter);
           if(
_root.anzahl == i){
            
enthuellen();
        
//Buttons aktivieren
        
_root.btn1.enabled true;
        
_root.btn2.enabled true;
        
_root.btn3.enabled true;
       
_root.btn4.enabled true;
       
_root.btn5.enabled true;
            
            
i=0;
           } 
__________________
Der Schwabe an sich kann alles nur KEIN Hochdeutsch

Geändert von Schaschlick (19-08-2004 um 14:49 Uhr)
Schaschlick 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 01:42 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele