Thursday, November 20, 2008

Flex inheritance.

Let B be a base class, E - a class extending B, and X be some random class that does not extend B nor E. By default all fields and methods in AS3 are declared internal, so if you did not provide a scope specifier for your method/field, it will be treated as internal.

Scope specifiers available in AS3:
  • public methods and fields are visible to code anywhere (Both E and X have access to those).
  • private fields and methods are visible only within the class defining them (E has no access to any private fields or methods from B, nor does X)
  • protected fields and methods are visible to the class defining it and all subclasses (E has access to protected entities, independent of the package it belongs to, but X has no acces to them).
  • internal methods and fields are accessible by all classes in the same package and can onlny be inherited by a class in the same package (E has access to internal only if E belongs to the same package as B, same applies for X.)
More detailed discussion on inheritance in ActionScript 3.0: here

Monday, November 10, 2008

To force child to show scroll bars instead of resizing the parent: set parent's minHeight = 0, height = 100% and that should do it.

Thursday, August 28, 2008

sacred knowledge on component sizing in Flex:

(5:52:03 PM) Michael VanDaniker: if you set width explicitly, explicitWidth gets set :)
(5:52:14 PM) Michael VanDaniker: but if you use percentage widths
(5:52:46 PM) Michael VanDaniker: or just let the child figure out its own width and let the parent do the sizing, then explicitWidth will not get set
(5:53:40 PM) Darya Filippova: can yu elaborate on teh last sentence plz?
(5:55:32 PM) Michael VanDaniker: if you create a component, say a Label, and don't set it's width and height, measure will get called. in the case of the Label, this will set measuredWidth and measuredHeight based on the text measurements. when you access myLabel.width you'll get the measuredWidth back. if you do set the width, you'll get that width instead
(5:55:52 PM) Michael VanDaniker: the explicitWidth
(5:57:47 PM) Michael VanDaniker: basically, component have an idea of what their sizes should be (measuredWidth and measuredHeight), but you can override that (explicitWidth and explicitHeight). the setters for width and height act as proxies for explicitWidth and explicitHeight while the getters return measuredWidth and measuredHeight if you haven't explicitly set the width and height
(5:57:47 PM) Darya Filippova: really
(5:58:18 PM) Darya Filippova: alright, I'll work with this knowledge
(5:58:44 PM) Darya Filippova: did you learn this from source code?

Monday, August 18, 2008

component chooser:

-guides you through series of questions that help you narrow down your selection of an appropriate component for the dataset

Wednesday, August 13, 2008

Thursday, July 10, 2008

installing CFEclipse for Eclipse Ganymede: installation goes ok, but then clicking on a *.cfm page won't open the CFM editor (exception: could not load class definition). solution: check java version, it has to be at or above 1.5

Thursday, June 12, 2008

Useful properties in combo:
prompt
displays a string when selectedIndex = -1

Friday, April 04, 2008

how to get remoting to work if ColdFusion is deployed on the J2EE server (for example, Apache):

flex Project settings:
flex Server settings: root folder should point to the Application server root (say, C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\)
root url: http://localhost/ (whatever is defined as your root in the server's config, for apache, it is httpd.config)
flex compiler settings: add line:
-services "C:\ColdFusion8\wwwroot\WEB-INF\flex\services-config.xml". Tells where to look for services definitions. If you services-config.xml is elsewhere, point to that destination.

flex build Path:
should point to the output folder for your application under server root
(C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\HelloWorld_ro)

what to put in those folders:
after you compile the project, the HelloWorld_ro folder will contain the swf and html files generated for you by Flex.
CFC files should be in the server root dir (not in a folder though... still working on that), in my case - htdocs.

should work!

Wednesday, January 16, 2008

To go through an array one can use:

cfloop array=#MyArray# index="myIndex"

Wednesday, January 09, 2008

Scoping
Sometimes you need to catch events from an itemRenderer, but most likely you'll get "call to a possible undefined function" error. That is because the itemRenderer has a different scope than other objects on the page and does not see any of the page's code. Instead of using this:

event="{eventHandler();}"

you should use the following:

event="{outerDocument.eventHandler();}"