台灣最具影響力的-資訊專家社群 - 讓您成為最有價值的IT專業人才
線上人數
509
 
會員總數:230680
接案會員:6774
文章總數:2320
討論主題:176469
歡迎您免費加入會員
討論區列表 >> Flash Action >> 如何正確的顯示樹狀圖

[變換順序]
[我要回覆]
1


回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何正確的顯示樹狀圖
價值 : 300 QP  點閱數:6507 回應數:8

點圖分享到Plurk吧!
樓主

MARKAUS
門外漢
0 16
296 14
發送站內信

小弟目前要依登入會員的id
到資料庫抓出相關資料的內容而顯示在flash上
像一個小方塊,而後再依其的親屬來畫出一個樹狀圖
會員的其他欄位有父、母、太太、先生
如果父有值就會在此方塊的左上面多一個父的方塊
母親就會在右上方
太太就會在右方
先生就會在左方
目前小弟的作法是
把id帶入asp.net去db抓出所有相關的資料
再轉出成xml檔,再讀各自的節點看有無親屬
而目前的問題就是
在顯示上會有重疊的產生
彼如說我母親的這欄就會和我太太父親這欄會有重疊
這種狀況會隨著相關的親屬愈來愈多而產生出來
而小弟能想到的解決方法就是用hiTtest
就是當要新增一個方塊時
判斷是否會和目前mc上的某個方塊mc有碰撞
有的話就做更多的位移
而當畫面上方塊不多的時侯是還ok
但如果有100個或200個方塊時
就可能影響到更多的方塊
跑的迴圈就可能非常的多
這對loading會有很大的影響嗎
還是有另外的不同解決方案呢?
相關的範例可以到
www.geni.com參考
本篇文章發表於2007-11-20 17:54
什麼是iT Power資訊報 2010年藍色小舖認證專家風雲榜完全名單
1樓
回應

Super-Tomato
檢舉此回應
把你目前的檔案和xml格式檔上傳比較容易明白


本篇文章回覆於2007-11-21 22:46
--未登入的會員無法查看對方簽名檔--
2樓
回應

白果喵
捐贈 VP 給 白果喵 檢舉此回應
和超級番茄一樣...拿出一個xml例子出來會較易明白

>彼如說我母親的這欄就會和我太太父親這欄會有重疊
要看查詢方式
通常你點「你」或「你太太」時家族樹中心應該是你們..
而兩邊是父系和母系親屬...這樣重疊可能性會大為減低了

>這種狀況會隨著相關的親屬愈來愈多而產生出來
不用用hittest...只要記錄樹狀每一層的數量...
再排位就可以(xml是每全被解析才把樹狀表顯示的狀況下)

>這對loading會有很大的影響嗎
絕對有...不只是載入時間...連運行上的流蜴度也大受影響...
之前某著名flash作的「樹」狀留言板留言數超過200我家的P4 3.0G+2G DDR2+6500GT也跑得非常不流蜴
控制顯示的「代數」是重要的關鍵...
不然把某某朝代開始的祖先到現在你的孩子...
那數萬個方塊要怎放給看的人看也是大問題...

>www.geni.com參考
我懶去註冊了...有載圖可看嗎...



本篇文章回覆於2007-11-22 11:34
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

MARKAUS
檢舉此回應
謝謝蕃茄和喵的回應
目前還在規畫的階段
geni不用註冊
只要隨便填上firstname和lastname加上一個有包括@的隨便email就可以進去了
我是怕我說的不清楚~
如果大大們有空可以看一下
至於喵大大所說的我有考慮過
只以本身的血親為中心來顯示
是會好作的多
但相對的情形還是會發生
假如我有十個兄弟姐妹
每個都應該會出現在mc上
因為我們是有相同血親的
如果我一個一個加入
並在加入時順便加入他們的另一半
在顯示上也是ok的
因為只要把後加入的向右邊位移就好了
之前的都不會影響到
但如果我的第三個妹妹結婚了,要幫她加入他的先生時(也就是我右邊的第三個方塊要再加入她的先生),問題就來了
後面所有的方塊,從第四個到第十個,當然也包括了他們的另一半(所以不只六個方塊)全部都要向右跑
這樣的話是不是也是個大問題?
真的感謝有人願意回我的問題...
我只學過as,但完全沒在實務上用過...
突然要我作這個大案子...真的是...


本篇文章回覆於2007-11-22 19:00
--未登入的會員無法查看對方簽名檔--
4樓
回應

白果喵
捐贈 VP 給 白果喵 檢舉此回應
>這樣的話是不是也是個大問題?
那是是不會啦,以你想的那種顯示方式...
你再想像一些複雜的關係時(離婚/再婚)
要「清楚」製造樹系圖給人的眼睛看是沒什麼可能了...

最緊要是樹下層的人增多...上層分隔的位置也要增多...

最後也要顧及一下關係圖過大的時候遇上的版面問題...


本篇文章回覆於2007-11-26 10:47
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

MARKAUS
檢舉此回應
謝謝喵的回應
以小弟所知的流程來看的話
假使這個talbe叫family
裡面的欄位有id, name, fatherId, motherId, wifeId, husbandId, xPoint, ylevel
全是自己參照到自己
當某個name值從flash登入後
把name值用asp.net去和db作判斷
正確的話,就抓出name這個人的id
並且依這個人的id到db中把相關的資料抓到dataset中
然後再輸出成xml檔
再放到跳到另一個顯示樹狀的影格

