2012-11-05 20 views
1

我是Actionscript的新手,我需要幫助來更改用add child調用的對象的顏色,我需要在用戶從組合框中選擇所需的顏色後更改顏色:動作腳本對象顏色變化/色調

//MY CODE 

if (e.target.value == "blue") 

{ 

//need to change to this (0x0000FF) 

//enter code here 

} 

任何幫助非常感謝!

+0

考慮upvoting有用的答案,並接受你覺得最好的幫助您解決問題的答案 – BadFeelingAboutThis

回答

1

嘗試使用顏色轉換對象。

var redAmount:Number = 0; 
var greenAmount:Number = 0; 
var blueAmount:Number = 1; 
var alphaAmount:Number = 1; 
var redOffset:Number = 0; 
var greenOffset:Number = 0; 
var blueOffset:Number = 0; 
var alphaOffset:Number = 0; 
yourDisplayObject.transform.colorTransform = new ColorTransform(redAmount, greenAmount, blueAmount, alphaAmount, redOffset, greeenOffset, blueOffset, alphaOffset); 

前四個變量是乘數 - 他們將採取現有的顏色值,並調整它,如果乘以該數字。所以要減少1/2的顏色使用0.5。使黑色全部設置爲0.要不改變,全部爲1。

第二個四個變量將增加或減少所有像素的顏色量。如果你需要更多的幫助

yourDisplayObject.transform.colorTransform = new ColorTransform(0, 0, 0, 1, 0xFF, 0xCC, 0x33, 0x00); 

下面是對Adobe文檔的鏈接: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/geom/ColorTransform.html

如果你決定這樣做彩色打了一個具體的十六進制值,說0xFFCC33,你可以這樣做希望逐漸改變顏色,而不是立即從綠色環保中查看TweenMax。 Greensock補間類是動作編程廣泛使用的主力。

至T int與TweenMax的顯示對象的代碼將是:

TweenMax.to(yourDisplayObject, 1, {tint:0x0000FF}); 

此類適用使用碼的色彩變換的對象,但它隨時間逐漸改變的值

這裏是一個鏈接到你可以得到TweenMax的地方。 http://www.greensock.com/tweenmax/

0

這裏是最容易理解的(在我看來是這樣)的方式來實現這一目標:

if (e.target.value == "blue") 
{ 

    var colorTransform:ColorTransform = yourObject.transform.colorTransform; //store the current color data for the object 
    colorTransform.color = 0x0000FF; //make it totally blue 
    yourObject.transform.colorTransform = colorTransform; //now assign it back to the object 

}