![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2009
Адрес: MO
Сообщений: 32
|
Доброго времени суток,
продолжая изуть движок от papervision столкнулся со следующей проблемой... при добавлении интерактивности в сцену... пример: все рабоает, но вот вопрос, как сделать кликабельным collada объект, тупо collada.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onPress); не выходит... ![]() И еще вопрос, как можно поместить слой над объектом papervision... Последний раз редактировалось iNils; 18.01.2009 в 21:42. Причина: дополнение |
|
|||||
|
Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
|
Читать документацию.
Последний раз редактировалось Obi; 18.01.2009 в 21:04. |
|
|||||
|
Регистрация: Jan 2009
Адрес: MO
Сообщений: 32
|
По документации разобраться не могу, а может не там читаю ... так как еще новичок в этом вопросе...
я так понимаю нужно вытащить так сказать кликабельный объект из коллады, но как это сделать не пойму... есть примеры, для работы с подобъектами, скажем focus или little planet, но примеры уже устаревшие, сейчас есть изменение в движке... поменялся соответственно и код... И что значит перерегистрироваться, и зачем? Последний раз редактировалось myocean; 18.01.2009 в 21:11. |
|
|||||
|
Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
|
object.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onObjectClick); private function onObjectClick(event:InteractiveScene3DEvent):void { trace('click!'); } interactive = true материалам выставили? |
|
|||||
|
Регистрация: Jan 2009
Адрес: MO
Сообщений: 32
|
Спасибо Obi, но так не работает, проблема так понимаю в
object.addEventListener... Как его определить, как вытащить из colladы (интерактив материалы выставил) Добавлено через 7 минут вот весть код package { import flash.display.Sprite; import flash.events.Event; import org.papervision3d.view.Viewport3D; import org.papervision3d.scenes.Scene3D; import org.papervision3d.cameras.Camera3D; import org.papervision3d.materials.BitmapAssetMaterial; import org.papervision3d.materials.utils.MaterialsList; import org.papervision3d.objects.parsers.Collada; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.events.InteractiveScene3DEvent; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.objects.DisplayObject3D; import org.papervision3d.materials.ColorMaterial; import org.papervision3d.typography.Text3D; public class PV3D extends Sprite { private var viewport: Viewport3D; private var scene: Scene3D; private var camera: Camera3D; private var collada: Collada; private var plane: Plane; private var mesh: DisplayObject3D; private var mesh2: DisplayObject3D; private var materialSpace: ColorMaterial; private var renderer: BasicRenderEngine; private var mCube: BitmapAssetMaterial; public function PV3D():void { viewport = new Viewport3D(600, 600, false, true); addChild(viewport); scene = new Scene3D(); camera = new Camera3D(); materialSpace = new ColorMaterial( 0xFFFFFF, 1 ); materialSpace.interactive = true; plane = new Plane( materialSpace, 800, 800, 10, 10 ); plane.rotationX = 90; plane.y =- 125; scene.addChild(plane); renderer = new BasicRenderEngine(); mCube =new BitmapAssetMaterial( "cube.jpg", 0.1 ); mCube.interactive = true; var materialsList:MaterialsList = new MaterialsList(); materialsList.addMaterial( mCube, "mCube" ); collada = new Collada("modelcube.dae", materialsList, .2); scene.addChild(collada); camera.target = collada; addEventListener(Event.ENTER_FRAME, onEnterFrame); plane.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onPress); collada.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onObjectClick); function onEnterFrame(e:Event):void { var xDist:Number = mouseX - stage.stageWidth * 0.5; var yDist:Number = mouseY - stage.stageHeight * 0.5; camera.x -= (camera.x - Math.sin(mouseX*0.01)*1000) /8; camera.z -= 100+(camera.z - Math.cos(mouseX*0.01)*1000) /8; camera.y -= (camera.y - viewport.containerSprite.mouseY * 5) /8; renderer.renderScene(scene, camera, viewport); } function onObjectClick(event:InteractiveScene3DEvent):void { trace('click2!'); } function onPress(e:InteractiveScene3DEvent):void { trace("click"); txt.x = 100; } } } } Последний раз редактировалось iNils; 18.01.2009 в 21:42. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|