PDA

Volledige versie bekijken : Rijen in for loop


davyvh
%Europe/Berlin %517 %2005, 13:24
Hoy,
Ik probeer een colorPanel in AS te maken.
Dit lukt goed, maar het moet een rechthoek vormen met daarin allemaal kleine vierkantjes met ieder hun kleur.
Hieronder m'n code:
function drawColorChooser():Void
{
var i = 0;
var j = 0;
for (r=0; r<255; r += 63){
for (g=0; g<255; g += 63){
for (b=0; b<255; b += 63) {
rgb = r << 16 | g << 8 | b;

var colorChooser:MovieClip = root.square.createEmptyMovieClip("colorChooser"+r+"_"+g+"_"+b, depth++);
colorChooser.beginFill(0xCCCCCC);
colorChooser.lineStyle(0.1, 0x000000, 100);
colorChooser.lineTo(itemWidth-space, 0);
colorChooser.lineTo(itemWidth-space, itemWidth-space);
colorChooser.lineTo(0, itemWidth-space);
colorChooser.lineTo(0, 0);
colorChooser.endFill();

new Color(colorChooser).setRGB(rgb);

colorChooser._x = itemWidth*i++;
if(colorChooser._x >= colorChooserWidth){
colorChooser._x = 0;
colorChooser._y = itemWidth*j++;
}
colorChooser.rgb = rgb;
colorChooser.onRelease = function(){
changeColor(this.rgb);
}
}
}
}
}

In deze if zit volgens mij dus de fout. Hoe kan ik ervoor zorgen dat de loop bij het plaatsen van de vierkantjes een andere regel neemt vanaf colorChooser._x >= colorChooserWidth ??
if(colorChooser._x >= colorChooserWidth){
colorChooser._x = 0;
colorChooser._y = itemWidth*j++;
}
Nu krijg ik een hoek met alle vierkantjes...

Alvast bedankt,
Davy

The_One
%Europe/Berlin %652 %2005, 16:38
hoi,
bedoel je zoiets:
depth = 0;
_root.createEmptyMovieClip("square", depth++);

function drawColorChooser():Void
{
var depth = 1000;
var itemWidth = 10;
var space = 0;
var i = 0;
var j = 0;
for (r=0; r<255; r += 63){
for (g=0; g<255; g += 63){
for (b=0; b<255; b += 63) {
rgb = r << 16 | g << 8 | b;
var colorChooser:MovieClip = _root.square.createEmptyMovieClip("colorChooser"+r+"_"+g+"_"+b, depth++);
colorChooser.beginFill(0xCCCCCC);
colorChooser.lineStyle(0.1, 0x000000, 100);
colorChooser.lineTo(itemWidth-space, 0);
colorChooser.lineTo(itemWidth-space, itemWidth-space);
colorChooser.lineTo(0, itemWidth-space);
colorChooser.lineTo(0, 0);
colorChooser.endFill();

new Color(colorChooser).setRGB(rgb);


colorChooser._x = itemWidth*i;
colorChooser._y = itemWidth*j++;


if(j >= 5){
i++;
j = 0;
}



colorChooser.rgb = rgb;
colorChooser.onRelease = function(){
changeColor(this.rgb);
}
}
}
}
}
drawColorChooser();

Kheb dit:
colorChooser._x = itemWidth*i++;
if(colorChooser._x >= colorChooserWidth){
colorChooser._x = 0;
colorChooser._y = itemWidth*j++;
}

veranderd in dit:
colorChooser._x = itemWidth*i;
colorChooser._y = itemWidth*j++;


if(j >= 5){
i++;
j = 0;
}

davyvh
%Europe/Berlin %658 %2005, 16:47
Ok, erg bedankt, alles werkt :)