1. Is it possible to make httpService Requests synchronous in adobe flex?

No.
Basically, what we are about to do is creating XMLHttpRequest with Javascript in Flex, and calling a server data with the parameters we will give to the object.
e.g. xmlHttpRequest.open("GET","http://localhost/Default.aspx",false);
1. Request Type: GET or POST
2. Requested URL
3. Communication Type: true for asynchronous, false for synchronous.

2. I need to load an image from flickr into my application. Do I need a crossdomain.xml file on flickr?

File is already there , we need to register our ip address to flicker's crossdomain.xml
Since the images are located on a flickr server like farm1.static.flickr.com and there is no crossdomain.xml file on that server (there is a crossdomain.xml for api.flickr.com so you can use the api) that means you can't get access to the bitmapData of the loaded images when you load them from flickr. This is dumb, but that's the way it is. So you can load images just fine, but the reflection class copies the bitmapData of the image, so that doesn't work if you load them straight from the flickr server. I also wanted to set bitmap smoothing to true on the images so the thumbnails don't look as pixelated, and that also requires access to the bitmapData of the loaded image.

So the answer is to create a proxy that loads the flickr image so it appears to come from the same domain.

3. What is the difference between httpService and Data Service?

The services-config.xml configuration file is required at compile time if the Flex application uses Flex Data Services. In the case of RPC services, this applies to all applications that use RemoteObject or proxy-based WebService or HTTPService.

5. Have you built any components with actionscript? If so explain how you did it?

CountryComboBox.as
package components
{ import mx.controls.ComboBox;
public class CountryComboBox extends ComboBox
{ public function CountryComboBox()
{ dataProvider = [ "United States", "United Kingdom" ];
}

}
}

<?xml version="1.0" encoding="utf-8"?>

<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:custom="components.*"
width="220" height="115"
>

<custom:CountryComboBox />
</mx:Application>

6. How do you implement push on a flex applications?

Using BlazeDS Server, LiveCycle Data Services

7. I am going to add images into a tag. How will it resize itself in adobe flex actionscript?

To let Flex resize the image as part of laying out your application, set the height or width properties to a percentage value. Flex attempts to resize components with percentage values for these properties to the specified percentage of their parent container.

Or by default, Flex does not resize the image. The scaleContent property has a default value of true, therefore, Flex scales the image as it resizes it to fit the specified height and width. The aspect ratio is maintained by default, so the image may not completely fill the designated space. Set the scaleContent property to false to disable scaling. Set the maintainAspectRatio property to false to allow an image to fill all available space regardless of its dimensions.

8. What is a resource Manager in flex actionscript?

The ResourceManager - now handles access to all localized resources in an application. Any components that extend UIComponent, Formatter, or Validator now have a new resourceManager property, which lets you easily access the singleton instance of this manager. If you're writing some other kind of class that needs to use the ResourceManager, you can call ResourceManager.getInstance() to get a reference to it.

9. What are the similarities between java and flex?

Both can be used as client application, both have packages, OOP based , support XML , import external packages, up casting, support ArrayCollection ,almost same primitive data types, both support class library packaging( .jar , .swc).

10. What is the dynamic keyword used for in flex actionscript?

Specifies that instances of a class may possess dynamic properties added at runtime. If you use the dynamic attribute on a class, you can add properties to instances of that class at runtime. Classes that are not marked as dynamic are considered sealed, which means that properties cannot be added to instances of the class.

Download Interview PDF

12. What are the methods called when a UI component is intialized?

All components dispatch the following events that let you specify ActionScript to initialize a component:
preInitialize
Dispatched when a component has been created in a rough state, and no children have been created.
initialize
Dispatched when a component and all its children have been created, but before the component size has been determined.
creationComplete
Dispatched when the component has been laid out and the component is visible (if appropriate).

13. Can you write to the file system from flex?

