The reason for .DataGridListArea is that the SWF side does not recognize a
selector of:
DataGrid Container { ... }
So I gave the Container used for the list area a class name. Perhaps I can try
to change it to a type name and see if that's more helpful and if so look at
replacing as many specialty class names with type selectors.
Peter
> On May 15, 2017, at 11:46 AM, Alex Harui <[email protected]> wrote:
>
> Hi,
>
> While waiting for more folks to examine the release branch packages, I try
> find time to find easy ways to make HelloWorld smaller. Currently, it is
> 62K of minified JS. IMO, that's too big!
>
> I think I can get some classes to drop away via more
> @flexjsignorecoercions. The list of interfaces in the output is pretty
> large and I'll bet most are not needed at runtime.
>
> But another sore spot for me is the CSS output. This is true even for
> regular Flex: the CSS output contains EVERY class selector. The compiler
> knows how to prune out unused type selectors, but it always keeps every
> class selector. IOW, if you look at the CSS and see ".DataGridListArea",
> that's a class selector. But if you see "DataGrid" (no starting '.')
> that’s a type selector and for HelloWorld, which has just a Label, the
> DataGrid type selector is not in the output and any dependencies it brings
> it are not in the output either.
>
> But in HelloWorld today, ".DataGridListArea" is in the output for
> HelloWorld. In looking at the compiler code, we could somehow mark our
> class selectors in a way that they will be removed if the type related to
> the name isn't in the output. IOW, we need to know to keep class
> selectors like ".myClassSelector", but know to get rid of
> .DataGridListArea if DataGrid is not in the output.
>
> I've worked around this in the past by creating new classes. In this
> case, if .DataGridListArea is applied to a Group, then make a subclass of
> Group called DataGridListArea and change the class selector to a type
> selector. The problem is that the definition of the DataGridListArea
> class takes up room in the output, so it would be slightly better to find
> a way to prune class selectors.
>
> Maybe class selectors we want to prune should start with the type name
> surrounded by '$", so .$DataGrid$ListArea. Then the compiler could easily
> check for two '$' and see if the class in-between is being kept in the
> output or not.
>
> Thoughts?
> -Alex
>