步骤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 函数以及如何在行星内部修改它的对象。 在你完成查看范例项目之后,请继续阅读下一节内容。