flash action 由浅入深之一
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-10
还是不大懂吧?类就是定义一个对象将拥有什么的方法跟属性的东东,类似MC里instance与symbol的关系,instance的结构就是由symbol决定的,每个instance又可以不一样 AS里面没有专门定义类的例如class这样的关键字,我们使用函数来定义类,这种函数称构造函数constructor function,函数的作用就是产生我们定义好的类的实例(就是对象) 举例最实在: // make a Ball constructor 最简单的构造函数 function Ball () { // do nothing 里面是空的 } 现在我们可以定义新类型Ball的对象了 myBall = new Ball(); 语法就是前面是新对象实例名,等号后是new加构造函数名 myBall就拥有了Ball定义的一切结构了(虽然Ball里面是空的,嘻嘻) 上一页??[1]?[2]?[3]?下一页?? 不过不是所有对象创建都用new,例如mc创建就用的是attachMovie()或duplicateMovieClip() 好了,我们的构造函数总不能空的,如何定义类,让新对象有自己的属性呢? 使用this这个关键字,看例子,新的构造函数: function Ball () { this.radius = 10; this.color = 0xFF0000; this.xPosition = 35; this.yPosition = -4; } 以后我们定义出来的新对象,都拥有半径,颜色、XY坐标属性啦 慢着,怎么每个新对象都一模一样啊? 再改,用函数的参数来定义动态的属性: // Make the Ball constructor accept // property values as arguments. function Ball (radius, color, xPosition, yPosition) { this.radius = radius; this.color = color; this.xPosition = xPosition; this.yPosition = yPosition; } 我们可以定义不同属性的对象了 myBall = new Ball(6, 0x00FF00, 145, 200); 本教程关于还有创建方法以及如何在类之间继承方法和属性没讲, 无论如何,OOP都不可能在这么短时间之内说清楚, 但这不妨碍我们做下一个例子了。 第十二章 第四个版本的选择题 第三个版本的时候我们已经设想好,新版本中题目将是动态生成的,不用我们在FLASH的场景里面一题一题输入了,我们要做的只是输入题目和题目答案的数据就够了。 很明显,每一条题目都将是一个对象(不然我们学这么多对象的知识干嘛?),而这些所有的题目,会用一个数组来存放 再重提一下,可配合源程序学习 http://www.flash8.net/upload/2003/5/21/20035212111528906.zip 好,开始设计题目的模版 模版就是一个MC,包含两个TEXT FIELD,里面不用填东西,分别起变量名为:(FOR小鸟:TEXT FIELD就是按工具条里T按钮拉出来的文本框,同时还要在文本面板(ctrl+t)里将其改为Dynamic Text,变量名则在面板的Variable处改) * qNum (以后将显示题目的编号) * qText (以后将显示题目的正文) 我们还要在库里面做标识,点一库面板(ctrl+l)右上的Options>> Linkage ,选第二个Expert this symbol,identifier填上questionTemplate,至此,题目模版完成 再制作选项的模版 选项模版应包括一个选择用的按钮 还有该选项的内容,一个起名为answerText的TEXT FIELD 在本例的后面,将为每一个动态生成的选项一个唯一的名字,譬如: "answer0", "answer1",..."answern". 答题者所选定的答案将由这个名字来决定,调用一个MC的名字,用的是_name这个属性 所以答题的按钮上面的AS为: on (release) { // Trim the prefix "answer" off this clip''s name // 下面使用了String.slice()方法,例如_name为answer0,它将被处理成0,slice的具体语法请查阅AS字典 // 按钮提交什么由该MC的名字决定的,我作个标记 @@ ,记得一会看回来 choice = _name.slice(6, _name.length); // 与前面的例子一样,最后将答案提交给answer函数处理,不过现在我们是在某一MC里面用外面主时间线的函数了,所以得加上_root _root.answer(choice); } 最后,Opti |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于flash action 由浅入深之一的所有评论