04. februar 2004 - 21:08Der er
22 kommentarer og 1 løsning
celler i flash oprettet af loadede variabler
Hej alle sammen! Jeg laver et reservations modul til en restaurent.... En database og et asp script manipulerer min data lidt frem og tilbage og sender til sidst 3 variabler til flash... 1. variabel(åbningstid) denne variabel er et tal feks. '8' hvis åbningstiden er kl 8:00. 2. variabel(åbne timer) igen et tal feks. 5 timer. 3. variabel(ledige pladser pr. time) er egentlig en array der beskriver hvor mange ledige pladser der er pr. time feks. 1. timer 2 ledige 2. time 4 ledige og 3. time 5 ledig ville blive: array(2,4,5) nu mit spørgsmål: kan jeg får flash til først at tage variabel 2 og sige vi har åben 5 timer så laver jeg 5 celler oven på hinanden(en kolonne). derefter tage variabel 1 og sige vi åbner kl 8 så til venstre for den første celle skriver jeg(flash)"Kl. 8-9" den næste "Kl. 9-10" osv. og til sidst tage arrayen og sige i celle 1 skal stå "2 ledige pladser" i celle 2 "4 ledige pladser" osv. Jeg er rimelig sikker på det er mit sværeste spørgsmål til dato, så den giver jeg næsten top point, der skal jo også være til i morgen.. på forhånd tak
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
ja det er lige det jeg mangler, kan ikke rigtigt få hul på det, har ASP og Basen griflet ned i den store notepad i hovedet det er ikke noget problem, men ville gerne gøre det lidt sjovere med flash
Dette script kræver at du lavet et movieclip (cellen) der indeholder grafik og et tekstfelt hvor antal ledige pladser skal stå i... dette tekstfelt skal så have navnet "antal", og et tekstfelt hvor klokkeslet skal stå - med navnet "klokke". MC'et skal så eksporteres til Actionscriptet - i library'et højreklik på det og vælg "linkage" - her angiver du "export for actionscript" og skriver i boksen: celle Desuden skal du lave dit array (var nr 3) om til en streng (aner ikke hvad den funktion hedder i ASP) så den fx kommer til at hedde: pladser = "2#4#5";
Denne kode i et movieclip:
skemaVars = new LoadVars(); skemaVars.onLoad = function(success){ if(success){ tegnCeller(this.startTid, this.abneTimer, this.pladser); }else trace("Det bare noget lort!"); } function tegnCeller (startTid, abneTimer, pladser){ pladsArr = pladser.split("#"); for(i = 0; i < int(abneTider); i++){ this.attachMovie("celle", "celle"+i, i+1); this["celle"+i]._y = this["celle"+i]._height*i; this["celle"+i].klokke.text = "kl. "+startTid+"-"+(startTid+1); this["celle"+i].antal = pladsArr[i]; } }
ok jeg er hæftet lidt af, det er ikke helt sort men lidt...må sige det er skarpt script jeg får asp´en til at lave det her dokument:
startTid=x&abneTimer=y&pladser="2#4#5";
ik noget problem...
men hvad skal jeg lave i flashen--bare et MC der hedder "celle" og inden i det et tekstfelt der hedder antal og et tekstfelt der hedder klokke(selvsagt dynamiske) hvor skal jeg placere disse? jeg kan se du bruger ._y klarer det placeringen af cellerne?
jep - sæt denne kode ind i 1. frame i et mc - i dette kommer dine celler til at ligge - og så kan du flytte rundt på dette... I din "celle" laver du bare noget grafik sådan som din celle skal se ud (hvis du er kedelig laver du bare en firkant) og i midten af cellen laver du tekstfeltet "antal" og i venstre side tekstfeltet "klokke". Navnene på disse tekstfelter skal være instance navne og ikke variabler... og jo de skal selvf. være dynamiske...
Mit script klarer også at stable cellerne... ellers var det jo ikke godt nok udfra det du krævede :)
nej jeg gider ikke være kedelig så havde jeg bare ladet ASP lave nogle grimme celler, for fedt et script, tror lige jeg skal kigge det igennem et par gange inden det helt falder på plads..men er i gang med demoen. ville du lige skrive et svar(ikke en kommentar) så får du pointene, du har fortjent dem..du har sparet mig ca. 100 timer udover de 50 jeg har brugt i dag.
det er en funktion du altid kan kalde... den henter variablene ind og når dette sker - oprettes cellerne. Du kan kalde den allesteder fra - på en knap eller bare under alt det andet script jeg har vist - så vises cellerne med det samme...
nu har jeg kogt det helt ned ..til at starte med..
skemaVars = new LoadVars(); skemaVars.onLoad = function(success){ if(success){ tegnCeller(this.startTid, this.abneTimer, this.pladser); }else trace("Det bare noget lort!"); } function tegnCeller (startTid, abneTimer, pladser){ pladsArr = pladser.split("#"); for(i = 0; i < int(abneTider); i++){ this.attachMovie("celle", "celle"+i, i+1); this["celle"+i]._y = this["celle"+i]._height*i; this["celle"+i].klokke.text = "kl. "+startTid+"-"+(startTid+1); this["celle"+i].antal = pladsArr[i]; } skemaVars.load("data.txt"); stop();
}
er placeret i første frame på et unavngivet mc der er placeret i første fram af main timeline, i mit libary har jeg valgt linkage--actionscript, jeg får ingen fejlmeddelse men der sker intet..
det her er under mit debug "list variables" Level #0: Variable _level0.$version = "WIN 6,0,21,0" Movie Clip: Target="_level0.celle" Variable _level0.celle.tegnCeller = [function 'tegnCeller'] Variable _level0.celle.skemaVars = [object #2, class 'LoadVars'] { onLoad:[function 'onLoad'] }
og dette under min objects i debug: Level #0: Frame=1 Movie Clip: Frame=1 Target="_level0.celle"
hmm jeg kan ikke gennemskue hvad der kokser, har oprettet et data.txt der ligger i samme biblotek som .swf
ja det var en fejl, men kun på eksperten, i flashen var den som ovenover...(dårlig/go vane fra C++)hmm der sker bare ikke rigtig noget som helst.?? det er næsten værre end en fejlmeddelse..
hmm der var en stavefejl, du havde brugt abneTimer til at definere variablen men havde brugt abneTider i løkken, det er jo hvad det er... problemet er nu kun at når jeg kører scriptet vises der i klokke feltet kun feks. 4 den opdaterer ikke så klokke stiger med en for hver ny celle, så skulle den jo skrive streg "-" og derefter en time senere +1 men i stedet skriver den, hvis tallet var 4, bare 41 den opfatter variablerne som tekststrenge, tror måske også det er derfor der overhovedet ikke står noget i antal det er lidt flere problemer end jeg lige selv kan klare.... håber du lige gider tjekke den det er jo ikke alverdens grafik der skal laves for at tjekke den.
jo kan godt se at jeg ikke var i mit skarpeste hjørne den aften.... det ene problem er det som du selv fandt - det andet er som mat prøver at forklare: forskellen på tekst og tal... jeg var ikke helt effektiv nok der.
Her er noget der virker:
skemaVars = new LoadVars(); skemaVars.onLoad = function(success) { if (success) { trace("super"); tegnCeller(this.startTid, this.abneTimer, this.pladser); } else { trace("Det bare noget lort!"); } }; function tegnCeller(startTid, abneTimer, pladser) { pladsArr = pladser.split("#"); trace(pladsArr); for (i=0; i<int(abneTimer); i++) { this.attachMovie("celle", "celle"+i, i+1); this["celle"+i]._y = this["celle"+i]._height*i; this["celle"+i].klokke.text = "kl. "+startTid+"-"+(parseInt(startTid)+1); this["celle"+i].antal.text = pladsArr[i]; } } skemaVars.load("script.txt");
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.