Archive for December, 2008

American Center Logo Design Competition

Contest Description
The American Centers in India are looking for a new logo! Put your graphic skills to work and win a design fellowship to the United States.

We seek the country’s creative community to help us develop a fresh look, which will be widely displayed on all American Center materials. American Centers are the public face of the U.S. Embassy in India. The American Centers in New Delhi and Kolkata, and the U.S. Consulates General in Chennai, Mumbai and Hyderabad support activities that inform the Indian public about American policies, society and values. These activities range from speaking tours and musical concerts, to school outreach, workshops and conferences, English programs, and exhibits. Please review the links above to learn more about the range of our activities.

The logo must be recognizable, dramatic and reflect the presence of the United States in India.

Eligibility
Open to Indian nationals age 18 and over.
Employees of the U.S. Government and their immediate family members are not eligible.
Contest Rules
The logo must be the original work of the designer. The designer must certify that the logo does not violate any copyright.
Submissions of qualifying nature will become the property of the U.S. Embassy, care of the American Center. For any submission the Center takes ownership of, the Center retains the right to change the designs to better fit its needs.
No limit on number of entries per person. Group entries are acceptable, but prizes will only be awarded to individuals.
Logo Guidelines
The logo must have a strong symbolic component such that is recognizable by itself without the words “American Center” beneath it.
The logo must remind the viewer that the American Center is part of the U.S. Government presence in India. It must be appropriate as a U.S. Government symbol.
The logo should be usable in monochrome and color media.
No gradient colors.
All fonts are acceptable.
The logo should be simple enough to be used in a variety of mediums from letterhead to billboard size.
Submissions must be in .GIF, .JPG. or .BMP format, and include the designer’s full name and e-mail address. The designer is welcome to send a short textual description of the logo along with the design. (optional)
Prizes
The contest will award prizes for up to three designers. Top prize is a design fellowship to the United States.*
*Visa eligibility applies.

For more details, contact us at amcenternd@state.gov, or 011-2347-2289/2290.

All submissions must be received by Jan. 15, 2009.

Please e-mail your entries at: amcenternd@state.gov
or
Send in your CD to:

American Center Logo Design Contest
The American Center,
24 Kasturba Gandhi Marg,
New Delhi – 110 001

January 23, 2009-Selection of finalists. Finalists will be posted on our website.
January 30, 2009- Awards ceremony at the American Center, New Delhi

Advertisements

Tour De Flex

Tour de Flex is a desktop application for exploring Flex capabilities and resources, including the core Flex components, Adobe AIR and data integration, as well as a variety of third-party components, effects, skins, and more.

Download is approx 50MB
Manual install – download the AIR file directory from here
Tour de Flex runs on Adobe AIR on Windows, Mac OS and Linux
User Guide (PDF)

Tour de Flex has three primary purposes:

Provide non-Flex developers with a good overview of what is possible in Flex in a “look and see” environment

Provide Flex developers with an illustrated reference tool

Provide commercial and non-commercial Flex developers a place to showcase their work

Tour de Flex includes over 200 runnable samples, each with source code, links to documentation, and other details. Topics include the Flex Core Components, Flex Data Access, AIR Desktop Capabilities, Cloud APIs, Data Visualization, Mapping, and a growing collection of custom components, effects, skins, etc.

——————————————————————————–

Tour de Flex Eclipse Plugin

An Eclipse plugin is available that provides a search interface to the 200+ samples in Tour de Flex. Search by component name, tag or author and double-click any item in the results to immediately see the component in Tour de Flex.

To install the plugin, add the following URL to your Eclipse software update sites: http://tourdeflex.adobe.com/eclipse. Once installed, a new Tour de Flex view is available to add. The plugin has been tested with Eclipse 3.4 and with Flex Builder 3.x.

——————————————————————————–

Showcasing your Flex work in Tour de Flex

One of the objectives of Tour de Flex is to provide a place for developers to showcase their work. We are always looking for new samples to add.

To have your work included in Tour de Flex, follow these steps:

Create demos of your work that look good within the Tour de Flex size constraints (663×246 when not expanded)

Arrange to have all assets hosted

Convert the source code to a color HTML document. You can use Flex Builder’s “View Source” feature to generate the HTML files.

Complete the sample submission form.

——————————————————————————–

Support

If you have suggestions for Tour de Flex or wish to report a bug, please post to the Flex Forum at http://www.adobe.com/go/flex_forums

——————————————————————————–

Share Tour de Flex!

You can help spread the word about Tour de Flex by using the following HTML to embed the install badge in your website: Click here

