> There was a long post (before Xmas) about the examples
> of custom styles on components on LiveDocs not actually working

If the doc examples don't work, I suggest that you file a bug to get
them fixed and instead look at the actual framework source code. You can
see exactly how our components implement styles that work properly and
require minimal implementation effort.

> I can't see why I'd prefer two files over one.

You should prefer declaring default styles in CSS because this can
produce smaller SWFs. If you instead write class initialization code to
create a CSSStyleDeclaration representing a default type selector for
your component, that code will get linked into your SWF even if it the
developer using your component writes her own type selector in CSS. If
you write your default type selector in CSS, that doesn't happen.

Also, writing a CSS selector is considerably simpler than writing the
ActionScript for a factory function for a CSSStyleDeclaration and
getting that CSSStyleDeclaration installed into the StyleManager.

> It wouldn't be much of a component if it had no children

A component can have children which can look at the component's styles
to determine how to draw themselves, without that component having to
override styleChanged(). You need to override styleChanged() only in
rarer cases, such as when changing the style requires new children to be
created or the child order to change. Take a look at the implementation
of styleChanged() in UIComponent to see what you get without overriding.
It has logic about when to call invalidateSize() and
invalidateDisplayList() on itself and its parent.

Gordon Smith
Adobe Flex SDK Team


-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Tom Chiverton
Sent: Thursday, January 10, 2008 2:45 AM
To: [email protected]
Subject: Re: [flexcoders] The 'right' way to do custom styles

On Wednesday 09 Jan 2008, Gordon Smith wrote:
> > a change boolean flag
>
> These are generally not necessary to implement styles. Where do you
see
> them in the framework components?

There was a long post (before Xmas) about the examples of custom styles
on 
components on LiveDocs not actually working, and an alternative method
(not 
found by me) that does work
http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhel
p.htm?context=LiveDocs_Book_Parts&file=skinstyle_149_7.html
vs.
http://tech.groups.yahoo.com/group/flexcoders/message/92900 (and rest of

thread)

> With Flex 3, a SWC can contain a CSS file which you can use to define
> type selectors for your components, so you don't have to do this in
> ActionScript.

Nice to know, but I can't see why I'd prefer two files over one.

> > an if in each of styleChanged()
>
> Unless a component has styles which affect which children it has (such
> as skin styles), it generally doesn't even need to override
> styleChanged().

It wouldn't be much of a component if it had no children :-)

But, regardless of the impl. details, it's a tedious process that seems
to me 
to be automatable.

-- 
Tom Chiverton
Helping to assertively develop bleeding-edge convergence
on: http://thefalken.livejournal.com

****************************************************

This email is sent for and on behalf of Halliwells LLP.

Halliwells LLP is a limited liability partnership registered in England
and Wales under registered number OC307980 whose registered office
address is at Halliwells LLP, 3 Hardman Square, Spinningfields,
Manchester, M3 3EB.  A list of members is available for inspection at
the registered office. Any reference to a partner in relation to
Halliwells LLP means a member of Halliwells LLP.  Regulated by The
Solicitors Regulation Authority.

CONFIDENTIALITY

This email is intended only for the use of the addressee named above and
may be confidential or legally privileged.  If you are not the addressee
you must not read it and must not use any information contained in nor
copy it nor inform any person other than Halliwells LLP or the addressee
of its existence or contents.  If you have received this email in error
please delete it and notify Halliwells LLP IT Department on 0870 365
2500.

For more information about Halliwells LLP visit www.halliwells.com.


--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives:
http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links



Reply via email to