Yes .
import flash.filesystem.*;
private var stream:FileStream;
private function saveFile():void{
var file:File = File.desktopDirectory.resolvePath("HelloWorld.txt");
var stream:FileStream = new FileStream()
stream.open(file, FileMode.WRITE);
var str:String = "Congratulations on your 1st file, Rich Tretola - EverythingFlex.com";
stream.writeUTFBytes(str);
stream.close();
mx.controls.Alert.show("File has been saved to n" + file.nativePath, "Notice");

14. What is a drag manager in adobe flex actionscript?

The Flex Drag and Drop Manager lets you select an object, such as an item in a List control, or a Flex control, such as an Image control, and then drag it over another component to add it to that component.

15. How do we call javascript from Flex actionscript?

Using the ExternalInterface API to access JavaScript from Flex and Using the navigateToURL() method in Flex. The navigateToURL() method is in the flash.net package
flash.external.ExternalInterface.call(function_name:String[, arg1, ...]):Object;
navigateToURL(request:URLRequest, window:String):void

16. How do you use a repeater in actionscript?

<mx:Application>
<mx:Script>
<![CDATA[
[Bindable]
public var myArray:Array=[1,2,3,4];
]]>
</mx:Script>
<mx:Panel title="Repeater: emulating a for loop" paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10">
<mx:Repeater id="myRep" dataProvider="{myArray}">
<mx:Label id="myLabel" text="This is loop #{myRep.currentIndex}"/>
</mx:Repeater>
</mx:Panel>
</mx:Application>

17. what are three ways to skin a component in flex?

Skinning is the process of changing the appearance of a component by modifying or replacing its visual elements. These elements can be made up of images, SWF files, or class files that contain drawing API methods.
There are several ways that you can define skins: inline, by using the setStyle() method, and by using Cascading Style Sheets (CSS).

18. How do we use css styles in flex?

External styles are defined in a separate file and can be used in any MXML file that references the CSS file. You reference a CSS file into an MXML file with the source property of the <mx:Style> tag, as follows:
<mx:Style source="../siteStyles.css"/>
Embedded styles are defined in an MXML file and can only be used in that file. Embedded styles are defined with the <mx:Style> tag, as follows:
<mx:Style>
.myclass { background-color: xFF0000 }
TextInput { font-family: Helvetica; font-size: 12pt }
</mx:Style>
<mx:Canvas>
<mx:Button styleName="myclass">
</mx:Canvas>

Inline styles are defined in an MXML tag and can only be used in that tag. Inline styles are defined as follows:
<mx:Button color="red"...>
<mx:TextInput fontFamily="Helvetica" fontSize="12"...>

19. What is the difference between sealed class and dynamic classes in flex?

Classes are sealed by default, i.e. properties cannot be added dynamically at runtime.
* Dynamic classes can add additional dynamic properties at runtime; sealed classes cannot.
* Sealed classes conserve memory because no internal hash table is needed to store dynamic properties, and the compiler can provide better error feedback.

20. What is MVC and how do you relate it to flex apps?

(Separation of concerns) The goal of the Model-View-Controller (MVC) architecture is that by creating components with a well-defined and limited scope in your application, you increase the reusability of the components and improve the maintainability of the overall system. Using the MVC architecture, you can partition your system into three categories of components:
* Model components Encapsulates data and behaviors related to the data.
* View components Defines your application's user interface.
* Controller components Handles the data interconnectivity in your application.

21. What is state? what is the difference between states and ViewStack in flex?

The State class defines a view state, a particular view of a component. For example, a product thumbnail could have two view states; a base view state with minimal information, and a rich view state with additional information. The overrides property specifies a set of child classes to add or remove from the base view state, and properties, styles, and event handlers to set when the view state is in effect.
You use the State class in the states property of Flex components. You can only specify a states property at the root of an application or a custom control, not on child controls.

Difference between states and ViewStack in flex:
* View Stack is to handle different MXML file eg TAB control and states is the transition within single MXML file.
* ViewStack should be used were there is complete change in the controls used and States should be used when you just want to add or remove a
few components based on certain conditions.
* ViewStates are virtual state of an existing page apearing at an instance i.e. only one state can be shown at a time
while viewStack are collection of different view containers which can be shown at a time

22. How does item renderer work? How do we add item renderer at runtime in flex?

Each list control has a default mechanism for controlling the display of data, or view, and lets you override that default. To override the default view, you create a custom item renderer.
Note: With reusable inline item renderers you use data binding to bind to the item renderer. When you use a component as an item renderer, you do not use data binding but specify the name of the custom component to use as an item renderer.

Add itemrendrer at run time:
Create the basic item renderer. One of the things I needed to accomplish with my item renderer was the ability to add it to different columns (ie the dataField was not always the same). This meant I needed a way from within the renderer to determine what column it was bound to so I could get and display the correct data. To do this the renderer needs to implement the IDropInListItemRenderer. This interface allows the renderer to have access to information about the list and column it is in via the BaseListData and DataGridListData classes. The DataGridListData gives you everything you need to get the data required to make a flexible, reusable renderer.
To Modify itemrenderer at runtime we Need to use mx.core.ClassFactory. Basically, in order to change a Flex itemRenderer at runtime, you need to cast it to a type ClassFactory.

24. How polymorphism works on actionscript?

class UnpaidIntern extends Employee {
override public function receivePayment():Number {
return 0;
}
}

class Manager extends Employee {
override public function receivePayment():Number {
return baseSalary*3;
}
}

class Engineer extends Employee {
override public function receivePayment():Number {
return this.baseSalary*2;
}
}

class Employee {
internal var baseSalary:Number = 1000;
public function receivePayment():Number {
return this.baseSalary;
}
}

Download Interview PDF

25. How do we overload functions in actionscript?

Method overloading using namespaces. (?)