Funny you mention the styling thing. Initially I was doing that on the instance. But that didn't settle well with me as a) I know how much setStyle is in terms of performance costs and b) like you pointed out, it overrides any instance's styles set in MXML.
But I did find the article which is basically what you advise about doing a static style initialization method. http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=skinstyle_149_7.html Thanks for the input on that. As for the casting thing. I guess its just an old habit. As for the super.setStyle, that was part of the old, poorly coded styling for this custom component. I have since updated the source (as of last night) to fix most of those issues. --- In [email protected], "Michael Schmalle" <[EMAIL PROTECTED]> wrote: > > Ah, another thing; > > There is no need to cast this; > > var tg:Number = Number(getStyle("titleGap")); > > If the style is not set, it will automajically be NaN that you can test for. > > Why do you call super? > > super.setStyle("borderSkin", FieldSetBorder); > > > No need to. > > I wouldn't call a layout method from a setter; > > title :: > > layoutChrome(unscaledWidth, unscaledHeight); > > > With that property, do this. > > public function set title (value:String):void > { > if (value != _title) > { > _title = value; > titleChanged = true; > // text updates first in commitProperties() > invalidateProperties(); > // now that you have set text, layoutChrome() will be called > // from this invalidatin > invalidateDisplayList(); > } > } > > override protected function commitProperties():void > { > super.commitProperties() > > if (titleChanged) > { > if (_titleTextField) > _titleTextField.text = _title; > titleChanged = false; > } > } > > > Peace, Mike > > > On 5/1/07, Michael Schmalle <[EMAIL PROTECTED]> wrote: > > > > Hi, > > > > Just some advice from a fellow component dev. > > > > protected function setDefaultStyles ():void { > > > > var tg:Number = getStyle("titleGap"); > > if (!isNaN(tg)) > > _titleGap = tg; > > > > > > setStyle("titleGap", _titleGap); > > > > setStyle("borderStyle", "solid"); > > setStyle("borderSkin", FieldSetBorder); > > > > > > } > > > > I wouldn't use set style in your class. If some one wants to override that > > style in a TypeSelector, they can't > > > > IE > > > > FieldSet { > > titleGap:30; > > } > > > > Since you already committed it on the instance, it's stuck without calling > > setStyle() or clearStyle(). > > > > Try creating a static loader when the class is loaded, create the > > TypeSelector FieldSet and create a default factory. > > > > IE > > > > > > /** > > * @private > > */ > > private static var stylesInited:Boolean = initStyles(); > > > > /** > > * @private > > */ > > private static function initStyles():Boolean > > { > > var styles:CSSStyleDeclaration = > > StyleManager.getStyleDeclaration(FieldSet'); > > > > if (!selector) > > { > > styles= new CSSStyleDeclaration(); > > StyleManager.setStyleDeclaration('FieldSet', styles, false); > > } > > > > styles.defaultFactory = function():void > > { > > this.titleGap= 10; > > this.borderStyle = "solid"; > > } > > > > return true; > > } > > > > I use a factory class to give me a new selector. Saves you from having to > > write it over and over again. > > > > IE > > > > var styles:CSSStyleDeclaration = > > FSCollectionDefaults.createSelector("FormItemFX"); > > > > Peace, Mike > > > > On 5/1/07, jwopitz < [EMAIL PROTECTED]> wrote: > > > > > > The source is now up there. You can use SVN to get the latest from > > > the repository: *http*://jwopitz- lib.googlecode.com/svn/trunk/ > > > > > > This is the link to view it in your browser: > > > http://jwopitz-lib.googlecode.com/svn/ > > > > > > On 5/1/07, Bjorn Schultheiss < [EMAIL PROTECTED]> wrote: > > > > > > > > Hey jwoptiz, > > > > > > > > Is it possible to get the source for this component. > > > > I've noticed the swc on google code, but i'm more after the source as > > > > files. > > > > > > > > I plan to use it on an existing project and extend it further, with > > > > functionality such as drag and drop support. > > > > > > > > > > > > Regards, > > > > > > > > Bjorn Schultheiss > > > > Senior Developer > > > > > > > > Personalised Communication Power > > > > > > > > Level 2, 31 Coventry St. > > > > South Melbourne 3205, > > > > VIC Australia > > > > > > > > T: +61 3 9674 7400 > > > > F: +61 3 9645 9160 > > > > W: http://www.qdc.net.au > > > > > > > > ((------------This transmission is confidential and intended solely > > > > for the person or organization to whom it is addressed. It may contain > > > > privileged and confidential information. If you are not the intended > > > > recipient, you should not copy, distribute or take any action in reliance on > > > > it. If you believe you received this transmission in error, please notify > > > > the sender.---------------)) > > > > > > > > > > > > http://www.geocitie s.com/jwopitz/portfolio/ tileCanvas/ > > > > TileCanvasTest. swf > > > > > > > > Any comments, constructive criticism, etc. are appreciated. It is > > > > still a work in progress. > > > > > > > > I need to work on a few things: > > > > - better drag/drop functionality > > > > - data accommodations from other components > > > > > > > > Once I get my code base straightened out, I will post the source as > > > > well. > > > > > > > > Thanks, > > > > jwopitz > > > > > > > > [EMAIL PROTECTED] com <jwopitz%40gmail.com> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > justin w. opitz > > > 617.771.6639 > > > jwopitz(at)gmail.com > > > > > > > > > > > > > > > > > -- > > Teoti Graphix > > http://www.teotigraphix.com > > > > Blog - Flex2Components > > http://www.flex2components.com > > > > You can find more by solving the problem then by 'asking the question'. > > > > > > -- > Teoti Graphix > http://www.teotigraphix.com > > Blog - Flex2Components > http://www.flex2components.com > > You can find more by solving the problem then by 'asking the question'. >
