您的位置:首页 > 其它

关于动态贴图问题不能动态通过texture改变只能重新new 新material

2010-08-17 11:39 651 查看
这里指的是改变material 贴图 而贴图时静态只有一张 当然我们也可以通过贴图的变化来间接达到动态改变贴图(贴图外观变化了)具体实现就是通过过控制贴图的属性改变外观 而不是改变 pv3d matrial的 texture属性 总之 通过textture是不能动态改变贴图的只能引用当前贴图

/*

不能动态的通过texture(movie)改变材质,而只是通过该属性来引用贴图而已 对于动态改变材质只能重新新new material类

*/
/**//

MC MC2 MC3都是 MovieClip

*/

package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.sampler.NewObjectSample;
import org.papervision3d.materials.MovieMaterial;
import org.papervision3d.materials.WireframeMaterial;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.view.BasicView;

/**
* ...
* @author dreamnight
*/
public class BothFace extends BasicView

{

private var plane:Plane
private var material:MovieMaterial
public function BothFace() {

init()
stage.frameRate = 40;

startRendering()

}
private function init():void {

createPlane();
// addAction

}

private function createPlane():void {

var mc:Sprite = new MC();
material= new MovieMaterial(mc);
trace("movie为"+material.movie)
trace("材质为:"+material.texture)
material.doubleSided=true
plane = new Plane(material,400,300,2,2);
this.scene.addChild(plane);

}

override protected function onRenderTick(e:Event=null):void
{
super.onRenderTick();
plane.rotationX += 2

if ((plane.rotationX%360 > 180) && (plane.rotationX%360 < 360)) {

// plane.material= new WireframeMaterial()
//plane.material.doubleSided=true
material=new MovieMaterial(new MC2())

plane.material=material

//material.movie = new MC()
//plane.material=new MovieMaterial(new MC());
plane.material.doubleSided = true
// trace("OK");
}
else {

// plane.material= new MovieMaterial(new MC());
// plane.material.doubleSided=true

material=new MovieMaterial(new MC())
plane.material=material

//MovieMaterial(plane.material).texture= new MC2()
//
plane.material.doubleSided = true

trace("yes");
}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