focus textInput In flex application

Here is simple solution:

Goto your project >> html-template folder >> index.template.html  >>
open it.

Now edit JavaScript in that as follow:-

PUT THIS : document.DocumentName.focus(); ///Document name is your
flex Ex: – main.mxml file just give main

THIS BECAUSE SETFOCUS() JUST FOCUSES FLASH PLAYER NOT BROWSER TO SET
FOCUS WE CAN ADD ABOVE SINGAL LINE IN FOLLOWING CODE AS i DID.

<script language=”JavaScript” type=”text/javascript”>
<!–
// Version check for the Flash Player that has the ability to start
Player Product Install (6.0r65)
var hasProductInstall = DetectFlashVer(6, 0, 65);

// Version check based upon the values defined in globals
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion,
requiredMinorVersion, requiredRevision);

if ( hasProductInstall && !hasRequestedVersion ) {
        // DO NOT MODIFY THE FOLLOWING FOUR LINES
        // Location visited after installation is complete if installation is
required
        var MMPlayerType = (isIE == true) ? “ActiveX” : “PlugIn”;
        var MMredirectURL = window.location;
    document.title = document.title.slice(0, 47) + ” – Flash Player
Installation”;
    var MMdoctitle = document.title;

        AC_FL_RunContent(
                “src”, “playerProductInstall”,
                “FlashVars”, “MMredirectURL=”+MMredirectURL
+’&MMplayerType=’+MMPlayerType+’&MMdoctitle=’+MMdoctitle+””,
                “width”, “${width}”,
                “height”, “${height}”,
                “align”, “middle”,
                “id”, “${application}”,
                “quality”, “high”,
                “bgcolor”, “${bgcolor}”,
                “name”, “${application}”,
                “allowScriptAccess”,”sameDomain”,
                “type”, “application/x-shockwave-flash”,
                “pluginspage”, “http://www.adobe.com/go/getflashplayer
        );

} else if (hasRequestedVersion) {

        // if we’ve detected an acceptable version
        // embed the Flash Content SWF when all tests are passed
        AC_FL_RunContent(
                        “src”, “${swf}”,
                        “width”, “${width}”,
                        “height”, “${height}”,
                        “align”, “middle”,
                        “id”, “${application}”,
                        “quality”, “high”,
                        “bgcolor”, “${bgcolor}”,
                        “name”, “${application}”,
                        “allowScriptAccess”,”sameDomain”,
                        “type”, “application/x-shockwave-flash”,
                        “pluginspage”, “http://www.adobe.com/go/getflashplayer
        );
document.DocumentName.focus(); ///Document name is your flex Ex: –
main.mxml file just give main
  } else {  // flash is too old or we can’t detect the plugin
    var alternateContent = ‘Alternate HTML content should be placed
here. ‘
        + ‘This content requires the Adobe Flash Player. ‘
        + ‘<a href=http://www.adobe.com/go/getflash/>Get Flash</a>’;
    document.write(alternateContent);  // insert non-flash content
  }
// –>
</script>

Combo box Selectlabel flex

From Farata Systems blog

Adobe Flex framework contains a pretty impressive library of the off-the-shelf controls, which can fit the bill for many of the Rich Internet Applications needs. And yet, it is just the tip of the iceberg, because Flex enables you to create, combine and/or extend existing components with a simplicity and elegance hardly ever offered by other GUI development systems.  In this article I’ll show you how to start extending a standard ComboBox component, which is  a combination of edit field, button and a dropdown list. We will be customizing the API and adding some new functionality, making our ComboBox  a bit handier than a standard one.

A typical task, while working with a standard ComboBox, is to programmatically select a specific value. Suppose our ComboBox is populated with array of states:

    private var usStates:Array=[
        {label:”New York”, data:”NY”},
        {label:”Colorado”, data:”CO”},
        {label:”Texas”, data:”TX”}                
    ];
    .   .   .   .   .   .   .   .
    <mx:ComboBox id=”cbx_states” dataProvider=”{usStates}”/>

To programmatically select Texas (to the visible portion of the ComboBox), you can write the following index-fetching loop, comparing val against the label of each element of dataProvider:

var val:String;

val = ’Texas’ ;
for (var i: int = 0; i < cbx.dataProdider.length; i++) {
  if ( val == cbx_states.dataProvider[i].label) {
    cbx_states.selectedIndex = i;
    break;
  }    
}

Alternatively, you could look up the data of dataProvider’s elements :

var val:String;

