PDA

Volledige versie bekijken : movieclip dupliceren in een andere mc


aelus
%Europe/Berlin %568 %2005, 14:37
Hoi flashers

Is het mogelijk een movieclip te dupliceren in een andere mc? Zo ja, hoe doe ik dat dan?

Alvast bedankt,

Aelus

Dauntless
%Europe/Berlin %569 %2005, 14:40
Ik denk niet of het met duplicateMovieclip gaat, maar attachMovie werkt zeker:
mijnMc.attachMovie("linkagenaam", "nieuwe naam", diepte);

Roenes
%Europe/Berlin %574 %2005, 14:47
Met duplicateMovieClip gaat dat zoiezo niet omdat je geen path kan aangeven waar je nieuwe mc moet komen. Deze komt volgens mij standaard op dezelfde tijdslijn als die mc die je dupliceert.

Dus je zult hiervoor zeker attachMovie moeten gebruiken :)

kH_
%Europe/Berlin %586 %2005, 15:04
Uhm, ik interpreteer deze vraag een beetje vreemd. Wil je nu een bestaande MC dupliceren NAAR een andere MC, dus dat je bijvoorbeeld het volgende krijgt:

MC a,b

Dupliceer a naar b, zodat a.b is geldig en b een child MC is geworden van a

Bedoel je dat? Dat principe wordt namelijk door attachMovie() gebruikt.
Met duplicateMovieClip() kan dit niet, aangezien je hierbij gewoon een kopie maakt van een bestaande MC. Je kunt bijvoorbeeld niet dit zeggen (aannemende, dat a en b beide MC's zijn op je stage):

a.duplicateMovieClip("b.a",1);

Dus het moet gewoon met attachMovie(). Het nadeel hiervan is dat de MC die je wilt koppelen aan een andere MC dus niet zomaar een 'gegenereerde' MC kan zijn (via bijvoorbeeld createEmptyMovieClip()), aangezien de MC die je ergens aan wilt koppelen een Linkage ID moet hebben en die stel je in bij je Library (rechter muisknop op de MC die je aan een andere MC wilt koppelen, kies Linkage, vink 'Export for ActionScript' aan en type als identifier jouw gewenste naam. Dit is gewoon een variabele naam, zoals je er later in ActionScript naar kunt refereren.)

Een voorbeeld. Stel je hebt een MC op je stage met de naam 'a'. Tevens heb je in je Library een andere MC met een willekeurige naam (die naam van de MC boeit niet, is puur aanduidend voor de Flash omgeving, niet in ActionScript). Nu wil je die MC in je Library koppelen aan je MC 'a' op de stage. Geef hiervoor de MC in je Library de Linkage ID 'test' (je kunt natuurlijk elke willekeurige naam kiezen, als die nog niet bestaat iig).

Ok, nu de code daarvoor:

a.attachMovie("test","testje",1);

En nu kun je bijvoorbeeld zeggen:

a.testje._x=50;

Ik denk dat je nu wel genoeg weet.

aelus
%Europe/Berlin %607 %2005, 15:34
Ik zal even uitleggen wat ik bedoel.

Op de stage heb ik een mc, genaamd image1. Op dezelfde stage, maar op een andere plaats heb ik een andere mc en die heet area2. Wat ik dan graag zou willen is dat de movieclip "image1" gedupliceerd zou worden naar area2 door middel van AS.

Tot nu is dat mij nog niet gelukt. :(

Dauntless
%Europe/Berlin %608 %2005, 15:36
naar area2 door middel van AS.
Met naar, bedoel je dan 'in area2' of 'op dezelfde plaats als area2' ?

aelus
%Europe/Berlin %610 %2005, 15:39
Met naar, bedoel je dan 'in area2' of 'op dezelfde plaats als area2' ?

Het zit zo, area 2 is leeg. De mc "image1" zou dan op dezelfde plaats als area2 komen, maar omdat area 2 leeg komt 'naar' of 'op dezelfde plaats' op hetzelfde neer.

Dauntless
%Europe/Berlin %612 %2005, 15:41
Het zit zo, area 2 is leeg. De mc "image1" zou dan op dezelfde plaats als area2 komen, maar omdat area 2 leeg komt 'naar' of 'op dezelfde plaats' op hetzelfde neer.
Nee toch niet... 'op dezelfde plaats' -> dan staan ze op dezelfde level met dezelfde x en y coordinaten
'naar'-> mc1 zit in area 2 en de boomstructuur is dus anders. Ook de x en y zullen anders zijn.

Roenes
%Europe/Berlin %614 %2005, 15:44
Dus het moet gewoon met attachMovie(). Het nadeel hiervan is dat de MC die je wilt koppelen aan een andere MC dus niet zomaar een 'gegenereerde' MC kan zijn (via bijvoorbeeld createEmptyMovieClip())Ehmz, even een opmerking. AttachMovie kun je wel degelijk toepassen op een mc die je maakt met createEmptyMovieClip hoor:

var mc = this.createEmptyMovieClip("ik", 1);
mc.attachMovie("linkageID", "nieuw", 2);

Ook kun je createEmptyMovieClip gebruiken in een mc die je geattached hebt:

var mc = this.attachMovie("linkageID", "nieuw", 1);
var nieuweMC = mc.createEmptyMovieClip("testje", 2);
trace(nieuweMC); // output bv _level0.nieuw.testje

Ik weet niet precies welke van de 2 je bedoelde maar beide is mogelijk :)

aelus
%Europe/Berlin %620 %2005, 15:52
Nee toch niet... 'op dezelfde plaats' -> dan staan ze op dezelfde level met dezelfde x en y coordinaten
'naar'-> mc1 zit in area 2 en de boomstructuur is dus anders. Ook de x en y zullen anders zijn.

Je hebt gelijk, ik bedoel naar area 2

Dauntless
%Europe/Berlin %625 %2005, 16:01
Dat is niet mogelijk met duplicateMovieClip. Je zal attachMovie() moeten gebruiken.

theFlashWizard
%Europe/Berlin %629 %2005, 16:06
attach:
http://www.actionscripts.org/tutorials/beginner/attachMovie/index.shtml

TheDutch
%Europe/Berlin %773 %2005, 19:34
Ehmz, even een opmerking. AttachMovie kun je wel degelijk toepassen op een mc die je maakt met createEmptyMovieClip hoor:

var mc = this.createEmptyMovieClip("ik", 1);
mc.attachMovie("linkageID", "nieuw", 2);

Hij bedoelde waarschijnlijk dat je met attachMovie() niet een MovieClip gemaakt met createEmptyMovieClip() kunt dupliceren ;).

