Code übersichtlich halten

schmitzowitsch

Mitglied
Leider leider muss ich es posten denn ich finde es nicht mehr.

Ich würde gerne folgendes machen. Mein Button liegt in einem Movieclip. diesen würde ich gerne von der Hauptzeitleiste sagen, on Release, mache dies und das. Ich möchte das Script also nicht auf den einzelnen Button schreiben, sondern auf der Hauptzeitleiste das Script für ca 15 verschiedene Buttons an zentraler Stelle im Flash Film machen.

Ich habe glaube ich, gelesen, dass man den Code eines Flash Movies nun seit Version 6 so gestalten kann dass man nicht mehr alle Buttons usw überprüfen muss... aber ich kann es irgendwie nicht.

Ich habe folgendes probiert:
_root.movieclipname.buttonname.onRelease = function() {
loadMovie.....;
};
das läuft aber nicht und Flash sagt da seien Fehler drin. Ich finde zu solchen rudimentären sachen auch grade kein Tutorial o.ä. deshalb helft mir mal bitte auf die Sprünge.
 
Hi schmitzowitsch,

habe das mit deinem Code mal getestet
und ich muss sagen es funktioniert einwandfrei!

Was du aber auf jedenfall sicherstellen solltest
ist dass bei den Veröffentlichungseinstellungen
Action Script 2.0 eingestellt ist, bei mir funktioniert
das Script bei der 1.0er Einstellung nicht astrein.

Mfg
 
Hi,

sollte auch bei Player 6 und AS 1.0 einwandfrei klappen. Bedenke allerdings: Durch diese Syntax überschreibst Du Mausereignisse, die evtl. schon in Deinem MovieClip definiert wurden. Beispiel:
PHP:
// Code in einem MovieClip (z.B. um einen Hover-Effekt zu gestalten):
this.onRelease = function() {
    this._alpha = 50;
}
Schreibst Du dann z.B. von _root aus:
PHP:
meinclip.onRelease = function() {
   zeigeInhalt("bla.swf");
}
klar, dann tut sich beim Klicken nichts mehr mit _alpha.
Wählst Du den MC dagegen an und sagst auf der Instanz:
PHP:
on(release) {
    _root.zeigeInhalt("bla.swf");
}
Bekommst Du zweit Reaktionen auf das gleiche Ereignis.

Tipp: Ich lege meine Buttons etc. meistens so an, dass sie ihre Ereignisse nach oben weitergeben:
PHP:
this.onRelease = function() {
    // Hier Hiver-Effekt
    _parent.released(this);
}
So kann ich mir in vielen Fällen sparen, auf _root oder sonstwo allen Buttons in einer Schleife eine Funktion zuzuweisen, sondern teste nur in der Funktion "released", welches Objekt übergeben wurde.

Gruß
.
 
Wenn ich das richtig verstanden habe ist aber der Ansatz den ich hatte richtig oder? Man sollte nur aufpassen, dass man keine zwei Aktionen beim gleichen Ereignis macht.

Wenn aber der Ansatz richtig ist, was mache ich falsch, denn Flash lässt mich das alles so nicht schreiben. Er erwartet irgendwo noch ein Semikolon schreibt das Ausgabefenster.
Ausserdem bin ich mir nicht sicher ob ich einen absoluten Pfad verwenden darf. Denn ale schreiben immer meinMovieclip.onRelease.... oder muss ich hier egal wo der Clip liegt einfach nur den Instanznamen angeben?

Ich kopmm grade erst wieder rein in die Flashprogrammierung deshalb meine "einfachen" Fragen!
 
_root.movieclipname.buttonname.onRelease = function() {
loadMovie.....;
};
Was genau steht denn da noch so hinter "loadMovie..."?

Handelt es sich bei "buttonname" um eine Schaltfläche oder einen MovieClip? Generell würde ich Dir raten, nur mit MCs zu arbeiten, da es bei Schaltflächen einige Einschränkungen in Steuerung und Flexiblität gibt.

Gruß
.
 
ich habe hier das hier eingefügt:

loadMovieNum("andererfilm.swf", 0);
also sah das so aus:

_root.movieclipname.buttonname.onRelease = function() {
loadMovieNum("andererfilm.swf", 0);
};

naja und ich habe jetzt schon mit Schaltflächen gearbeitet, aber soweit kam ich ja gar nicht, als das die Probleme hierin begründet sein könnten. Vorher schon meckert Flash über zu wenige Semikolons.
 
Bei mir geht das ohne Probleme.


Hast Du diesen Code vielleicht per Copy&Paste aus einem Forum oder so eingefügt? Dabei akzeptiert Flash nämlich manchmal auch korrekte Syntax nicht.

Gruß
.
 
ich habe es jetzt hinbekommen mit dem Code den Flash in MX noch selber schreibt unter method findet man das ja. Jetzt klappt es wenn der Button direkt auf der HZL liegt.

Es muss aber doch auch funktionieren wenn der Button(ich habe jetzt zur Sicherheit einen Movieclip, der als Button funktioniert) ein Teil eines übergeordneten Movieclips ist oder?
Mein Code:
_root.button.modern.variante1_1.onRelease = function() {
_root.gotoAndPlay("weg");
_global.ziel = "muster1-1.swf";
};

Hierbei soll wenn gedrückt wird, die Animation auf der HZL ab dem Bild mit der Markierung "weg" abgespielt werden und die globale Variable ziel gesetzt werden.(funktioniert eigentlich auch :/ um eine globale variable kenntlich zu machen?In Flash 5 ging das!)
Leider funktioniert es nicht. Keine Reaktion des Button!
 
Zurück