Properties på en movie fra library kan ikke rigtigt sættes?!?!
Damn, et åndet problem!?!
Jeg har en stribe movies i mit lib. Jeg dragger dem ind i min flash-film og stikker dem hver et fornuftigt instance-navn, og jeg vil nu fra actionscript sætte nogle probs på movie-clip'ne. Bemærk, at jeg ikke gider at kode DIREKTE på movie-clips'ne....istedet vil jeg gerne have al min kode samlet 1 sted, nemlig frame 1 på et lag for sig selv.
OK, so far so good...only NOT!
Det her virker f.eks ikke som man kunne forestille sig:
Til gengæld virker det selvfølgelig hvis jeg koder direkte på den enkelte movie a la:
onClipevent(press){ this._alpha=30; }
En anden løsning der virker smooth, er først at duplikere movie-clippet med dublicatMovieClip, men der må være en anden løsning der virker mere efter mit behov.
Sorry for dette low-res begynderspørgsmål, men det sker jo for os alle ikke:-?
Du kan sagtens gøre det på den måde du gør. Men hvis du vil centralisere kode (som jeg iøvrigt selv synes er en god ide) kan du bruge en syntaks introduceret i MX (hvis du kender den så ignorer resten :)
ex:
clip.onLoad = function() { // set stuff at load }; clip.onLoad(); clip.onEnterFrame = function() { // do stuff at each frame };
barklund > jamen hvis det nu er fordi han ikke vil have kode på eller i sine movieclips (der er naturligvis en forskel på de to) er det så ikke nemmere at tjekke for initialiseringen med onLoad()?
Movieclippet er ikke defineret... så kan man hverken sætte properties eller event-handlere... For hvis man kan definere onLoad() så kan man vel også sætte _alpha...
ahaa du mener at koden ligger i frame 1 men at movieclippet først findes i f.eks frame 2? så tror jeg at jeg er med, men sådan plejer mine movies nu ikke at se ud :)
halløj alle sammen. Først og fremmest sorry for at jeg ikke har kunne tjekke ind før nu.
Mat: 1. som sagt, jeg vil IKKE have kode på mine clips. 2. movieclippet er ikke defineret? -den må du liiiige forklare. Som sagt har jeg lavet movieclips, og derefter smidt dem ind i min scene, så klart de er defineret. De op træder også som objekter/variabler når jeg kigge i debuggeren. Også svar til FlashDevil der siger at de ikke "eksistere".
Barklund: Det lyder interessant det du skriver med rækkefølgen af initialiseringen og du læner dig op af de points jeg har udlovet. Jeg skal lige tjekke det nærmere før jeg lukker spørgsmålet.
mcskelle > ehem, den metode jeg nævner er skam ikke noget der skal placeres på clippet, det er timeline script med en clip reference til instancenavnet. Jeg tror det barklund mener er at hvis du laver en reference til dit moviclips properties i frame 1, men clippet slet ikke findes i den frame er det jo klart at flash ikke kan finde en property at sætte. Men så langt havde jeg bare ikke tænkt din problemstilling.
Jeg kan lide centralisering af kode i den forstand at det er rart ikke at have den flydende på symboler, til gengæld mener jeg at den skal stå som framescript i den frame hvor det er relevant :)
ups...jeg fik vist byttet lidt om på navnene. Faktisk var det næsten kun barklund jeg burde have skrevet til. Ihverfald det med kode på/i clippet.
Well....Jeg er kørende MX-style nu, og det er da meget nice.
Det er da rart med nogle lidt mere normale (læs: udbredte) metoder til at kode med. Eventhandlers er en af disse, som jeg elsker fra C og andet!
Nu burde macromediadrengene bare lue ud i gamle stenede metoder og funktionaliteter der er arvegods fra tidligere versioner! De fylder bare for meget i API'et og i hjælpen og i eksemplerne osv!
Movieclippet er ikke defineret, når du kører dit frame-script. Ja, movieclippet er på scenen, men dit frame-script kører INDEN din scene initialiseres.
Og læg et movieclip, der hedder mitClip... Så vil du se, at når frame-scriptet kører, så kan de tænkes, af movieclippet ikke er initialiseres så dets instance-navn er endnu ukendt...
Vi prøver lige HELT forfra, da jeg er ved at blive sindsyg over ikke at kunne gennemskue hvad fanden der foregår. Det er klart noget med rækkefølgen af initialiseringen af framescripts og mc's.
Nyt senarie:
Min scene indeholder et movieclip på frame 1 kaldet mc (på et separat lag) OG Et framescript på frame 1.
Nu vil jeg gerne have mc'en til at blive usynlig idet min film starter. I framescriptet virker dette ikke som man skulle forestille sig:
mc.onLoad function(){ this._alpha = 0; }
(Når denne film køres, er mc'en såmen....synlig!?!)
Kan nogen sige mig hvordan jeg nemmest kan komme fra det senarie jeg her illustrere til et functionelt senarie?
TAK PÅ FORHÅND!
PS: stik mig en mail, hvis jeg skal sende jer testsenariet som *.fla
Det skal MovieClip.onLoad() ihvertfald, det undrede osse mig i sin tid.
Men i princippet er det vel heller ikke helt ved siden af det de skriver i api´en, du definerer en funktion til onLoad() metoden, derefter inwoke´er du den, eller hur?
nå nu forstår jeg hvad du mener. Jeg troede det var en del af syntaxen for onLoad - eventen.
Det du skriver virker helt udknaldet men jeg vil da prøve. Som jeg forstår dig, så sætter vi først en eventhandler op der skal reagere når filmen ER loaded.
Det ligner dog en meget klassisk klassesyntax fra c++, hvor du først definerer en klasse, for så bagefter at lave dig 1 instance af klassen.
I flash-verdenen kan det være det skal forstås som: Du laver en eventhandler function - altså en ren beskrivelse af hvad der skal foregå, for så bagefter at lave en 'event-instance' som mc'en kan kalde.
Hvis flash er så objektorienteret, så er det da bare fedt!
Jeg er ikke helt sikker på hvad du mener jeg skriver, men ovenstående er rent gætværk fra min side.
mvh mat
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.