pv3d 特殊位置
king26951 (2010-10-23 10:29:31)
package
{
import flash.events.Event;
import org.papervision3d.core.geom.Particles;
import org.papervision3d.core.geom.renderables.Particle;
import org.papervision3d.core.math.Number3D;
import org.papervision3d.events.InteractiveScene3DEvent;
import org.papervision3d.materials.special.ParticleMaterial;
import org.papervision3d.view.BasicView;
public class Test3 extends BasicView
{
private var particles:Particles;
public function Test3()
{
super(0, 0, true, true);
startRendering();
addEventListener(Event.ENTER_FRAME, update);
particles = new Particles();
var numParticle:int = 300;
var w:Number = 500;
particles.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onClick);
while (numParticle-->0) {
var particle:Particle = new Particle(new ParticleMaterial(0xff0000 * Math.random(), 1, 0, 10));
particle.material.interactive = true;
particle.material.name = "" + numParticle;
var r:Number = w * Math.random();
var rx:Number = 180 * 2 * Math.random();
var ry:Number = 180 * Math.random() * 2;
var rz:Number = 180 * Math.random() * 2;
var num3d:Number3D = new Number3D(r, 0, 0);
num3d.rotateX(rx);
num3d.rotateY(ry);
num3d.rotateZ(rz);
particle.x = num3d.x;
particle.y = num3d.y;
particle.z = num3d.z;
particles.addParticle(particle);
}
scene.addChild(particles);
}
private function onClick(e:InteractiveScene3DEvent):void
{
trace("你点击了粒子name");
}
private function update(e:Event):void
{
particles.rotationY++;
}
}
}
这是别人的一段代码
现在如何给粒子指定位置
particle.x = xmlData.ZONES.R.position[i]
. @ pointX
particle.y = xmlData.ZONES.R.position[i]. @ pointY
particle.z = xmlData.ZONES.R.position[i]. @ pointZ
目的是实现每个粒子的交互,现在是可以逐个的交互了,但是不能从xml中指定这些粒子的位置,求助高手,如何把他们加到粒子位置上?