Avatar billede thingholm.dk Nybegynder
03. januar 2004 - 22:55 Der er 12 kommentarer og
1 løsning

Problem ved konvertering til AS 2.0

Hej

Jeg har denne kode, som virker fint i Flash Player 5:

onClipEvent (enterFrame) {
    var t, t2, t3, tx, ty, i, adder, previousName, currentName;
    if (_parent._parent._visible == 1) {
        for (o=1; o<_parent.numberOfItems; o++) {
            previousName = "branchItem"+o;
            currentName = "branchItem"+(o+1);
            if (_parent[previousName].numOfOpenItems>0) {
                speed = 2;
                calcpos(speed);
            } else {
                speed = 3;
                calcpos(speed);
            }
        }
        if (_parent._parent.numOfOpenItems<2) {
            adder = 0;
        } else {
            adder = (((_root.draggin.toc_mc[_parent.rootName].yspacing*_parent._parent.numOfOpenItems)-_parent.lineV._height)-_root.draggin.toc_mc[_parent.rootName].yspacing)/speed;
        }
        _parent.lineV._height = 0;
    }
}
onClipEvent (load) {
    if (_parent._name == "mainBranch0") {
        _parent.pStatus = 2;
        _parent._x = _root.draggin.toc_mc[_parent.rootName].xstart;
    }
    function calcpos(speed) {
        trace(previousMC[previousName]._y);
        myY = _root.draggin.toc_mc[_parent.rootName].yspacing+_parent[previousName]._y+(_root.draggin.toc_mc[_parent.rootName].yspacing*_parent[previousName].numOfOpenItems);
        yadder = (myY-_parent[currentName]._y)/speed;
        _parent[currentName]._y = _parent[currentName]._y+yadder;
    }
}

Men når jeg konverterer den til AS 2.0 godkender den ikke _parent[previousName] som værende et MC. Jeg håber at nogen kan hjælpe.

VH
Anders Thingholm
Avatar billede barklund Nybegynder
03. januar 2004 - 23:29 #1
var some_mc:MovieClip = MovieClip(_parent[prevoisName]);
Avatar billede barklund Nybegynder
03. januar 2004 - 23:30 #2
Du har blandet as1 og 2 sammen - du skal type alle variabler i as2 - ellers er det noget rod!
Avatar billede thingholm.dk Nybegynder
04. januar 2004 - 00:13 #3
Hej igen, denne kode virker tilsyneladende ikke:

onClipEvent (enterFrame) {
    var t, t2, t3, tx, ty, i, adder;
    if (_parent._parent._visible == 1) {
        for (o=1; o<_parent.numberOfItems; o++) {
            var previousMC:MovieClip = MovieClip(_parent["branchItem"+o]);
            var currentMC:MovieClip = MovieClip(_parent["branchItem"+(o+1)]);
            if (previousMC.numOfOpenItems>0) {
                speed = 2;
                calcpos(speed);
            } else {
                speed = 3;
                calcpos(speed);
            }
        }
    }
}
onClipEvent (load) {
    if (_parent._name == "mainBranch0") {
        _parent.pStatus = 2;
        _parent._x = _root.draggin.toc_mc[_parent.rootName].xstart;
    }
    function calcpos(speed) {
        trace(previousMC._name);
        myY = _root.draggin.toc_mc[_parent.rootName].yspacing+_parent[previousName]._y+(_root.draggin.toc_mc[_parent.rootName].yspacing*_parent[previousName].numOfOpenItems);
        yadder = (myY-_parent[currentName]._y)/speed;
        _parent[currentName]._y = _parent[currentName]._y+yadder;
    }
}
Avatar billede barklund Nybegynder
04. januar 2004 - 01:13 #4
Måske kan man ikke "caste" til movieclip - prøv uden den og bare:

var previousMC:MovieClip = parent["branchItem"+o];
Avatar billede barklund Nybegynder
04. januar 2004 - 01:13 #5
Men hvorfor skulle den sige, at det ikke er movieclip - er det kun på movieclips, der er "numOfOpenItems" eller?
Avatar billede barklund Nybegynder
04. januar 2004 - 01:14 #6
Findes den på movieclip klassen?
Avatar billede barklund Nybegynder
04. januar 2004 - 01:14 #7
Hvad er den præcise fejl, spørger jeg nok egentlig om ;)
Avatar billede barklund Nybegynder
04. januar 2004 - 04:54 #8
Se desuden:

Migrating Flash MX to Flash MX 2004
http://www.macromedia.com/devnet/mx/flash/articles/migrate_flashmx2004.html

Migrating ActionScript 1.0 to 2.0
http://www.macromedia.com/devnet/mx/flash/actionscript04.html

// Barklund ;)
Avatar billede thingholm.dk Nybegynder
04. januar 2004 - 11:58 #9
Hej igen, nu prøver jeg med denne kode:

onClipEvent (enterFrame) {
    if (_parent._parent._visible == 1) {
        for (o=1; o<_parent.numberOfItems; o++) {
            var previousMC:MovieClip = _parent["branchItem"+o];
            //var previousMC:MovieClip = MovieClip(_parent["branchItem"+o]);
            var currentMC:MovieClip = MovieClip(_parent["branchItem"+(o+1)]);
            if (previousMC.numOfOpenItems>0) {
                speed = 2;
                calcpos(speed);
            } else {
                speed = 3;
                calcpos(speed);
            }
        }
    }
}
onClipEvent (load) {
    if (_parent._name == "mainBranch0") {
        _parent.pStatus = 2;
        _parent._x = _root.draggin.toc_mc[_parent.rootName].xstart;
    }
    function calcpos(speed) {
        trace(previousMC._name);
        myY = _root.draggin.toc_mc[_parent.rootName].yspacing+_parent[previousName]._y+(_root.draggin.toc_mc[_parent.rootName].yspacing*_parent[previousName].numOfOpenItems);
        yadder = (myY-_parent[currentName]._y)/speed;
        _parent[currentName]._y = _parent[currentName]._y+yadder;
    }
}

Men når jeg kører trace(previousMC._name); spytter den bare undefined ud. I den "gamle" kode spytter den BranchItem1 og BranchItem2 ud.

Bemærk at jeg har tilføjet et "_" før din parent.
Avatar billede thingholm.dk Nybegynder
04. januar 2004 - 14:06 #10
Hej igen,

Jeg løste den med denne:

var previousMC:MovieClip = MovieClip(_parent["BranchItem"+o]);
var currentMC:MovieClip = MovieClip(_parent["BranchItem"+(o+1)]);

Det skyldtes "BranchItem" var stavet "branchItem".

Smider du et svar?
Avatar billede barklund Nybegynder
04. januar 2004 - 14:14 #11
Ja, flash 7 playeren er case sensitiv med sine variabler - det er også noget helt nyt!
Avatar billede thingholm.dk Nybegynder
04. januar 2004 - 14:16 #12
Ja, men det er super cool - problemet kommer bare når man skal rydde op i andres kode ;-)

Tak for hjælpen.
Avatar billede barklund Nybegynder
04. januar 2004 - 14:22 #13
Sandsynligvis - on clip events på denne måde er heller ikke særlig praktiske i længden... Slet ikke når de kan scriptes i stedet...
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