我正在开发一个项目,如果我们有editbale标签或TextInput的一个区域看起来像一个Label,如果它没有用鼠标悬停,那将是非常好的。
我是Flex的新手,并且不知道如何开发皮肤。我甚至不知道是否可以通过剥皮来做到这一点。
无论如何,我在几个月前发现了this的问题,但我无法让它工作,只是显示一个空的白页。
这里是我用来创建上面链接中提到的可编辑标签的代码:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:component="com.npacemo.component.*"
xmlns:skins="skins.*">
<fx:Declarations>
<!-- Platzieren Sie nichtvisuelle Elemente (z. B. Dienste, Wertobjekte) hier -->
</fx:Declarations>
<s:BorderContainer>
<component:EditableLabel text="Text 132" skinClass="skins.EditableLabel" />
</s:BorderContainer>
</s:Application>
知道为什么显示的页面是空的吗?还是一种不同的方法?
提前致谢, 马库斯
答案 0 :(得分:0)
在我们正在开展的项目中,我们通过使用文本框并删除背景和边框来做可编辑的标签(它看起来就像一个标签,可以编辑)。在你的情况下,你可以这样做然后在鼠标上你可以再次显示边框和背景(使它看起来像一个文本框),然后再重新显示直到样式的MouseOut。
答案 1 :(得分:0)
我在这个可编辑的标签上遇到了同样的问题
我认为根本原因来自SkinPart:labelComponent
。在皮肤内部,标签是这样的:
<s:Label id="labelComponent" text="{hostComponent.text}"
alpha.normal="1" alpha.selected="0"
visible.normal="true" visible.selected="false"
verticalCenter="0" width="{this.width+20}" maxDisplayedLines="1"
textDecoration="underline" buttonMode="true"/>
由于宽度设置导致自引用循环,因此label会抛出异常。这里的解决方案只是清除宽度设置:
<s:Label id="labelComponent" text="{hostComponent.text}"
alpha.normal="1" alpha.selected="0"
visible.normal="true" visible.selected="false"
verticalCenter="0" maxDisplayedLines="1"
textDecoration="underline" buttonMode="true"/>
现在可以显示该组件
我发现在Application
和View中显示组件之间存在差异。在Application
中,会自动捕获一些异常,使调试过程变得更加困难
希望这会有所帮助!