onEnterFrame innerhalb Klasse [Flash 11]
| Beiträge: 28 Registriert: Sep 2011
| 06.10.2011, 22:10
Ich hab eine Scene in papervision erstellt. Sie beeinhaltet Plane, Cube , Lichtobject
Sie wird zwar ohne fehler erzeugt jedoch mit ätzenden Problemen ^^.
Z.b. hab ich innerhalb des konstruktors 4 addEventListener.ENTER_FRAME die 4 methoden aufrufen
- für den Renderprozess
- für der Abfrage ob gewisse Tasten gedrückt sind
- für der Abfrage ob diese Tasten nicht gedrückt sind
- für die Navigations der Camera mit Hilfe der Tasten und der Maus
die Drehung mit der Maus funktioniert aber nicht die Bewegung mit den Tasten.
-Woran liegt das ?
-Ausserdem falls ich im Konstruktur oder sonst wo stage.stageHeight verwende kommt ne fehlermeldung: "möglicher statischer verweis etc.."
- Wie ihr auf der Seite sehen könnt schneidet die Camera oder Viewport oder Render ein paar Teile von dem Plane obwohl sie ziemlich weit oben(y=2000) ist und der Plane (y=0), wie kann ich das korrigieren?
LINK
thx für eure hilfe
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.ui.*;
import flash.events.KeyboardEvent;
import flash.geom.Point;
import fl.motion.Color;
import flash.filters.BlurFilter;
import flash.display.Stage;
import my.*;
import shadowcaster.*
import com.greensock.TimelineMax;
import com.greensock.TweenMax;
import com.greensock.easing.*;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.cameras.CameraType;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.view.BasicView;
import org.papervision3d.core.utils.Mouse3D;
import org.papervision3d.core.proto.MaterialObject3D;
import org.papervision3d.core.geom.renderables.Vertex3D;
import org.papervision3d.materials.*
import org.papervision3d.materials.shaders.*
import org.papervision3d.materials.shadematerials.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.parsers.DAE;
import org.papervision3d.events.FileLoadEvent;
import org.papervision3d.core.proto.MaterialObject3D;
import org.papervision3d.core.clipping.FrustumClipping;
import org.papervision3d.view.stats.StatsView;
//[SWF(backgroundColor="#000000", frameRate="60")]
public class papervision extends Sprite {
//meine variable ....
public function papervision() {
//weitere variablen und positionen von boden (plane), po(Cube), Viewport, Scene....
//.......
addEventListener(Event.ENTER_FRAME, keys_enterframe);
addEventListener(KeyboardEvent.KEY_DOWN, onKeyDowns);
addEventListener(KeyboardEvent.KEY_UP, onKeyUps);
addEventListener(Event.ENTER_FRAME, render_func);
}
public function render_func(e:Event) {
renderer.renderScene(scene, camera, viewport);
}
public function onKeyDowns(k1:KeyboardEvent){
switch(String.fromCharCode(k1.keyCode).toUpperCase()){
case "W": wDown = true; break;
case "S": sDown = true; break;
case "A": aDown = true; break;
case "D": dDown = true; break;
case "Z": zDown = true; break;
case "X": xDown = true; break;
}
}
public function onKeyUps(k2:KeyboardEvent):void{
//trace ("erreicht aufruf");
switch(String.fromCharCode(k2.keyCode).toUpperCase()){
case "W": wDown = false; break;
case "S": sDown = false; break;
case "A": aDown = false; break;
case "D": dDown = false; break;
case "Z": zDown = false; break;
case "X": xDown = false; break;
case "F":
renderer.clipping = new FrustumClipping(FrustumClipping.ALL); break;
case "N":
renderer.clipping = new FrustumClipping(FrustumClipping.NEAR);break;
case "C":
renderer.clipping = null;
}
}
public function keys_enterframe(hu:Event) : void{
if(wDown) { wVel += 1;}
if(sDown) { wVel -= 1;}
if(aDown) { rVel -= 1;}
if(dDown) { rVel += 1;}
if(zDown) { camera.near+=2;}
if(xDown) { camera.near-=2;}
wVel *= 0.93;
rVel *= 0.93;
camera.moveForward(wVel);
camera.moveRight(rVel);
camera.rotationX = viewport.containerSprite.mouseY/8;
camera.rotationY = viewport.containerSprite.mouseX/4;
//renderer.renderScene(scene, camera, viewport);
}
}
}
|
| Geändert von bilblo am 06.10.11 um 22:26 Uhr | |
|
| Ähnliche Beiträge zum Thema | |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News
Regeln & Bedingungen
|