簡體   English   中英

在Flash / Animate中以視覺/手動方式以及通過代碼處理顏色的方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM