Avatar billede lasse-b Nybegynder
09. april 2004 - 20:35 Der er 24 kommentarer

Kan Flash være glemsom?!

Hejsa.
Ja, kan Flash være glemsom - og lave periodiske fejl?

Baggrunden:
Min flash-projektor (exe) loader en ekstern fil med 52 forskellige variabler, der er markeret enten true eller false. Herefter loades en tilsvarende ekstern fil med endnu 52 variabler. Bagefter vendes tilbage til flash-projektoren, eller hovedfilen, for at vise resultatet og udskrive det. Resultatet vises grafisk med nogle prikker enten sorte eller hvide, efter henholdsvis true eller false variabel:

onClipEvent (enterFrame) {
    if (_level11.prik1 == true) {
        setProperty("aprik1", _visible, false);
    } else {
        setProperty("aprik1", _visible, true);
    }
    if (_level11.prik2 == true) {
        setProperty("aprik2", _visible, false);
    } else {
        setProperty("aprik2", _visible, true);
    }
Avatar billede lasse-b Nybegynder
09. april 2004 - 20:36 #1
Kan man ikke længere skrive lange spørgsmål?!
Prøver lige igen...:

onClipEvent (enterFrame) {
    if (_level11.prik1 == true) {
        setProperty("aprik1", _visible, false);
    } else {
        setProperty("aprik1", _visible, true);
    }
    if (_level11.prik2 == true) {
        setProperty("aprik2", _visible, false);
    } else {
        setProperty("aprik2", _visible, true);
    }
Avatar billede lasse-b Nybegynder
09. april 2004 - 20:37 #2
... osv.

Det er den jeg bruger til det movieclip der vises på skærmen. Bagved ligger mit print-MC. Her har jeg i stedet indledt med

onClipEvent (load) {
...osv

Så langt så godt.
Det fungerer faktisk også godt. Med ca. hver femte til tiende gang så virker det ikke i det MC der udskrives. Det vil sige, at resultatet af det første loadede MC ikke vises i printet, men at det andet loadede MC vises fint. Begge vises korrekt i skærmversionen.

Altså: Variablerne vises korrekt på skræmen men det går galt ca. hver tiende gang når det printes ud. Udgangspunktet er ellers det samme i mine actions både for skærm-MC´et og i print-MC´et.

Kan der være periodiske udfald i et ellers helt systematisk flash-projekt?!
Eller kan jeg nåt toppen af, hvad Flash kan klare uden udfald?

Jeg synes sgu det er mærkeligt! :-)

Hvis det er blevet alt får kryptisk her, får jeg lige lavet en version, jeg kan lægge på nettet.

Håber på svar...

/Lasse
Avatar billede lasse-b Nybegynder
09. april 2004 - 20:37 #3
Der var dén!

Sorry...
Avatar billede pyroman Nybegynder
09. april 2004 - 20:43 #4
Hvad gør det der print-mc? Er det det du printer? ...og hvad ligger i det?
Avatar billede barklund Nybegynder
09. april 2004 - 21:02 #5
For det første, det er da fuldstændigt tåbeligt at have så lang en kode for at sætte 52 movieclips til synlige eller ej udfra 52 varaibler - det kan jo gøres så kort som:

var i;
for  (i = 1; i <= 52; i++) {
    mit_mc["aprik"+i]._visible = eval("prik"+i);
}

Men jeg tror problemet ligger i, at du ikke venter på, at dine variabler er loaded... Som oftest når dine variabler at blive loaded, men ikke altid - og du venter jo ikke for at være sikker.

Vis os dit loading script :)
Avatar billede lasse-b Nybegynder
09. april 2004 - 21:02 #6
Der ligger et par frames med navnet #P.

Øverst en knap med

on (release) {
    print("prog0print", "bframe");
}
Avatar billede lasse-b Nybegynder
09. april 2004 - 21:05 #7
> Barklund: Ja, jeg tænke nok, at der var en smartere måde at gøre det på. Skal jeg blot skifte min lange koderække ud med din kodestump?

Mht at vente: Hvordan venter jeg på, at variablerne er loadede?

He, ja tåbelig, den må jeg så tage på mig... :-)

/Lasse
Avatar billede barklund Nybegynder
09. april 2004 - 21:10 #8
Nej, det kommer stadig an på din kontekst...

