Archive for August, 2010

Flex 4 in a Week

Watch Flex4 videos from Adobe or refer torrent to download them

Flex 4 Best Explained on Pictures :

Flex 4 DOM Tree model – [Link]

New Flex 4, Spark Classes to be known

Flex4 Framework
spark.effects.AddAction
spark.effects.Animate
spark.effects.AnimateColor
spark.effects.AnimateFilter
spark.effects.AnimateTransitionShader
spark.effects.AnimateTransform
spark.effects.AnimateTransform3D
spark.effects.animation.Animation

mx.collections.ArrayList
spark.filters.BevelFilter
spark.primitives.BitmapImage
spark.layouts.supportclasses.Block
spark.filters.BlurFilter
spark.components.BorderContainer
spark.effects.easing.Bounce

spark.components.supportclasses.ButtonBarHorizontalLayout
spark.components.supportclasses.ButtonBase
spark.effects.CallAction
spark.components.CheckBox
spark.filters.ColorMatrixFilter
flash.geom.ColorTransform
spark.layouts.ColumnAlign
spark.components.ComboBox
spark.filters.ConvolutionFilter
spark.effects.CrossFade

spark.components.DataRenderer
spark.filters.DisplacementMapFilter

spark.layouts.supportclasses.DropLocation
spark.filters.DropShadowFilter
spark.components.mediaclasses.DynamicStreamingVideoSource
spark.components.mediaclasses.DynamicStreamingVideoItem
spark.effects.easing.Elastic
spark.primitives.Ellipse
spark.effects.Fade
spark.primitives.supportclasses.FilledElement
spark.filters.GlowFilter
spark.filters.GradientBevelFilter
spark.filters.GradientFilter
spark.filters.GradientGlowFilter
spark.primitives.Graphic
spark.primitives.supportclasses.GraphicElement

spark.components.supportclasses.GroupBase

spark.effects.interpolation.HSBInterpolator
spark.components.HScrollBar

spark.components.supportclasses.ItemRenderer
spark.effects.animation.Keyframe

spark.layouts.supportclasses.LayoutBase
spark.primitives.Line
spark.effects.easing.Linear

spark.components.supportclasses.ListBase
spark.core.MaskType
flash.geom.Matrix
flash.geom.Matrix3D
spark.effects.animation.MotionPath
spark.effects.Move
spark.effects.Move3D
spark.effects.interpolation.MultiValueInterpolator
spark.components.mediaclasses.MuteButton
spark.components.NavigatorContent
spark.effects.interpolation.NumberInterpolator

spark.primitives.Path
spark.components.PopUpAnchor
spark.components.PopUpPosition
spark.effects.easing.Power

spark.components.supportclasses.Range
spark.primitives.Rect
spark.primitives.RectangularDropShadow
mx.collections.AsyncListView
spark.effects.RemoveAction
spark.effects.Resize
spark.effects.interpolation.RGBInterpolator
spark.components.RichEditableText
spark.components.RichText
spark.effects.Rotate
spark.effects.Rotate3D
spark.layouts.RowAlign
spark.effects.Scale
spark.effects.Scale3D
spark.components.supportclasses.ScrollBarBase
spark.components.Scroller
spark.components.supportclasses.ScrollerLayout
spark.components.mediaclasses.ScrubBar
spark.effects.SetAction
spark.filters.ShaderFilter
spark.effects.animation.SimpleMotionPath
spark.effects.easing.Sine
spark.components.supportclasses.Skin
spark.components.supportclasses.SkinnableComponent
spark.components.SkinnableContainer
spark.components.supportclasses.SkinnableContainerBase
spark.components.SkinnableDataContainer
spark.components.supportclasses.SkinnableTextBase
spark.components.supportclasses.SliderBase
spark.skins.SparkSkin
spark.components.Spinner
spark.core.SpriteVisualElement
spark.primitives.supportclasses.StrokedElement
spark.components.TabBar

spark.components.supportclasses.TextBase

spark.components.TextSelectionHighlighting
spark.utils.TextUtil
spark.components.TileGroup
spark.layouts.TileLayout
spark.layouts.TileOrientation
spark.effects.animation.Timeline
spark.components.TitleWindow
spark.components.ToggleButton
spark.components.supportclasses.ToggleButtonBase
spark.components.supportclasses.TrackBase
mx.geom.Transform
mx.geom.TransformOffsets
spark.components.VideoDisplay
spark.components.VideoPlayer
spark.components.mediaclasses.VolumeBar
spark.effects.Wipe
mx.collections.XMLListCollection

Special Components
mx.states.AddItems

airframework
spark.components.windowclasses.TitleBar

FTE text for MX components
mx.controls.dataGridclasses.FTEDataGridItemRenderer
mx.controls.MXFTETextInput
mx.controls.advancedDataGridclasses.FTEAdvancedDataGridItemRenderer

