вторник, 8 апреля 2008 г.

Papervision 3d: может, познакомимся?

В связи с тем, что я "провтыкала" уже несколько работ только потому, что не хотела связываться с данным инструментом, вот, назрела необходимость.
1) Откуда взять Papervision?
Лично я брала с googleCodes. Выкачала свн-ом почти 20 мб всякой всячины вот отсюда. И положила на диск С в каталог PaperVision.
2) И что делать со всем выкачанным добром?
Дальше нужно заставить Flash IDE увидеть установленные классы. Для этого нужно ее (Flash) запустить. Создать новый документ. Зайти в Edit->Preferences->ActionScript и там нажать на кнопочку ActionScript 3.0 Settings. В появившемся окошке следует добавить путь к скачанным классам. В моем случае C:\Papervision\googlecode\as3\trunk\src . Сиреневая часть пути зависит от того, куда вы сложите скачанный код. После этой прописи Flash начнет видеть ПВ.
3) Первый пример для Papervision.
Предлагается для ознакомления на http://wiki.papervision3d.org/. В разделе Using Papervision3D -> Tutorials. Это вращающаяся плоскость красного цвета.
Для того, чтобы его посмотреть, нужно сделать следующее:

  • Создать новый Flash документ и сохранить его куда-нибудь. Помните, что благодаря прописыванию путей к классам, наш пример теперь увидит все, что нужно.
  • Создайте as-файл и сохраните его туда же под именем ExampleTransformationRotate.as
  • Во вновь созданном документе на панели Properties в поле для ввода Document Class укажите ExampleTransformationRotate. Обратите внимание, что расширение файла здесь не указывается.
  • В as-файл вставьте код:


    package

    {

    import flash.display.Sprite;
    import flash.events.Event;
    import org.papervision3d.cameras.Camera3D;
    import org.papervision3d.objects.*;
    import org.papervision3d.materials.*;
    import org.papervision3d.scenes.MovieScene3D;
    [SWF(width='400',height='400',backgroundColor='0x000000',frameRate='30')]
    public class ExampleTransformationRotate extends Sprite
    {
    private var container: Sprite;
    private var scene: MovieScene3D;
    private var camera: Camera3D;
    private var plane:Plane;
    public function ExampleTransformationRotate()
    {
    container = new Sprite;
    container.x = 200;
    container.y = 200;
    addChild( container );
    scene = new MovieScene3D( container );
    camera = new Camera3D();
    camera.z = -500; camera.zoom = 5;

    material:ColorMaterial = new ColorMaterial();
    material.doubleSided = true;
    material.fillColor = 0xFF0000;
    material.fillAlpha = 1.0;

    plane = new Plane( material, 128, 128, 1, 1 );
    scene.addChild( plane );
    stage.addEventListener( Event.ENTER_FRAME, onEnterFrame );
    }
    private function onEnterFrame( event: Event ): void
    {
    plane.rotationX += 4.35;
    plane.rotationY += 6.55;
    plane.rotationZ += 0.55;
    scene.renderCamera( camera );
    }
    }
    }
    • Сохраните as-файл.
    • Запустите свой fla-исходник.

    Крутится? Лично у меня получился вращающийся плоский красный квадратик. Правда, выкинулось в трейс cообщение:

    Papervision3D Beta RC1 (18.06.07)
    DisplayObject3D: null
    DisplayObject3D: null
    DisplayObject3D: null

    Оно осталось для меня загадкой.

    В общем, можно себя поздравить: хеллоу, ворлд, так сказать, сделан!

    Комментариев нет: