开启左侧

用menubar组件做课件菜单

[复制链接]
etthink 发表于 2009-3-24 11:35:26 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
使用组件做东西,特点就是“快”。做课件时常用到菜单,如果时间不够,不妨拿一个menuBar来用。下面做一个简单示例,与新手共享,老鸟呢就多提宝贵意见了。效果:
点击查看效果
从组件库拖一个menubar到舞台放好,实例名:mymenu。主场景建立几个图层:

d8d88cfcd9772da3b801a0e5.jpg

as层上代码如下:
stop()
//----------------------------------------------------------添加主菜单项目
//var mymenu:mx.controls.MenuBar;
m1 = mymenu.addMenu("课件封面");
m2 = mymenu.addMenu("重点内容");
m3 = mymenu.addMenu("课堂小节");
m4 = mymenu.addMenu("课后作业");
//---------------------------------------------------------添加二级菜单项目(下拉显示)
with(m2){
addMenuItem("内容1");
addMenuItem("内容2");
}
//----------------------------------------------------------建立侦听对象,控制下拉菜单项
侦听 = new Object();
侦听.change = function(evt) {
/*测试一些属性:
trace(mymenu.__menuBarItems);
//输出主菜单实例名数组:_level0.mymenu.mbItem200,_level0.mymenu.mbItem201,_level0.mymenu.mbItem202,_level0.mymenu.mbItem203
trace(evt.menuItem)
//输出:<menuitem label="内容2" />
trace(evt.menuItem.attributes.label)
//输出:内容2
*/

t = evt.menuItem.attributes.label;
gotoAndStop(t);

};

m2.addEventListener("change", 侦听);

//========================控制主菜单============================

//如果想直接操控一级菜单,就是用上面测试出的主菜单实例名:_level0.mymenu.mbItem200;_level0.mymenu.mbItem201;……202……
//这里主要是学习mymenu.__menuBarItems属性。
//====================================================================
_level0.mymenu.mbItem200.onRelease = function() {
gotoAndStop(this.__initText);//this.__initText是该主菜单上的文本,和要跳转到的帧标签同名。
};
_level0.mymenu.mbItem202.onRelease = function() {
gotoAndStop(this.__initText);//
};
_level0.mymenu.mbItem203.onRelease = function() {
gotoAndStop(this.__initText);//
};
实际操作还是出了问题,比如,点“课堂小节”,然后再点“课件封面”,menubar上会重复增加菜单项,如果trace(mymenu.__menuBarItems)测试,出现了_level0.mymenu.mbItem204、205……,不知怎么回事,这样每点一次,菜单就会复制一次。应该是和该组件源代码发生冲突了吧,导致menu菜单被更新?
因为测试发现问题只是在点击第一个按钮(课件封面)时才会出现,并且发现该菜单按钮上的跳转动作只要避开第一帧就没有问题,所以该菜单项上使用gotoAndStop(2)就ok。
最后把主菜单部分的代码修改一下:
mymenu.__menuBarItems[0].onRelease = function() {//mymenu.__menuBarItems这个属性就是主菜单项目的数组集合,[0]表示第一个元素。

gotoAndStop(2);
};

for (i=1; i<=mymenu.__menuBarItems.length; i++) {

mymenu.__menuBarItems.onRelease = function() {

    gotoAndStop(this.__initText);

};

}
结果行了。
点击查看修改后效果
如果改善一下外观,增加一些动态切换效果,也是很不错的呢。
学教育技术,上教育技术论坛!http://www.etthink.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


11关注

462粉丝

7846帖子

推荐阅读更多+
会员达人更多+
广告位

最新信息

更多+

关注我们:教育技术人

官方微信

官方微博

教育技术热线:

13955453231

学教育技术,上教育技术论坛!

教育技术论坛征稿范围:教育技术应用案例、教程文章、优秀作品等。

Email:sf@etthink.com

Copyright   ©2007-2026  应用思考-教育技术论坛  Powered by©Discuz!  技术支持:且行资源    ( 皖ICP备10014945号-4 )