2016-05-31 39 views
0

我用了很多動畫過濾器,這是光榮的,因爲我可以做手工彩色濾光片,看看它是什麼樣子,然後代碼集成到過,如:在Flash/Animate中以視覺/手動和代碼處理顏色的方式?

object.filters = e.currentTarget.filters; 

但我努力做得很好,遠離過濾器,以降低處理能力等。另外,過濾器不接受十六進制代碼。所以我試圖使用colorTransforms。但現在事情變得非常困難,因爲我弄清楚了我想要的顏色,在記事本中寫下所有的十六進制代碼,然後編寫代碼將這些顏色轉換成相應的顏色。在發佈文件之前,我仍然無法看到交互的顏色。有沒有辦法手動擺弄colorTransforms?也許顏色效果 - >樣式下的高級部分?

我如何想象這件事發生在我的幻想中: 我有一些影片剪輯,它們相互作用以創建織物樣本。我撥弄的ColorTransform或以某種方式手動(未在代碼中動態)施加一個十六進制代碼給他們,然後我就可以使用這些樣本來動態色彩之外的東西,是這樣的:

newFabric.topPattern.colorTransform.color = fabricSwatch.topPattern.colorTransform.color; 

我知道我能做到這一點如果我使用代碼第一次添加顏色..但有什麼方法在舞臺上/視覺/手動添加顏色,然後讓代碼向前滾動?我知道我可以繪製一張位圖並對一個像素的顏色進行採樣,但這些圖案都具有非常好的,不同的&複雜的形狀和透明度,因此在這裏不起作用:/

回答

0

好吧!我找到了一個解決方法! \ o/

我可以手動編輯色調,甚至可以輸入十六進制代碼或從預先製作的調色板中選擇一種顏色。我只需確保將色調的「色調」設置設置爲100%即可。 (色彩效果 - >風格:色調)

現在我簡單地使用的ColorTransform代碼,它可以拉我手動放在色調,並將其轉移到其他項目:

grl.overlay.shapes.transform.colorTransform = e.currentTarget.shapes.transform.colorTransform; 

我甚至沒有得改變我的代碼,這比濾波器更好,因爲我可以輸入十六進制代碼。我不知道這將如何影響過濾器的性能,但有人告訴我,它不應該太糟糕,因爲沒有任何動畫。我很高興:)

0

有很多教程可以使用colortransforms - 像this one

至於使用十六進制顏色,你可以很容易地在各種顏色表示之間來回轉換。一個簡單的谷歌搜索出現了這個snippet

var brightPinkHex:uint = 0xFF32CC; 
var brightPinkRGB:Object = HexToRGB(brightPinkHex); 
trace(brightPinkRGB.r+ ", " + brightPinkRGB.g + ", " + brightPinkRGB.b); 

function HexToRGB(value:uint):Object { 
    var rgb:Object = new Object(); 
    rgb.r = (value >> 16) & 0xFF 
    rgb.g = (value >> 8) & 0xFF 
    rgb.b = value & 0xFF    
    return rgb; 
} 

// OUTPUT 
// 255, 50, 204 
+0

謝謝..但你如何在改變舞臺上的十六進制代碼和代碼之間進行交互? –

+0

「與大多數其他簡單屬性(如alpha,x,y,寬度和高度)不同,對象本身的顏色不能直接改變。」有沒有解決這個問題? –