Flex clipContent 編程注意
更新時(shí)間:2009年07月13日 00:25:04 作者:
在做Flex項(xiàng)目的時(shí)候,碰到了一個(gè)修改,具體請(qǐng)看下面的原型圖

現(xiàn)在需要的一個(gè)這樣的方式,用鼠標(biāo)對(duì)C進(jìn)行Drag操作。使它可以在A中任意移動(dòng),但是由于C是包含在B中,因此使用startDrag() 和 stopDrag()的時(shí)候,只能在B區(qū)域中進(jìn)行移動(dòng),而無法超出B的邊界。
如果我們想讓C在A中移動(dòng)的話,那么就應(yīng)該使用一個(gè)叫做clipContent的屬性了。
以下是這個(gè)屬性的定義:
Whether to apply a clip mask if the positions and/or sizes of this container's children extend outside the borders of this container.
它的中文含義大致是:
如果此容器的子項(xiàng)的位置和/或大小擴(kuò)展到此容器的邊框之外,是否應(yīng)用剪裁遮罩。
clipContent值:
True:當(dāng)子項(xiàng)目的邊界超出此容器時(shí),不顯示子項(xiàng)目在此容器中。
Flase:當(dāng)子項(xiàng)目的邊界超出此容器時(shí),顯示子項(xiàng)目在此容器中。
clipContent是Container中的一個(gè)public propertie。因此Flex常用的一些容器類控件:
Accordion, Box, Canvas, Form, FormItem, LayoutContainer, Panel, Tile, ViewStack 全部都可以使用這個(gè)屬性。
即我們?cè)贐中,設(shè)定clipContent = false,這樣就可以實(shí)現(xiàn)我們的要的效果了,當(dāng)C在移動(dòng)的時(shí)候,如果遇到了D,則會(huì)在D的下面,那么這是怎么回事呢?
因?yàn)樵赾oding這個(gè)結(jié)構(gòu)的時(shí)候,D的z-index就比B的高,因此C移動(dòng)的時(shí)候,會(huì)被D遮擋?。m然C可以在A中任意位置進(jìn)行移動(dòng))
所以我們做如下的設(shè)定:
將B的z-index,放置到D的z-index上面即可。而我們使用的方式就是:setChildIndex(這個(gè)method是很常用的,因此我就不在這里進(jìn)行復(fù)述了。)
因此如果在一個(gè)很復(fù)雜的嵌套的容器中,如果要移動(dòng)其中一個(gè)子容器在最外層容器中時(shí),應(yīng)作如下的設(shè)定:
1、將要移動(dòng)的子容器的父容器(當(dāng)然這個(gè)父容器之上可能還會(huì)有父容器的)要在需要移動(dòng)容器中處于最上層顯示。
例如:A → B → C → D → E
F→ G → H
如果想要移動(dòng)E在A中,那么就需要B在F的上面,即使用setChildIndex來重新設(shè)定B與F的位置。
2、需要將D容器的clipContent設(shè)定為false。
以上,希望會(huì)對(duì)大家有所幫助:)
相關(guān)文章
Flex與.NET互操作(十一):FluorineFx.Net的及時(shí)通信應(yīng)用(Remote Procedure Call
FluorineFx.NET提供了完善的RPC(Remote Procedure Call)功能,無論是通過Flash還是Flex開發(fā)的客戶端應(yīng)用(.swf)都可以非常簡(jiǎn)單方便的采用RPC的方式調(diào)用.NET的服務(wù)器端方法2009-06-06Flex與.NET互操作(十三):FluorineFx.Net實(shí)現(xiàn)視頻錄制與視頻回放
本文主要介紹使用FluorineFx.Net來實(shí)現(xiàn)視頻錄制與視頻回放,F(xiàn)luorineFx如同F(xiàn)MS一樣,除了有AMF通信,RTMP協(xié)議,RPC 和遠(yuǎn)程共享對(duì)象外,它同樣具備視頻流服務(wù)的功能。2009-06-06Flex中讓鼠標(biāo)移至AdvancedDataGrid的行上不自動(dòng)修改顯示效果
公司項(xiàng)目中出于性能考慮,把mx:Repeater控件換成了mx:AdvancedDataGrid控件來顯示。2009-05-05基于Socket的網(wǎng)絡(luò)連接 Flex與.NET互操作(一)
Flash/Flex也支持基于Socket的網(wǎng)絡(luò)連接 ,服務(wù)器端可以是C++,VB,C#,Java等任一語(yǔ)言開發(fā)。監(jiān)聽一個(gè)網(wǎng)絡(luò)端口便可以接收到Flash/Flex開發(fā)的客戶端的連接。2009-06-06Macromedia Flex 制作計(jì)算器源碼和制作步驟
Macromedia Flex 制作計(jì)算器源碼和制作步驟...2007-02-02