Using the Tree Component in Adobe Director
One of the great thing of Adobe Director is user can apply flash components in a director movie. Unfortunately, the Director documentation is not really describe all the flash components’ properties and methods that are to be used in details.
Tree Component
The Tree component allows a user to view hierarchical data. The tree appears within a box like the List component, but each item in a tree is called a node and can be either a leaf or a branch.
By default, a leaf is represented by a text label beside a file icon and a branch is represented by a text label beside a folder icon with a disclosure triangle that a user can open to expose children. The children of a branch can either be leaves or branches themselves.
The data of a tree component must be provided from an XML data source.
Step 1: Where do we get the tree component in Director?
Go to “Library palette” -> “Component”, drag a tree component and drop it in your cast.
Step 2: Prepare script for tree component event.
If you are using Director MX 2004 10.1.1, right click your tree component in your stage, select “Script…”, then insert these script
on beginSprite me
fsButton = sprite(me.spriteNum)
fsButtonEvent = fsButton.newObject(”Object”)
fsButton.setCallback(fsButtonEvent, “change”, 0, 0)
MainMenuLessonSelected = void
end
Step 3: Prepare Your XML Data and Set the Tree Component’s Data Provider.
We have our XML data we need to provide it to our tree component in order for it to be rendered on stage, and that is done is by setting the tree component’s dataProvider property.
You can insert these script after on beginsprite me.
on buildtree
pSprite = sprite(me.spriteNum)
tDataSource = pSprite.newObject(”XML”)
tDataSource.ignoreWhite = true
pSprite.dataProvider = tDataSource
Step 4: Add/Remove Branches and Leaves as Needed.
–add branches
tNewNode1 = pSprite.addTreeNode(”Malaysia”,”East Asia,tNewNode1″) –note that the 1st parameter is the label to display, the 2nd parameter is the attribute(s) of this label.
pSprite.setIsBranch(tNewNode,TRUE) — to set it as a branch(folder)tNewNode2 = pSprite.addTreeNode(”China”,”West Asia,tNewNode2″)
pSprite.setIsBranch(tNewNode,TRUE)–add leaves
tNewLeaf1 = tNewNode1.addTreeNode(”Kuala Lumpur”,”Prime city”)
tNewLeaf2 = tNewNode1.addTreeNode(”Pulau Redang”,”Island”)
tNewLeaf3 = tNewNode2.addTreeNode(”Beijing”,”Beautiful city”)
tNewLeaf4 = tNewNode2.addTreeNode(”Shanghai”,”Advance city”) Step 5:Component event.
on change me
–To get a label’s data when you click on it.
gSelectedLabel = sprite(me.spriteNum).selectedNode.attributes.label
gSelecteddata = sprite(me.spriteNum).selectedNode.attributes.data–To close/open by clicking the label but not the arrow beside the label.
if pSprite.getIsOpen(tNewNode1)= 1 then
pSprite.setIsopen(tNewNode1,false)
else
pSprite.setIsopen(tNewNode1,true)
end if
end– To show hand cursor when rollover
on itemrollover me
cursor 280
end– To show hand cursor when rollout
on itemrollout me
cursor 0
end
*If you know how to edit the icon of a tree component in Adobe Director, please share it with me.
Download file: Tree Component.dir
(Right click and select save target as)
想在directoré‡ŒåŠ å…¥Tree Componentå´å› 为director说明书里没有详细记载其使用方法而一ç¹èŽ«å±•ï¼Ÿ
æ²¡å…³ç³»ã€‚ç„¶æˆ‘åœ¨è¿™é‡Œå’Œä½ åˆ†äº«æˆ‘å¯¹Tree Component的认识。
æ¥éª¤ä¸€ï¼šåŠ å…¥Tree Component
打开”Library palette” -> “Component”,选择tree componentç„¶åŽåŠ å…¥cast里。
æ¥éª¤äºŒï¼šåŠ å…¥Tree Component活动程å¼
å¦‚æžœä½ ä½¿ç”¨ç€Director MX 2004 10.1.1ç‰ˆæœ¬ï¼Œé‚£ä½ åº”è¯¥åœ¨ä½ çš„tree componenté‡Œï¼ŒåŠ å…¥æ¤ç¨‹å¼
on beginSprite me
fsButton = sprite(me.spriteNum)
fsButtonEvent = fsButton.newObject(”Object”)
fsButton.setCallback(fsButtonEvent, “change”, 0, 0)
MainMenuLessonSelected = void
end
æ¥éª¤ä¸‰ï¼šåŠ å…¥XMLèµ„æ–™åº“åŠæˆç«‹Tree Component的资料æä¾›ä½“
XML资料库将æä¾›tree component所è¦çš„èµ„æ–™ï¼Œç„¶åŽæ‰èƒ½å»ºç«‹èµ·ä¸€ä¸ªtree component。
ä½ å¯åœ¨tree componenté‡Œï¼ŒåŠ å…¥æ¤ç¨‹å¼
on buildtree
pSprite = sprite(me.spriteNum)
tDataSource = pSprite.newObject(”XML”)
tDataSource.ignoreWhite = true
pSprite.dataProvider = tDataSource
æ¥éª¤å››ï¼šåŠ å…¥æˆ–åˆ é™¤æ¯æ¡£å¤¹ä¸Žå档案
–åŠ å…¥æ¯æ¡£å¤¹
tNewNode1 = pSprite.addTreeNode(”Malaysia”,”East Asia,tNewNode1″) –æ‹¬å¼§é‡Œçš„ç¬¬ä¸€ä¸ªèµ„æ–™æ˜¯æ¯æ¡£å¤¹çš„åå—ï¼Œæ‹¬å¼§é‡Œçš„ç¬¬äºŒä¸ªèµ„æ–™æ˜¯å…¶æ¯æ¡£å¤¹çš„属性。
pSprite.setIsBranch(tNewNode,TRUE)tNewNode2 = pSprite.addTreeNode(”China”,”West Asia,tNewNode2″)
pSprite.setIsBranch(tNewNode,TRUE)–åŠ å…¥åæ¡£æ¡ˆ
tNewLeaf1 = tNewNode1.addTreeNode(”Kuala Lumpur”,”Prime city”)
tNewLeaf2 = tNewNode1.addTreeNode(”Pulau Redang”,”Island”)
tNewLeaf3 = tNewNode2.addTreeNode(”Beijing”,”Beautiful city”)
tNewLeaf4 = tNewNode2.addTreeNode(”Shanghai”,”Advance city”) æ¥éª¤äº”:Component event.
on change me
–获å–其档夹/档案的属性(资料)
gSelectedLabel = sprite(me.spriteNum).selectedNode.attributes.label
gSelecteddata = sprite(me.spriteNum).selectedNode.attributes.data–关闿ˆ–打开其档夹当用户按下其å
if pSprite.getIsOpen(tNewNode1)= 1 then
pSprite.setIsopen(tNewNode1,false)
else
pSprite.setIsopen(tNewNode1,true)
end if
end–æ»‘é¼ æ ‡ç¾çš„å˜åЍ
on itemrollover me
cursor 280
endon itemrollout me
cursor 0
end





