Avatar billede marrix Juniormester
02. juni 2004 - 13:52 Der er 23 kommentarer og
1 løsning

En flytbar grafik

Hej eksperter

Jeg har en lille stump helt almindelig grafik. Jeg vil gerne have, at brugeren kan trække en kopi af min grafik ud, og placere et andet sted på scenen. Hvordan gør fikser jeg det? Og hvor? Er temmelig grøn udi det Flash'ske... ;)

Marianne
Avatar billede al_dair Nybegynder
02. juni 2004 - 13:55 #1
Placere disse på grafikken ..

StartDrag();
StopDrag();
Avatar billede al_dair Nybegynder
02. juni 2004 - 13:57 #2
eks:

on(press) {
    startDrag(this,true);
}
on(release) {
    stopDrag();
}
Avatar billede al_dair Nybegynder
02. juni 2004 - 14:02 #3
Hvis det skal kopieres, får du nok brug for at duplikere grafikken ..


on (press) {
_root.i++;
nymc = _root.gammelmc.duplicateMovieClip("gammelmc" + _root.i, _root.i);
nymc.startDrag();
_root.bringToFront(this);
}
on(Release)
{
stopDrag();
}
Avatar billede marrix Juniormester
02. juni 2004 - 14:35 #4
Hej al dair

...på hvad skal jeg lægge scriptet? I et frame? På selve grafikken på scenen eller måske på symbolet (grafik) som danner basis for grafikken?

Venligst
Marianne
Avatar billede mat Nybegynder
02. juni 2004 - 14:35 #5
For det første kan du ikke scripte på grafik symboler i flash, du er nødt til at lave det til et movieclip først.

Tjek denne tråd: http://www.eksperten.dk/spm/496728 - den omhandler noget lignende (Kommentar: mat 06/05-2004 22:56:01)

al_dair > Der er da ikke en funktion i actionscript, der hedder bringToFront()? Tænker du ikke på swapDepths()?

mvh mat
Avatar billede marrix Juniormester
02. juni 2004 - 14:47 #6
Hej mat

Har nu ændret grafikkens properties, så det fremstår som et movieclip. Har efterfølgende prøvet at koble scriptet på movieclip'et. Men uanset om jeg prøver på selve symbolet - eller dets instance (er det ikke det "kopien" på scenen hedder?), så kan jeg i action-panelet læse "current selection cannot have actions applied to it". Hvor skal jeg placere scriptet - i en frame? Men så skal scriptet vel ligge i alle frames - for at funktionen bevares når filmen ruller?!? Eller hvad?!?

Venligst
Marianne
Avatar billede al_dair Nybegynder
02. juni 2004 - 14:49 #7
Scriptet placere du på dit movieclip, som skal hedde : gammelmc (instancenavn)
Avatar billede al_dair Nybegynder
02. juni 2004 - 14:56 #8
*  Markere din grafiksymbol--> Tryk F8 --> Movieclip
**  Placere (træk) en kopi af symbolet på main vinduet ..
**  Giv den instancenavnet  "gammelmc", og smid scriptet på den ..
Avatar billede mat Nybegynder
02. juni 2004 - 15:05 #9
Hej Marianne

Det script jeg linker til skal ligge i den frame hvor dit movieclip instance ligger (jo "kopier" fra biblioteket hedder instances). Og du skal i (med movieclippet på scenen markeret) properties-panelet give det instancenavnet "clip1" (uden "").

Scriptet vil påvirke dit instance sålænge dette findes på tidslinien, så du kan bare lave frames med instancet ligeså langt ud af tisdslinien som du vil.

mvh mat
Avatar billede mat Nybegynder
02. juni 2004 - 15:07 #10
tisdslinien...tislinien...tidslinien even! *host*
Avatar billede marrix Juniormester
02. juni 2004 - 15:27 #12
...okay - nu begynder det at give mening.

Men når jeg tester filmen "Test movie", får jeg følgende besked i Output: ...Mouse events are permitted only for button instances
    on (press)....

...kan godt forstå hvad der menes, men hvad gør jeg forkert...?!?

