<?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>