Ho elaborato qualcosa di simile..
Non è proprio uguale all'effetto del link perché non ho capito l'algoritmo utilizzato nel JavaScript riguardo le variazioni di tonalità. A dire il vero lo trovo un po' "incoerente" (passami il termine) perché se si prova a ridimensionare la finestra dello stage, cambia il tipo di variazione del colore rispetto allo spostamento del mouse..
Io invece ho associato il valore della tonalità alla proprietà _xmouse mentre il valore della luminosità alla proprietà _ymouse.
Di seguito, lo script.
Dovrai inserirlo in un frame (ad es il primo frame della root).
Tieni conto che l'ho creato da zero (probabilmente ne esistono di più ottimali, anche se ho provato a cercare sul web e non ne ho trovati).. inoltre non so se esistano già delle classi predisposte per l'elaborazione del colore, per cui mi sono inventato alcune funzioni.. (non chiedermi di spiegartele, ti prego) :master:
Perché funzioni basterà creare un clip rettangolare grande quanto lo stage, che abbia il centro di registrazione sull'angolo superiore sinistro, quindi istanziarlo come "mc_sfondo".
Codice PHP:
var t:Number = 0;
var l:Number = 0;
var c:Color = new Color(mc_sfondo);
function getrgb(t:Number, l:Number):Number {
t = limit(t, 0, 1);
l = limit(l, 0, 1);
return Number('0x'+colorcomponent(t, l, 0.5)+colorcomponent(t, l, -1/6)+colorcomponent(t, l, 1/6));
}
function limit(v:Number, a:Number, b:Number):Number {
with (Math) {
return max(a, min(b, v));
}
}
function triangular(v:Number, f:Number):Number {
return Math.abs(1-Math.abs(1-(v-f)*2));
}
function colorcomponent(t:Number, l:Number, f:Number) {
var v = (limit((limit(triangular(t, f), 1/3, 2/3)-1/3)*3, l, 1)*255).toString(16);
return v.length == 1 ? '0'+v : v;
}
mc_sfondo.onMouseMove = function() {
c.setRGB(getrgb(this._xscale*this._xmouse/this._width*0.01, this._yscale*this._ymouse/this._height*0.01));
};