TheDutch
%Europe/Berlin %775 %2005, 19:36
attach:
http://www.actionscripts.org/tutorials/beginner/attachMovie/index.shtml
Volgensmij ben jij de internationale Flash Encyclopedie ;).

aelus
%Europe/Berlin %850 %2005, 21:24
Het werkt! Bedankt allemaal!

kH_
%Europe/Berlin %855 %2005, 21:31
Ehmz, even een opmerking. AttachMovie kun je wel degelijk toepassen op een mc die je maakt met createEmptyMovieClip hoor:

var mc = this.createEmptyMovieClip("ik", 1);
mc.attachMovie("linkageID", "nieuw", 2);

Ook kun je createEmptyMovieClip gebruiken in een mc die je geattached hebt:

var mc = this.attachMovie("linkageID", "nieuw", 1);
var nieuweMC = mc.createEmptyMovieClip("testje", 2);
trace(nieuweMC); // output bv _level0.nieuw.testje

Ik weet niet precies welke van de 2 je bedoelde maar beide is mogelijk :)

Dat bedoelde ik niet ;)
Ik bedoelde dat je bijvoorbeeld niet dit kunt doen (door jouw voorbeeld even aan te passen):

Stel je hebt een MC op je stage staan onder de naam 'pino'. Dit mag dan niet:

var mc = this.createEmptyMovieClip("ik", 1);
pino.attachMovie("id_van_mc_die_dus_niet_bestaat", "nieuw", 2);


Ik heb het een beetje dom gezegd misschien, maar ik bedoelde dus het omgedraaide van wat jij bedoelt :)

arnoo
%Europe/Berlin %777 %2007, 18:39
Ik heb het een beetje dom gezegd misschien, maar ik bedoelde dus het omgedraaide van wat jij bedoelt :)[/QUOTE]

is er een manier om daar om heen te kunnen?

BernardV
%Europe/Berlin %803 %2007, 19:16
@Arnoo begin even een nieuw topic met je vraag en haal niet een topic van meer dan 1 jaar geleden omhoog...