[英]Way to handle colors visually/manually AND with code, in Flash/Animate?
我曾經在Animate中使用過很多濾鏡,這很輝煌,因為我可以手工制作濾色器,查看濾鏡的外觀,然后將代碼集成到其中,例如:
object.filters = e.currentTarget.filters;
但是我正在努力做一個好人,遠離過濾器以減少處理能力等。此外,過濾器不接受十六進制代碼。 所以我正在嘗試使用colorTransforms。 但是現在事情變得非常麻煩了,因為我找出了我想要的顏色,在記事本中寫下了所有十六進制代碼,然后編寫了將代碼轉換為該顏色的代碼。 在發布文件之前,我仍然看不到交互的顏色。 有沒有辦法手動擺弄colorTransforms? 也許是“色彩效果->樣式”下的“高級”部分?
我如何想象這種幻想在我的幻想中發生了:我有一些電影剪輯,它們相互作用以創建一個織物樣本。 我擺弄colorTransform或SOMEhow手動對其應用十六進制代碼(而不是動態地在代碼中),然后可以使用這些色板為其他東西動態着色,例如:
newFabric.topPattern.colorTransform.color = fabricSwatch.topPattern.colorTransform.color;
我知道如果我先使用代碼添加顏色,就可以做到這一點。但是有什么方法可以在舞台上/視覺/手動添加顏色,然后讓代碼向前滾動嗎? 我知道我可以繪制位圖並采樣像素的顏色,但是這些圖案都具有非常精細,不同和復雜的形狀和透明度,因此在這里不起作用:/
有很多使用colortransforms的教程-像這樣的 。
至於使用十六進制顏色,您可以輕松地在各種顏色表示形式之間來回轉換。 一個簡單的Google搜索顯示了以下代碼段 :
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
好! 我找到了解決方法! \\ o /
我可以手動編輯“色調”,甚至可以輸入十六進制代碼或從我的預制調色板中滴色。 我只需要確保將“色調”的“色調”設置設置為100%。 (色彩效果->樣式:色調)
現在,我只需使用colorTransform代碼,它就可以拉出我手動放置的Tint,並將其轉移到其他項目:
grl.overlay.shapes.transform.colorTransform = e.currentTarget.shapes.transform.colorTransform;
我什至不必更改代碼,這比過濾器要好,因為我可以輸入十六進制代碼。 我不知道相對於濾鏡,這會如何提高性能,但是有人只是告訴我,它應該不會太糟,因為沒有動畫。 我很開心 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.