Away3D Lite:Flex Project 使用模板

本文介绍如何在ActionScript 3中创建并渲染一个旋转的3D球体,并将其作为子元素添加到Flex UI组件中。通过SpriteUIComponent类桥接Sprite与UIComponent,实现了3D内容与Flex应用的完美融合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 3D as实现类,同ActionScript Project一致

package
{
	import away3dlite.materials.*;
	import away3dlite.primitives.*;
	import away3dlite.templates.*;

	[SWF(backgroundColor="#000000", frameRate="30", quality="MEDIUM", width="800", height="600")]
	
	public class ExSphere extends FastTemplate
	{
        override protected function onPreRender():void
		{
            // 将targetCamera.zoom的数据绑定到flex场景中sliderZoom组件
			targetCamera.zoom = mx.core.Application.application.sliderZoom.value;
			mesh.rotationY += 0.5;
		}

    }
}

 

2. "SpriteUIComponent.as" 3D内容container,继承自UIComponent

FastTemplate 继承自 Sprite ,但是Sprite不能 直接addChild到Flex场景 中去,需要转化UIComponent ,下面的类就是一个转化类。

或者可以在mxml中使用“this.rawChildren .addChild(new ExSphere());”。

package
{
	import flash.display.Sprite;	
	import mx.core.UIComponent;
	
	public class SpriteUIComponent extends UIComponent
	{
		public function SpriteUIComponent(sprite:Sprite)
		{
		    super ();
		
		    explicitHeight = sprite.height;
		    explicitWidth = sprite.width;
		
		    addChild (sprite);
		}
	}
}
 

3. mxml中addChild到主场景

<?xml version="1.0" encoding="utf-8"?>
<mx:Application 
  xmlns:mx="http://www.adobe.com/2006/mxml" 
  layout="absolute" 
  applicationComplete="appComplete()" 
  width="600" 
  height="400">
	<mx:Script>
		<![CDATA[
			private function appComplete():void
			{
				this.addChild(new SpriteUIComponent(new ExSphere()));
			}
		]]>
	</mx:Script>
</mx:Application>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值