Avatar billede fab Nybegynder
20. december 2005 - 01:44 Der er 15 kommentarer og
1 løsning

Skifte mange instances på een gang

Hej med jer,

Jeg sidder og har lavet et fint movieclip (ACTION1) med en fin tween henover omkring 1000 frames. Der er super duper mange keyframes, og nu vil jeg gerne kopiere mit fine movieclip til ACTION2 og derefter skifte et af movieclipsne ud derinde (så det er FIGUR2 der optræder istedet for FIGUR1).

Jeg kender godt "swap" funktionen, men den tager kun én instance ad gangen. Jeg vil sådan set gerne swappe alle instances på en timeline i et movieclip ud med et andet.

Kan det lade sig gøre? Hvis da, hvorledes?

Det vil være fint hvis det er uden actionscript...

Venligst,
FAB
Avatar billede barklund Nybegynder
20. december 2005 - 11:22 #1
Det kan du tro - jsfl findes til det samme.

(følgende kræver Flash MX 2004 eller Flash 8)

Først skal du oprette en ny fil - en Flash JavaScript-fil (som det hedder i "ny fil" menuen).

I denne indsætter du:

var d = fl.getDocumentDOM();
var t = d.getTimeline();
var l = t.currentLayer;
for (var i = 0; i < t.layers[l].frames.length; i++) {
    if (t.layers[l].frames[i].startFrame == i && t.layers[l].frames[i].elements.length == 1 && t.layers[l].frames[i].elements[0].elementType == "instance") {
        t.currentFrame = i;
        t.layers[l].frames[i].elements[0].selected = true;
        d.swapElement("Element 2");
        t.layers[l].frames[i].elements[0].selected = false;
    }
}

(erstat "Element 2" med navnet på det andet symbol)

Dette script gemmer du så som et JSFL-script i en sti omkring:

c:\Documents and Settings\{username}\Local Settings\Application Data\Macromedia\Flash 8\en\Configuration\Commands\Swap Element.jsfl (til Flash 8)

Derefter markerer du laget i tidslinjen, så kan du gå op i Commands-menuen, og her skulle der gerne på magisk være et "Swap element"-menupunkt (som er den fil, du lige har lavet). Kør denne og voila :)

JSFL er for sejt - det kan alt :)

--
Morten Barklund
Avatar billede barklund Nybegynder
20. december 2005 - 11:24 #2
Det er måske lidt mere overskueligt som:

var d = fl.getDocumentDOM();
var t = d.getTimeline();
var l = t.currentLayer;
var f, e;
for (var i = 0; i < t.layers[l].frames.length; i++) {
    f = t.layers[l].frames[i];
    e = f.elements;
    if (f.startFrame == i && e.length == 1 && e[0].elementType == "instance") {
        t.currentFrame = i;
        e[0].selected = true;
        d.swapElement("Element 1");
        e[0].selected = false;
    }
}

Og hvis du vil have det forklaret så sig til - men det er nu ganske ligetil og JSFL-manualen er meget udførlig :)

--
Morten Barklund
Avatar billede maqhem Nybegynder
20. december 2005 - 12:59 #3
Om ikke andet ville jeg faktisk gerne høre hvad det er :)

Kender slet ikke Flash JavaScript, hvad gør det helt præcist?
Avatar billede barklund Nybegynder
20. december 2005 - 13:10 #4
Alt hvad du kan gøre i Flash, kan du scripte! Frames, layers, symboler i library - alt! Det er superfedt. Jeg har lavet scripts, der oprette hundredevis af movieclips ud fra nogle timelines, hvor grafikerne sætter grafik ind til nogle animationer - som jeg derefter med et script på få sekunder klipper i stykker til præcis det formål, jeg ønsker.

Kig i Flash 8 manualen under Extending - det er et meget omfattende sprog. Man kan lave sine egne små scripts til at gøre ting, sine egne tools til at tegne hvad som helst med, samt sine egne paneler.

:)

--
Morten Barklund
Avatar billede maqhem Nybegynder
20. december 2005 - 13:18 #5
Kan man lave sine egne paneler?!??! Woo, sejt nok!

