Archief - Flash: Dynamisch MovieClip aanmaken

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

verdeye

Legacy Member
Hoi,

Mijn doelstelling:

Naar gelang ik een counter ingeef zouden er movieclips moeten aangemaakt worden met daarin een textfield, elke movieclip moet een unieke identiefier krijgen zodanig dat deze een onRelease heeft waardoor er gegevens worden doorgestuurd, nu heb ik het volgende al geschreven maar blijkt totaal niet te doen wat ik wil ... heb me er al rot achter gezocht,
als iemand hiervoor een oplossing zou vinden, gracias

PHP:
archief_mc.archief_txt.text = "Dit is archief nummer 0";
var counter=0; // wordt later nog uit variable gehaald
while(counter<2) {
	duplicateMovieClip("archief_mc","archief_mc"+counter,counter);
	_root.content_home_mc["archief_mc" + counter]._y += counter*20;
	_root.content_home_mc["archief_mc" + counter].archief_txt.text = "Dit is archief nummer "+counter;
	_root.content_home_mc["archief_mc" + counter].onRelease = function (){
		pagina = "nieuws.php?id="+counter;
		gegevens_lv.load(pagina);
	}
	counter++;
}

Annun

Legacy Member
Wat doet het dan fout? Ik weet het niet zeker, maar volgens mij zit er een foutje in uw paths die ge gebruikt om die movieclips te verplaatsen en zo. Roept ge uw duplicateMovieClip wel aan vanuit die content_home_MC?

verdeye

Legacy Member
hij geeft alleen "dit is archief nummer 1" weer .. zelfs de bron niet waarvan gedupliceerd wordt.
ook wordt het id op 2 gezet ...

jep en het staat in men content_home_mc in men action layer...

:(

verdeye

Legacy Member
'k heb iets gevonden ...
zo
PHP:
_root.content_home_mc.archief_mc1.archief_txt.text = "Dit is archief nummer 0";
var counter=0;
while(counter<4) {
	duplicateMovieClip("archief_mc1","archief_mc"+counter,counter);
	_root.content_home_mc["archief_mc" + counter]._y += counter*20;
	_root.content_home_mc["archief_mc" + counter].archief_txt.text = "Dit is archief nummer "+counter;
	_root.content_home_mc["archief_mc" + counter].onRelease = function (){
		pagina = "nieuws.php?id="+counter;
		gegevens_lv.load(pagina);
	}
	counter++;
}
maakt hij ze aan zoals ik wil .. MAAR nu zet hij altijd het id in die link op het hoogste getal :s en bij alle movieclips hetzelfde.... dus als ik tot <3 ga dan zet hij alles op id=4 ... reason ? dunno

Bigbuddha

Legacy Member
waarschijnlijk omdat je je onrelease function in deze while maakt. Waarom maak je die functie niet in de archief_mc? Je kan daar je id achterhalen door het het getal achter de _name te zoeken. Of je geeft je id hier in while mee naar je mc.

Met andere woorden, haal die onRelease hieruit en maak ze in archief_mc1 passeer dan wel je id via deze while. Of zoals ik zei kan je ze in de onRelease ook zoeken door het getal achter de mc._name te zoeken.

Tip: probeer zo weinig mogelijk met root te werken. Dit werkt nu, maar wat als je de clip ooit in een andere clip moet steken? Ik werk persoonlijk liever met 10 keer _parent. dan 1 keer _root ;)

Tip: probeer ook AS2 standaarden aan te houden.
dus ipv
Code:
 var counter=0;
wordt:
Code:
 var counter:Number=0;

verdeye

Legacy Member
inderdaad .. goede oplossing weet je hoe ik de variable id achter archief_mc1 de 1 vindt?
Op dit moment heb ik het anders opgelost, en het werkt prima.
Anyway alvast bedankt voor de tips!
Ik ben flash beginner :)

Bigbuddha

Legacy Member
een manier is:
Code:
var thisNumber:Number = this._name.substr(-1,10);

maar hang af van je naam natuurlijk "archief_mcX" met X het nummer.
ff substr() opzoeken als je iets anders wil

LunchBox

Legacy Member
je kan ook gewoon dit aanpassen:
Code:
archiefMC=duplicateMovieClip("archief_mc1","archief_mc"+counter,counter);
archiefMC.id=counter;
archiefMC.onRelease=function(){
  trace(this.id);
}

iedere movieclip gaat dus een eigen variabele id hebben waardoor ie weet welk nummer het toegewezen kreeg. via dit nummer kan je'r dan bijvoorbeeld tekst uit een array aan toevoegen: array_tekst[this.id] etc..

hou er rekening mee dat de 'this' binnen een onRelease functie naar de movieclip verwijst waar ze aanhangt, in dit geval dus archiefMC wat een kortere weergave is van this['"archief_mc"+counter]
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan