更新时间:2021-12-05 19:45:42
首先打开flash2004,建立一个新文档,接下去我们简单介绍一下怎么把组件添加到场景中及相关的一些设置
1、选择Window-Development Panels-Components,或使用快捷键Ctrl+F7,打开组件面板:
2、选中一个组件,拖到场景中或者双击组件都能把组件加到场景中
3、你可安装一些组件,方法和MX一样(请参考《组件安装方法》)
4、选中场景中的组件,打开属性面板,你可加入实例名,改变标签等等,也可通过菜单Window-Development Panels打开Components inspector设置更多,如是否可见,是否可用等等
5、要改变组件的字体等可看UIObject.setStyle(),这个我们后面会介绍
当然你也可以不直接把组件拖到场景中,而是用as代码向场景中添加组件,我们举个例子来加个按钮:
1、双击Button组件,加入到场景中
2、到场景中把组件Delete掉(注:删掉的目的是把这个组件加入到库中,使用AS代码来从库中调用)
3、为第一帧加入以下as:
import mx.controls.Button;
//Button为组件的名称,
//前面的格式不变,如要加入一个CheckBox,就用import mx.controls.CheckBox;
createClassObject(Button,"button2",5,{label:"Test Button"});
//Button为名称,Button2为实例名,5为深度,后面为标签
或者简单点这样
createClassObject(mx.controls.Button,"button2",5,{label:"Test Button"});
这样的话我们就可利用实例名来改变组件的一些属性,在前面代码的基础上再添加如下AS代码:
button2._x=200;
//x坐标
//试试这样
button2.onRelease=function(){
trace("zjs");
}
注:以上这些代码是加在帧上的。
换一种方法,不用AS来添加BUTTON组件。
1.把BUTTON组件拖入场景或通过双击该组件使其出现在场景中
2.选中Button,点击Action面板。输入
on(click){
trace("不要点我");
}
运行试试看。
注:组件的事件因组件而不同,对Button组件可用on(click)、on(press)、on(release)等。
还有一种语法是写在帧上的:
function myHandler(eventObj){注:写这段AS的前提是给场景中的Button组件一实例名:button1
还有更多的,大家可看看帮助
今天主要是以Button组件为例,对2004组件做了一个简单介绍,后面我们会针对不同的组件用实例来说明其用法,请各位继续关注……
用过flash MX的朋友都在知道,ComboBox这个组件在MX中也有,在flash2004中差别不多,接下去一起来看看
使用ComboBox组件:在任何需要从列表中选择的表单应用程序中,您都可以使用ComboBox组件。例如,您可以在客户地址中提供一个省的下拉列表。对于比较复杂的情况,您可以使用可编辑的组合框。例如,在一个驾驶方向应用程序中,您可以使用一个可编辑的组合框来让用户输入出发地址和目标地址。下拉列表可以包含用户以前输入过的地址。
ComboBox类的个别方法及事件摘要
1、comboBoxInstance.addItem()
此函数的作用是向列表的结尾添加项目,语法就不说了,看实例,在场景中拖入一个ComboBox组件,实例名为ComboBox1(注意大小写),接下去就添加一些条目上去,帧的as如下:
var a=["闪式天下","闪客帝国","蓝色理想"]
//建一数组,存放条目
for(var n=1;n<=a.length;n++)
{
ComboBox1.addItem(a[n]);
}
//用一个循环把数给内容加到组件中
测试运行,看看是不是有三条目了
2、ComboBox.change
它的作用是当组件项目的值因用户操作而改变时,可执行一系列的操作,废话不说,我们接上个例子做,继续在前面的代码后加入下列as:
b=["http://www.mcmx.com",http://www.flashempire.com,
"http://www.blueidea.com" ]
//这个数给用来存放网址
myComboBox = new Object();
myComboBox.change = function(){
for(var n=0;n<a.length;n++)
{
if(ComboBox1.value==a[n]){
getURL(b[n]);
//定义函数,当条件满足时,打开相应的网址
}
}
}
ComboBox1.addEventListener("change", myComboBox)
测试效果如下图
怎么样,用这个组件就这么简单
3、ComboBox.close()和ComboBox.open()
这两个东东的作用是相对的,系统默认是Combobox.close(),它使组件处于未展开的状态,即关闭下拉列表,而另一个刚好相反,使组件处于展开的状态,即打开下拉列表
你可在上面的例子中加入,看效果即可明白
ComboBox1.open();
4、ComboBox.close和ComboBox.open
它的用法和ComboBox.chang类似,所不同的是:它们是当下拉列表展开或关闭时触发事件,这是新增的功能,看一个实例:
你可把上面例子中的as
myComboBox.itemRollOut = function(){改为
myComboBox.close = function() {
getURL("http://www.flashempire.com");
};
ComboBox1.addEventListener("close", myComboBox);
效果:当下拉列表合拢时,将打开闪客帝国的首页。
5.ComboBox.itemRollOut和ComboBox.itemRollOver
ComboBox.itemRollOut的作用是当指针滑离一个下拉列表项时触发事件;ComboBox.itemRollOver则是当指针滑过一个下拉列表项时触发事件。
其它的可自己看看帮助文件,这是***的教程,有些可用trace来测试一下,了解有这么一个功能即可。比如:trace(ComboBox1.value)。
源文件下载
今天来看看Menu组件,这个东东是专业版特有的,所以要多看看帮助,当然,也要多点口水,先来看帮助中的一个例子。下面为用Menu组件建一个应用(按帮助翻译,由于英语不行,有错误请指正)。
1、选择文件--新建来创建一个flash文档。
2、从组件面板中拖一个Menu组件到场景中,并删除它,到时我们从库中来创建。
3、从组件面板中拖一个Button组件到场景中,单击按钮来激活Menu,在属性面板中给按钮实例命名:commandBtn。
4、从组件面板中拖一个Label组件到场景中,在属性面板中给Label实例命名:Label。
5、在Action面板中输入以下代码。
var listener = new Object();
listener.click = function(evtObj) {
var button = evtObj.target;
if (button.menu == undefined) {
// 建立一个Menu组件
button.menu = mx.controls.Menu.createMenu();
//增加菜单项
newItem = button.menu.addMenuItem("闪客学堂");
newItem.addMenuItem({label:"在线教程"});
newItem.addMenuItem({label:"常见问题"});
newItem.addMenuItem({label:"组件下载"});
button.menu.addMenuItem("闪客影院");
button.menu.addMenuItem("闪酷地带");
button.menu.addMenuItem("帝国加游站");
//使用组件事件侦听器,用change事件
var changeListener = new Object();
changeListener.change = function(event) {
var item = event.menuItem;
trace("Item selected: "+item.attributes.label);
Label.text = item.attributes.label;
//把菜单项赋值给Label组件
};
button.menu.addEventListener("change", changeListener);
}
button.menu.show(button.x, button.y+button.height);
};
commandBtn.addEventListener("click", listener);
commandBtn.label = "闪客帝国";
commandBtn.setSize(90, 30);
当然,这只是使用Menu的一种方法,在帮助中,介绍了四种方法,有兴趣的朋友可看看。
通过前面的例子想必对这个组件有个大致的了解了吧,现在我们仔仔细细的来学习下这个好东东吧,look下面。
1、增加一个菜单
myMenu.addMenu(initObject);
2、创建一个菜单
Menu.createMenu(parent, mdp);3、菜单出现的位置
myMenu.show(x, y);帮助中是用xml对象来建菜单的,我们换种方法
打开flash,新建一文档,双击组件面板中的Menu组件,然后到场景中Delete这个组件,到帧中输入下列代码:
var myMenu = mx.controls.Menu.createMenu();运行,看看结果
如果我们要建很多菜单,就用数组吧
var a=["laohe...","beebee...","zjs35..."];上次简单介绍了ComboBox的用法,今天介绍一下CheckBox。
CheckBox即复选框,它是任何表单或Web应用程序中的一个基础部分。每当需要手机一组非相互排斥的true或false值时,都可以使用复选框。CheckBox这个组件的和MX差别大,常用的我列了一下。
CheckBox类的属性有:
CheckBox.label:指定在复选框旁边出现的文字,即标签。
CheckBox.labelPlacement:标签文本相对于复选框的位置,有上下左右四个位置,你可根据自己的要求来设置 。
CheckBox.selected:组件的状态,返回true(选中)或false(取消选中),我们就可根据这个来应用组件。
CheckBox类的事件有:
CheckBox.click:当鼠标按下(release)按钮组件时,触发事件。
接下去我们来简单举例应用一下:
1.先在flash2004新建一个文件,保存,双击checkBox组件,选中组件,实例命名为:CheckBox(注意大小写)。
2.新建一层,在帧中输入as
CheckBox.label = "click me";如下图:
运行,看标签:
3.继续添加一行AS代码:
CheckBox.labelPlacement = "left";如下图:
运行,标签是不是在左边了?如下图:
然后我们来看看click事件的应用
4.在第一层加入一个label组件,实例命名label.
5.在第二帧中把AS代码改为
var control:Number = 0;
label.text = "rezult: "+control;
CheckBox.label = "click me";
CheckBox.labelPlacement = "left";
myObject = new Object();
myObject.click = function() {
if (control == 0) {
control = 1;
} else if (control == 1) {
control = 0;
}
label.text = "rezult: "+control;
trace(CheckBox.selected);
};
CheckBox.addEventListener("click", myObject);
是不是很简单,快把它应用到你的作品中去吧,我想肯定会为它增色不少,可能有朋友要说了,就这么一个东东,如果有100、1000个checkBox怎么办呢,这样吧,写个函数
var num = 3;
//我有三个checkBox,你可自己定义,随你几个
function checkBox_con(list) {
if (_root["checkBox"+list].selected && list == list) {
trace("true"+list);
} else {
trace("false"+list);
}
}
//测试结果输出
myObject = new Object();
myObject.click = function() {
for (var n = 1; n<=num; n++) {
checkBox_con(n);
}
};
for (var n = 1; n<=num; n++) {
_root["checkBox"+n].addEventListener("click", myObject);
}
在场景上放入三个CheckBox组件,并分别命名实例名为:checkBox1,checkBox2,checkBox3,如下图:
然后把上面那段代码拷到帧中测试看看。
对于flash的组件一直没有好好的研究,一直觉得这是个遗憾,现在有点时间,好好来学习一下,我说的都是一些很粗的知识,大家有兴趣的一起来研究.
先来了解一下UIObject:
UIObject是所有v2组件的基类;它是不可视组件。UIObject类围绕ActionScript MovieClip对象,并包含允许Macromedia v2组件攻关某些常用行为的函数和属性。IObject类实现了以下内容:样式、事件、安缩放比例调整大小。要使用UIObject的方法和属性,请直接从正在使用的任何组件中调用它们。如果您使用Macromedia Component V2 Architecture创建新组件,则只需创建一个UIObject实例。即使在这种情况下,UIObject也经常由其他子类(例如Button)隐式创建。如果您确实需要创建一个UIObject实例,请使用下列代码:
class MyComponent extends UIObject;
UIObject类的方法描述摘要:
UIObject.createObject(): 为一个对象建立它的子对象
UIObject.createClassObject():创建指定类的对象(注:在第一节中曾用了这一方法建立了一个按钮对象:
import mx.controls.Button;
createClassObject();
UIObject.setSize(): 将对象调整到要求的大小
UIObject.setStyle(): 设置组件的样式,例如字体的粗细,线条的风格等等。有关各组件所支持的样式的列表,请参阅其各自所属的条目。
另外,简单介绍一下如何在组件上增加一个事件触发行为。
UIObject.addEventListener("click", listenerObject):即表示在组件上增加一个事件触发行为。其中buttonInstance为按钮实例名;click为事件名称,可以是其他事件;listenerObject为侦听器对象或函数,如果是函数,当事件触发时将调用该函数。
更多的可看帮助。
我们以Button组件为例简单介绍一下UIObject的几个常用方法的使用
1、先打开flash2004,新建一flash文档。
2、打开组件面板,双击button组件,然后在场景中把button把组件删除,别说我有病,帮助文件中这样写的,这样在库中就有一个button组件了,供以后用AS从库中调用。
3、在第一帧上单击,然后在Actions-Frame窗口中输入以下as代码:
_root.createObject("Button", "button1", 1);
//建一个button组件,button1为button组件的实例名
button1.setSize(80,20);
//设置大小
button1.label="闪式天下";
//按钮的名称(文本标签)
button1.setStyle("fontWeight", "bold");
//定义字体
button1._x=275;
button1._y=200;
//按钮的位置
myButton=new Object()
myButton.click=function(){
getURL("http://www.mcmx.com");
}
button1.addEventListener("click",myButton)
//为按钮加入链接
4、测试