簡體   English   中英

如何在Flex應用程序中分解視圖?

[英]How can I break down a view in a flex application?

我編寫了一個flex(移動)應用程序,但最終結果超出了我的預期。

我對我的所有課程以及AS文件中的所有內容都感到非常滿意。 但是,由於我使用MXML布局應用程序,因此視圖的確很大。

我當時正在考慮創建外部組件,以使它更具可讀性,但我不確定什么是最好的方法,或者不確定這樣做是否是最好的方法。

例如,我認為av:Group具有以下內容:

<s:VGroup width="100%" height="80%" includeIn="normal" horizontalAlign="center" top="70" id="imageGroup">
    <s:Label id="lblFile" visible="false" width="98%" textAlign="center" includeInLayout="true" color="0xFFFFFF"/>
    <s:BorderContainer id="framingBorder" borderColor="0xFFFFFF" borderWeight="15" cornerRadius="7">
        <s:Image id="image" source="{IMAGE_SAMPLE}" horizontalCenter="0"/>

    </s:BorderContainer>    
    <s:BorderContainer id="shareBorder" borderColor="0xFFFFFF" borderWeight="5" height="30" cornerRadius="7" width="{framingBorder.width}" visible="false" buttonMode="true" click="copyToClipboard(lblURL.text)">
        <s:layout>
            <s:HorizontalLayout verticalAlign="middle" horizontalAlign="left" gap="3"/>
        </s:layout>
        <s:Label text="url:" styleName="copyURL" />
        <s:BorderContainer borderColor="0xCDCDCD" borderWeight="1" width="{lblURL.width + 5}" height="{lblURL.height + 5}">
            <s:layout>
                <s:HorizontalLayout verticalAlign="middle" horizontalAlign="center"/>
            </s:layout>
            <s:Label id="lblURL" text="" styleName="copyURL" />
        </s:BorderContainer>
        <s:Spacer width="100%" />
        <s:HGroup>
            <s:Label color="0xFF0000" text="copy" styleName="copyURL" />
            <s:Image source="/assets/icons/page_copy_small.png" horizontalCenter="0" horizontalAlign="right"/>
        </s:HGroup>
    </s:BorderContainer>    
</s:VGroup>

任何人都可以向我指出正確的方向,即如何將其從視圖中移出以使其更整潔,以及如何仍然可以訪問此代碼塊中的項目(即,我仍然希望能夠從中修改lblURL我認為這是一個動態值)

提前致謝,

您處在正確的軌道上,艾米(Amy)發布的鏈接很好地說明了如何進行布局。 您可能也對cairngorm和parsely感興趣 ,它們是更完整的解決方案的框架/工具。

但是目前,我認為將視圖的各個部分分成多個組件是一個不錯的開始。

您仍然可以在主應用程序中修改標簽(例如):

<views:myBox id="box"  />
<s:Button click="{box.myLabel.text = 'changed'}" />

myBox.mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                   xmlns:s="library://ns.adobe.com/flex/spark" 
                   xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">
    <s:Label id="myLabel" text="this is my label" />
</s:BorderContainer>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM