[英]how can I change the color of one shape by clicking on clicking another object of sprite in actionscript
[英]How can i change the color-offset of an object to CMYK in Actionscript 3?
我仍在研究動作腳本3色游戲。 您的對象右邊帶有隨機生成的顏色。 在左側,您還有另一個對象和3個RGB顏色的存儲桶。 目的是將右側對象與3個存儲桶和左側對象的顏色重新混合。 您將其中一個存儲桶放在左側的物體上。 值區在左側對象上的時間越長,此偏移量添加到該對象的次數就越多。 如您現在所知,我正在處理red,green和blueOffset。 現在,我需要使用存儲桶來使用CMY而不是RGB變換對象。 我大致知道如何將RGB值轉換為CMYK,但是當我需要使用RGB偏移量更改對象的顏色時,這對我沒有幫助。 我知道Actionscript 3僅具有RGB偏移量,不知道如何解決該問題。
所以我的問題是:您是否可以在CMYK中或沒有ColorTransform的情況下更改動畫片段的顏色? 一個主意會很棒。
英語不是我的主要語言,所以很抱歉出現錯誤...
我不認為您可以將對象的色偏更改為CMYK,盡管您可以編寫一個在RGB和CMYK之間轉換的函數。 附帶說明一下,CMYK主要用於打印,最好堅持使用RGB。 話雖這么說是如何在兩者之間轉換。
RGB中每個值的范圍是0到255, CMYK中每個值的范圍是0到1。因此,我們需要縮放RGB值,使其落在0到1范圍內。
R' = R / 255
G' = G / 255
B' = B / 255
CMYK中的 K代表黑色量,並使用R' , G'和B'計算得出
K = 1 - max(R', G', B')
其他顏色計算如下
C = (1 - R' - K) / (1 - K)
M = (1 - G' - K) / (1 - K)
Y = (1 - B' - K) / (1 - K)
示例類:
import flash.display.MovieClip;
public class ConvertColors extends MovieClip {
public var K:Number = 0.0;
public var C:Number = 0.0;
public var M:Number = 0.0;
public var Y:Number = 0.0;
public function convertToCMYK(R:int, G:int, B:int):void {
var Rprime:Number = R/255;
var Gprime:Number = G/255;
var Bprime:Number = B/255;
this.K = 1 - Math.max( Rprime, Math.max( Gprime, Bprime));
this.C = (1 - Rprime - K)/(1 - K);
this.M = (1 - Gprime - K)/(1 - K);
this.Y = (1 - Bprime - K)/(1 - K);
}
}
RGB范圍從0到255
R = 255 * (1 - C) * (1 - K)
G = 255 * (1 - M) * (1 - K)
B = 255 * (1 - Y) * (1 - K)
示例類:
import flash.display.MovieClip;
public class ConvertColors extends MovieClip {
public var R:int = 0;
public var G:int = 0;
public var B:int = 0;
public function convertToRGB(K:Number, C:Number, M:Number, Y:Number):void {
var Rnum:Number = 0.0;
var Gnum:Number = 0.0;
var Bnum:Number = 0.0;
Rnum = 255 * (1 - C) * (1 - K);
Gnum = 255 * (1 - M) * (1 - K);
Bnum = 255 * (1 - Y) * (1 - K);
this.R = Math.round(Rnum);
this.G = Math.round(Gnum);
this.B = Math.round(Bnum);
}
}
我剛剛找到了另一個真正的解決方案。 如果將coloroffset設置為負值,則顏色將變為青色,品紅色或黃色! 我不認為這會那么容易,但實際上確實如此。 現在,我只需要更改我的計算,以使其適合負數。 但是,如果現在混合所有存儲桶,則對象將變黑! 那就是我想要的,現在我很開心。 從RGB到CMYK轉換的答案仍然非常有用! 非常感謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.