-1

我对 Flex 比较陌生,但是在经历了一些危机之后需要接管应用程序的维护和开发。如果有帮助的话,我一般都熟悉 AS3 和 OOP。

该应用程序是使用 Flex builder 3、Flex SDK 4.1 构建的,并且基于 Halo 主题。Main.mxml 包含一些导航部分、应用程序边框和一个名为占位符的画布。

当用户在站点中导航时,Main.mxml 的状态会发生变化,并基于此在占位符内交换适当的“屏幕”,而不应用动画(有时 ProgressBar 会暂停进度,直到数据加载)。每个屏幕都与主应用程序大小相同,基于 amx:Canvas并将其自身定位在 0,0 处,从而填充整个窗口。

首先,这是一个好方法吗,你会对改变的事情提出任何建议吗?

接下来,一些屏幕在布局和定位方面出现了一些奇怪的跳跃,对于我来说,我无法弄清楚为什么。它发生在许多视觉元素上。

我的第一个示例是使用 hbox、图像和文本控件构建的按钮。hbox 已修改为包含渐变背景,但是在使用默认 mx hbox 时会出现问题。第一个图像是在第一次渲染时没有交互,第二个是在我将鼠标移到它上面之后,第三个(也是正确的)图像是在离开那个屏幕然后返回之后。请注意,它不再被剪裁,并且还包括右侧的圆角。

示例 1

我的第二个示例更难捕捉,但我有一系列 4 个渐变按钮,这些按钮基于flexlib 高级按钮皮肤堆叠在mx:vbox. 在第一个显示上它们是正确的,在第二个显示上它们看起来是正确的,但是当将鼠标悬停在它们上方时,它们似乎发生了变化,但我不确定是什么导致下面的按钮每悬停一个按钮向下跳大约一个像素。在每个按钮都导致跳跃之后,一切都恢复正常了。

最后,当返回到前一个屏幕时,整个屏幕似乎在它刚刚显示后稍微向左跳跃,给人一种非常生涩的感觉。

非常感谢您的帮助

编辑 - 成功

经过数小时的尝试您的建议并弄乱了从阶段中删除元素的问题后,我最终发现问题的根源在于控件的borderMetrics属性。VideoDisplay删除这些(我什至不确定它们为什么会出现)之后,我遇到的所有奇怪的显示问题都消失了。

非常感谢您的建议!

4

2 回答 2

0

我建议为您的按钮发布一些代码,以便我们对其进行分析,但您看到的是组件多次测量自身的结果。我过去解决这个问题的方法是在组件及其子组件上设置显式大小,和/或在组件/子组件上添加明智的 minWidth="0" 属性。后者是使组件正确测量自身的老技巧。希望有帮助。如果没有,请发布一些代码。祝你好运。

于 2011-01-18T16:08:06.610 回答
0

经过数小时尝试您的建议并一一从舞台上删除元素后,我最终发现问题的根源是 VideoDisplay 控件的borderMetrics 属性。删除这些(我什至不确定它们为什么会出现)之后,我遇到的所有奇怪的显示问题都消失了。

于 2011-01-21T12:01:04.110 回答