PDA

Volledige versie bekijken : Vraagje ivm Five3D


xWouterx
%Europe/Berlin %655 %2008, 16:44
Ik weet niet of hier iemand al enige ervaring heeft met Five3D
maar ik heb een vraag omtrend het resizen van Sprite3D objecten, want bij het setten van de height en width wordt er elke keer een error gethrowed.

Dit is men code:
package {
import five3D.display.Scene3D;

import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.MouseEvent;

import model.Cube3D;

public class Five3DBars2 extends Sprite
{
private var scene:Scene3D;
private var cube:Cube3D;

public function Five3DBars2()
{
initStage();
initScene();
initCube();
}

private function initStage():void{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
}

private function initScene():void{
scene = new Scene3D();
scene.x = stage.stageWidth / 2;
scene.y = stage.stageHeight / 2;
this.addChild(scene);
}

private function initCube():void{
cube = new Cube3D(60);
cube.addEventListener(MouseEvent.CLICK, turnCube);
scene.addChild(cube);
}

private function turnCube(mE:MouseEvent):void{
cube.turnMe();
}
}
}

package model
{
import five3D.display.Sprite3D;

import flash.events.Event;

public class Cube3D extends Sprite3D
{
private var faces:Array;

public function Cube3D(size:Number, colors:Array = null)
{
super();

if ( !colors ) colors = [ 0xFF0000, 0xFF0000, 0xFF0000, 0xFF0000, 0xFF0000, 0xFF0000 ];
createCube( size, colors );
}

private function createCube( size:Number, colors:Array ): void
{
faces = new Array();

var xP:Array = new Array( 0, size / 2, 0, -size / 2, 0, 0 );
var yP:Array = new Array( 0, 0, 0, 0, -size / 2, size / 2 );
var zP:Array = new Array( -size / 2, 0, size / 2, 0, 0, 0 );
var xR:Array = new Array( 0, 0, 0, 0, -90, 90 );
var yR:Array = new Array( 0, -90, 180, 90, 0, 0 );
var zR:Array = new Array( 0, 0, 0, 0, 0, 0 );

for ( var i:int = 0; i < 6; i++ )
{
var face:Sprite3D = new Sprite3D();
face.graphics3D.lineStyle( 1, 0x000000, 1 );
face.graphics3D.beginFill( colors[ i ] );
face.graphics3D.drawRect( -size / 2, -size / 2, size, size );
face.graphics3D.endFill();
face.singleSided = true;

face.x = xP[ i ];
face.y = yP[ i ];
face.z = zP[ i ];
face.rotationX = xR[ i ];
face.rotationY = yR[ i ];
face.rotationZ = zR[ i ];

faces[i] = face;
addChild(face);
}
}

public function turnMe():void{
this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
}

private function onEnterFrame(e:Event):void{
this.rotationX++;
this.rotationY++;
this.width++;
}
}
}

Ik zou dus graag die Cube3D kunnen resizen

mknol
%Europe/Berlin %985 %2008, 00:39
Ik weet niet of je gewoon scaleX of scaleY kan toepassen op een Sprite3D?

Verder zou ik je adviseren om eens naar papervision3D te kijken, aangezien deze veel verder is (zoals ik je code nu bekijk), en scalen van objecten sowieso mogelijk is.

xWouterx
%Europe/Berlin %510 %2008, 13:15
Ik weet niet of je gewoon scaleX of scaleY kan toepassen op een Sprite3D?

Verder zou ik je adviseren om eens naar papervision3D te kijken, aangezien deze veel verder is (zoals ik je code nu bekijk), en scalen van objecten sowieso mogelijk is.
Ja ik heb ook al met pv3D gewerkt maar dit was een opdracht met Five3D... ScaleX en ScaleY bestaat... maar ik was hier precies geen voorstander van haha (waarom weet ik niet)