Делал поиск по данному разделу форума и не нашел ни одной темы посвященной Flare3D. Мне он показался очень качественным и удобным движком, однако при создании первого же тестового проекта столкнулся с проблемой - не удается поймать мышиное событие (вообще никакое ни клик на модель, ни клик на сцену). Демки изучил, все делаю как там.
Код класса прилагаю:

Код AS3:
package
{
import flare.basic.*;
import flare.core.*;
import flare.loaders.*;
import flare.system.*;
import flare.events.*;
import flash.display.Sprite;
import flash.events.*;
/**
* ...
* @author PainKiller
*/
[SWF(frameRate = 60, width = 1080, height = 1000, backgroundColor = 0x000000)]
public class Main extends Sprite
{
private var scene:Scene3D;
private var floor:Pivot3D;
private var axis:Pivot3D;
public function Main():void
{
if (stage)
init();
else
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
scene = new Viewer3D(this);
scene.autoResize = true;
scene.camera = new Camera3D("myOwnCamera");
// we can manipulate the camera just like any 3d object.
scene.camera.setPosition( 0, 10, -20 );
scene.camera.lookAt( 0, 0, 0 );
// add global scene progress and complete events.
scene.addEventListener( Scene3D.PROGRESS_EVENT, progressEvent);
scene.addEventListener( Scene3D.COMPLETE_EVENT, completeEvent);
// loads the objects.
floor = scene.addChildFromFile( "flare-europe3D-floor1.zf3d" );
//floor.forEach (traceName);
floor.addEventListener (MouseEvent3D.CLICK, onClick, true);
axis = scene.addChildFromFile( "axis.f3d" );
}
private function traceName (child:Pivot3D):void
{
trace (child.name);
child.addEventListener (MouseEvent3D.CLICK, onClick);
}
private function onClick (e:MouseEvent3D):void
{
trace (e.target);
trace (e.currentTarget);
}
private function progressEvent(e:Event):void
{
// gets the global loading progress.
trace( scene.loadProgress );
}
private function completeEvent(e:Event):void
{
trace( "complete!" );
// just scale the model.
axis.setScale( 0.5, 0.5, 0.5 );
trace (floor.children.length);
floor.addEventListener (MouseEvent3D.CLICK, onClick);
floor.addEventListener (MouseEvent3D.MOUSE_MOVE, onClick);
scene.addEventListener (MouseEvent3D.CLICK, onClick);
//floor.forEach (traceName);
}
}
}
Ну и вообще, если кто работал с движком поделитесь впечатлениями.
Добавлено через 36 минут
Да небольшое уточнение - поковырявшись в их демках, я обнаружил что в демках события отлавливаются только на примитивах, примеров с загруженными моделями нет. Можно ли заставить слушать мышиное событие модель, наверняка ведь можно!!!