Vis os dit loading script - hvordan loader du variablerne lige nu? Eller rettere, hvilke to filer henter du fra - jeg er sikker på, at det kan gøres MEGET nemmere... :)

Og forresten så er du ikke engang i nærheden af hvad flash playeren kan klare uden "udfald" - den kan så meget mere, hvis man bare gør tingene ordentligt :)
Avatar billede lasse-b Nybegynder
09. april 2004 - 21:24 #9
Jeg har slettet alt roderiet så det vigtigste er her:

http://www.bekker.dk/test.zip

Jeg ved godt, at jeg ikke er noget haj til flash, men roder nu med det alligevel. Noget af det jeg laver er med garanti håbløst.. :-)
Avatar billede lasse-b Nybegynder
09. april 2004 - 21:26 #10
testafprint.exe er hovedfilen der loader først prog0.swf, derefter prog0v.swf
Avatar billede lasse-b Nybegynder
10. april 2004 - 14:39 #11
Kan I se mine filer?
Avatar billede lasse-b Nybegynder
15. april 2004 - 14:31 #12
Hejsa.

Jeg er lidt hængt op med at finde den her fejl jeg lar lavet, så håber nogen har tid et øjeblik:

Barklund skrev, at jeg ikke venter på, at mine variabler er loadede. Hvordan gør jeg det? Kan der være andre problemer?

/Lasse
Avatar billede lasse-b Nybegynder
19. april 2004 - 20:19 #13
Hej igen.
Jeg kunne godt bruge hjælp til lige at forstå, hvordan jeg venter på, at variablerne loades. Skal jeg i stedet oprette et nyt spørgsmål?

Alternativt er der måske en haj, der udenom pointsystemet tør give mit et tilbud på at hjælpe mig over mine uvidenhedsvanskelligheder, så jeg kan få afsluttet projektet...

/Lasse
Avatar billede barklund Nybegynder
19. april 2004 - 20:22 #14
Søg i denne kategori på brugen af LoadVars - det er besvaret hundredevis af gange...
Avatar billede lasse-b Nybegynder
19. april 2004 - 21:16 #15
Okay. Jeg fandt denne, men jeg synes alle eksempler gik på .txt´er eller noget .php. Fungerer det, når jeg som herunder har indsat prog0.swf?

stop();
// stands afspilleren
varHolder = new LoadVars();
// Lav et loadvars object
varHolder.load("prog0.swf");
// Hent variablerne fra var.php ind i varHolder
varHolder.onLoad = function() {
    // Når variablerne er loaded udfør function som du selv definerer
    gotoAndPlay("vaelger");
};


Nedenstående får jeg ikke til at virker:

var i;
for  (i = 1; i <= 52; i++) {
    prog0printH["aprik"+i]._visible = eval("prik"+i)...;
}
Avatar billede barklund Nybegynder
19. april 2004 - 22:55 #16
LoadVars er til at loade variabler - loader du ikke nogle variabler, som du skal gøre noget ud fra? Eller loader du en swf, som indeholder de variabler, du skal gøre noget ud fra?
Avatar billede lasse-b Nybegynder
19. april 2004 - 23:14 #17
Jeg har en ekstern swf-fil, hvori jeg opretter nogle variabler, herefter markerer dem som true eller false enkeltvis henad timelinen. Kort fortalt for at en bruger fortæller om han ser nogle markeringer.
Herefter lader jeg den eksterne swf gå til en gennemsigtig scene, hvorefter brugeren går videre til printdelen, hvor variablerne i den eksterne swf danner baggrund for en grafisk fremstilling som udskrives.

Denne udskrift er nogle gange uden markeringer, altså får den ikke fat på den første serie af variabler. I hvert fald ikke første gang. Printer jeg endnu en gang, fungerer det.

Det lyder rimeligt nok, at jeg skal vente på at den finder variablerne, men de er der jo sådan set hele tiden?

Eller hvad ved jeg. Jeg har langt henad vejen brugt mit projekt her til at lære action script at kende. Med de unoder man får med ved at lære sig selv tingene... :-)

Du skrev engang herinde, at du ikke var interesseret i freelance-arbejde. Er det stadig din holdning?

/Lasse
Avatar billede barklund Nybegynder
19. april 2004 - 23:24 #18
Ikke så meget u-interesseret som mangel på tid og ressourcer... Men ja, jeg laver ikke freelance - har rigeligt at lave i forvejen :)

