首先,我为这个问题的含糊不清道歉.在这一点上,我只是想尝试一些新的想法,以便诊断这个bug.
无论如何,我遇到的问题是使用自定义模块加载器的应用程序.该模块加载器已编译为swc,并且模块加载器正在通过其命名空间进行实例化.一切都很好.我遇到的问题特定于mx:模块中使用的按钮控件.无论出于何种原因,他们的标签被截断,例如,登录显示省略号,如Sign ...
经过相当多的愚弄,我已经能够建立以下内容:
这样做的潜在副作用是将数据提供者附加到mx:ComboBox会导致组合框控件抛出绘图错误,但我并不完全确定它与上述问题有关.
我在尝试使用网络获得答案时发现的一个有趣的事情是提到了fontContext及其与IFlexModuleFactory的关系.在我们的moduleloader实现中没有对fontContext的规范,所以我不完全确定这是否是问题所在.无论如何,如果有人有任何想法,那将非常感激.另一方面,如果你确切地知道我的痛苦并能给我一个答案,我可能会兴奋地弄湿自己.晚了.我累了.我需要我的Flex应用程序才能玩得很好.
提前致谢,
--Anne
编辑: 为了澄清我正在寻找的这个问题,我真的只需要知道以下内容:
我没有与这个问题共享任何代码只是因为我必须共享整个应用程序,不幸的是,我不能这样做.再一次,我不是在寻找最终目标,是所有解决方案,只是提出了一些建议,如果有人有任何想法需要注意.
我一直在处理这个问题,一次又一次地以各种形式处理这个问题一年,虽然我还没有弄清楚究竟是什么导致了这个问题,但显然在某个地方发生了错误的测量.
但是,我能够解决这个问题,主要是通过子类化按钮类型控件(在我的例子中,按钮,LinkButton,PopUpButton等等)并为其截断ToToFit的UITextField扩展分配它们的textField成员实例. element在所有情况下都返回false:
public class NonTruncatingUITextField extends UITextField
{
public function NonTruncatingUITextField ()
{
super();
}
override public function truncateToFit(s:String = null):Boolean
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
自定义组件只是扩展Button(或者其他任何按钮类型控件都是罪魁祸首 - 我自己创建了大约6个左右,每种类型的控件都有一个),但是使用a NonTruncatingTextField作为其标签,在指定的位置由组件用户:
public class NonTruncatingButton extends Button
{
private var _truncateLabel:Boolean;
public function NonTruncatingButton()
{
super();
this._truncateLabel = true;
}
override protected function createChildren():void
{
if (!textField)
{
if (!_truncateLabel)
textField = new NonTruncatingUITextField();
else
textField = new UITextField();
textField.styleName = this;
addChild(DisplayObject(textField));
}
super.createChildren();
}
[Inspectable]
public function get truncateLabel():Boolean
{
return this._truncateLabel;
}
public function set truncateLabel(value:Boolean):void
{
this._truncateLabel = value;
}
}
Run Code Online (Sandbox Code Playgroud)
...所以最后,在你的MXML代码中,你会引用自定义组件(在这种情况下,我告诉控件永远不要截断它的标签):
<components:NonTruncatingButton id="btn" label="Click This" truncateLabel="false" />
Run Code Online (Sandbox Code Playgroud)
我同意这感觉就像一个解决方法,组件架构应该更优雅地处理所有这些,并且它可能是我们都忽略的东西,但它的工作原理; 希望它能够在您寻找更明确的解决方案时解决您的问题.(虽然就个人而言,我现在正在使用它,我已经转向其他事情 - 时间更好地花在别处!)
祝你好运 - 让我知道它是如何运作的.
| 归档时间: |
|
| 查看次数: |
5483 次 |
| 最近记录: |