上一篇 | 下一篇

在Director中创建分支菜单

发布: 2007-1-25 14:17 | 作者: Will Turnage | 来源: 译自director-online.com | 查看: 206次

  原著:Will Turnage奥古多媒体}&v8R(VB|V3E4u
  翻译:alphachi
ZHfO2j
%jSn$r0a5K$J4bKK6`F   我们经常使用单独的位图创建分支菜单,这样做的最大问题是纵向占用了Score中过多的空间。如果想要添加新的项目,就不得不为了腾出空间而移动周围的角色,从而使整个操作变得非常麻烦。其实,使用一小点图像Lingo,就能够仅使用单独角色来定制完整的分支菜单。奥古多媒体9J+Jz x A)H
奥古多媒体X!M5w.hhuc
  下面就是使用图像Lingo创建的完整的分支菜单:
$Q?G"p \ _/Ic 奥古多媒体wJs,Y9r
奥古多媒体'tB&_-eT'?g1MP
奥古多媒体4oY$L [v|
  如果想在自己的项目中创建一个这样的菜单,根据下面的步骤即可完成:
*Y:K_Z1p$k 奥古多媒体1v1k5btF#z?l)p
  1. 下载本例的Director 8影片源代码。
:xToxRY 奥古多媒体/p ccB,tnA7D
  2. 打开样本影片的Cast Window,会看到有两个剧本。一个是名为“Branching Menu Behavior”的行为,另一个是名为“Branching Menu Parent Object”的父代剧本。将这两个剧本复制到自己的影片中。奥古多媒体$q| v"P&r!H
奥古多媒体K/QyC+]
  3. 给菜单中的每一项创建单独的位图。由于使用了Ink效果来显示掠过状态,因此不需要创建同一个位图的多种版本。此时创建一个仅由1个像素组成的位图,此演员迟些将被用于影片运行时菜单的显示。奥古多媒体@W(xW-tEZ
 奥古多媒体/\ a\;f&q2S7}t8t:E3J0{
  4. 给每个位图适当的命名,这是最复杂的一步。Branching Menu Parent Object的代码需要使用确定名称的位图,其名称由三个不同部分组成,彼此之间用分号隔开,包括:
8P |*q jf^9h}Q 奥古多媒体:B{-Q"p XW j
  菜单名称;
G,j*] qqAb\r1C   [描述分支菜单按钮的数字列表];
9jowr9Kq   描述被点击按钮的关键字奥古多媒体c"]3T0[;z7`7_1J

7V&OAKp   下面是样本影片中的一些示例命名:奥古多媒体8U4|Akx$UM s"?3b
奥古多媒体oZ;?-dWTl-x!R.r
  DOUGMenu; [1];Item 1
!T0fG#WV   DOUGMenu; [2,4,3];Item 2, 4, 3 奥古多媒体6D n;J-y4q4Y\p L A$py
  DOUGMenu; [7,2];Item 7, 2 奥古多媒体mMe!dTD
奥古多媒体Ox Eg0_)V N6W'p&w$\
  第一部分是分支菜单的名称,可以是任何字符串,例如“myMenu”、“mainNavBar”或本例中的“DOUGMenu”。Branching Menu Parent Object会根据名称寻找相应的演员,并将其包含在分支菜单中。如果需要多个分支菜单,只要使用不同的名称即可。
e-ncjn-T8y 奥古多媒体 H ~8K[_N
  下一部分是描述菜单中项目位置的数字列表。如果是[1],就代表菜单的第1项;如果是[7,2],就代表菜单的第7项的第2分项。奥古多媒体v8f s%mkpr
奥古多媒体C/\VTTfl czT
  最后一部分是一个唯一的标识符,用来标识这个按钮,可以是任何单词或字符串,这一信息在点击按钮时会被使用。在样本影片中,它们是类似于“Item 2, 4, 3”或“Item 7,2”的字符串。
r3R$VsE p#U 奥古多媒体Ow'e'N2T8Al-H
  5. 一旦演员被正确命名,就可以把整个菜单放置到Score中。将傀儡角色(使用第3步中创建的那个1像素的演员)置于菜单出现的左上角,同时确保根据菜单的风格将其Ink效果设置成了Matte或Background Transparent。
B"U|H7S-S3p
C[vi%i.sfi   6. 给这个1像素的角色添加第2步中的Branching Menu Behavior,此时会显示一个需要两个参数的对话框。第一个参数是菜单的名称,它应该与第4步中位图的名称一致。另外一个参数用来选择掠过时的Ink效果,这一效果在鼠标掠过此角色时显示。
Tf].e-@of
N d'j~N J   7. 编写特定的代码,以便当用户点击菜单时执行相应的命令。这一步要做的就是在影片剧本中创建一个如下的处理程序:
q%e xL!A&Do 奥古多媒体J/}+j`c.mv
on executeBranchingMenu menuName, uniqueIdentifier
;Lc `#D^)\  -- insert code here
(w KC0m1p end
d#B7t^7M;v.o b 奥古多媒体h7I*ZksK6eT
  当用户点击菜单时,Branching Menu Parent Object自动调用executeBranchingMenu处理程序,并传递此处理程序中的两个值。第一个是在Behavior中指定的菜单名称,第二个是第4步中为每个菜单项创建的唯一标识符。根据菜单的名称和唯一标识符,就可以为每一个按钮执行相应的代码。
A|3v2g+c0| L 奥古多媒体9U3z7Y4WLs~ l
  样本影片中的executeBranchingMenu处理程序类似这样: 奥古多媒体7j$~fdC-c'@*w

^;jY#UBo H on executeBranchingMenu menuName, uniqueIdentifier
d-p3D,F7qL   tempStr = "You clicked button '" & uniqueIdentifier & "' in menu '" & menuName & "'"
$NUAs@;r5H[h   member ("results").text = tempStr奥古多媒体`T-Pbe&T Jk"{
end
-hGp]Ztw(m 奥古多媒体 sg9Z,n9R8R*S
  这些代码接受传递给处理程序的参数并将其置于一个字符串中,然后在指定域中显示。奥古多媒体VL@i xb(^)h
奥古多媒体 Z/{F'V,G y/G
  这就是创建分支菜单的基本步骤。你可以像本例那样使用这些代码,也可以在其他类型和尺寸的菜单中使用,因为这些代码对菜单的数量和层次都没有限制。此外,你还可以使用更多的位图来表示菜单按钮的更多状态,例如按钮的非活动状态。
/P"Z^%D3I RN#V/aDAT 奥古多媒体1GcyCoQHs
  相关附件

字号: | 推荐给好友

 

评分:0

我来说两句

seccode


最新歌曲
转机 放生 黄玫瑰 摇啊摇 那滋味 擦肩而过 你若成风 幸福一辈子 依然在一起 吻得太逼真 感动天感动地 坐上火车去拉萨 怎么会狠心伤害我
心碎 冲动 小太阳 别碰我 蒲公英 爱情小偷 只要不亏 一定要爱你 等爱的玫瑰 无情的温柔 北极星的眼泪 最后一次的温柔 亲爱的那不是爱情
光荣 火花 下雨天 我可以 樱花草 为你写诗 独家记忆 再见小时候 寂寞才说爱 忘不掉的伤 爱上你是个错 第三者的第三者 孤独的时候可以抱你
假如 城府 是非题 有缘人 舍不得 我的答铃 只欠秋天 外滩十八号 越爱越难过 123木头人 爱走了心碎了 爱上你是我的错 爱情里没有谁对谁错