Avatar billede el_morten Nybegynder
04. januar 2004 - 20:04 Der er 8 kommentarer og
1 løsning

Begge objekter flytter sig! Kun movieclippet skal.

Hej eksperter.
Jeg har lavet et simpelt dokument hvor jeg har to objekter på. Det ene objekt skal så kunne flyttes med piletasterne. simpelt nok.
Det ene objekt er et movieclip og det andet er en button. movieclippet bliver attachet på frame 1. og button er bare trukket ind på stage.
Problemet er bare at begge objekter flytter sig, når jeg bruger piletasterne! Nogen der kan sige mig hvad der er galt.
Avatar billede pyroman Nybegynder
04. januar 2004 - 20:24 #1
Du kan måske have kommet til at lægge knappen ind i mc'et eller et andet mc som du så også kommer til at flytte rundt på.
Måske kan du også være kommet til at attache mc'et til level0 og så flytter du måske level0 istedet for kun mc'et...

Kan du os dit script?

/Filip
Avatar billede el_morten Nybegynder
04. januar 2004 - 20:30 #2
okay.

frame 1 : _root.attachMovie("mcfirkant","f",100);
stop();


------------------- movieclip (mcfirkant)
#initclip 1
//definer en klasse "firkant"
function firkant(){};
// inherit from MovieClip class
firkant.prototype = new MovieClip();
firkant.prototype.space = function(){
    trace("du trykkede på space");
}

firkant.prototype.onLoad = function ()
{
    this.speed=15;
    this._x = 5;
    this._y = 200;
};
firkant.prototype.onEnterFrame = function()
{
    with (firkant) {
        if (Key.isDown(Key.RIGHT)) {
            _x +=this.speed;
            if (_x>550) {
                _x=5;
            }
        } else if (Key.isDown(Key.LEFT)) {
            _x -=this.speed;
            if (_x<0) {
                _x=550;
            }
        } else if (Key.isDown(Key.SPACE)) {
            this.space();
        }
    }
};
// register class
object.registerClass("mcfirkant", firkant);

#endinitclip

------------------- button (btn_firkant)
ingen kode (endnu) Er bare et objekt trukket ind på stage.
Avatar billede mat Nybegynder
04. januar 2004 - 20:36 #3
#initclip
//definer en klasse "firkant"
function firkant(){};
// inherit from MovieClip class
firkant.prototype = new MovieClip();
firkant.prototype.space = function(){
    trace("du trykkede på space");
}

firkant.prototype.onLoad = function ()
{
    this.speed=15;
    this._x = 5;
    this._y = 200;
};
firkant.prototype.onEnterFrame = function()
{
    with (firkant) {
        if (Key.isDown(Key.RIGHT)) {
            this._x +=this.speed;
            if (_x>550) {
                _x=5;
            }
        } else if (Key.isDown(Key.LEFT)) {
            this._x -=this.speed;
            if (_x<0) {
                _x=550;
            }
        } else if (Key.isDown(Key.SPACE)) {
            this.space();
        }
    }
};
// register class
Object.registerClass("mcfirkant", firkant);

#endinitclip
Avatar billede el_morten Nybegynder
04. januar 2004 - 20:41 #4
WHAT! Var det det hele! et stort O i Object.registerClass ?
Det virker i hvert fald!
Perfekt... takker.
Avatar billede mat Nybegynder
04. januar 2004 - 20:45 #5
nej det var et scope-issue:

this._x +=this.speed;

Du bør nok osse rette dem nedenunder pågældende hvis du vil have din if til at tjekke det rigtige :)
Avatar billede el_morten Nybegynder
04. januar 2004 - 20:52 #6
Nåååårh ja! dvs. a
Avatar billede el_morten Nybegynder
04. januar 2004 - 20:53 #7
hov...
dvs. at der skal stå

this._x -=this.speed;
            if (this._x<0) {
                this._x=550;
osv.
ik'?
Avatar billede mat Nybegynder
04. januar 2004 - 22:22 #8
jow :)
Avatar billede el_morten Nybegynder
04. januar 2004 - 22:35 #9
Perfekt
tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester