`
JavaCrazyer
  • 浏览: 2990376 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类

Flex4之获取各种颜色RGB值的例子

阅读更多

接下来的例子演示了Flex中如何将颜色的值转化为字符串,根据RGB计算出各个值以及格式化颜色值。


<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx"  backgroundColor="white" minWidth="955" minHeight="600">
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
		<fx:Model id="colorObj">
			<root>
				<color>{colorPicker.selectedColor}</color>
				<red>{rChannel(colorObj.color)}</red>
				<green>{gChannel(colorObj.color)}</green>
				<blue>{bChannel(colorObj.color)}</blue>
			</root>
		</fx:Model>
	</fx:Declarations>
	
	<fx:Script>
		<![CDATA[
			private function fixedInt(value:int, mask:String):String {
				return String(mask + value.toString(16)).substr(-mask.length).toUpperCase();
			}
			
			private function rChannel(value:int):int {
				return value >> 16 & 0xFF;
			}
			
			private function gChannel(value:int):int {
				return value >> 8 & 0xFF;
			}
			
			private function bChannel(value:int):int {
				return value >> 0 & 0xFF;
			}
			
			private function rgbToInt(r:int, g:int, b:int):int {
				return r << 16 | g << 8 | b << 0;
			}
		]]>
	</fx:Script>
	
	
	<mx:Form>
		<mx:FormItem label="Color:" direction="horizontal">
			<mx:ColorPicker id="colorPicker" />
			<mx:Label text="0x{fixedInt(colorPicker.selectedColor, '000000')}" width="100" />
		</mx:FormItem>
		<mx:FormItem label="Red:" direction="horizontal">
			<mx:Label text="{colorObj.red}" />
			<mx:Label text="(0x{fixedInt(colorObj.red, '00')})" />
		</mx:FormItem>
		<mx:FormItem label="Green:" direction="horizontal">
			<mx:Label text="{colorObj.green}" />
			<mx:Label text="(0x{fixedInt(colorObj.green, '00')})" />
		</mx:FormItem>
		<mx:FormItem label="Blue:" direction="horizontal">
			<mx:Label text="{colorObj.blue}" />
			<mx:Label text="(0x{fixedInt(colorObj.blue, '00')})" />
		</mx:FormItem>
		<mx:FormItem label="Color:" direction="horizontal">
			<mx:Label text="{colorObj.color}" />
			<mx:Label text="(0x{fixedInt(rgbToInt(colorObj.red, colorObj.green, colorObj.blue), '000000')})" />
		</mx:FormItem>
	</mx:Form>
	
	<mx:Label text="{int(0xFF00FF)}" />
	
</s:Application>

 



可以发现的是FLEX中适用的颜色RGB值一般都会加上0x作为前缀,所以要注意这一点了,对比一下常规颜色RGB值就可以发现了,可以参考下这个博客上介绍常规颜色RGB值

http://blog.sina.com.cn/s/blog_3e5694650100jfch.html?retcode=0






 

  • 大小: 3.9 KB
2
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics