Ciao
ok io sono partito da un altro punto
ho una variabile _root.myColor che contiene un colore nel formato
(0x666666)
la voglio scomporre, quindi ..non sarà il massimo ma funziona!
codice:
myColor="0x666666"
// Funzione che controlla costantemente il contenuto di
//_root.mycolor
// rr1="6",rr2="6",gg1="6",gg2="6",bb1="6",bb2="6"
_root.onEnterFrame = function(){
rr1=substring(substring(_root.myColor,3,2),1,1)
rr2=substring(substring(_root.myColor,3,2),2,1)
gg1=substring(substring(_root.myColor,5,2),1,1)
gg2=substring(substring(_root.myColor,5,2),2,1)
bb1=substring(substring(_root.myColor,7,2),1,1)
bb2=substring(substring(_root.myColor,7,2),2,1)
// chiamata alla funzione di conversione
// passando il valore ed il nome
// rr= rr1*16^1+rr2*16^0 = rr1*16+rr2*1
_root.HexToDec(rr1,"rr1")
_root.HexToDec(rr2,"rr2")
_root.rr=Number(_root.rr1)*16+Number(_root.rr2); _root.HexToDec(bb1,"gg1")
_root.HexToDec(bb2,"gg2")
_root.gg=Number(_root.gg1)*16+Number(_root.gg2); _root.HexToDec(bb1,"bb1")
_root.HexToDec(bb2,"bb2")
_root.bb=Number(_root.bb1)*16+Number(_root.bb2);
}
// Funzione di conversione
function HexToDec(x,y){
bit=x
nome=y
switch (bit) {
case "0":
_root[nome]="0"
break;
case "1":
_root[nome]="1"
break;
case "2":
_root[nome]="2"
break;
case "1":
_root[nome]="1"
break;
case "3":
_root[nome]="3"
break;
case "4":
_root[nome]="4"
break;
case "5":
_root[nome]="5"
break;
case "6":
_root[nome]="6"
break;
case "7":
_root[nome]="7"
break;
case "8":
_root[nome]="8"
break;
case "9":
_root[nome]="9"
break;
case "A":
_root[nome]="10"
break;
case "B":
_root[nome]="11"
break;
case "C":
_root[nome]="12"
break;
case "D":
_root[nome]="13"
break;
case "E":
_root[nome]="14"
break;
case "F":
_root[nome]="15"
break;
default:
trace ("nessun numero Esadecimale compreso fra 0 e f")
}
}
Il punto è che se cambio il valore di _root.myColor tramite un pulsante
NON MI RICALCOLA RR, GG, BB
Dov'è che sbaglio ??
Infatti
la funzione
codice:
myColor2 = new Color(_root.fondo);
myColorTransform = new Object();
_root.fondo.onEnterFrame = function(){
_root.myColorTransform = { ra: '100', rb: _root.rr, ga: '100', gb: _root.gg, ba: '100', bb: _root.bb, aa: '100', ab: '100'};
_root.myColor2.setTransform(_root.myColorTransform);}
}
continua a leggere il valore iniziale "0x666666"