
Код AS3:
package
{
import flash.events.Event;
import flash.events.MouseEvent;
import flash.filters.*;
import org.papervision3d.core.geom.renderables.Vertex3D;
import org.papervision3d.core.math.Number3D;
import org.papervision3d.core.math.Plane3D;
import org.papervision3d.events.InteractiveScene3DEvent;
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.materials.*;
import org.papervision3d.materials.shadematerials.*;
import org.papervision3d.materials.utils.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.view.BasicView;
[SWF(width="640", height="480", backgroundColor="#444499", frameRate="60")]
public class SelectObject extends BasicView
{
private var NUM_OBJ:int = 4; // кол-во объектов
private var Moveing_OBJ:Cube;
//GLOW FILTER для обозначения выделенного объекта
private var glowB:GlowFilter = new GlowFilter(0x00ff00,1,20,20);
public function SelectObject()
{
viewport.interactive = true;
addEventListener(Event.ENTER_FRAME,onEnterFrame);
camera.y = 1000;
camera.x = 500;
/МАССИВ ОБЪЕКТОВ
for(var i:int = 0; i < NUM_OBJ; i++)
{ //Материал объекта
var ArrowX_Mat = new GouraudMaterial(light, 0x990000, 0x440000);
var ArrowY_Mat = new GouraudMaterial(light, 0x009900, 0x004400);
var ArrowZ_Mat = new GouraudMaterial(light, 0x000099, 0x000044);
ArrowX_Mat.interactive=true;
ArrowY_Mat.interactive=true;
ArrowZ_Mat.interactive=true;
var materialList:MaterialsList = new MaterialsList({
front:ArrowZ_Mat, left:ArrowX_Mat,right:ArrowX_Mat,back:ArrowZ_Mat,top:ArrowY_Mat,bottom:ArrowY_Mat });
//Объект
var Object:Cube= new Cube(materialList,100,100,100,2,2,2);
Object.x = (i - NUM_OBJ/2) * 200;
Object.y=i*100;
Object.filters=[glowB];
scene.addChild(Object);
//Событие объекта
Object.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, objectPressHandler);
}
//МАССИВ ОБЪЕКТОВ//
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
startRendering();
}
private function objectPressHandler(event:InteractiveScene3DEvent):void
{
Moveing_OBJ = event.displayObject3D as Cube;
Object.useOwnContainer = false;// ТУТ РУГАЕТСЯ "Severity and Description Path Resource Location Creation Time Id
1119: Access of possibly undefined property useOwnContainer through a reference with static type Class. Mouse3DFloor Mouse3DFloor.as line 96 1237889840812 825
font>"
//Видимо что то нужно тут написать, что бы при клике на всех объектах кроме кликнутого было FALSE.
Moveing_OBJ.useOwnContainer = true;// есть подсветка. т.е. выделен объект этот
}
override protected function onRenderTick(event:Event=null):void
{
renderer.renderScene(scene, camera, viewport);
}
}
}
Приветствую всех. Вот код. Как то нужно сделать , что бы только кликнутый объект подсвечивался, а остальные при этом гасли. Кто подскажет, что вписать. Я не могу сообразить.