"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

ActionScript 3.0 - replay button

Brain_Death 01.04.2011 - 10:49 1702 14
Posts

b_d

© Natural Ignorance (NI)
Avatar
Registered: Jul 2002
Location: 0x3FC
Posts: 10564
irgendwie bin ich ärger unfähig oder da hats was. preloader in AS3 krieg ich zam aber keinen replay button (bzw. goto) :rolleyes:

code auf dem frame sieht so aus:

Code: PHP
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:

Code:
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
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9818
MyButton gibts als Instanz?

b_d

© Natural Ignorance (NI)
Avatar
Registered: Jul 2002
Location: 0x3FC
Posts: 10564
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
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9818
Was soll das Ding (das Projekt) denn machen? Ich halte von den Timeline goto Zeug nicht wirklich viel.

b_d

© Natural Ignorance (NI)
Avatar
Registered: Jul 2002
Location: 0x3FC
Posts: 10564
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
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9818
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)
Avatar
Registered: Jul 2002
Location: 0x3FC
Posts: 10564
gut, ich finds so zwar 1000x komplizierter, was mich eben in AS2 wirklich <10sek gekostet hat, aber gut :D

tweenmax ist drinne (com folder wo die fla ist) und importiert. trotzdem kommt ->

1120: Zugriff auf eine nicht definierte Eigenschaft Tweenmax.

:( :D

ica

hmm
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9818
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)
Avatar
Registered: Jul 2002
Location: 0x3FC
Posts: 10564
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 :rolleyes:

ica

hmm
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9818
poste mal den ganzen code - so ist das ein ratespiel.

b_d

© Natural Ignorance (NI)
Avatar
Registered: Jul 2002
Location: 0x3FC
Posts: 10564
Code: PHP
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
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9818
hab oben ja eh schon geschrieben, dass es TweenMax ist und nicht Tweenmax.

b_d

© Natural Ignorance (NI)
Avatar
Registered: Jul 2002
Location: 0x3FC
Posts: 10564
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
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9818
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)
Avatar
Registered: Jul 2002
Location: 0x3FC
Posts: 10564
auf genau das bin ich grad draufgekommen :D

aber nettes zeug! kannt ich nicht. wird mir glaub ich bissi an arbeit abnehmen :p (wenn ichs mal raus hab) thx 4 that!
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz