查看: 1405|回复: 0
打印 上一主题 下一主题

【Flare3D创建黄色星球】使用 ActionScript 将行为应用于对象_步骤2

[复制链接]

5472

主题

6

听众

1万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
76544
精华
23

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

跳转到指定楼层
楼主
发表于 2013-3-3 10:16:44 |只看该作者 |倒序浏览
步骤2:使用 ActionScript 将行为应用于对象YellowPlanet_02.as 包含本节描述的代码。private function setupscene( pivotivot3D ):至此,你已经创建了相应的 scene 并且加载了相应的 3D 对象。
在本节中,你将学习如何在相应的 scene 中寻找对象以及如何将特定的行为应用于它们。 寻找特定对象一旦 scene 完成加载,你可以访问所有包含的对象。 你可以使用方法 getChildByName("object_name") 获取里面所有的对象。该方法能够在层级中以递归的方式进行搜寻,直到它找到需要的对象。 如果没有找到任何对象,则方法返回 null。例如,你可以通过使用下行代码从天空(sky)对象中获取一个引用:sky = planet.getChildByName( "sky" );如果你希望修改一个特定对象的所有子对象,则你可以使用forEach 方法。 forEach 方法将为特定对象的每个子对象调用一个函数。例如,查看一下下面代码:planet.forEach( setupScene );在上面的代码行中,setupScene 是一个将每个子对象作为参数接收的方法。查看一下下面的代码范例:private function setupScene( pivotivot3D ):void{     if ( pivot.name == "fan" )     {         // All Pivot3D objects has a userDataproperty         // you can use to store your own data.         pivot.userData = new Object();         pivot.userData.speed = Math.random() * 5+ 5;         // Adds to fan Vector.         fan.push( pivot );     }}更新 scene你可以通过使用 Update 事件控制 scene 的更新时间。 该事件是在渲染之前下发的,因此你可以在每次调用该方法时修改 scene。updateEvent 函数是该游戏中的主循环。 在本范例中,updateEvent 将控制风扇(fan)和天空(sky)的旋转方式:private function updateEvent(e:Event):void{    // Update the world.    for each ( var fivot3D in fan )    {        f.rotateY( f.userData.speed ); //Rotatefan blades    }    sky.rotateX(0.1); //Rotate sky in thebackground}1.在范例文件中,找到名称为 YellowPlanet_02.as 的文件。 双击该文件以便在 Flash Professional 中打开它,然后测试相应的影片剪辑。在影片剪辑播放过程中,注意一下你可以利用你的鼠标移动控制行星的旋转。 在你观看风扇旋转过程中,思考一下 updateEvent 函数以及如何在行星内部修改它的对象。 在你完成查看范例项目之后,请继续阅读下一节内容。
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-13 10:09 , Processed in 0.108834 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部