_alpha mit For-Schleife

eDreamer

Erfahrenes Mitglied
HiHo,

ich will die Deckkraft meines MCs mit einer For Schleife ändern, also von 0% auf 100%. Mein MC heißt mc_blende :

_root.mc_blende.onEnterFrame = function (){
for(h=100; h=0; h--){
_root.mc_blende._alpha--
}
}

Und nu stellt euch vor, es funst nicht ! Kann mir wer sagen wieso nicht ?
 
hi e dreamer

also mal 3 bemerkungen:
1. movieclips kannst du nicht mit schleifen verändern. warum ? weil eine schleife den bildschirm nicht aktualisiert, sie rechnet nur.

2. um die eigenschaften eines mc's zu verändern brauchst du ein onEnterFrame event, das hast du ja scön erkannt und vorsichtshalber auch eingebaut

3. wenn du bedingungen aufstellst, musst du auf gleichheit mit == prüfen und nicht mit =

hier ein bsp wie's gehen könnte (geist schau mal:eek:hne prototype):

PHP:
function alphaDown(){
	blende_mc._alpha--
}
this.onEnterFrame=alphaDown;


gruss skyla
 
@eDreamer:
Wenn du eine EventHandler-Funktion einem MC zuordnest, dann bewegt sich der Sichtbarkeitsbereich des ActionScript-Interpreters auf diesen MC.
Klingt vielleicht merkwürdig, drückt aber im Prinzip nur folgendes aus:
PHP:
_root.dieserName = "_root";
_root.createEmptyMovieClip("einMc", 1);
_root.einMC.dieserName = "einMC";
_root.einMc.onEnterFrame = function() {
    trace(this.dieserName);
}
und du wirst feststellen, dass obwohl du auf _root dieses Script stehen hast, der Interpreter seinen "Kopf" doch in den MC steckt.

Von daher ist folgendes recht umständlich, wenn du's dir mal überlegt:
PHP:
_root.mc_blende.onEnterFrame = function (){ 
...
_root.mc_blende._alpha--;
}
Das ist wie Eintreten, wieder hinausgehen und dann an die Tür klopfen. ;)

Das nur noch als Ergänzung, Skyla hat den Rest schon geklärt, wenngleich man natürlich nicht sagen kann, dass mit einer Schleife der Bühneninhalt nicht geändert werden kann, denn nach Durchlauf der Schleife kann die Eigenschaft ja trotzdem geändert sein, das ist aber Krümelkackerei. :)

hth,
Geist
 
Das ist wie Eintreten, wieder hinausgehen und dann an die Tür klopfen.

Schon arm wenn mans sich so erklären lassen muss, cool danke dir :p
 
Bevor der Frame durchlaufen wird, ist MC._alpha = 100, dann folgt im Frame eine Schleife die den MC._alpha-Wert bis 0 runterdreht und danach hat dein MC den _alpha-Status 0.

Du kriegst zwar nix von den Übergängen mit, letztendlich wird der Eigenschaft aber doch der Wert zugewiesen, den die Laufvariable der Schleife am Ende eingenommen hat, bzw. der, den du mit der Schleifenvariable veränderst. :)

Mehr wollte ich damit nicht zum Ausdruck bringen...

Geist
 
ja logisch, aber das hat doch nichts mit einer veränderung des bühneninhaltes zu tun.

dieser wird durch die aktualisierung der bühne erzeugt, welche wiederum von einem enterFrame-Event ausgelöst wird (oder dem Befehl upDateAfterEvent). da kannst du soviele schleifen einbauen wie du willst, ohne aktualisierung tut sich gar nix.

aber ich weiss ja schon was du meinst;)

...alter Krümmelka...ups
 
Zurück