Hi,

In Royale on JS, we are trying to leverage the browser's layout code as
much as possible.  We only run our own layout code in a few places.
In debugging a few layout issues I discovered that UIBase is not reporting
x and y the way we expect it from Flex/Flash.  Browser elements don't have
x and y properties, instead they have offsetLeft and offsetTop.  Mainly
for backward-compatibility with Flex/Flash, Royale has had x and y in the
API since the beginning.  I think it is a bug that x and y do not act like
they do in Flex and plan to fix that after this release.  Thoughts?  I'm a
bit concerned of the expense of calculating x and y because you have to
check if the offsetParent is your immediate parent and get the
offsetLeft/offsetTop of the immediate parent, but I think that's what it
would take to fix it.

Similarly (well, sort of), Flex did not support CSS margins, only padding.
 The browser reports width (offsetWidth) as factoring in content, padding
and borders, but not margin.  I think that's right, and matches Flex.
However, our custom layout algorithms do not currently factor in margins
since they are not reported in width.  I think our custom layout should
request width and margins and do the math.  We should not change width to
include margins.  Thoughts?  This will make our custom layout code a bit
more expensive as well as it will probably need to call
getComputedStyles() on all of the children in order to get margins.  This
is also something to fix in the next release.

Of course, I could be wrong.  Thoughts?

-Alex

Reply via email to