val = ‘TX’  ;
for (var i: int = 0; i < cbx.dataProdider.length; i++) {
  if ( val == cbx.dataProvider[i].data) {
    cbx_states.selectedIndex = i;
    break;
  }    
}

Either way these index-fetching loops will clutter the application code instead of simple cbx_states.value=‘Texas’. On top of that, index-fetching via data is often unapplicable. Consider real-life ComboBox records coming from databases, messages etc. We can’t “mandate” to these data sources to contain  data field in the relevant record sets. And while the  standard ComboBox provides the labelField property, allowing to draw a label value from an arbitrary property, there is not a dataField property, which would allow a similar flexibility for data.

So far we’ve identified areas for improvement in selecting or setting value. Now let’s look at the opposite opperations. Standard ComboBox offers the properties  selectedIndex and selectedItem. When a ComboBox is populated with strings, selectedItem  returns selected string (or null if nothing is selected). If it’s populated with objects, selectedItem references selected  object ( or contains null):

<mx:Application xmlns:mx=http://www.adobe.com/2006/mxml creationComplete=”onCreationComplete()”>

private function onCreationComplete():void {
    mx.control.Alert.show(cbx_states.selectedItem.label); // displays ‘New York’
    cbx_states.selectedIndex=-1;             //Removes initial selection
    mx.control.Alert.show(cbx_states.selectedItem); // “displays” null
}
.  .  .  .  .  .  .  .  .
</mx:Application>
    
Listing 1 Using selectedItem and selectedIndex properties

But wait, there is also a read-only value property:  if a selected object has something in the data property, value refers to  data, otherwise value refers to  the label:

    mx.control.Alert.show(cbx_states.value); // displays ‘NY’

As you can see value does a half of the job: it shields us from selectedItem/ selectedIndex. What we miss is another half and in the following sections we will turn value into a read-write property. That will forever absolve us from index-fetching loops to modify the ComboBox selection.

We will also introduce the dataField property which will support any arbitrary property in place of  data, depending on a  specific ComboBox instance

Making the  value Property Writeable
    
Let’s start with upgrading  the value to the first class writeable property. The simplest way to do this is by extending the original ComboBox so that derived class provides a special setter for the value property. The setter attempts to match the value with either data or label properties of the dataProvider. Once a match is found, it modifies the selectedIndex which should cause the ComboBox to select the matching object:
 
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:ComboBox xmlns:mx=”http://www.adobe.com/2006/mxml”  >
<mx:Script>
<![CDATA[
    public function set value(val:Object)  : void {
        if ( val != null ) {
            for (var i : int = 0; i < dataProvider.length; i++) {
                if ( val == dataProvider[i].data || val == dataProvider[i].label) {
                    selectedIndex = i;
                    return;
        }    }    }
        selectedIndex = -1;
    }
]]>
</mx:Script>
</mx:ComboBox>

Listing 2. ComboBox.mxml – Making the value property writeable

If the ComboBox.mxml is located under the com/theriabook/controls, its test application can look as in  Listing 3 below.

<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml&#8221; xmlns=”*” xmlns:lib=”com.theriabook.controls.*”>
    <mx:ArrayCollection id=”comboData” >
        <mx:Array>
            <mx:Object label=”New York” data=”NY”/>
            <mx:Object label=”Connecticut” data=”CT”/>
            <mx:Object label=”Illinois” data=”IL”/>
        </mx:Array>
    </mx:ArrayCollection>
    <mx:Label text=”Current bound value is ‘{cbx_1.value}’ ” />
    <lib:ComboBox id=”cbx_1″ value=”IL” width=”150″ dataProvider=”{comboData}”/>
</mx:Application>

Listing 3. Using our new ComboBox

Run this  application,  and you’ll see the ComboBox displaying the value New York… while we  would expect Illinois. We forgot about the order in which objects’ properties (cbx_1) get initialized. In particular, the  value property is initialized before the dataProvider. And, since during dataProvider initialization ComboBox, by default, selects the first item, the work performed by our value setter is wasted. You can prove the point by just trading places of value and dataProvider in the above application code.

Should we rely on the order of attributes in MXML components? Apparently not. Especially when Flex offers an excellent mechanism to coordinate the updates to multiple properties of the control – the commitProperties() method.

Here is how it works: whenever you need to modify a property raise some indicator, store the value in the temporary variable and call invalidateProperties(), like in the following snippet:

    private var candidateValue:Object;
    private var valueDirty:Boolean = false;

    public function set value(val:Object)  : void {
        candidateValue = val;
        valueDirty = true;        
        invalidateProperties();
    }

