Volledige versie bekijken : duplicate MovieClip
sloot
%Europe/Berlin %507 %2008, 12:11
Hallo allemaal
Als ik het onderstaande script uitvoer (duplicate MovieClip) dan maakt hij maar 1 nieuwe instantie aan.
De bedoeling is, dat d.m.v. de for-lus een x-aantal MovieClips wordt aangemaakt. Weet iemand wat ik fout doe?
for(var i=1; i<5; i++){
var mc = duplicateMovieClip(berichtmc0, "berichtmc"+i, i());
berichtmc0._y += 50;
}
stop();
Jan
%Europe/Berlin %509 %2008, 12:13
for(var i=1; i<5; i++)
{
var mc = duplicateMovieClip("berichtmc0", "berichtmc"+i, this.getNextHighestDepth());
mc._y = (i-1)*50;
}
Jan
stop();
sloot
%Europe/Berlin %512 %2008, 12:18
tnx voor de snelle reactie, maar dit werkt niet bij mij. hij laat er nog steeds maar 1 zien
Jan
%Europe/Berlin %768 %2008, 18:26
tnx voor de snelle reactie, maar dit werkt niet bij mij. hij laat er nog steeds maar 1 zien
Hmm, strange.
Zo zou ik het zelf scripten:
for(var i:Number=1; i<5; i++)
{
berichtmc0.duplicateMovieClip("berichtmc"+i, this.getNextHighestDepth());
this["berichtmc"+i]._y=i*50;
}
stop();
Als het dan nog niet werkt heb je ergens anders een fout gemaakt, zoals een verkeerde of helemaal geen instance name, of de for loop binnen een event handler waardoor this naar een object verwijst waar geen depths bestaans zoals een XML object.
Groeten,
Jan
sloot
%Europe/Berlin %669 %2008, 16:04
ik heb wat meer rond gekeken op internet, en ben er achter gekomen dat het probleem hem bij mij zit in de onLoad functie. Bij deze post ik mijn volledige script.
ontvang = new LoadVars();
zend = new LoadVars();
zend.naam = "nulwaarde";
zend.sendAndLoad("alleberichten.php", ontvang, "GET");
ontvang.onLoad = function(succes) {
if (succes){
var aantalber = Number(ontvang.totaantal);
for(i=aantalber; i>1; i--){
this.berichtmc1.duplicateMovieClip("berichtmc"+i, this.getNextHighestDepth());
this.berichtmc1._y += 135;
}
}
};
stop();
als ik de for lus uit de onload functie haal met i=5, werkt het wel. zodra het in de onload functie staat met een variabele waarde werkt het niet. dit moet toch zijn op te lossen?
AnnaAngel
%Europe/Berlin %686 %2008, 16:28
heb je al geprobeerd of "aantalber" uberhaupt beschikbaar is?
(even een trace eronder zetten )
sloot
%Europe/Berlin %739 %2008, 17:45
Helaas kan ik deze flash movie alleen online testen. De .php bestanden die hiermee samenwerken staan online. offline werkt het niet, dus heeft tracen geen zin.
wel heb ik dit met een omweg online getest:
test.text = aantalber;
dit gaf de waarde 3 terug (dat klopt dus)
ook heb ik het offline gestest:
door // en /* */ de onLoad functie tijdelijk uitgeschakelt. in dit geval werkte alles prima maar dan was aantalber vervangen door een standaart getal.
Jan
%Europe/Berlin %791 %2008, 18:59
Zoals ik dus al zei in een eerder bericht:
of de for loop binnen een event handler waardoor this naar een object verwijst waar geen depths bestaans
definieer je _root als scope in een variabele en dan hoef je niet this te gebruiken.
Overal waar jij this hebt. verwijst het naar het LoadVars object en daar zitten enerzijds die movieClips niet en anderzijds kan je daar geen getNextHighestDepth() opvragen want die method bestaat niet in de LoadVars class. ;)
Ik heb je script hieronder aangepast:
var root:MovieClip=this;//toegevoegd zodat je niet this hoeft te gebruiken en ook niet _root en toch relatief kan werken.
var ontvang:LoadVars = new LoadVars();
var zend:LoadVars = new LoadVars();
zend.naam = "nulwaarde";
zend.sendAndLoad("alleberichten.php", ontvang, "GET");//waarom GET? Volgens mij denk je dat GET wil zeggen: "ga halen" en dat heeft hier niks mee te maken
ontvang.onLoad = function(succes)
{
if (succes)
{
var aantalber = Number(ontvang.totaantal);
//var aantalber:Number=parseInt(this.totaantal);// van maken zodat je hem omzet naar Number
for(var i:Number=aantalber; i>1; i--)
{
root.berichtmc1.duplicateMovieClip("berichtmc"+i, root.getNextHighestDepth());
root.berichtmc1._y += 135;
}
}
};
stop();
Gebruik ook eens wat meer strict datatyping. ;)
Groeten,
Jan
sloot
%Europe/Berlin %565 %2008, 13:34
Echt super bedankt voor de tips en het verbeteren van mijn code! ik kan nu weer vooruit met het afmaken van mijn portfolio site voor school (http://www.remonvdeijnden.nl) :)
groetjes Remon
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.