2012-02-21 73 views
0

我正在開發一個項目,如果我們有編輯標籤或者TextInput的一個區域,看起來像是一個標籤,如果它沒有用鼠標徘徊,那將會非常好。Adob​​e Flex/Actionscript:可編輯標籤

我很新的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

在我們用一個文本框,並去除背景和邊框工作我們做編輯的標籤項目(它看起來就像一個標籤,將編輯)。在你的情況下,你可以做到這一點,然後在mouseIn中,你可以再次顯示邊框和背景(使其看起來像一個文本框),然後再次移除直方式時使用MouseOut。

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"/> 

由於寬度設置導致自引用循環,因此標籤會拋出異常。這裏的解決方案只是清除寬度設置:

<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中,會自動捕獲一些異常,從而使調試過程變得更加困難。
希望這會有所幫助!