You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@royale.apache.org by Carlos Rovira <ca...@apache.org> on 2018/03/06 12:16:35 UTC

[CSS#26]

Hi Alex,

I'm looking into CSS compiler files and trying to see what to do. This for
the momento exceeds me, but I'll try to continue trying to understand this
part, but will need cross various emails with you:

For this one:

https://github.com/apache/royale-compiler/issues/26

I assume the point is in CSSReducer class (line 530), then I need to deal
with CSSFunctionCallPropertyValue

but first of all is what to do with  *linear-gradient(#3BB0FF, #1E36FA)'*
in SWF

I think this value could not be valid in SWF for "background", but in that
case:

* we can make it valid

or

* maybe for SWF there's some way to discriminate css rules for SWF and for
JS?

(In the end if we want JS and SWF match, I think we should support
linear-gradients in SWF in some way

Thanks

-- 
Carlos Rovira
http://about.me/carlosrovira

Re: [CSS#26]

Posted by Alex Harui <ah...@adobe.com.INVALID>.
Hi Carlos,

I don't think there is a previous implementation.  I believe that all
other functions in CSS that we've run into so far have been converted in
the output to a Number or String.  I think you can design any structure
you want, although primitive like an Array might have less overhead and is
already present in CSS output.

On the SWF side, whatever is in the structure is available via
ValuesManager and there are classes like SolidBackgroundBead that
interpret the values.  I think you'll end up writing an ActionScript class
like GradientBackgroundBead that gets the Array or whatever from
ValuesManager and draws the gradient.

HTH,
-Alex

On 3/6/18, 1:45 PM, "carlos.rovira@gmail.com on behalf of Carlos Rovira"
<carlos.rovira@gmail.com on behalf of carlosrovira@apache.org> wrote:

>Hi Alex,
>
>ok, so you said I need to create a data structure for linear-gradient that
>should be handled in each SWF and JS codes.
>But don't know from where I can start, maybe some guidance on where are
>located the other data structures and if there's one similar to check (and
>maybe copy in part)
>I think it could be the best to start with something is like a black box
>to
>me.
>
>Thanks
>
>
>2018-03-06 20:09 GMT+01:00 Alex Harui <ah...@adobe.com.invalid>:
>
>> Hi Carlos,
>>
>> Comments inline.
>>
>> On 3/6/18, 10:45 AM, "carlos.rovira@gmail.com on behalf of Carlos
>>Rovira"
>> <carlos.rovira@gmail.com on behalf of carlosrovira@apache.org> wrote:
>>
>> >Hi Alex,
>> >
>> >for SWF I think we should have something like [1] [2]
>> >
>> >what I don't know right now is what does royale compiler under the
>>hood to
>> >bring the "linear-gradient" values to the flash part, maybe generate
>>some
>> >AS3 code?
>>
>>
>> For SWF, CSS is encoded into a data structure of name value pairs.  The
>> value can be a String, Number, reference to a class, Array, probably
>>some
>> other things as well.
>>
>>
>>
>> >from there we can get those values and use in the flash code
>> >similar to the ones in the links posted right?
>>
>> The SWF code can do pretty much whatever it wants with those values.
>>The
>> goal is for the compiler to convert the CSS into a useful data structure
>> that doesn't take too much framework code to process.  So doing things
>> like converting RGBA to a hexadecimal number is preferred but there are
>>no
>> hard rules.
>>
>> >
>> >[1]
>> >https://na01.safelinks.protection.outlook.com/?url=
>> https%3A%2F%2Fhelp.adob
>> >e.com%2Fen_US%2FActionScript%2F3.0_ProgrammingAS3%2F&data=
>> 02%7C01%7Caharui
>> >%40adobe.com%7Cbb184bfb29e3488d18d008d5839278ef%
>> 7Cfa7b1b5a7b34438794aed2c1
>> >78decee1%7C0%7C0%7C636559587651768767&sdata=
>> JLVkx89M4pFDeFsDKaPDI1dS%2B%2B
>> >UThrZQRCYkljWU3dk%3D&reserved=0
>> >WS5b3ccc516d4fbf351e63e3d118a9b90204-7dd7.html
>> >[2]
>> >https://na01.safelinks.protection.outlook.com/?url=
>> http%3A%2F%2Fsnipplr.co
>> >m%2Fview%2F15005%2F&data=02%7C01%7Caharui%40adobe.com%
>> 7Cbb184bfb29e3488d18
>> >d008d5839278ef%7Cfa7b1b5a7b34438794aed2c178de
>> cee1%7C0%7C0%7C63655958765176
>> >8767&sdata=UI2AFgw68%2F%2BCUDnU5uh6l%2F6aCrbLmSipjynq8xW69cg%3D&
>> reserved=0
>> >
>> >For the compiler part, I'm really have to check for:
>> >
>> >background-image: linear-gradient(#3BB0FF, #1E36FA);
>> >
>> >or
>> >
>> >background: linear-gradient(#3BB0FF, #1E36FA);
>> >
>> >not for backgrounColor(s), but I suppose is the same
>> >
>> >(in this last case I guest we have some actual problems since in that
>> >compact mode, people could write many optional things and maybe this
>>are
>> >not processed right for the compiler.
>>
>> I don't know if linear-gradient can be specified in other CSS style
>> property values.  I guess it would be best to define a SWF data
>>structure
>> that best represents the data.  I see in a CSS spec that linear-gradient
>> can have lots of different parameters.  We want the compiler to handle
>> that and maybe output an array of values.  The framework can read that
>> array and determine how to draw the gradient.  The first thing in the
>> array could be the string "linear-gradient" so you know what follows.
>>
>> In Flex CSS there were often properties with names that ended with
>>"Alpha"
>> but that isn't CSS compliant.  Instead, it appears that alpha is
>>generally
>> specified via RGBA.  So the compiler and framework should probably
>>handle
>> RGBA instead of separate *Alpha properties.
>>
>> Good luck,
>> -Alex
>>
>> >
>> >thanks
>> >
>> >
>> >2018-03-06 17:36 GMT+01:00 Alex Harui <ah...@adobe.com.invalid>:
>> >
>> >> Hi Carlos,
>> >>
>> >> If you can find a way to handle linear-gradient for SWF that would be
>> >> great.  I don't know this area of the code that well, but I think you
>> >>have
>> >> at least 3 choices:
>> >>
>> >> 1) Alter the AST
>> >> 2) Output a String
>> >> 3) Reduce it to a function call.
>> >>
>> >> FWIW, #3 requires changing the reducer which seems scary.  I think
>>I've
>> >> avoided it so far.
>> >>
>> >> Options #1 and #2 are similar.  I think you can see that the parsing
>> >>sets
>> >> up a data structure with things like CSSRgbColorPropertyValue and
>> >> CSSFunctionCallPropertyValue.  It should be possible to see that a
>> >> CSSFunctionCallPropertyValue is a linear-gradient and swap it out for
>> >>some
>> >> other CSS structure that represents what the parser would have
>>generated
>> >> for:
>> >>
>> >> #1:  backgroundColors: #000000, #123456;
>> >> #2:  backgroundColor: "linearGradient(#000000, #123456)"
>> >>
>> >> For #1, there seems to already be custom styles that end with
>> >>"xxxColors"
>> >> (note plural) that have a list of colors.
>> >> For #2, you are trying to set backgroundColor to a String that the
>> >> framework could parse at runtime.
>> >>
>> >> Good luck,
>> >> -Alex
>> >>
>> >>
>> >> On 3/6/18, 4:16 AM, "carlos.rovira@gmail.com on behalf of Carlos
>> Rovira"
>> >> <carlos.rovira@gmail.com on behalf of carlosrovira@apache.org> wrote:
>> >>
>> >> >Hi Alex,
>> >> >
>> >> >I'm looking into CSS compiler files and trying to see what to do.
>>This
>> >>for
>> >> >the momento exceeds me, but I'll try to continue trying to
>>understand
>> >>this
>> >> >part, but will need cross various emails with you:
>> >> >
>> >> >For this one:
>> >> >
>> >> >https://na01.safelinks.protection.outlook.com/?url=
>> >> https%3A%2F%2Fgithub.co
>> >> >m%2Fapache%2Froyale-compiler%2Fissues%2F26&data=02%7C01%
>> >> 7Caharui%40adobe.c
>> >> >om%7C5cf94961f3994e02456208d5835c29f8%7Cfa7b1b5a7b34438794aed2c178de
>> >> cee1%7
>> >> >C0%7C0%7C636559354222273618&sdata=jCD9%2FvfKxdW0TKwiJhMO%
>> >> 2FI7zwGI6cWaMQUYP
>> >> >oTMk%2BJo%3D&reserved=0
>> >> >
>> >> >I assume the point is in CSSReducer class (line 530), then I need to
>> >>deal
>> >> >with CSSFunctionCallPropertyValue
>> >> >
>> >> >but first of all is what to do with  *linear-gradient(#3BB0FF,
>> >>#1E36FA)'*
>> >> >in SWF
>> >> >
>> >> >I think this value could not be valid in SWF for "background", but
>>in
>> >>that
>> >> >case:
>> >> >
>> >> >* we can make it valid
>> >> >
>> >> >or
>> >> >
>> >> >* maybe for SWF there's some way to discriminate css rules for SWF
>>and
>> >>for
>> >> >JS?
>> >> >
>> >> >(In the end if we want JS and SWF match, I think we should support
>> >> >linear-gradients in SWF in some way
>> >> >
>> >> >Thanks
>> >> >
>> >> >--
>> >> >Carlos Rovira
>> >> >https://na01.safelinks.protection.outlook.com/?url=
>> >> http%3A%2F%2Fabout.me%2
>> >> >Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%
>> >> 7C5cf94961f3994e02456208d5
>> >> >835c29f8%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%
>> >> 7C636559354222273618&s
>> >> >data=XOjs%2B44XE3iak7IvBiX3lajtbDPUe6XPBCKPg%2FGUqLU%3D&reserved=0
>> >>
>> >>
>> >
>> >
>> >--
>> >Carlos Rovira
>> >https://na01.safelinks.protection.outlook.com/?url=
>> http%3A%2F%2Fabout.me%2
>> >Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%
>> 7Cbb184bfb29e3488d18d008d5
>> >839278ef%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%
>> 7C636559587651768767&s
>> >data=hZupbvf5ZwbnAcTydxuZfuKn1L9JGgcK0rUwyeuVFOk%3D&reserved=0
>>
>>
>
>
>-- 
>Carlos Rovira
>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2
>Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C064b814537924627d4db08d5
>83abaa6a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636559695685841742&s
>data=lp%2F1Y98htJT3ICu%2F1jkn3CyFthsMzFtuY2TC3WT0BvU%3D&reserved=0


Re: [CSS#26]

Posted by Carlos Rovira <ca...@apache.org>.
Hi Alex,

ok, so you said I need to create a data structure for linear-gradient that
should be handled in each SWF and JS codes.
But don't know from where I can start, maybe some guidance on where are
located the other data structures and if there's one similar to check (and
maybe copy in part)
I think it could be the best to start with something is like a black box to
me.

Thanks


2018-03-06 20:09 GMT+01:00 Alex Harui <ah...@adobe.com.invalid>:

> Hi Carlos,
>
> Comments inline.
>
> On 3/6/18, 10:45 AM, "carlos.rovira@gmail.com on behalf of Carlos Rovira"
> <carlos.rovira@gmail.com on behalf of carlosrovira@apache.org> wrote:
>
> >Hi Alex,
> >
> >for SWF I think we should have something like [1] [2]
> >
> >what I don't know right now is what does royale compiler under the hood to
> >bring the "linear-gradient" values to the flash part, maybe generate some
> >AS3 code?
>
>
> For SWF, CSS is encoded into a data structure of name value pairs.  The
> value can be a String, Number, reference to a class, Array, probably some
> other things as well.
>
>
>
> >from there we can get those values and use in the flash code
> >similar to the ones in the links posted right?
>
> The SWF code can do pretty much whatever it wants with those values.  The
> goal is for the compiler to convert the CSS into a useful data structure
> that doesn't take too much framework code to process.  So doing things
> like converting RGBA to a hexadecimal number is preferred but there are no
> hard rules.
>
> >
> >[1]
> >https://na01.safelinks.protection.outlook.com/?url=
> https%3A%2F%2Fhelp.adob
> >e.com%2Fen_US%2FActionScript%2F3.0_ProgrammingAS3%2F&data=
> 02%7C01%7Caharui
> >%40adobe.com%7Cbb184bfb29e3488d18d008d5839278ef%
> 7Cfa7b1b5a7b34438794aed2c1
> >78decee1%7C0%7C0%7C636559587651768767&sdata=
> JLVkx89M4pFDeFsDKaPDI1dS%2B%2B
> >UThrZQRCYkljWU3dk%3D&reserved=0
> >WS5b3ccc516d4fbf351e63e3d118a9b90204-7dd7.html
> >[2]
> >https://na01.safelinks.protection.outlook.com/?url=
> http%3A%2F%2Fsnipplr.co
> >m%2Fview%2F15005%2F&data=02%7C01%7Caharui%40adobe.com%
> 7Cbb184bfb29e3488d18
> >d008d5839278ef%7Cfa7b1b5a7b34438794aed2c178de
> cee1%7C0%7C0%7C63655958765176
> >8767&sdata=UI2AFgw68%2F%2BCUDnU5uh6l%2F6aCrbLmSipjynq8xW69cg%3D&
> reserved=0
> >
> >For the compiler part, I'm really have to check for:
> >
> >background-image: linear-gradient(#3BB0FF, #1E36FA);
> >
> >or
> >
> >background: linear-gradient(#3BB0FF, #1E36FA);
> >
> >not for backgrounColor(s), but I suppose is the same
> >
> >(in this last case I guest we have some actual problems since in that
> >compact mode, people could write many optional things and maybe this are
> >not processed right for the compiler.
>
> I don't know if linear-gradient can be specified in other CSS style
> property values.  I guess it would be best to define a SWF data structure
> that best represents the data.  I see in a CSS spec that linear-gradient
> can have lots of different parameters.  We want the compiler to handle
> that and maybe output an array of values.  The framework can read that
> array and determine how to draw the gradient.  The first thing in the
> array could be the string "linear-gradient" so you know what follows.
>
> In Flex CSS there were often properties with names that ended with "Alpha"
> but that isn't CSS compliant.  Instead, it appears that alpha is generally
> specified via RGBA.  So the compiler and framework should probably handle
> RGBA instead of separate *Alpha properties.
>
> Good luck,
> -Alex
>
> >
> >thanks
> >
> >
> >2018-03-06 17:36 GMT+01:00 Alex Harui <ah...@adobe.com.invalid>:
> >
> >> Hi Carlos,
> >>
> >> If you can find a way to handle linear-gradient for SWF that would be
> >> great.  I don't know this area of the code that well, but I think you
> >>have
> >> at least 3 choices:
> >>
> >> 1) Alter the AST
> >> 2) Output a String
> >> 3) Reduce it to a function call.
> >>
> >> FWIW, #3 requires changing the reducer which seems scary.  I think I've
> >> avoided it so far.
> >>
> >> Options #1 and #2 are similar.  I think you can see that the parsing
> >>sets
> >> up a data structure with things like CSSRgbColorPropertyValue and
> >> CSSFunctionCallPropertyValue.  It should be possible to see that a
> >> CSSFunctionCallPropertyValue is a linear-gradient and swap it out for
> >>some
> >> other CSS structure that represents what the parser would have generated
> >> for:
> >>
> >> #1:  backgroundColors: #000000, #123456;
> >> #2:  backgroundColor: "linearGradient(#000000, #123456)"
> >>
> >> For #1, there seems to already be custom styles that end with
> >>"xxxColors"
> >> (note plural) that have a list of colors.
> >> For #2, you are trying to set backgroundColor to a String that the
> >> framework could parse at runtime.
> >>
> >> Good luck,
> >> -Alex
> >>
> >>
> >> On 3/6/18, 4:16 AM, "carlos.rovira@gmail.com on behalf of Carlos
> Rovira"
> >> <carlos.rovira@gmail.com on behalf of carlosrovira@apache.org> wrote:
> >>
> >> >Hi Alex,
> >> >
> >> >I'm looking into CSS compiler files and trying to see what to do. This
> >>for
> >> >the momento exceeds me, but I'll try to continue trying to understand
> >>this
> >> >part, but will need cross various emails with you:
> >> >
> >> >For this one:
> >> >
> >> >https://na01.safelinks.protection.outlook.com/?url=
> >> https%3A%2F%2Fgithub.co
> >> >m%2Fapache%2Froyale-compiler%2Fissues%2F26&data=02%7C01%
> >> 7Caharui%40adobe.c
> >> >om%7C5cf94961f3994e02456208d5835c29f8%7Cfa7b1b5a7b34438794aed2c178de
> >> cee1%7
> >> >C0%7C0%7C636559354222273618&sdata=jCD9%2FvfKxdW0TKwiJhMO%
> >> 2FI7zwGI6cWaMQUYP
> >> >oTMk%2BJo%3D&reserved=0
> >> >
> >> >I assume the point is in CSSReducer class (line 530), then I need to
> >>deal
> >> >with CSSFunctionCallPropertyValue
> >> >
> >> >but first of all is what to do with  *linear-gradient(#3BB0FF,
> >>#1E36FA)'*
> >> >in SWF
> >> >
> >> >I think this value could not be valid in SWF for "background", but in
> >>that
> >> >case:
> >> >
> >> >* we can make it valid
> >> >
> >> >or
> >> >
> >> >* maybe for SWF there's some way to discriminate css rules for SWF and
> >>for
> >> >JS?
> >> >
> >> >(In the end if we want JS and SWF match, I think we should support
> >> >linear-gradients in SWF in some way
> >> >
> >> >Thanks
> >> >
> >> >--
> >> >Carlos Rovira
> >> >https://na01.safelinks.protection.outlook.com/?url=
> >> http%3A%2F%2Fabout.me%2
> >> >Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%
> >> 7C5cf94961f3994e02456208d5
> >> >835c29f8%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%
> >> 7C636559354222273618&s
> >> >data=XOjs%2B44XE3iak7IvBiX3lajtbDPUe6XPBCKPg%2FGUqLU%3D&reserved=0
> >>
> >>
> >
> >
> >--
> >Carlos Rovira
> >https://na01.safelinks.protection.outlook.com/?url=
> http%3A%2F%2Fabout.me%2
> >Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%
> 7Cbb184bfb29e3488d18d008d5
> >839278ef%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%
> 7C636559587651768767&s
> >data=hZupbvf5ZwbnAcTydxuZfuKn1L9JGgcK0rUwyeuVFOk%3D&reserved=0
>
>


-- 
Carlos Rovira
http://about.me/carlosrovira

Re: [CSS#26]

Posted by Alex Harui <ah...@adobe.com.INVALID>.
Hi Carlos,

Comments inline.

On 3/6/18, 10:45 AM, "carlos.rovira@gmail.com on behalf of Carlos Rovira"
<carlos.rovira@gmail.com on behalf of carlosrovira@apache.org> wrote:

>Hi Alex,
>
>for SWF I think we should have something like [1] [2]
>
>what I don't know right now is what does royale compiler under the hood to
>bring the "linear-gradient" values to the flash part, maybe generate some
>AS3 code? 


For SWF, CSS is encoded into a data structure of name value pairs.  The
value can be a String, Number, reference to a class, Array, probably some
other things as well.



>from there we can get those values and use in the flash code
>similar to the ones in the links posted right?

The SWF code can do pretty much whatever it wants with those values.  The
goal is for the compiler to convert the CSS into a useful data structure
that doesn't take too much framework code to process.  So doing things
like converting RGBA to a hexadecimal number is preferred but there are no
hard rules.

>
>[1] 
>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fhelp.adob
>e.com%2Fen_US%2FActionScript%2F3.0_ProgrammingAS3%2F&data=02%7C01%7Caharui
>%40adobe.com%7Cbb184bfb29e3488d18d008d5839278ef%7Cfa7b1b5a7b34438794aed2c1
>78decee1%7C0%7C0%7C636559587651768767&sdata=JLVkx89M4pFDeFsDKaPDI1dS%2B%2B
>UThrZQRCYkljWU3dk%3D&reserved=0
>WS5b3ccc516d4fbf351e63e3d118a9b90204-7dd7.html
>[2] 
>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fsnipplr.co
>m%2Fview%2F15005%2F&data=02%7C01%7Caharui%40adobe.com%7Cbb184bfb29e3488d18
>d008d5839278ef%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63655958765176
>8767&sdata=UI2AFgw68%2F%2BCUDnU5uh6l%2F6aCrbLmSipjynq8xW69cg%3D&reserved=0
>
>For the compiler part, I'm really have to check for:
>
>background-image: linear-gradient(#3BB0FF, #1E36FA);
>
>or
>
>background: linear-gradient(#3BB0FF, #1E36FA);
>
>not for backgrounColor(s), but I suppose is the same
>
>(in this last case I guest we have some actual problems since in that
>compact mode, people could write many optional things and maybe this are
>not processed right for the compiler.

I don't know if linear-gradient can be specified in other CSS style
property values.  I guess it would be best to define a SWF data structure
that best represents the data.  I see in a CSS spec that linear-gradient
can have lots of different parameters.  We want the compiler to handle
that and maybe output an array of values.  The framework can read that
array and determine how to draw the gradient.  The first thing in the
array could be the string "linear-gradient" so you know what follows.

In Flex CSS there were often properties with names that ended with "Alpha"
but that isn't CSS compliant.  Instead, it appears that alpha is generally
specified via RGBA.  So the compiler and framework should probably handle
RGBA instead of separate *Alpha properties.

Good luck,
-Alex

>
>thanks
>
>
>2018-03-06 17:36 GMT+01:00 Alex Harui <ah...@adobe.com.invalid>:
>
>> Hi Carlos,
>>
>> If you can find a way to handle linear-gradient for SWF that would be
>> great.  I don't know this area of the code that well, but I think you
>>have
>> at least 3 choices:
>>
>> 1) Alter the AST
>> 2) Output a String
>> 3) Reduce it to a function call.
>>
>> FWIW, #3 requires changing the reducer which seems scary.  I think I've
>> avoided it so far.
>>
>> Options #1 and #2 are similar.  I think you can see that the parsing
>>sets
>> up a data structure with things like CSSRgbColorPropertyValue and
>> CSSFunctionCallPropertyValue.  It should be possible to see that a
>> CSSFunctionCallPropertyValue is a linear-gradient and swap it out for
>>some
>> other CSS structure that represents what the parser would have generated
>> for:
>>
>> #1:  backgroundColors: #000000, #123456;
>> #2:  backgroundColor: "linearGradient(#000000, #123456)"
>>
>> For #1, there seems to already be custom styles that end with
>>"xxxColors"
>> (note plural) that have a list of colors.
>> For #2, you are trying to set backgroundColor to a String that the
>> framework could parse at runtime.
>>
>> Good luck,
>> -Alex
>>
>>
>> On 3/6/18, 4:16 AM, "carlos.rovira@gmail.com on behalf of Carlos Rovira"
>> <carlos.rovira@gmail.com on behalf of carlosrovira@apache.org> wrote:
>>
>> >Hi Alex,
>> >
>> >I'm looking into CSS compiler files and trying to see what to do. This
>>for
>> >the momento exceeds me, but I'll try to continue trying to understand
>>this
>> >part, but will need cross various emails with you:
>> >
>> >For this one:
>> >
>> >https://na01.safelinks.protection.outlook.com/?url=
>> https%3A%2F%2Fgithub.co
>> >m%2Fapache%2Froyale-compiler%2Fissues%2F26&data=02%7C01%
>> 7Caharui%40adobe.c
>> >om%7C5cf94961f3994e02456208d5835c29f8%7Cfa7b1b5a7b34438794aed2c178de
>> cee1%7
>> >C0%7C0%7C636559354222273618&sdata=jCD9%2FvfKxdW0TKwiJhMO%
>> 2FI7zwGI6cWaMQUYP
>> >oTMk%2BJo%3D&reserved=0
>> >
>> >I assume the point is in CSSReducer class (line 530), then I need to
>>deal
>> >with CSSFunctionCallPropertyValue
>> >
>> >but first of all is what to do with  *linear-gradient(#3BB0FF,
>>#1E36FA)'*
>> >in SWF
>> >
>> >I think this value could not be valid in SWF for "background", but in
>>that
>> >case:
>> >
>> >* we can make it valid
>> >
>> >or
>> >
>> >* maybe for SWF there's some way to discriminate css rules for SWF and
>>for
>> >JS?
>> >
>> >(In the end if we want JS and SWF match, I think we should support
>> >linear-gradients in SWF in some way
>> >
>> >Thanks
>> >
>> >--
>> >Carlos Rovira
>> >https://na01.safelinks.protection.outlook.com/?url=
>> http%3A%2F%2Fabout.me%2
>> >Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%
>> 7C5cf94961f3994e02456208d5
>> >835c29f8%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%
>> 7C636559354222273618&s
>> >data=XOjs%2B44XE3iak7IvBiX3lajtbDPUe6XPBCKPg%2FGUqLU%3D&reserved=0
>>
>>
>
>
>-- 
>Carlos Rovira
>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2
>Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cbb184bfb29e3488d18d008d5
>839278ef%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636559587651768767&s
>data=hZupbvf5ZwbnAcTydxuZfuKn1L9JGgcK0rUwyeuVFOk%3D&reserved=0


Re: [CSS#26]

Posted by Carlos Rovira <ca...@apache.org>.
Hi Alex,

for SWF I think we should have something like [1] [2]

what I don't know right now is what does royale compiler under the hood to
bring the "linear-gradient" values to the flash part, maybe generate some
AS3 code? from there we can get those values and use in the flash code
similar to the ones in the links posted right?

[1] https://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/
WS5b3ccc516d4fbf351e63e3d118a9b90204-7dd7.html
[2] http://snipplr.com/view/15005/

For the compiler part, I'm really have to check for:

background-image: linear-gradient(#3BB0FF, #1E36FA);

or

background: linear-gradient(#3BB0FF, #1E36FA);

not for backgrounColor(s), but I suppose is the same

(in this last case I guest we have some actual problems since in that
compact mode, people could write many optional things and maybe this are
not processed right for the compiler.

thanks


2018-03-06 17:36 GMT+01:00 Alex Harui <ah...@adobe.com.invalid>:

> Hi Carlos,
>
> If you can find a way to handle linear-gradient for SWF that would be
> great.  I don't know this area of the code that well, but I think you have
> at least 3 choices:
>
> 1) Alter the AST
> 2) Output a String
> 3) Reduce it to a function call.
>
> FWIW, #3 requires changing the reducer which seems scary.  I think I've
> avoided it so far.
>
> Options #1 and #2 are similar.  I think you can see that the parsing sets
> up a data structure with things like CSSRgbColorPropertyValue and
> CSSFunctionCallPropertyValue.  It should be possible to see that a
> CSSFunctionCallPropertyValue is a linear-gradient and swap it out for some
> other CSS structure that represents what the parser would have generated
> for:
>
> #1:  backgroundColors: #000000, #123456;
> #2:  backgroundColor: "linearGradient(#000000, #123456)"
>
> For #1, there seems to already be custom styles that end with "xxxColors"
> (note plural) that have a list of colors.
> For #2, you are trying to set backgroundColor to a String that the
> framework could parse at runtime.
>
> Good luck,
> -Alex
>
>
> On 3/6/18, 4:16 AM, "carlos.rovira@gmail.com on behalf of Carlos Rovira"
> <carlos.rovira@gmail.com on behalf of carlosrovira@apache.org> wrote:
>
> >Hi Alex,
> >
> >I'm looking into CSS compiler files and trying to see what to do. This for
> >the momento exceeds me, but I'll try to continue trying to understand this
> >part, but will need cross various emails with you:
> >
> >For this one:
> >
> >https://na01.safelinks.protection.outlook.com/?url=
> https%3A%2F%2Fgithub.co
> >m%2Fapache%2Froyale-compiler%2Fissues%2F26&data=02%7C01%
> 7Caharui%40adobe.c
> >om%7C5cf94961f3994e02456208d5835c29f8%7Cfa7b1b5a7b34438794aed2c178de
> cee1%7
> >C0%7C0%7C636559354222273618&sdata=jCD9%2FvfKxdW0TKwiJhMO%
> 2FI7zwGI6cWaMQUYP
> >oTMk%2BJo%3D&reserved=0
> >
> >I assume the point is in CSSReducer class (line 530), then I need to deal
> >with CSSFunctionCallPropertyValue
> >
> >but first of all is what to do with  *linear-gradient(#3BB0FF, #1E36FA)'*
> >in SWF
> >
> >I think this value could not be valid in SWF for "background", but in that
> >case:
> >
> >* we can make it valid
> >
> >or
> >
> >* maybe for SWF there's some way to discriminate css rules for SWF and for
> >JS?
> >
> >(In the end if we want JS and SWF match, I think we should support
> >linear-gradients in SWF in some way
> >
> >Thanks
> >
> >--
> >Carlos Rovira
> >https://na01.safelinks.protection.outlook.com/?url=
> http%3A%2F%2Fabout.me%2
> >Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%
> 7C5cf94961f3994e02456208d5
> >835c29f8%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%
> 7C636559354222273618&s
> >data=XOjs%2B44XE3iak7IvBiX3lajtbDPUe6XPBCKPg%2FGUqLU%3D&reserved=0
>
>


-- 
Carlos Rovira
http://about.me/carlosrovira

Re: [CSS#26]

Posted by Alex Harui <ah...@adobe.com.INVALID>.
Hi Carlos,

If you can find a way to handle linear-gradient for SWF that would be
great.  I don't know this area of the code that well, but I think you have
at least 3 choices:

1) Alter the AST
2) Output a String
3) Reduce it to a function call.

FWIW, #3 requires changing the reducer which seems scary.  I think I've
avoided it so far.

Options #1 and #2 are similar.  I think you can see that the parsing sets
up a data structure with things like CSSRgbColorPropertyValue and
CSSFunctionCallPropertyValue.  It should be possible to see that a
CSSFunctionCallPropertyValue is a linear-gradient and swap it out for some
other CSS structure that represents what the parser would have generated
for:

#1:  backgroundColors: #000000, #123456;
#2:  backgroundColor: "linearGradient(#000000, #123456)"

For #1, there seems to already be custom styles that end with "xxxColors"
(note plural) that have a list of colors.
For #2, you are trying to set backgroundColor to a String that the
framework could parse at runtime.

Good luck,
-Alex


On 3/6/18, 4:16 AM, "carlos.rovira@gmail.com on behalf of Carlos Rovira"
<carlos.rovira@gmail.com on behalf of carlosrovira@apache.org> wrote:

>Hi Alex,
>
>I'm looking into CSS compiler files and trying to see what to do. This for
>the momento exceeds me, but I'll try to continue trying to understand this
>part, but will need cross various emails with you:
>
>For this one:
>
>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.co
>m%2Fapache%2Froyale-compiler%2Fissues%2F26&data=02%7C01%7Caharui%40adobe.c
>om%7C5cf94961f3994e02456208d5835c29f8%7Cfa7b1b5a7b34438794aed2c178decee1%7
>C0%7C0%7C636559354222273618&sdata=jCD9%2FvfKxdW0TKwiJhMO%2FI7zwGI6cWaMQUYP
>oTMk%2BJo%3D&reserved=0
>
>I assume the point is in CSSReducer class (line 530), then I need to deal
>with CSSFunctionCallPropertyValue
>
>but first of all is what to do with  *linear-gradient(#3BB0FF, #1E36FA)'*
>in SWF
>
>I think this value could not be valid in SWF for "background", but in that
>case:
>
>* we can make it valid
>
>or
>
>* maybe for SWF there's some way to discriminate css rules for SWF and for
>JS?
>
>(In the end if we want JS and SWF match, I think we should support
>linear-gradients in SWF in some way
>
>Thanks
>
>-- 
>Carlos Rovira
>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2
>Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C5cf94961f3994e02456208d5
>835c29f8%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636559354222273618&s
>data=XOjs%2B44XE3iak7IvBiX3lajtbDPUe6XPBCKPg%2FGUqLU%3D&reserved=0