| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| « Mar | ||||||
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | |
By default, Flex controls which can be "clicked" on by a user do not change the mouse cursor to the hand or pointer cursor when you "mouse over" them. This is a bit annoying as users now rely on this visual feedback as it is the default behaviour of HTML links on web pages.
It is simple to make a Flex control opperate like this, by setting its useHandCursor and buttonMode properties to true. However, this is not very convenient to do for every component in an application, leading some to extend each component in order to add this behaviour as default.
As this is also far from a perfect solution, my team wondered if we could use skinning to add this behaviour - after all it is presentational. Although there is no direct way to do this through a skin class, it turns out that one can access the component the skin is applied to, thought the parent property. So as the following ButtonSkin class shows, you can indeed use a Skin, applied to each Button using CSS, to set the use of a hand cursor.
/**
** Copywrite (c) 2010, David Beale**/package com.bealearts.skin.component{import mx.controls.Button;import mx.skins.halo.ButtonSkin;;/**
* Skin which adds a mouse-over hand cursor to a Button component*/public class ButtonSkin extends mx.skins.halo.ButtonSkin{/* PUBLIC *//**
* Constructor*/public function ButtonSkin(){super();}/* PROTECTED *//**
* Override to set hand cursor property of the parent component*/override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{/* LOCALS */var button:Button = null;super.updateDisplayList(unscaledWidth, unscaledHeight);// Get componentif (this.parent){// Get component - note not every component will be a direct parent of a skinbutton = Button(this.parent);// Set Button modeif (!button.buttonMode)button.buttonMode = true;// Set Hand cursorif (!button.useHandCursor)button.useHandCursor = true;}}/* PRIVATE */}}I have just added a ColdFusion library of mine to RIA Forge.
ResourceManager is an internationalisation library for Adobe ColdFusion which uses the resource bundle package style that Adobe Flex uses.
This makes for convenient localisation when working with both ColdFusion and Flex applications.
We have just launched a site for Land Rover in the US, it is designed to be a rich user experience for finding a certified pre-owned Land Rover cars in the USA.
View it at Land Rover Certified Pre-Owned Inventory Search by selecting the Enter Flash Site option.
Non-US users; why not try 90210 for the Zip Code
It is power by Flex and ColdFusion technologies.
As an extension of our Used Vehicle Locator product, we have just launch an iPhone targeted mobile version for Jaguar UK.
View it at Jaguar Used Cars Mobile using a iPhone or iPod Touch for the best experience.
If you need a Postcode to use, try GU7 1BZ
It is powered by ColdFusion.
This is my take on creating an Enumerator class in Flex.
AS3 does not support Enumerators so a class with static constants is used as per the Java Enumerator class pattern.
This implementation is type safe and final. It also contains static helper functions; values() which returns an array of the Enumerator objects (useful for iterations) and getByValue() which allows for easy retrieval of a typed Enumerator object from its primitive value.
package{import flash.errors.IllegalOperationError;import flash.utils.Dictionary;import flash.utils.describeType;/**
* Example Enumerator Representing different RGB Colors*/public final class ColorEnum{/* PUBLIC */public static var RED:ColorEnum = new ColorEnum('RED', PrivateEnforcer);public static var GREEN:ColorEnum = new ColorEnum('GREEN', PrivateEnforcer);public static var BLUE:ColorEnum = new ColorEnum('BLUE', PrivateEnforcer);/**
* Constructor*/public function ColorEnum(value:String, privateEnforcer:Class){// Force private call onlyif (privateEnforcer != PrivateEnforcer){throw new IllegalOperationError("Invalid constructor access");}// Add Enum valuethis._value = value;}/**
* Get all Enumerator Values*/public static function values():Array{/* LOCALS */var values:Array = new Array();var value:ColorEnum = null;if (ColorEnum._values == null)ColorEnum.buildValues();for each (value in ColorEnum._values)values.push(value);return values;}/**
* Get an Enumerator instance by its primative value*/public static function getByValue(value:String):ColorEnum{if (ColorEnum._values == null)ColorEnum.buildValues();return ColorEnum._values[value] as ColorEnum;}/**
* override value*/public function valueOf():Object{return this._value;}/**
* override toString*/public function toString():String{return this._value;}/* PRIVATE */private var _value:String = '';private static var _values:Dictionary = null;/**
* Build static dictionary of all Enum consts and values*/private static function buildValues():void{/* LOCALS */var metaData:XML = describeType(VehicleTypeEnum);var node:XML = null;// Create values DictionaryColorEnum._values = new Dictionary();// Add Each Enum const and valuefor each (node in metaData.children()){if (node.name() == 'variable' && node.@type == metaData.@name)ColorEnum._values[ColorEnum[node.@name].toString()] = ColorEnum[node.@name];}}}}class PrivateEnforcer {}For those of you in the US who have had to use UK Postcodes to try out our Used Vehicle Locators, struggle no more! We have just launched a site for Jaguar in the US.
It is designed to be a rich user experience for finding a certified pre-owned Jaguar car in the USA.
View it at Jaguar Certified Pre-Owned Inventory Search by selecting the Enter Flash Site option.
Non-US users; why not try 90210 for the Zip Code
It is power by Flex and ColdFusion technologies.
Our flex based used car locator application continues to shift like hot cakes.
The latest one is for Kia UK and is meant to be a rich user experience for finding an approved user car.
View it at Kia used cars by selecting the Enter Used Vehicle Locator option.
It is power by Flex and ColdFusion technologies.
If you have to develop behind a proxy server, you may have encountered the following problem;
The ColdFusion (JRUN) JVM settings allow one to specify a proxy server, allowing your local ColdFusion to connect to external public URLs. However there is no proxy by-pass options, so when configured your ColdFusion cannot connect to local URLs which are not resolved by the proxy server, i.e. local development servers.
The following solution uses Apache to create a local proxy server for your local ColdFusion to use;
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so (required for cfhttp)
# Local Proxy for ColdFusion
Listen 8080
<VirtualHost *:8080>
DocumentRoot D:\InetPub\wwwroot
ServerName localhost
ProxyRequests On
ProxyVia On
ProxyRemote * http://your-proxy-server:8080
NoProxy .local 192.168
</VirtualHost>
-DproxySet=true -Dhttp.proxyHost=localhost -Dhttp.proxyPort=8080
We launched yet another flex application a few days ago.
It is a user car locator for Land Rover UK and is meant to be a rich user experience for finding an approved user car.
View it at Land Rover used cars by selecting the Rich Experience option.
It is power by Flex and ColdFusion technologies.
We launched another flex application a few days ago.
It is a user car locator for Mazda UK and is meant to be a rich user experience for finding an approved user car.
View it at Mazda used cars by selecting the Rich Experience option.
It is power by Flex and ColdFusion technologies.