Venligst
Marianne
Avatar billede mobius6 Juniormester
02. juni 2004 - 15:32 #13
du har smidt din kode i en FRAME og ikke på en knap
"Mouse events are permitted only for button instances"
Avatar billede al_dair Nybegynder
02. juni 2004 - 15:54 #14
Hej ..Marianne

Hvis du vil bruge mat's eksempel, skal koden placeres i frame
min er derimod på selve movieclippet ..
Avatar billede marrix Juniormester
03. juni 2004 - 08:13 #15
Sese...nu virker det :)

Men som det ser ud nu, reagerer kopierne - som jeg har trukket ud fra den originale grafik (movieclip) - ved onRollOver og onRelease. Ved onRelease (på en af kopierne) bliver der trukket endnu en kopi ud af originalen. Hvordan får jeg "nulstillet" kopierne, så actionscriptet ikke følger med på kopierne?

Venligst
Marianne
Avatar billede marrix Juniormester
03. juni 2004 - 08:19 #16
...og kunne man i øvrigt bede om en bette forklaring af, hvad det egentlig er der sker i scriptet? Hvad er _root.i++ og root.i? Og hvad står "mc" for?

Please :)

Marianne
Avatar billede marrix Juniormester
03. juni 2004 - 08:25 #17
Rettelse: Når jeg i kommentaren ovenfor skriver at der "ved onRelease bliver trukket endnu kopi ud" mener jeg selvfølgelig "ved onPress". :o)

Marianne
Avatar billede marrix Juniormester
03. juni 2004 - 09:39 #18
...det slår mig lige, at "mc" vel står for "movieclip" - eller hvad?!? ;)

Marianne
Avatar billede al_dair Nybegynder
03. juni 2004 - 10:30 #19
Sorry.. Pga. sløvhed er "movieclip" blevet til MC ..

_root.i: (initialiseres)
en variabel, hvis værdi forøges med 1, hvergang der trækkes en kopi.

_root.i++
Her lægges der 1 til ..

Variablen "_root.i" får vi brug for her:
duplicateMovieClip("gammelmc" + _root.i, _root.i)

fordi functionen duplicateMovieClip() kopiere movieclipet, og smider det i niveau (level) "i" .. Altså første kopi lægges på niveau 1, den næste på 2, næste på 3, osv..


Kig her:
http://said.users.whitehat.dk/drag_and_drop.fla
Avatar billede marrix Juniormester
06. juni 2004 - 20:15 #20
...okay. Tusind tak for uddybelsen - det giver mere mening nu.

Men hvordan får jeg "nulstillet" kopierne, så actionscriptet ikke følger med på kopierne (jf. ovenståede af 03/06-2004 08:13:11)?

Venligst
Marianne
Avatar billede al_dair Nybegynder
07. juni 2004 - 12:24 #21
Jamen .. Kopierne får slet ikke noget action events på sig. Du kan ikke klikke på dem, når du først har givet slip på dem.

Tjek evt. mit eksempel.
Avatar billede marrix Juniormester
08. juni 2004 - 15:42 #22
...si. Du har vist lidt mere i din kode:

nymc.onMouseUp = function() {
        stopDrag();
        nymc.enabled=false;

...er det, det der gør forskellen? Ihvertfald ser det ud til at virke nu - tak :)

Også tusind tak for hjælpen til jer alle. Points'ene går til al dair (håber det er ok med jer andre).

>>al dair ... vi du erlægge en smule officielt svar til mig, så jeg kan overdynge dig med 100 sommerpoints? ;)

Venligst
Marianne
Avatar billede al_dair Nybegynder
08. juni 2004 - 23:07 #23
Merci, madame :)

Jeg tror at du manglede ham her:
nymc.enabled=false;  (deaktivere kopien)

Takker..
Husk noget Karma, plz
Avatar billede marrix Juniormester
09. juni 2004 - 05:57 #24
...okay - er gjort ;)
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

IT-JOB

Kræftens Bekæmpelse

IT-driftsleder

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger en IT-supporterelev til Lokal IT på Flyvestation Karup

Rambøll Management Consulting

Senior AI Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

SAP-medarbejder til Roller & Autorisationer i Forsvarets Cyberdivision