Gå til innhold

Flash programmering- kommer ikke til neste scene!


Anbefalte innlegg

Hei.

Jobber for tiden med en skoleprosjekt hvor vi skal lage en virtuell nettbutikk. Til nå har vi tegnet både karakteren,bakgrunnen og diverse andre ting samt programmert litt. På nettet har jeg kun lest om hvordan man kan navigere seg fra scene til scene ved å klikke med musen, men vi har laget en avatar som kan styres med piltastene. Mitt spørsmål blir derfor;

 

Hvordan skrives koden når vår avatar går inn i en bygning?(Da skiftes scenen når han går til døren) Kan lime inn starten av koden hvis det er til noe hjelp(har laget det slik at når han treffer døren nå, kommer det bare opp en melding om at døren er truffet. Vil skifte scene istedenfor!)

 

stage.addEventListener(Event.ENTER_FRAME, hitTest);

function hitTest(event:Event)

{

if (avatar_mc.hitTestObject(rect1))

{ txt_hit.text ="Du har truffet døren"

}

else

{

txt_hit.text = "";

}

 

{

if (avatar_mc.hitTestObject(parkometer1))

txt_hit.text = "Du har truffet parkometeret";

}

{

if (avatar_mc.hitTestObject(parkometer2))

txt_hit.text = "Du har truffet parkometeret";

}

 

}

 

stop();

avatar_mc.gotoAndStop(1);

avatar_mc.venstrefot_mc.gotoAndStop(1);

avatar_mc.hoyrefot_mc.gotoAndStop(1);

 

nedenfor denne koden ligger variablene for å styre med piltastene, hvordan figuren roteres når piltastene brukes, når karakteren skal gå og stoppe osv. Tror ikke resten av koden er relevant for hva jeg er ute etter:p

Lenke til kommentar
Videoannonse
Annonse

Bruker CS4 og AS3:)

 

Men dette fungerer likevell ikke..

Kommer bare opp denne feilmeldingen i debuggingen:

 

TypeError: Error #2007: Parameter hitTestObject must be non-null.

at flash.display::DisplayObject/_hitTest()

at flash.display::DisplayObject/hitTestObject()

at flash_fla::MainTimeline/hitTest()[flash_fla.MainTimeline::frame1:13]

Cannot display source code at this location.

 

Kanskje det er lettere å ta til neste frame istedenfor?

Hva blir koden så isåfall da?

Lenke til kommentar

if (avatar_mc.hitTestObject(rect1))
{ gotoAndPlay(25);
}

 

Da vil du gå til frame nr. 25.

 

Dette er koden om du skriver actions på scenen.

Om du skriver koden fra en annen plass, eksempelvis ett movieclip, må du bruke.

 

stage.gotoAndPlay(25);

Lenke til kommentar

if (avatar_mc.hitTestObject(rect1))
{ gotoAndPlay(25);
}

 

Da vil du gå til frame nr. 25.

 

Dette er koden om du skriver actions på scenen.

Om du skriver koden fra en annen plass, eksempelvis ett movieclip, må du bruke.

 

stage.gotoAndPlay(25);

 

Hvis jeg bruker denne metoden så får jeg likevel feilmelding:S

Bruker denne koden:

stage.addEventListener(Event.ENTER_FRAME, hitTest);

function hitTest(event:Event)

{

if(avatar_mc.hitTestObject(rect1))

{

gotoAndStop(2);

}

Her vil jeg frem til scene 2, men når jeg bruker denne koden får jeg denne samme meldingen:

TypeError: Error #2007: Parameter hitTestObject must be non-null.

at flash.display::DisplayObject/_hitTest()

at flash.display::DisplayObject/hitTestObject()

at flash_fla::MainTimeline/hitTest()[flash_fla.MainTimeline::frame1:14]

Cannot display source code at this location.

 

Det flashen går ut på er at man befinner seg utenfor en bygning. Når personen, som jeg styrer med piltastene, går til døren skal bildet skifte seg til innenfor bygningen. Jeg har prøvd både koden får å skifte scenen og for å skifte frame(som denne ovenfor), men har fremdeles det samme problemet. Antar dere skjønte hva jeg var ute etter, men ville bare presisere det. Det kommer på det samme om jeg bruker neste frame eller scene, men jeg må bare få d til.. Det eneste som skal skje er at bakgrunnen skal skiftes ut og litt mer koding i form av produkt kjøp o.l(Dette har jeg i orden). Plages bare med å få ny scene eller eventuelt en ny frame for å få frem den nye bakgrunnen. Vil helst bruke ny scene koden, men får det ikke til.

Lenke til kommentar

Hvis jeg bruker denne koden:

stage.addEventListener(Event.ENTER_FRAME, hitTest);

function hitTest(event:Event)

{

if(avatar_mc.hitTestObject(rect1))

{

gotoAndStop(1, "Scene 8");

}

 

\\ Scene 8 er navnet på scenen jeg vil bruke på frame 1

 

Så får jeg følgende feilmelding:

TypeError: Error #1009: Cannot access a property or method of a null object reference.

at flash_fla::MainTimeline/hitTest()[flash_fla.MainTimeline::frame1:14]

 

Hva kan være galt her?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...