Avatar billede lumatron Nybegynder
21. oktober 2005 - 10:31 Der er 14 kommentarer

AS1 til AS2 problem med preloader

HejDav

jeg har en fil hvor resten af koden er AS2 (og det hele virker fint) så har jeg fundet et preloader script (flashkit) som jeg har pillet lidt ved og helt ændret den grafiske loader + det løse.. anyway jeg lavede filen separat (egen fil) og den virker glimrende som AS1, da jeg så skulle have den over i minmain-film
ja så kommer der fire (ens) output-fejl.

Er der nogen der gider hjælpe mig med at AS2'e følgende kode
(først ligger scriptet (noget af det) derefter kan i se output-fejlmedd.
--

onClipEvent (load) {
    total = _root.getBytesTotal();
}
onClipEvent (enterFrame) {
    bytesreceive = _root.getBytesLoaded() ;
    bytesleft = _root.getBytesTotal()-_root.getBytesLoaded();
    bytesnow = bytesleft.toString(10);
    percent = Int(_root.getBytesLoaded()/_root.getBytesTotal()*100);
    // control the rotator bar
    if ((percent>0)and(gotoframe<=25)) {
        tellTarget ("../:rotator1") {
            gotoAndStop(../dynamic_texts:percent+1);
        }
    }
    if ((percent>25)and(gotoframe<=50)) {
        tellTarget ("../:rotator2") {
            gotoAndStop(../dynamic_texts:percent-25+1);
        }
    }
    if ((percent>50)and(gotoframe<=75)) {
        tellTarget ("../:rotator3") {
            gotoAndStop(../dynamic_texts:percent-50+1);
        }
    }
    if ((percent>75)and(gotoframe<=100)) {
        tellTarget ("../:rotator4") {
            gotoAndStop(../dynamic_texts:percent-75+1);
        }
    }
    // 7 decimal digit : g,f,e,d,c,b,a
    // i.e. if 1234567 eceived; g=1,f=2,e=3,d=4,c=5,b=6,a=7
    if (bytesnow>1) {
        a = bytesnow.substr( -1,1 );
        b = "0";
    }
    if (bytesnow>10) {
        b = bytesnow.substr( -2,1 );
        c = "0";
    }
    if (bytesnow>100) {
        c = bytesnow.substr( -3,1 );
        d = "0";
    }
    if (bytesnow>1000) {
        d = bytesnow.substr( -4,1 );
        e = "0";
    }
    if (bytesnow>10000) {
        e = bytesnow.substr( -5,1 );
        f = "0";
    }
    if (bytesnow>100000) {
        f = bytesnow.substr( -6,1 );
        g = "0";
    }
    if (bytesnow>1000000) {
        g = bytesnow.substr( -7,1 );
    }
}


OUTPUT:

**Error** Symbol=Preloader, layer=preloader parts, frame=2:Line 12: Unexpected '.' encountered
gotoAndStop(../dynamic_texts:percent+1);

**Error** Symbol=Preloader, layer=preloader parts, frame=2:Line 17: Unexpected '.' encountered
gotoAndStop(../dynamic_texts:percent-25+1);

**Error** Symbol=Preloader, layer=preloader parts, frame=2:Line 22: Unexpected '.' encountered
gotoAndStop(../dynamic_texts:percent-50+1);

**Error** Symbol=Preloader, layer=preloader parts, frame=2:Line 27: Unexpected '.' encountered
gotoAndStop(../dynamic_texts:percent-75+1);

Total ActionScript Errors: 4     Reported Errors: 4

'pLease!
Avatar billede lumatron Nybegynder
21. oktober 2005 - 10:33 #1
mit komplet ukvalificerede bud er at der er ballade med:
../ tegnene ????
Avatar billede nikolajdu Nybegynder
21. oktober 2005 - 10:54 #2
Well det er faktisk flash 4 syntax du har brugt.

Er det sådan her du mener?

_parent.dynamic_texts.gotoAndStop(percent-75+1);
Avatar billede lumatron Nybegynder
21. oktober 2005 - 11:29 #3
humm ja det er muligt, der er ihvertfald ingen fejl hvis jeg ændrer koden til det
men preloaderen virker så ikke længere eller retter loader virker men den kalder ikke til fx ("../:rotator2") MC'erne (0 de virker ikke længere)
Avatar billede nikolajdu Nybegynder
21. oktober 2005 - 13:32 #4
måske sådan her?

_parent.rotator4.dynamic_texts.gotoAndStop(percent-75+1);
Avatar billede lumatron Nybegynder
21. oktober 2005 - 14:22 #5
njææ, det ændrer ikke ved noget (preloader virker, det gør rotatore ikke)
Avatar billede lumatron Nybegynder
21. oktober 2005 - 14:24 #6
det må da være dennehersend linje den er gal med

tellTarget ("../:rotator4") {


?
Avatar billede nikolajdu Nybegynder
21. oktober 2005 - 14:27 #7
Den skal du også fjerne helt. Læg mærke til at jeg har lagt rotator ind i linien i stedet.

if ((percent>50)and(gotoframe<=75)) {
_parent.rotator4.dynamic_texts.gotoAndStop(percent-75+1);
}
Avatar billede lumatron Nybegynder
21. oktober 2005 - 14:49 #8
nej nu virker det hverken i AS1 eler AS2
(loaderen virker dog (men ikke rotator mc'erne ???
Avatar billede lumatron Nybegynder
21. oktober 2005 - 14:51 #9
scriptet ser sådan her ud nu:

onClipEvent (load) {
    total = _root.getBytesTotal();
}
onClipEvent (enterFrame) {
    bytesreceive = _root.getBytesLoaded();
    bytesleft = _root.getBytesTotal()-_root.getBytesLoaded();
    bytesnow = bytesleft.toString(10);
    percent = int(_root.getBytesLoaded()/_root.getBytesTotal()*100);

   

// control the rotator bar

    if ((percent>0) and (gotoframe<=25)) {
        _parent.rotator1.dynamic_texts.gotoAndStop(percent+1);
    }
    if ((percent>25) and (gotoframe<=50)) {
        _parent.rotator2.dynamic_texts.gotoAndStop(percent-25+1);
    }
    if ((percent>50) and (gotoframe<=75)) {
        _parent.rotator3.dynamic_texts.gotoAndStop(percent-50+1);
    }
    if ((percent>75) and (gotoframe<=100)) {
        _parent.rotator4.dynamic_texts.gotoAndStop(percent-75+1);
    }
    if (bytesnow>1) {
        a = bytesnow.substr(-1, 1);
        b = "0";
    }
    if (bytesnow>10) {
        b = bytesnow.substr(-2, 1);
        c = "0";
    }
    if (bytesnow>100) {
        c = bytesnow.substr(-3, 1);
        d = "0";
    }
    if (bytesnow>1000) {
        d = bytesnow.substr(-4, 1);
        e = "0";
    }
    if (bytesnow>10000) {
        e = bytesnow.substr(-5, 1);
        f = "0";
    }
    if (bytesnow>100000) {
        f = bytesnow.substr(-6, 1);
        g = "0";
    }
    if (bytesnow>1000000) {
        g = bytesnow.substr(-7, 1);
    }
}
Avatar billede lumatron Nybegynder
21. oktober 2005 - 14:55 #10
loaderen virker faktisk også uden _parent
(det gør rotatorene dig stadig ikke)
Avatar billede lumatron Nybegynder
22. oktober 2005 - 04:39 #11
var det det???
eller følger du den til dørs?

som det er nu har jeg et blandet AS1/AS2 script som ikke virker, så det er jo ikke gået den rigtige vej...

jeg opretter gerne et ny spørgsmål hvis du ikke mener du har en løsning på det....
Avatar billede nikolajdu Nybegynder
22. oktober 2005 - 11:17 #12
Var det det? Ehe makker tag og klap hesten og brug hellere tiden på at forstå hvad det er du laver. Jeg tager situationen helt med ro og kommer forbi eksperten når jeg har tid og lyst.

Du er i gang med at tage skridtet fra Flash 4 til Flash 7 men har ikke forstået at trykke F1. Tell target har ikke været brugt siden . (dot notation) blev indført i Flash 5 - Det er praktisk talt umuligt at hjælpe dig i situationen her i og med at din fil kan være bygget op på hvilken som helst sneaky måde. Smid hellere filen ud så den kan hentes så har folk en mulighed.

Derudover giver gør det at indføre dot notation slet ikke nogen hellig ko i forhold til at få det til at ligne AS 2 - Der skal meget mere til så hvorfor overhovedet få det til at være AS 2 hvis det virker som Flash 4 - For du må et eller andet sted også realistisk indse at du i øjeblikket ikke er klar til at tage skridtet. Det skal du nok blive, men du lærer ikke AS 2 uden at læse op på det. AS 3 er iøvrigt ude i en beta så der kommer endnu flere ændringer og meget mere sjov i Flash Player 8.5 om ca 6 måneder.
Avatar billede lumatron Nybegynder
23. oktober 2005 - 16:41 #13
som også indikeret i både spørgsmålet og følgende kommentare så er det ikke mig det har lavet den, jeg er ikke "koder" men grafiker (3D-animator) og har modtaget en AS2 fil som jeg skal bygge videre på (mangler reelt kun at få preloaderen til at virke). Det virkede umidelbart som en overkommelig opgave indtil jeg erfarede at Flash versioner ikke er kompatible med hinanden, hvilket jo er umrimeligt tåbeligt og uhørt (jeg er ihvertfald ikke bekendt med andre programmer som ikke er kompatible i det mindste den ene vej.?
Jeg har ingen ambition om at lære AS2 (eller AS3) syntaxer, det ville være tåbeligt det jo ikke er noget der er mit levebrød (og åbenbart også noget der ændrer sig hurtigt så kun de 100% dedikerede kodere kan følge med.)

så spørgsmålet går på om nogen gad hjælpe mig med at rette de 4 linjer som AS2
opfatter som :
Unexpected '.' encountered
resten af filen (hele sitet) virker fint i AS2, sikkert ikke den kønneste klump kode men det virker...

der er vist ikke noget "sneaky" i preloaderen (kun gammelsags)
preloaderen er et MC, består at 2 frames
i frame 1 ligger:

total = int(_root.getBytesTotal()/1000;
download = int(_root.getBytesLoaded()/1000:
if (total == download) {
tellTarget ("_level10") {
  gotoAndPlay(2);
}
}else {
  play();
}

i frame 2 (med en stop action)
ligger så det ovenstående MC med scriptet
samt MC'erne rotator1 til 4.

jeg har desværre ikke lige noget sted at loade op på
men jeg sender meget gerne .fla filen (4Kb) hvis nogen vil prøve den af :)
Avatar billede nikolajdu Nybegynder
26. oktober 2005 - 01:48 #14
unskyld ventetiden men har ikke rigtigt haft til til eksperten.

var total:Number;
total = int(_parent.getBytesTotal())/1000;
var download:Number;
download = int(_parent.getBytesLoaded())/1000;
if (total == download) {
    _parent.gotoAndPlay(2);
} else {
    play();
}
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