salve. mi chiedevo se fosse possibile in AS gestire il colore in maniera da ottenere un immagine in grayscale
salve. mi chiedevo se fosse possibile in AS gestire il colore in maniera da ottenere un immagine in grayscale
Fai un file esterno con estensione ".as" e scrivi:
class Transform {
private static var NEG_TRANS:Object = {ra:-100, rb:255,
ga:-100, gb:255, ba:-100, bb:255, aa:100, ab:0};
private static var NEUTRAL_TRANS:Object = {ra:100, rb:0,
ga:100, gb:0, ba:100, bb:0, aa:100, ab:0};
private static var BLACK_TRANS:Object = {ra:100, rb:-255,
ga:100, gb:-255, ba:100, bb:-255, aa:100, ab:0};
private static var WHITE_TRANS:Object = {ra:100, rb:255,
ga:100, gb:255, ba:100, bb:255, aa:100, ab:0};
private static var RATE:Number = 50;
private var interval:Number;
private var startTime:Number;
private var colorObj:Color;
public function Transform(targetClip:MovieClip) {
colorObj = new Color(targetClip);
}
public function invert(duration:Number):Void {
applyTransform(NEG_TRANS, duration);
}
public function reset(duration:Number):Void {
applyTransform(NEUTRAL_TRANS, duration);
}
public function fadeToBlack(duration:Number):Void {
applyTransform(BLACK_TRANS, duration);
}
public function fadeToWhite(duration:Number):Void {
applyTransform(WHITE_TRANS, duration);
}
private function applyTransform(transObject:Object,
duration:Number):Void {
var getTrans:Object = colorObj.getTransform( );
var diffTrans:Object = new Object( );
startTime = getTimer( );
for (var i in transObject) {
diffTrans[i] = (transObject[i] - getTrans[i]) / (duration / RATE);
}
interval = setInterval(this, "transition", RATE, transObject, diffTrans,
duration);
}
private function transition(transObject:Object, diffTrans:Object,
duration:Number):Void {
var getTrans:Object = colorObj.getTransform( );
for (var i in diffTrans) {
getTrans[i] += diffTrans[i]
}
colorObj.setTransform(getTrans);
if (getTimer( ) - startTime > duration) {
colorObj.setTransform(transObject);
clearInterval(interval);
}
updateAfterEvent( );
}
public function die( ):Void {
}
}
Poi fate un file con all'interno un immagine, la trasformate in Mc e poi gli date l'istanza "image_mc" e scrivete sull'MC:
#include "Transform.as"
E sullo stage:
var transformer:Transform = new Transform(image_mc);
transformer.invert(2000);
transformer.fadeToWhite(3000);
soluzioni di Kmaster & Teejay.
------------------------
altra soluzione:
codice da associare al primo frame
//si crea un nuovo oggetto Color associato al nostro mc: foto
myColor = new Color(foto);
//memorizziamo i valori iniziali da cui partire per la transizione
obj = myColor.getTransform();
//parametri per invertire i colori della foto
neg = {ra:-100, rb:255, ga:-100, gb:255, ba:-100, bb:255, aa:100, ab:0};
//al click del mouse avviamo l'effetto
onMouseDown = function(){
onEnterFrame = function(){
//per ogni parametro dell oggetto obj
for(var i in obj){
//viene calcolato il nuovo valore tra quello iniziale e finale
obj[i] += (neg[i]-obj[i])/40;
}
//e associato all'oggetto Color creato all'inizio
myColor.setTransform(obj);
};
};
sta a voi aggiungere i dovuti controlli per eliminare l'handler onEnterFrame a transizione terminata
La rapidità che è una virtù, genera un vizio che è la fretta !
-------------------------
Browser: Opera & Firefox
micidiale...grazie
ti ringrazio lo stesso, ma questo script non fa quello che voglio.. credo. la mia intenzione è di eliminare i colori dall 'immagine, farla diventare in bianco e nero. se uso questi script l'immagine sfuma verso il bianco o il nero.
guarda nel garage di pasavign il link è Img_effect, il quart'ultimo![]()
benissimo.. era quello che cercavo
tnx
![]()
no.
il problema è che non voglio fare una transizione in alpha con le due foto, una in b/n , l'altra a colori.ovvia soluzione ma poco pratica.
io sto cercando di manomettere l'immagine colorata. e farla diventare in B/n... unsando AS.
ho fatto una prova "manuale" con le opzioni avanzate per la manipolazione del colore nei clip, nulla da fare, se già non funziona lì, c'è poca speranza che possa andare con ASOriginariamente inviato da atarutek
![]()
no.
il problema è che non voglio fare una transizione in alpha con le due foto, una in b/n , l'altra a colori.ovvia soluzione ma poco pratica.
io sto cercando di manomettere l'immagine colorata. e farla diventare in B/n... unsando AS.
forse in flash8 c'è qualche filtro che fà questo nativamente, non saprei![]()