| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Nov 2005 Ort: Aschersleben
Beiträge: 32
| Script auf viele Instanzen erweitern
Hallo Leute, Ich bin stolz ein Script hinbekommen zu haben, wo sich onRollOver und RollOut die Größe eines mc's langsam verkleinert und vergrößert. Ich weiß das ist für die meisten nen Klax, aber ich fang grad an. PHP-Code: Nun möchte ich aber nicht für alle 4 Button Instanzen dieses Script mehrmals schreiben müssen. Ich habe gedacht ich setze das alles in eine for Schleife. Hat aber leider nicht gefunzt. Hab schon alles versucht aber ich verstehe nicht wieso! Ich würde mich sehr über Hilfe freuen. Und ich würde mich noch mehr freuen wenn ich die Hilfe auch verstehe;-) Gruss Brandi Geändert von brandi (25-11-2005 um 10:27 Uhr) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Nov 2005 Ort: Aschersleben
Beiträge: 32
|
Genau das habe ich schon versucht. Meine Instanzen sind mc1 - mc4 Mit: for (i = 1; i <4; i++) } . . . _root["mc" + i]... } geht es aber nicht. Oder meinst Du eine andere Schleife? Danke für die Hilfe |
| | |
| | #4 (permalink) |
| using namespace Registriert seit: May 2002 Ort: Hamburg underground
Beiträge: 657
|
mach das nach folgendem prinzip: Code: function big(mc:MovieClip) {
mc.onEnterFrame = function ()
{
var xgd = mc._xscale - mc.xga;
var ygd = mc._yscale - mc.yga;
if (xgd <=50)
{
mc._xscale +=15;
} else if (ygd >50) delete mc.onEnterFrame;
if (ygd <= 50)
{
mc._yscale +=15;
}
}
}
mc1.xga = mc1._xscale; //ich nehme an du veränderst den scale wert auf der bühne, denn sonst ist diese zuweisung sinnlos, wenn xscale ist dann immer 100
mc1.yga = mc1._yscale;
big(mc1); //macht den mc1 groß |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Nov 2005 Ort: Aschersleben
Beiträge: 32
|
Hi Artjom, Danke für Deine Hilfe. Ich habe jetzt anstelle xyscale alles in width und height umgeschrieben. Das kann ich dann irgendwie besser abfragen. Trotz dem mal ein paar Fragen zu Deinem Skript weil mein AS einfach noch nicht so gut ist. Das sind genau die Fragen die ich immer habe. 1. Wie würde das: HTML-Code: function big(mc:MovieClip) Also "big" ist einfach Deine Bezeichnung ok, aber was kommt in die Klammer, der Instanzname. (mc ?? : Movieclip??) 2. Weshalb setzt Du Var vor die Variablen, geht das nicht auch ohne? Ansonsten kann ich den Berechnungen folgen. 3. Ich kann mir schon denken, dass "big(mc1)" irgendwie aus der Funktion da ober hervorgegangen ist. Aber wie das zustandekommt und wodurch dann alle 4 Instanzen angesprochen werden kann ich leider nicht ersehen. Ich wäre Dir dankbar wenn Du das Skript für mich mal richtig auseinandernehmen könntest. Ich möchte es nicht einfach nur kopieren sondern vor allen Dingen verstehen. Danke Gruß Brandi |
| | |
| | #6 (permalink) |
| using namespace Registriert seit: May 2002 Ort: Hamburg underground
Beiträge: 657
| Code: function big(mc:MovieClip) {
/*mc:MovieClip bedeutet, dass der parameter "mc" den typ MovieClip hat. du muss dieser funktion also
zwingend eine instanz eines Movieclips übergeben. wenn du zb. big("meineInstanz"); versuchst,
wird es fehlschlagen. die bezeichnung mc hab ich mir ausgedacht, könnte genauso Wurst heißen. */
mc.onEnterFrame = function ()
{ //ich schreibe hier eine funktion, die mit der framerate deines flashfilms aufgerufen wird.
var xgd = mc._xscale - mc.xga; //var oder nicht var .. das ist eine notation, also für die anwedung egal
var ygd = mc._yscale - mc.yga;
if (xgd <=50)
{
mc._xscale +=15;
} else if (ygd >50) {
/*hier lösche ich die funktion in der ich gerade drin bin.
du hast es in deinem ersten beispiel nicht gemacht,
dh. das bei dir diese funktion ohne ende in einer schleife lief. performancelastig */
delete mc.onEnterFrame;
}
if (ygd <= 50)
{
mc._yscale +=15;
}
}
} Code: function big(..) { //diese funktion unter _root (hauptzeitleiste) packen
....
}
for(var nI=1;nI<5;nI++) {
_root["mc"+nI].xga = _root["mc"+nI]._xscale;
_root["mc"+nI].yga = _root["mc"+nI]._yscale;
_root["mc"+nI].onRollOver = function() {_root.big(this); }
} |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |