2010-03-12 32 views
16

Tôi đang làm việc với một số thành phần có màu như uint, nhưng màu tôi có ở định dạng "# 161616". Tôi không chắc chắn mối quan hệ giữa 2 loại màu sắc là gì hoặc làm thế nào để đi từ một đến khác.Flexcriptcript: Chuyển đổi # màu thành uint

Nó không phải là giải pháp hành động. Tôi chỉ có một số nhỏ các màu này, vì vậy có thể được thực hiện bằng tay quá.

Trả lời

36
var color:uint = 0x161616; 

Hoặc, để chuyển đổi chúng theo chương trình:

var s:String = "#161616"; 
var color:uint = uint("0x" + s.substr(1)); 
+7

Không có cách nào, đó là tuyệt vời. Tôi cảm thấy hơi chậm phát triển bây giờ :) – Daryl

+0

tuyệt vời, cảm ơn! – Delcasda

0
var i : uint = uint("0x161616"); 
3

Hãy nhận biết rằng stylesheets trong Flex muốn các giá trị màu trong hình thứC#FFFFFF ... KHÔNG 0xFFFFFF. Các thuộc tính kiểu phần tử MXML không quan tâm. Mặc dù khi bạn bắt đầu viết một cái gì đó như:

<mx:VBox backgroundColor=" 

Intellisense nhắc bạn về giá trị uint; nếu bạn đi trước và hoàn thành nó như vậy

<mx:VBox backgroundColor="#FFFFFF"></VBox> 

nó vẫn sẽ làm backgroundColor của bạn giống như nếu bạn đã viết

<mx:VBox backgroundColor="0xFFFFFF"></VBox> 
1

Ở đây bạn có 2 chức năng utils tôi:

public static function convertUintToString(color:uint):String { 
      return color.toString(16); 
    } 

    public static function convertStringToUint(value:String, mask:String):uint { 
      var colorString:String = "0x" + value; 
      var colorUint:uint = mx.core.Singleton.getInstance("mx.styles::IStyleManager2").getColorName(colorString); 

      return colorUint; 
    }  
Các vấn đề liên quan