PDA

Volledige versie bekijken : Variabele type probleem


dhrkippenhok
%Europe/Berlin %490 %2009, 11:45
Hallo,

Ik wil graag (veel) objecten van kleur laten veranderen door er op te klikken en aan de hand van situaties.
Wat doe ik verkeerd? of is het mijn beperkte ervaring met programmeren?

Op de stage staan twee buttons, genaamd b1 en b2.

var n:int;
var w:int;
var nam:String = "";

var cwhite:ColorTransform = transform.colorTransform;
var cgreen:ColorTransform = transform.colorTransform;
var cred:ColorTransform = transform.colorTransform;
var cblue:ColorTransform = transform.colorTransform;
var cyellow:ColorTransform = transform.colorTransform;

cwhite.color = 0xFFFFFF;
cgreen.color = 0x64DC4B;
cred.color = 0xDE197D;
cblue.color = 0x007DFF;
cyellow.color = 0xFFFF00;

var colors:Array = new Array("cwhite", "cgreen", "cred", "cblue", "cyellow");
var colorstatus:Array = new Array(2);
var box:Array = new Array(2);
for (n = 1; n < 3; n++){
box[n] = "b"+n;
trace(box[n]);
}

stop();

b1.addEventListener(MouseEvent.MOUSE_DOWN, db1);
function db1(event:MouseEvent):void {
colorstatus[1] = 2;
updatecolor();
}

b2.addEventListener(MouseEvent.MOUSE_DOWN, db2);
function db2(event:MouseEvent):void {
colorstatus[2] = 2;
updatecolor();
}

function updatecolor():void {
for (n = 1; n < 3; n++){
w = colorstatus[n];
nam = colors[w];
box.transform.colorTransform = nam;
}
}


Zet code in [as] tag.

Dauntless
%Europe/Berlin %504 %2009, 12:06
box is een array, en je wil de objecten die er in zitten aanspreken, dus moet je een index opgeven:
box[n].transform.colorTransform = nam;

Er is een verschil tussen "strings" en een variabele. Als er quotes rond staan, beschouwt Flash (en menig andere programmeertaal) de data als tekst en hij interpreteert ze niet. Als je alle transforms in een array wil gooien, wordt het dus
var colors:Array = new Array(cwhite, cgreen, cred, cblue, cyellow);


Als het nog niet werkt, zou je toch iets duidelijker moeten zijn dan "Ik wil bepaalde movieclips van kleur veranderen in bepaalde situaties".