Sandy引擎学习笔记:swf影片剪辑纹理贴图
2008-10-15 22:51
543 查看
Sandy引擎可以像3dsmax 传统的3d***软件 那样可以支持外部贴图,同样也可以支持swf 的贴图,和flv 的贴图显示,这样一件让人觉得兴奋的事情。
下面引入官方一个代码:(偷懒一下,下次补回更多解析)
package
{
import flash.display.*;
import flash.net.URLRequest;
import flash.events.*;
import flash.ui.*;
import sandy.core.Scene3D;
import sandy.core.data.*;
import sandy.core.scenegraph.*;
import sandy.materials.*;
import sandy.materials.attributes.*;
import sandy.primitive.*;
import sandy.util.*;
import sandy.events.*;
public class My3D extends Sprite
{
private var scene:Scene3D;
private var camera:Camera3D;
private var box:Box;
private var queue:LoaderQueue;
public function My3D()
{
queue = new LoaderQueue();
queue.add( "test", new URLRequest("main.swf") );
queue.add( "test2", new URLRequest("main2.swf") );
queue.addEventListener(SandyEvent.QUEUE_COMPLETE, loadComplete );
queue.start();
}
public function loadComplete(event:QueueEvent ):void
{
// We create the camera
camera = new Camera3D( 300, 300 );
camera.z = -400;
var root:Group = createScene();
scene = new Scene3D( "scene", this, camera, root );
addEventListener( Event.ENTER_FRAME, enterFrameHandler );
}
private function createScene():Group
{
// Create the root Group
var g:Group = new Group();
// Create a cube so we have something to show
box = new Box( "box",100,100,100,"tri");
box.rotateX = 30;
box.rotateY = 30;
box.x = 0;
// we define a simple color material
var materialAttr:MaterialAttributes = new MaterialAttributes(
new LineAttributes( 0, 0xD7D79D, 0 ),
new LightAttributes( true, 0.1)
);
var material:Material = new ColorMaterial( 0xD7D79D, 1, materialAttr );
material.lightingEnable = true;
var app:Appearance = new Appearance( material );
// we define two Movie Material
var material01:MovieMaterial = new MovieMaterial( queue.data["test"],40);
material01.lightingEnable = true;
var app01:Appearance = new Appearance( material01 );
var material02:MovieMaterial = new MovieMaterial( queue.data["test2"],40);
material02.lightingEnable = true;
var app02:Appearance = new Appearance( material02 );
box.appearance = app;
box.aPolygons[0].appearance = app01;
box.aPolygons[1].appearance = app01;
box.aPolygons[2].appearance = app02;
box.aPolygons[3].appearance = app02;
//box.aPolygons[10].appearance = app02;
//box.aPolygons[11].appearance = app02;
g.addChild( box );
return g;
}
// The Event.ENTER_FRAME event handler tells the Scene3D to render
private function enterFrameHandler( event : Event ):void
{
box.tilt += 1;
box.pan += 1;
//sphere.pan += 1
scene.render();
}
}
}
其实和普通的图片贴图区别,类只是名称改变而已,操作和图片贴图差不多
MovieMaterial(p_oMovie:Sprite, p_nUpdateMS:uint = 40, p_oAttr:MaterialAttributes = null, p_bRemoveTransparentBorder:Boolean = false, p_nHeight:Number = 0, p_nWidth:Number = 0)
Creates a new MovieMaterial.
//创建一个影片剪辑材质
实际的用途用作材质贴图,为flash贴图增加一种不错的格式;
有点累了,下次补上其他 解析
加载外部文件的的类结合到URLRequest一起使用,既可以加人swf jpeg ,flv等等:
queue = new LoaderQueue();
queue.add( "test", new URLRequest("main.swf") );
queue.add( "test2", new URLRequest("main2.swf") );
queue.addEventListener(SandyEvent.QUEUE_COMPLETE, loadComplete );
queue.start();
下面引入官方一个代码:(偷懒一下,下次补回更多解析)
package
{
import flash.display.*;
import flash.net.URLRequest;
import flash.events.*;
import flash.ui.*;
import sandy.core.Scene3D;
import sandy.core.data.*;
import sandy.core.scenegraph.*;
import sandy.materials.*;
import sandy.materials.attributes.*;
import sandy.primitive.*;
import sandy.util.*;
import sandy.events.*;
public class My3D extends Sprite
{
private var scene:Scene3D;
private var camera:Camera3D;
private var box:Box;
private var queue:LoaderQueue;
public function My3D()
{
queue = new LoaderQueue();
queue.add( "test", new URLRequest("main.swf") );
queue.add( "test2", new URLRequest("main2.swf") );
queue.addEventListener(SandyEvent.QUEUE_COMPLETE, loadComplete );
queue.start();
}
public function loadComplete(event:QueueEvent ):void
{
// We create the camera
camera = new Camera3D( 300, 300 );
camera.z = -400;
var root:Group = createScene();
scene = new Scene3D( "scene", this, camera, root );
addEventListener( Event.ENTER_FRAME, enterFrameHandler );
}
private function createScene():Group
{
// Create the root Group
var g:Group = new Group();
// Create a cube so we have something to show
box = new Box( "box",100,100,100,"tri");
box.rotateX = 30;
box.rotateY = 30;
box.x = 0;
// we define a simple color material
var materialAttr:MaterialAttributes = new MaterialAttributes(
new LineAttributes( 0, 0xD7D79D, 0 ),
new LightAttributes( true, 0.1)
);
var material:Material = new ColorMaterial( 0xD7D79D, 1, materialAttr );
material.lightingEnable = true;
var app:Appearance = new Appearance( material );
// we define two Movie Material
var material01:MovieMaterial = new MovieMaterial( queue.data["test"],40);
material01.lightingEnable = true;
var app01:Appearance = new Appearance( material01 );
var material02:MovieMaterial = new MovieMaterial( queue.data["test2"],40);
material02.lightingEnable = true;
var app02:Appearance = new Appearance( material02 );
box.appearance = app;
box.aPolygons[0].appearance = app01;
box.aPolygons[1].appearance = app01;
box.aPolygons[2].appearance = app02;
box.aPolygons[3].appearance = app02;
//box.aPolygons[10].appearance = app02;
//box.aPolygons[11].appearance = app02;
g.addChild( box );
return g;
}
// The Event.ENTER_FRAME event handler tells the Scene3D to render
private function enterFrameHandler( event : Event ):void
{
box.tilt += 1;
box.pan += 1;
//sphere.pan += 1
scene.render();
}
}
}
其实和普通的图片贴图区别,类只是名称改变而已,操作和图片贴图差不多
MovieMaterial(p_oMovie:Sprite, p_nUpdateMS:uint = 40, p_oAttr:MaterialAttributes = null, p_bRemoveTransparentBorder:Boolean = false, p_nHeight:Number = 0, p_nWidth:Number = 0)
Creates a new MovieMaterial.
//创建一个影片剪辑材质
实际的用途用作材质贴图,为flash贴图增加一种不错的格式;
有点累了,下次补上其他 解析
加载外部文件的的类结合到URLRequest一起使用,既可以加人swf jpeg ,flv等等:
queue = new LoaderQueue();
queue.add( "test", new URLRequest("main.swf") );
queue.add( "test2", new URLRequest("main2.swf") );
queue.addEventListener(SandyEvent.QUEUE_COMPLETE, loadComplete );
queue.start();
相关文章推荐
- Sandy引擎学习笔记:swf影片剪辑纹理贴图
- Sandy引擎学习笔记:swf影片剪辑纹理贴图
- Sandy引擎学习笔记:纹理贴图
- Sandy引擎学习笔记:纹理贴图
- Sandy引擎学习笔记:纹理贴图
- Sandy引擎学习笔记:多维贴图
- Sandy引擎学习笔记:导入3ds模型纹理
- Sandy引擎学习笔记:多维贴图
- Sandy引擎学习笔记:导入3ds模型纹理
- Sandy引擎学习笔记:摄影机
- Sandy引擎学习笔记:鼠标交互
- android游戏引擎andengine学习系列七:纹理贴图的理解
- Windows 8 Directx 开发学习笔记(十一)地形纹理贴图
- Opengl ES 学习笔记 3:纹理贴图
- Sandy引擎学习笔记:颜色材质
- DirectX11 渲染 学习笔记(2) 纹理/贴图映射
- Sandy引擎学习笔记:颜色材质
- Sandy引擎学习笔记: 三维效果初试
- Sandy引擎学习笔记:导入MD2模型
- android游戏引擎andengine学习系列七:纹理贴图的理解