In response to invalidateProperties() Flex will schedule a call of commitProperties() for a later execution,  so that all property changes deferred in the above manner can be consolidated in a single place and in the pre-determined order:

    override protected function commitProperties():void {
        super.commitProperties();

        if (dataProviderDirty)    {
            super.dataProvider = candidateDataProvider;
            dataProviderDirty = false;
        }

        if (valueDirty) {
            applyValue(candidateValue);
            valueDirty = false;
        }            
        }

Aside of co-ordinating updates to different properties, this coding pattern helps to avoid multiple updates to the same property and, in general, allows setter methods to return faster, improving the overall performance of the control. The entire code of our “value-aware” ComboBox is presented in Listing 4:

<?xml version=”1.0″ encoding=”utf-8″?>
<mx:ComboBox xmlns:mx=”http://www.adobe.com/2006/mxml&#8221; >
<mx:Script>
    <![CDATA[
    
    private var candidateValue:Object;
    private var valueDirty:Boolean = false;
    private var candidateDataProvider:Object;
    private var dataProviderDirty:Boolean = false;
    
    private function applyValue(val:Object):void {
        if ((val != null) && (dataProvider != null)) {
                
            for (var i : int = 0; i < dataProvider.length; i++) {
                if ( val == dataProvider[i].data || val == dataProvider[i].label) {
                    selectedIndex = i;
                    return;
        }    }    }
        selectedIndex = -1;
    }    

    public function set value(val:Object)  : void {
        candidateValue = val;
        valueDirty = true;        
        invalidateProperties();
    }
    override public function set dataProvider(value:Object):void {
        candidateDataProvider = value;
        dataProviderDirty = true;
        invalidateProperties();
    }

    override protected function commitProperties():void {
        super.commitProperties();

        if (dataProviderDirty)    {
            super.dataProvider = candidateDataProvider;
            dataProviderDirty = false;
        }

        if (valueDirty) {
            applyValue(candidateValue);
            valueDirty = false;
        }            
    }        
    ]]>
</mx:Script>
</mx:ComboBox>

 
Listing 4. The value-aware ComboBox

Now everything works as expected. The screenshot of the running application is presented below:


Figure 1. The “value-aware” ComboBox in action

If you change the ComboBox selection, the top label, which initially contains Current bound value is “IL” will change accordingly. No miracles here, a regular Flex data binding one would say. Indeed, good things are easy to take for granted. Still, we have not provided any binding declarations or binding code in our ComboBox. So why does it work? It works because the original Flex definition of value getter ComboBox has already been marked with metadata tag [“Bindable”], which makes the property bindable (you do not have to have a setter to be bindable):

[Bindable(“change”)]
[Bindable(“valueCommitted”)]

But wait, you may say, these binding definitions indicate  that data modifications bound to value property get triggered in response to events change or valueCommitted. Yet our value setter does not contain a single  dispatchEvent call. Where is the catch? Events are dispatched inside the code that assigns  selectedIndex. This assignment results in invocation of selectedIndex setter, which ultimately dispatches events.

Change Color, weight , font size of tree node

 Write a Actionscript class which extends “TreeItemRenderer” as below, and use this class in ur tree tag as

<mx:Tree id=”tree” itemRenderer=”MyTreeItemRenderer ” />

 

Actionscript class
package 
{
 import mx.controls.treeClasses.*;
 import mx.collections.*;
public class MyTreeItemRenderer extends TreeItemRenderer
          {
                     
                public function MyTreeItemRenderer() 
               {
                         super();
                        mouseEnabled = false;
                }
               override public function set data(value:Object):void
                 {
                        super.data = value;
                        if(TreeListData (super.listData).hasChildren)
                     {
                           setStyle(“color”, 0xff0000);
                              setStyle(“fontWeight”, ‘bold’);
                      }
                       else
                      {
                           setStyle(“color”, 0x000000);
                          setStyle(“fontWeight”, ‘normal’);

                        }
             }

             override protected function updateDisplayList(unscaledWidth:Number, 
unscaledHeight:Number):void
             {
                  super.updateDisplayList(unscaledWidth, unscaledHeight);
                    if(super.data)
                    {
                        if(TreeListData(super.listData).hasChildren)
                       {
                                var tmp:XMLList = new XMLList(TreeListData(super.listData).node);
                                var myStr:int =tmp[0].children().length();
                                super.label.text = TreeListData(super.listData).text + “(” + myStr + “)”;
                          }

                }

          }
      }
 }

Regards,
Ranjit Sail

Logo Design

My first logo which went live

EASystems

EASystems

 

Thats The first step of litle kid