再來
如果 A______B
|
|_____________
| | |
C D E

C這個人要新增他的太太,也就是要在他和D的中間插入一個新的人F
當在flash新增表格填完後
把新增的值傳到asp.net,除了name, fatherId等一些欄位皆代入之外
並且也傳入C的x座標值和y的level
在insert入db之前要先判斷同一個level中,也就是ylevel的值是不是有x座標是重疊的
也就是假使在ylevel==1的狀況下有CDE三個點
xPoint分別是100 C, 200 D, 300 E
我要在新增F在C和D中間之前
要把所有在ylevel==1中,x>=200的值的所有方塊全部自動加100,並且把F的xPoint這個欄位給予200的值
計算完之後再insert到db中
然後再輸出成xml
再重新載入影格一次
顯示如下
A______B
|
|____________________
| | |
C______F D E
目前來說
這是要基本顯示的頁面
也就是說只要是血緣相關就會顯示
如兄弟姐妹
而他們各自的太太或先生也是在顯示的範圍內
小孩也是
如果說另一半的父母則不在範圍內
會跳到另一個以他們為主的影格
如上圖的F如果說我要新增我太太的父親或母親
則會變成下圖
G_______H
|
|
4 |
C______F
並且在我,也就是C方塊的上面出現4
也就是說和我相關血親的有四個人
點選C之後就會跳會上上圖
A_______B
|
|____________________
| 2 | |
C______F D E

並且在F的上面出現2
這就是大約的顯示方式
但又卡到一些問題
也就是說我可能要用store procedue或CUSOR去讀每一筆相關的資料
去看有沒有關連性
然後再輸出成xml
as再讀xml後,顯示出來
到這個地方時,小弟已經有點亂了
但這是我目前能想到的
但一直寫入寫出db,XML
又要讀xml,這樣的loading不會太可怕嗎?
但我用geni時就也還好
他們新增後等待時間也才1秒左右吧
是如何作到的呢?
希望大大能看的懂我所說的~
小弟已經快陣亡了...


本篇文章回覆於2007-11-26 11:45
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

MARKAUS
檢舉此回應
看來圖都跑掉了~
要怎樣才能正確的顯示呢?


本篇文章回覆於2007-11-26 11:46
--未登入的會員無法查看對方簽名檔--
7樓
回應

白果喵
捐贈 VP 給 白果喵 檢舉此回應
>但一直寫入寫出db,XML
>又要讀xml,這樣的loading不會太可怕嗎?
>但我用geni時就也還好
>他們新增後等待時間也才1秒左右吧
>是如何作到的呢?
1.它只是從DB讀取你個人做出的關係樹而已...
經我胡亂測試...載入時間是有出入的(沒加相片)
10人 -> 2秒
30人 -> 3秒 //在這開始已經被省略掉不少人
50人 -> 4秒
70人 -> 4秒 //我...我累了

2.你看看它的設定...它也有設定可看「代」數的設定...

3.人物關係和詳細資料是分開放的

4.遇上過複雜的狀況...它會把它省略掉...用小標籤圖示代替
例如我亂加人的時候為我爸加了17個兄弟姊妹+7個情婦和2個老公[?](要被天罰了....
那麼geni會把我爸的方格上加上+28的綠色小標籤....

我想你隨著玩玩它的功能...也能模仿出差不多的東東吧=﹏=



本篇文章回覆於2007-11-26 17:21
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

MARKAUS
檢舉此回應
真的很感謝喵喵大人的回覆
小弟還是不太了解那個小數字呈現的方法

例如我亂加人的時候為我爸加了17個兄弟姊妹+7個情婦和2個老公[?](要被天罰了....
那麼geni會把我爸的方格上加上+28的綠色小標籤....

這個28的綠色小標籤,是在我跑"我"的時侯就會出現了
而畫面上除了我父親那個方塊之外,其實蠻多人都是被隱藏的,可能不只我父親上面有,或許我的姐姐,我的媽媽,我的太太都有
因為我和他們沒血親關係,但是或許某個和我有血親關係的人(姐姐、媽媽、太太)和那些人有血親關係
所以在某個人的上面(姐姐、媽媽、太太)會出現綠色小標籤
就像大大所說的一樣
但我的問題是
這是不是說我在db上要一層層的找,用我的id,找到了我的父親,用我的父親去找他的父親(和我有血緣,會出現),如果沒有,就找母親(和我有血緣,會出現),一直找下去,我父親的姐姐的丈夫也會出現,但我父親他姐夫的兄弟姐妹和我沒關係,所以在我的畫面上他的方塊會有綠色小標籤的出現
這個邏輯我大概了解,但綠色小標籤中的數字來源,是不是就像我說的要在登入後從db層層探入?
另外flash和db間是不是只能傳送字串?
大大所說的
它只是從DB讀取你個人做出的關係樹而已...
我不太了解
不是說無法傳回ds嗎?
我爬文的結果是說要先匯出xml
再讀xml
還是有別的辦法呢?
再次叩首感激~~


本篇文章回覆於2007-11-27 10:28
--未登入的會員無法查看對方簽名檔--
[變換順序]
1
 

回覆
如要回應,請先登入.