Text Layout Framework (TLF)
flashx.textLayout.elements.LinkElement
flashx.textLayout.elements.BreakElement
flashx.textLayout.elements.DivElement
flashx.textLayout.elements.InlineGraphicElement
flashx.textLayout.elements.ParagraphElement
flashx.textLayout.elements.SpanElement
flashx.textLayout.elements.TabElement
flashx.textLayout.elements.TCYElement
flashx.textLayout.elements.TextFlow
flashx.textLayout.formats.TextLayoutFormat


mx.rpc.CallResponder
mx.messaging.channels.HTTPChannel
mx.rpc.remoting.mxml.Operation
mx.messaging.channels.SecureHTTPChannel
mx.messaging.channels.SecureStreamingHTTPChannel
mx.messaging.channels.SecureRTMPChannel
mx.messaging.channels.StreamingHTTPChannel

Flex 3 Graphics
mx.geom.CompoundTransform
mx.graphics.GradientEntry
mx.graphics.LinearGradient
mx.graphics.LinearGradientStroke
mx.graphics.RadialGradient
mx.graphics.RadialGradientStroke
mx.graphics.SolidColor
mx.graphics.SolidColorStroke
mx.graphics.Stroke
mx.geom.Transform

Flex 3 Miscellaneous
mx.logging.targets.MiniDebugTarget
mx.logging.targets.TraceTarget

MXItemRenderer
mx.controls.listclasses.MXItemRenderer
mx.controls.treeclasses.MXTreeItemRenderer
mx.controls.dataGridclasses.MXDataGridItemRenderer
mx.controls.advancedDataGridclasses.MXAdvancedDataGridItemRenderer

Things i learnt new from ACE -Flex4

ACE exam was a good learning experience for me, I came to learn about these new things yesterday.

  • saveCache is used in LCDS for offline mode saving.
  • Native Platform style is default setting for AIR.
  • FileMode.Update is used to make the both file writing and reading.
  • AcceptDragDrop is the method used to accept an DragObject and DoDrag is to initiate the dragging.
  • SQLConnection is the class used for setting SQLLite into write mode.
  • SQLStatement class property “text” is used for the sql querying purpose.
  • mouseDownEffect also can be used to set the Effect on MouseClick.
  • widthInChars is new property for TextInput which can be used to set width.
  • AIR can access the methods of loaded SWF by default.

Flex 4 ACE Questions

Passed ACE Certification with Flex4.

The differences of Flex3 and Flex 4 certifications
1/ more questions – 59 questions (previously 50)
2/ more time – 90 minutes (previously 60 min) Don’t bother about time factor you will have at least 30 minutes spare time for review.
3/ UI have more share among questions 35 %
4/ In Flex_Exam_Guide – They didn’t mentioned about LCDS, but we got Questions from LCDS too.

Tips:
1/ Do use attest, as it is the only resource we have for mockup
2/ Unlike Attest the questions will be in shuffled order
3/ While you attend ACE, don’t forget to use “Flag for review”, whenever you have doubt on your answer.
4/ The Questionnaire will be different for everyone

The below are some important topics, these areas required to be refreshed before attempting ACE.

LCDS
RemoteObject vs. Webservice vs. HTTPService

Flex3
[RemoteClass],[Bindable] Metadatas,E4X xml query, Labelfunction and Labelfield usage,Custom Event, Producer, consumer, validator,TabNavigator ,viewstack, setStyle, BlendMode, Modules vs. Sub Applications and formatter

OOPS
Interface, Encapsulation, Design patterns, access modifiers, Constructor and getter setters

AIR:
native platform in AIR Application,File management in AIR, Preloader, Drag and Drop in AIR, Security Sandbox in AIR, SQL Lite in AIR, create a Native AIR Application, Badge Installer in AIR

Spark :
working with state, ArrayList vs. Arraycollection, Animate, constraint layout in Spark Components, orientation of Child components,effects, create a custom component, Two-Way Binding, IVisualElement, ItemRenderer, LayoutBase, SkinnableComponent, TextInput, CSS namespace declaration, Descendant ID Type Class CSS types and Group

Dynamic Injection on runtime using BeanFactory

Met with requirement to inject object dynamically at runtime based on Push Message received.

Had a bit hard time finding solution, unusual with Swiz Framework.
Thought of sharing my experience here..
Step 1: In swiz Context assign the bean factory to your Bean Class

messenger.beanFactory = this.beanFactory;

Step 2:
In your bean class, Implement Interface IBeanFactoryAware
public class NativeMessenger implements IBeanFactoryAware

Step 3:
To Satisfy the implementation add the below code:
private var _beanFactory:IBeanFactory;
public function set beanFactory( beanFactory:IBeanFactory ):void{
_beanFactory = beanFactory;
}
Step 4:
Got access to Beanfactory
public var dynamicDAO:AbstractDAO;
protected function consumeHandler(event:MessageEvent =null) : void
{
var daoName:String = event.message.headers[“dynamicdao”];
dynamicDAO = _beanFactory.getBeanByName(daoName).source as AbstractDAO;
}

Now the dynamicDAO is assigned with the bean dynamically based on the consumer Message.