27. april 2003 - 21:40Der er
13 kommentarer og 1 løsning
Nu forsvinder min variabel...
Så'r det mig igen... (for et par dage siden var det min sprite der forsvandt!)
Jeg har en film, hvor der linkes til en anden film. I den linkede film er der en afslutnings-knap, og når brugeren klikker på denne skulle han gerne havne tilbage i filmen, hvor der oprindelig blev linket fra - og til samme frame. Jeg har derfor defineret et moviescript med et par variabler:
on stopMovie global film global placering
film = the movieName placering = the frame end
Hermed skulle der være taget et øjebliksbillede af placeringen på timeline, når filmen forlades.
På afslutnings-knappen i den linkede film står der noget i retning:
on mouseUp global film global placering go to frame placering of movie film end
Det hele fungerer fint, når jeg tester det på "arbejdsbordet". Den linkede film returnerer præcis tilbage til den første film, sådan som denne blev forladt. Jeg har endda chekket variablen med en put film..., og i message vinduet får jeg det rigtige filmnavn. Ok så vidt.
Men når jeg så laver en projector, virker det ikke. Tilsyneladende virker det med frame-placeringen, for afslutnings-knappen linker til, hvad der må svare til den frame, som den første film blev forladt i, men man forbliver i samme film. Afslutningsknappen bliver i samme film, men springer et par længder ud af tidslinien.
Skifter jeg
film = the movieName
ud med
film = "menu-teori.dir"
(som er filmens navn) virker det upåklageligt også i projectoren. Men dette kan jeg ikke bruge i længden, da den samme afslutnings-knap med samme script benyttes i flere andre film. Jeg vil derfor gerne have et lidt mere dynamisk script.
Jeg forstår simpelthen ikke, hvorfor det virker på "arbejdsbordet", når det ikke virker i en projector. Og jeg forstår heller ikke hvorfor det med frame-variablen 'placering' virker, når film-variablen 'film' ikke virker.
Projectoren er sat til at køre i et centreret vindue - men ellers arbejder jeg ikke med særskilte vinduer.
Nogle gode forslag til, hvor jeg skal lede efter problemet?
det virker fint for mig, scriptet giver overhovedet ingen problemer, hverken i .dir eller projektor versionen. Jeg ender i samme frame og tidspunkt som jeg var i da jeg forlod den oprindelige movie.
jmc: Næh, jeg holder ikke nogen frame (bør jeg gøre det?), og når jeg returnerer benytter jeg bare "go to movie....". Bruger jeg denne kode og skriver filmnavnet direkte (go to movie "menu-teori.dir"), linker projektoren fint tilbage til den rigtige film, men når jeg bruger min variabel, bliver jeg i den samme film.
medieroed: Øv....hvorfor virker det hos dig, når det ikke gør hos mig???
Jeg har benyttet den samme kode i en anden "film" ved en tidligere lejlighed, og da gav den ingen problemer. Så enten har det noget at gøre med at jeg denne gang bruger et vindue til at afspille projectoren (men det burde vel ikke gøre nogen forskel?), eller også har jeg måske fået lagt et eller andet forkert stykke kode eller lignende ind et eller andet sted. Men hvad.....Jeg håber på, at det med, at det virker på "arbejdsbordet" men ikke i projectoren, kan give nogen derude en ide om, hvad jeg har gjort galt, og hvor jeg skal lede efter problemet.
Umiddelbart skulle man jo tro, at jeg var kommet til at sætte koden, hvor jeg tager et øjebliksbillede af den aktuelle film (film = the movieName) og placering i filmen (placering = the frame), ind i "on startMovie" i den film jeg ikke kan komme væk fra igen (sådan virker det i hvertfald i projectoren)- Men så havde det jo heller ikke virket på "arbejdsbordet".
Jamen problemet er, at jeg aldrig ved præcis hvor brugeren er (på tidslinien), når han linker til den anden film, der skal afspilles. Og da stage gerne skulle se ud som da han forlod det, når han vender tilbage igen, kan jeg vel ikke vide, hvor jeg skal placere framescriptet.
Men allerhelst vil jeg have min egen kode til at virke, og leder efter, hvad det er der går galt her, siden den ikke virker efter hensigten...
Nu har jeg testet lidt. Jeg har forsøgt at kalde værdierne af de to variabler (film og placering) frem på stage, i den film som der bliver linket til. Resultatet er lidt pudsigt. Når jeg starter filmen på "arbejdsbordet" (altså i programmet director som en .dir fil – ikke i en projektor), får jeg det rigtige resultat: Variablen "film" indeholder navnet på den film brugeren kommer fra, og variablen "placering" har nummeret på den frame playhead stod på da filmen blev stoppet. Men når jeg forsøger via projektoren (med nøjagtigt de samme film, casts mv.) indeholder variablen "film" navnet på den film, som brugeren netop har åbnet (mens variablen "placering" er god nok). Hvorfor nu det? Scriptet er jo lagt som et moviescript:
on stopMovie global film global placering film = the movieName placering = the frame end
...men i projektoren (og kun her) er det som om at processen med "film = the movieName" bliver lidt forsinket, så det er navnet på den film der er ved at blive åbnet som bliver proppet ind som værdi i variablen??? Jeg fatter det ikke. Gode forklaringer, og forslag til hvad jeg kan gøre for, at det er den "close"ende films navn, der bliver værdien af "film"-variablen, efterlyses.
Jeg kan ikke lige svare på hvorfor den får den sidste films navn i stopmovie funktionen, men hvis du smed scriptet på afslutnings knappen i stedet for, så burde det virke. Vær sikker på at du ikke laver nogle clearGlobals kald i nogle af filmene og at du ikke kommer til at ændre variablen film i den nue film
Hej kanding Afslutningsknappen ligger i den film der bliver linket til, så her er det vel for sent at hente navnet på den "close"ede movie??? Nej jeg kender slet ikke den der clearGlobals, så den kan jeg med sikkerhed sige, at jeg ikke har benyttet nogle steder. Og variablen har jeg heller ikke ændret på, og havde jeg så ville det vel heller ikke virke i min arbejdsfil i Director (?).
Jeg opsummerer (også sådan lidt for min egen skyld):
Den indledende film (eller den ene af dem!) hedder: "menu-teori.dir", denne film har adskillege bitmaps billeder, som linker til diverse andre film (f.eks. "otv-teori.dir"). I "menu-teori.dir" ligger moviescriptet med "on closeMovie....", hvor de to variabler "film" og "placering" defineres, og sættes lig med denne films navn (the movieName) og den aktuelle placering i denne (the frame).
"otv-teori.dir" (og de andre lignende film som der linkes til) har en afslutningsknap til fælles. I scriptet på denne afslutningsknap benytter jeg mig af de to førnævnte variabler for at returnere til den film, man kom fra oprindelig.
Fordi flere andre film linker til samme under-film som "otv-teori.dir", kan jeg ikke i afslutningsknappens script skrive, at det er "menu-teori.dir", som der skal returneres til - for det kan lige så vel være til en af de andre film.
Jeg har afprøvet afslutningsknappen i flere af de andre film - sådan på kryds og tværs - og resultatet er det samme: Det virker på arbejdsbordet, men ikke i projektoren. Det ser ud som om, at der hvor den aktuelle films navn bliver "kopieret" (film = the movieName) virker for langsomt i projektoren, således, at når navnet "kopieres", så er projektoren allerede i gang med at åbne den nye film, og det derfor er den nye films navn, der bliver kopieret (og ikke den der er ved at blive lukket). Men hvorfor....?
OK, jeg troede at afslutnings knappen var den der gik til en anden film.
En ting jeg lige bemærkede. Du skal sætte dine globale variabler i toppen af scriptet. Så behøver du ikke at definere dem i hver handler. Prøv lige at rette det førts.
Ellers sæt istedet scriptet på de bitmaps der linker til de andre film, men husk at smide defineringen af de global variabler i toppen af scriptet.
Sådan her: global film global placering
on stopMovie film = the movieName placering = the frame end
Nu siger du jo at du afspiller movien i et window (miaw), hvilket leder mig til, at hvis du bruger "forget window" eller "on close window" bliver din "on stopmovie" aldrig kaldt.
Når jeg laver en projektor definerer jeg under "options", at filmen(e) skal afspilles i et vindue (i modsætning til fuld skærm) - er det det samme som MIAW? Uanset hvad, så bruger jeg hverken "forget window" eller "on close window". Når jeg lukker en film, gør jeg det faktisk blot ved at åbne en anden film (go to movie ...).
Nej en MIAW(Movie In A Window) er to eller flere director film der kører samtidig. Filmene kan kommunikere sammen, lidt ligesom du i director har et cast window, et stage window, et control panel window.
det du gør er bare at hoppe til den anden film, så stop movie blive kaldt. Jeg tror at det har med det jeg skrev tidligere at gøre...
Nå....hmmm. Jeg har nu forsøgt at sætte mine globale variabler i toppen af alle scripts'ene, men det gjorde desværre ingen forskel. Så for at komme videre har jeg proppet script på bitmaps'ene, som kanding har foreslået. Men om jeg begriber...det virker det ene sted men ikke det andet (i projektoren). Hvis der efterfølgende skulle være nogen derude, der har en god forklaring, så er jeg ivrig efter at høre den...
Kanding modtager point. Tak for hjælpen med at forsøge at løse mit problem - til jer alle.
Synes godt om
Ny brugerNybegynder
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.