Zu deinem ersten Script im Startbeitrag und der Frage, was falsch ist:
"Übersetz" doch einfach mal was du machst in normale Umgangssprache. Das hilft in den meisten Fällen. Also:
Du legst einen Framedurchlauf an (on enterFrame)
In diesem setzt du deinen Alphawert um eins runter (wobei - nicht eher instanzname._alpha-- ?)
Aber du löschst (delete) diesen onEnterFrame-Event auch gleich einfach mal so beim ersten Durchlauf wieder, da es ja ohne weitere Anweisung eben in diesem steht.
Was passiert also bei diesem Script:
Einmal den Alphawert runter gesetzt -> gleich im ersten Durchlauf auch den onEnterFrame gelöscht -> logischerweise passiert dann nichts mehr weiter..
Lösungsansatz:
Prinzipiell so wie du es im ersten Frame geschrieben hast, aber die delete-Anweisung erst, wenn der Alphawert den gewünschten Endzustand erreicht hat oder kleiner ist. Dazu bedarf es einer if-Bedingung innerhalb des onEnterFrames im Sinne von
on Framedurchlauf
-> setze Alpha um eins runter
-> wenn! Alpha kleiner oder gleich einem bestimmten Wert
-> erst dann lösche den Framedurchlauf
Prinzip jetzt klarer?
Versuch's mal in ein Script umzusetzen.