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

現(xiàn)在需要的一個這樣的方式,用鼠標(biāo)對C進行Drag操作。使它可以在A中任意移動,但是由于C是包含在B中,因此使用startDrag() 和 stopDrag()的時候,只能在B區(qū)域中進行移動,而無法超出B的邊界。
如果我們想讓C在A中移動的話,那么就應(yīng)該使用一個叫做clipContent的屬性了。
以下是這個屬性的定義:
Whether to apply a clip mask if the positions and/or sizes of this container's children extend outside the borders of this container.
它的中文含義大致是:
如果此容器的子項的位置和/或大小擴展到此容器的邊框之外,是否應(yīng)用剪裁遮罩。
clipContent值:
True:當(dāng)子項目的邊界超出此容器時,不顯示子項目在此容器中。
Flase:當(dāng)子項目的邊界超出此容器時,顯示子項目在此容器中。
clipContent是Container中的一個public propertie。因此Flex常用的一些容器類控件:
Accordion, Box, Canvas, Form, FormItem, LayoutContainer, Panel, Tile, ViewStack 全部都可以使用這個屬性。
即我們在B中,設(shè)定clipContent = false,這樣就可以實現(xiàn)我們的要的效果了,當(dāng)C在移動的時候,如果遇到了D,則會在D的下面,那么這是怎么回事呢?
因為在coding這個結(jié)構(gòu)的時候,D的z-index就比B的高,因此C移動的時候,會被D遮擋?。m然C可以在A中任意位置進行移動)
所以我們做如下的設(shè)定:
將B的z-index,放置到D的z-index上面即可。而我們使用的方式就是:setChildIndex(這個method是很常用的,因此我就不在這里進行復(fù)述了。)
因此如果在一個很復(fù)雜的嵌套的容器中,如果要移動其中一個子容器在最外層容器中時,應(yīng)作如下的設(shè)定:
1、將要移動的子容器的父容器(當(dāng)然這個父容器之上可能還會有父容器的)要在需要移動容器中處于最上層顯示。
例如:A → B → C → D → E
F→ G → H
如果想要移動E在A中,那么就需要B在F的上面,即使用setChildIndex來重新設(shè)定B與F的位置。
2、需要將D容器的clipContent設(shè)定為false。
以上,希望會對大家有所幫助:)
相關(guān)文章
Flex與.NET互操作(八) 使用FluorineFx網(wǎng)關(guān)實現(xiàn)遠(yuǎn)程訪問
關(guān)于遠(yuǎn)程訪問在本系列文章中陸續(xù)的寫了不少示例了,本文沒有準(zhǔn)備深入的去探討,為了鞏固FluorineFx網(wǎng)關(guān)的學(xué)習(xí)和使用。2009-06-06
基于WebService的數(shù)據(jù)訪問(上) Flex與.NET互操作(二)
Flex提供了<mx:WebService>、<mx:HTTPService>和<mx:RemoteObject>標(biāo)簽來直接訪問遠(yuǎn)程數(shù)據(jù),這用于與各種不同語言環(huán)境開發(fā)提供的遠(yuǎn)程服務(wù)端數(shù)據(jù)源(如WebService)進行數(shù)據(jù)交互通信顯得更加容易.2009-06-06
Flex與.NET互操作(十一):FluorineFx.Net的及時通信應(yīng)用(Remote Procedure Call
FluorineFx.NET提供了完善的RPC(Remote Procedure Call)功能,無論是通過Flash還是Flex開發(fā)的客戶端應(yīng)用(.swf)都可以非常簡單方便的采用RPC的方式調(diào)用.NET的服務(wù)器端方法2009-06-06
Flex結(jié)合JavaScript讀取本地路徑的方法
鑒于adobe并沒有提供FileReference對瀏覽的文件的完整路徑的接口。只能采用JS和fileinput控件來獲取本地路徑了。2009-02-02