Der er så lige den lille ting, at jeg kun har version 7, så har ikke version 8-manualen :(
Avatar billede barklund Nybegynder
20. december 2005 - 13:22 #6
7'eren kan det samme (hvis det er pro) på næsten alle punkter. Sproget er dog udvidet en del i 8'eren, men du kan også lave paneler med videre til 7. Manualen er bare ikke så omfattende i 7'eren, men noget er der selvfølgelig.

F8-manualen er her:

http://livedocs.macromedia.com/flash/8/main/Part7_Extending.html

:)

--
Morten Barklund
Avatar billede barklund Nybegynder
20. december 2005 - 13:23 #7
Her er eksemplerne på paneler, tools og scripts:

http://livedocs.macromedia.com/flash/8/main/00004344.html
Avatar billede maqhem Nybegynder
20. december 2005 - 13:43 #8
Det fatter jeg ikke noget af :(

Det lyder altså ikke yderligere simpelt. Man kan ikke kode AS2 i det (heller ikke AS), for det prøvede jeg, men jeg tror ikke helt, jeg ved hvad man skal bruge det til...

Kan du give et eksempel, på noget, som ville være utrolig meget nemmere med dit nye JavaScript Flash-ting, end i Flash?
Avatar billede maqhem Nybegynder
20. december 2005 - 13:43 #9
(set bort fra eksemplet ovenover)
Avatar billede barklund Nybegynder
20. december 2005 - 13:57 #10
* Du har lavet en hel masse symboler i dit library, der er movieclips med en klasse tilføjet, du skal have ændret klassestien, da du har flyttet din klasser til en ny pakkestruktur.

* Du kan løbe almindelige filer på computeren igennem. For eksempel er jeg begyndt på et script, der løber alle .as-filer igennem og tilføjer ASDoc-syntaks rundt om alle metoder med mere i mine klasser.

* Du kan tilgå tidslinjen og flytte frames, indhold, kopiere hvad som helst, tilføje tint til alt, lave alle symboler til movieclips, ...

Nej, det er ikke ActionScript - det er JavaScript og kun omkring JS1.2 (og har altså ikke fasttypning). Det er et andet sprog, nogle andre objekter (der er for eksempel ikke noget MovieClip objekt, men der er selvfølgelig string, number, array, ...), og nogle helt andre funktioner - men det skal jo også bruges til noget helt andet.

Det er primært til kedelige gentagelsesopgaver eller til mere komplicerede ting - eller ting, der skal være helt ens hver gang og gentages ofte. Jeg har også et lille script til at opdatere min FLP-fil, så mit Flash Project altid er up-to-date med alle klassefiler i mapperne.

Hvis du ikke ser behovet for det og kun laver mindre ting, du ikke finder tidskrævende og irriterende, så er JSFL ligemeget. Men bruger du Flash fuld tid og professionelt, så bliver JSFL hurtigt en gevinst. :)

--
Morten Barklund
Avatar billede maqhem Nybegynder
20. december 2005 - 16:33 #11
Kan du lave en kode, der laver et nyt tool som jeg så kan kigge lidt på, da jeg ikke kan få din kode til ham til at du?
Avatar billede barklund Nybegynder
20. december 2005 - 21:35 #12
Hm, et bud på et tool er eksemplet i manualen til 8'eren - et polystar-tool:

http://livedocs.macromedia.com/flash/8/main/00004347.html

Jeg har ikke selv lavet noget tool - jeg er jo ikke grafiker, så jeg har ikke brug for det :)

--
Morten Barklund
Avatar billede fab Nybegynder
20. december 2005 - 23:24 #13
Barklund, det er super duper!

Det er meget pædagogisk forklaret, så selv en designer kan finde rundt i det, og du introducerer også en helt ny verden af muligheder. Det er smukt, du må ha' fler point !

FAB
Avatar billede fab Nybegynder
20. december 2005 - 23:25 #14
Smid et svar så jeg kan forgylde dig med hele 30 points !

/FAB
Avatar billede barklund Nybegynder
21. december 2005 - 10:29 #15
Mjæs :)
Avatar billede barklund Nybegynder
15. marts 2006 - 16:04 #16
Tak for points :)
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