Hvis variabler er defineret og brugt før de danner baggrund for en udskrift, så er problemet ikke loading.

Forstår jeg ret, at du undervejs i afspilning af en film definerer og sætter de 52 variabler? Og til sidst skal disse 52 variabler bruges til at sætte synlighed for 52 prikker? Disse prikker findes i et movieclip, som udskrives?

Er det så ikke noget med i sidste frame at have:

var i;
for (i = 1; i <= 52; i++) {
    some_mc["aprik"+i]._visible = this["prik"+i];
}
print(some_mc);

Hvis dine prikker altså ligger direkte som movieclips i dette movieclip's undermovieclip "some_mc". Det ville jeg nok sætte det op til :)

// Morten Barklund
Avatar billede lasse-b Nybegynder
19. april 2004 - 23:36 #19
de bruges ikke før, men den eksterne swf har jo været loadet i ret lang tid. Først vises en serie prikker for højre øje, dernæst en tilsvarende for venstre. Det er den første serie der vises først i print-delen i hoved-projectoren, og det er også den der er problemet.

Øhm, det gør det vist ikke nemmere, at jeg er en spade til matamatisk logik. :-)
• Skal jeg sætte din action som en enterFrame eller som en frame action?

Jeg har alle prikkerne liggende i et MC som jeg har lagt nedenstående actions på. gentaget 52 gange. Det var så her du fik et billigt grin tidligere.. he he

onClipEvent (enterFrame) {
    if (_level11.prik1 == true) {
        setProperty("aprik1", _visible, false);
    } else {
        setProperty("aprik1", _visible, true);
    }
Avatar billede barklund Nybegynder
19. april 2004 - 23:39 #20
Jeg må nok indrømme, at jeg ikke helt fatter, hvad du vil. Jeg har ikke lige overskud pt. til at kigge på dine filer, så jeg kan ikke umiddelbart hjælpe dig.
Avatar billede lasse-b Nybegynder
19. april 2004 - 23:44 #21
Hm, er nok heller ikke så klart. Jeg har en hvid prik liggende og en sort prik ovenover som hedder aprik[tal]. Hvis variablen fra den loadede SWF i level11 er true, så skal den sorte prik ikke vises. Hvis variablen er false, skal den sorte prik vises...
Avatar billede barklund Nybegynder
19. april 2004 - 23:49 #22
Ja, det var ganske indlysende for mig, men jeg fatter ikke din opbygning eller hvad formålet er - og uden dette overblik, kan jeg ikke hjælpe dig...
Avatar billede lasse-b Nybegynder
20. april 2004 - 00:08 #23
Okay.
Jeg kan prøve at forklare det, så kan du jo gi et kig når du får et øjeblik:

En bruger vælger i en flash-projector/exe et af seks programmer til undersøgelse af øjet. Vælges program 1 loades en swf bestående af en serie prikker der vises kort, hvorefter brugeren markerer med et klik, at prikken er set. Derved dannes i swfen 52 - 92 variabler afhængig af hvilket program der er valgt.
Er prik nr 5 set, markeres variablen "prik5" som true.

Når testen er afsluttet stopper den loadede swf i en gennemsigtig scene. Herefter kører hovedprojectoren/Exe´en en generel præsentation hvorefter program 1´s venstre del af undersøgelsen vises. Den loades i et andet level og kører efter samme princip som testen for højre øje. Venstre test slutter ligeledes i en gennemsigtig scene hvorved der vendes tilbage til en printdel. Her vises udfra ovenstående clipEvent-action resultatet af de to tests i to forskellige MC og i to bagvedliggende MC´er der udskrives.

Har brugeren overset en prik i testen er variablen markeret som false (altså  _level2.prik42 == false), så vises en sort prik ("aprik42", _visible, true) og omvendt. Det er det jeg har ville kode mig ud af med de mange gentagelser.

Fidusen er, at overses en prik skal dette sted gengives i udskriften. Og det virker som sagt - de fleste gange. Det er det, der giver mig lidt grå hår...

Krydser fingrer for, at du får tid. Jeg blir hevet i ørerne for at få løst sagerne... :-)

/Lasse
Avatar billede barklund Nybegynder
23. maj 2004 - 16:19 #24
Går ud fra du er nået videre nu...

Husk at lukke :)
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