ActionScript 3.0 - replay button
Brain_Death 01.04.2011 - 10:49 1702 14
b_d
© Natural Ignorance (NI)
|
irgendwie bin ich ärger unfähig oder da hats was. preloader in AS3 krieg ich zam aber keinen replay button (bzw. goto) code auf dem frame sieht so aus: stop();
MyButton.addEventListener(MouseEvent.CLICK, release);
function release(event:MouseEvent):void
{
gotoAndPlay(310);
}
eventlistener ist gesetzt. function ist gesetzt. geht trotzdem nicht ... folgender fehler erscheint, sobald die animation bei dem frame angelangt ist, 309 in dem fall: TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
at emotion_short_preloader_fla::MainTimeline/frame310()
google spuckt nur aus, dass in dem fall kein eventlistener gesetzt ist. das ist er aber o_O big tia!
|
ica
hmm
|
MyButton gibts als Instanz?
|
b_d
© Natural Ignorance (NI)
|
jup! ich bin jetzt auf was draufgekommen.
die schaltfläche ist auch als solche deklariert und animiert (mouse over, on click, blablabla). das ganze produziert so den besagten fehler code.
WENN ICH ABER die schaltfläche auf movieclip ändere funktioniert der code plötzlich (!) sprich keine fehlermeldung und der button macht was er soll. AAAABER: die button animation wird in einer endlosschleife extrem schnell durchgespielt. die 4 zustände spielt er also ab. naja, is ja jetzt ein movieclip und kein button mehr.
aber wenn man das in AS3 jetzt so mach, wie animiert ich dann buttons?
|
ica
hmm
|
Was soll das Ding (das Projekt) denn machen? Ich halte von den Timeline goto Zeug nicht wirklich viel.
|
b_d
© Natural Ignorance (NI)
|
ganz einfach. ist eine simple produkt animation. und der kunde soll nur die möglichkeit bekommen, das ganze nochmal anzugucken ohne F5 drücken zu müssen bis 309 frames geht die animation, dort ist dann quasi standbild mit eben dem button. wenn man den klickt solls bei 310 weitergehn, wo die dinge rausfaden und die animation von forne anfängt. thats it. mit AS2 waren das 5 sekunden arbeit. ich mein, jetzt gehts. ich musste einfach den button nicht als button sondern als movieclip deklarieren. aber wie ich den jetzt selber animiert (mouseover, onclick) ... keine ahnung :/
Bearbeitet von b_d am 01.04.2011, 11:45
|
ica
hmm
|
naja - im prinzip ganz einfach. du gibst dem button diverse event listener für ROLL_OUT und ROLL_OVER. in diesen funktionen animierst du den button. dazu empfehle ich die TweenMax klassen von greensock.
bsp:
xxx.addEventlistener(MouseEvent.ROLL_OVER, onRollOverHandler); xxx.addEventlistener(MouseEvent.ROLL_OUT, onRollOutHandler);
private function onRollOverHandler(event:MouseEvent):void { Tweenmax.to(buttoninstance, 0.5, {alpha:0.7}); } private function onRollOutHandler(event:MouseEvent):void { Tweenmax.to(buttoninstance, 0.5, {alpha:1}); }
|
b_d
© Natural Ignorance (NI)
|
gut, ich finds so zwar 1000x komplizierter, was mich eben in AS2 wirklich <10sek gekostet hat, aber gut tweenmax ist drinne (com folder wo die fla ist) und importiert. trotzdem kommt -> 1120: Zugriff auf eine nicht definierte Eigenschaft Tweenmax.
|
ica
hmm
|
die imports gibts? und natürlich TweenMax
das ist nicht kompliziert. im flash selbst würd ich sowieso keine zeile code schreiben. nimm den flash builder oder evtl. flashdevelop.
|
b_d
© Natural Ignorance (NI)
|
jup. per import com.greensock.TweenMax; und im orner com -> greensock gibts TweenMax.as ich glaub ich crap langsam hochkant drauf, bleibt er halt nicht animiert
|
ica
hmm
|
poste mal den ganzen code - so ist das ein ratespiel.
|
b_d
© Natural Ignorance (NI)
|
import flash.events.Event;
import flash.events.MouseEvent;
import com.greensock.TweenMax;
stop();
MyButton.addEventListener(MouseEvent.CLICK, dothis);
MyButton.addEventListener(MouseEvent.ROLL_OVER, onRollOverHandler);
MyButton.addEventListener(MouseEvent.ROLL_OUT, onRollOutHandler);
function dothis(event:MouseEvent):void
{
gotoAndPlay(310);
}
function onRollOverHandler(event:MouseEvent):void
{
Tweenmax.to(MyButton, 0.5, {alpha:0.7});
}
function onRollOutHandler(event:MouseEvent):void
{
Tweenmax.to(MyButton, 0.5, {alpha:1});
}
|
ica
hmm
|
hab oben ja eh schon geschrieben, dass es TweenMax ist und nicht Tweenmax.
|
b_d
© Natural Ignorance (NI)
|
ach, jah. sowas übersieht man ja leicht ;D muss mir jetzt mal die TweenMMMMMMMMax doku anschaun. der button sollte nämlich ein biiiiisserln mehr machen. tausend dank auf jeden fall
|
ica
hmm
|
schau dir auf jeden fall das killtweens zeugs an - sonst kommen sich die vom mouse over/out in die quere da die ja noch weiterlaufen wenn du schnell raus/rein fahrst.
|
b_d
© Natural Ignorance (NI)
|
auf genau das bin ich grad draufgekommen aber nettes zeug! kannt ich nicht. wird mir glaub ich bissi an arbeit abnehmen (wenn ichs mal raus hab) thx 4 that!
|