Flashhilfe.de - Flash Community

Papervision3D 2.0 Viewport Spiegeln ??? [Flash 9]

 


AntwortenRegistrieren Seite1 2 3 4  

Atticus#1
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

13.08.2008, 11:44

Hallo^^

Ich wollte mal Fragen ob einer schonmal den gesamten Viewport gespiegelt hat und weis wie es geht??? Es wäre wirklich super nett wenn jemand mir sagen könnte wie man das am besten umsetzt!!!

Vielen Dank schonmal !!!

Gruß Atticus^^
Geändert von Atticus am 13.08.08 um 12:47 Uhr
badskill#2
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

13.08.2008, 13:51

Hi,
ich sehe da einige Möglichkeiten.
Du benutzt statt dem Viewport3D den BitmapViewport3D. Über die Eigenschaft bitmapData dieses Viewports kommst du an die Bilddaten ran. Diese kannst du dann ja in einem eigenen Reflektionsscript verwenden. Davon gibt es ja schon genug im Netz.

Oder du verwendest diese BitmapData für ein BitmapMaterial, welches du auf eine Plane mappst.

Du kannst auch das BitmapViewportMaterial verwenden und den BitmapViewport3D diesem Material übergeben und es auf eine Plane mappen.

Eine weitere Möglichkeit ist die Klasse ReflectionView als Viewport zu benutzen, das Teil ist ziemlich cool, da der Eindruck von 'echten' Reflektionen entsteht. Zu finden im package org.papervision3d.core.effects.view. Allerdings (noch) nicht für viele Objekte geeignet, da die Spiegelung über einen zweiten automatisch angelegten Viewport3D erzeugt wird und alles dementsprechend doppelt gerendert wird.

Es liegt an dir, die für dich einfachste Methode zu verwenden.
Atticus#3
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

13.08.2008, 14:25

Hi badskill^^

Vielen Dank für die Informationen!!! Ich werde mich jetzt mal damit beschäftigen und mal sehen wie ich das hinbekomme^^ Ich werde mich aber nochmal melden und dir mitteilen wofür ich mich entschieden habe. Und bei Fragen sowieso, und die kommen bestimmt ;)

Vielen Dank nochmal!!!

Gruß Atticus^^
Atticus#4
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

11.09.2008, 15:29

So, es ist soweit^^

Ich habe mir das jetzt mal alles durch den Kopf gehen lassen und mich dazu entschieden das mit ReflectionView zu lösen. Ich hoffe das war die richtige Entscheidung^^

Ich habe diese Klasse jetzt mit:

ActionScript:
1import org.papervision3d.core.effects.view.ReflectionView;


eingebunden. Jetzt würde ich noch gerne wissen mit welchem Befehl ich den gesammten Viewport spiegeln kann ;)

EDIT:
Einbauen würde ich die Reflection gerne in dieses Script:

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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
stop();

import flash.display.*;
import flash.events.*;
import flash.geom.Matrix;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.text.*;
import flash.utils.Dictionary;
import flash.filters.*;
import flash.filters.DropShadowFilter;

import caurina.transitions.*;

import org.papervision3d.*;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.events.InteractiveScene3DEvent;
import org.papervision3d.materials.*;
import org.papervision3d.core.effects.view.ReflectionView;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.materials.VideoStreamMaterial;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.objects.DisplayObject3D;

var scene:Scene3D = new Scene3D();
var camera:Camera3D = new Camera3D();
var viewport:Viewport3D;
var renderer:BasicRenderEngine = new BasicRenderEngine();
   
var cameradistance:Number = -2000;
var cameraposition:Number;
var camerazoom:Number = 2;
var cameramove:Boolean = true;
var cameracheck:Boolean = true;
var cameraTweenTime:Number = 2;
var cameraTweenEasing:String = "easeOutQuint";
var xcamposition:Number;
var ycamposition:Number;
var zcamposition:Number;
var zoomdistance:Number = 2;

var imagewidth:Number;
var imageheight:Number;
var imagewidthdistance:Number;
var imageheightdistance:Number;
var imagedistance:Number;
var imageshadow;
var imageshadowcolor;
var imageglow;
var imageglowcolor;
var imageglowstrength;
var imageglowholder;
var imagescale:Number;
var imageextend:Number;
var imagepreloader;
var imageloaded:Number;
var imageenhanced:Boolean = false;
var imagedownload;
var imagecheck:Boolean = false;
var imagetransparent:Boolean = false;
var imagequality:Number = 1;

var xposition:Number;
var yposition:Number;
var zposition:Number;
var deltaX:Number;
var deltaY:Number;
var rows:Number;
var columns:Number;
var intervalId;
var currentPlane:Plane = null;
var distributevertical:Number = 0; 
var distributehorizontal:Number = 0;

var total:Number;

var images:Array = new Array();
var url:Array = new Array();
var target:Array = new Array();
var vertices:Array = new Array();

var planeDictionary:Dictionary = new Dictionary();
var planeLink:String = "";
var planeTarget:String = "";
var planedistance:Number = -200;
var planeTweenTime:Number = 2;
var planeTweenEasing:String = "easeOutQuint";
var planesloaded:Number = 0;
      
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();

function create3DScene() {
   Initial3D();

   Load3DData();
};

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

   viewport = new Viewport3D(stage.stageWidth, stage.stageHeight, true, true);
   viewport.visible = true;
   addChild(viewport);
   
   camera.target = DisplayObject3D.ZERO;
   camera.zoom = camerazoom;
   camera.z = cameradistance;
   camera.focus = 800;
   
   camera.extra = {
      x: 0,
      y: 0,
      rotationX: 0,
      rotationY: 0,
      camerarotation: 0
   }
};

function Load3DData():void {
   xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
   xmlLoader.load(new URLRequest("XML/Imagedata01.xml"));
};

function LoadXML(e:Event):void {
   xmlData = new XML(e.target.data);
   ParseData(xmlData);
};

function ParseData(data:XML):void {
   total = data.mediadata.length();
   columns = data.mediadata.length();

   imageloaded = Math.round(52 / total * 100) / 100;
   
   imagedistance = xmlData.@imagedistance;
   imagewidth = xmlData.@imagewidth;
   imageheight = xmlData.@imageheight;
   imagescale = xmlData.@imagescale;
   
   imagewidthdistance = imagewidth + imagedistance;
   imageheightdistance = imageheight + imagedistance;

   imageshadow = xmlData.@imageshadow;
   imageshadowcolor = xmlData.@imageshadowcolor;
   imageglow = xmlData.@imageglow;
   imageglowcolor = xmlData.@imageglowcolor;
   imageglowstrength = xmlData.@imageglowstrength;
   imagedownload = xmlData.@imagedownload;
   imagepreloader = xmlData.@imagepreloader;
   imageextend = xmlData.@imageextend / 100;
   
   rows = xmlData.@imagelines;
   
   deltaX = imagewidthdistance * columns / 2;
   deltaY = imageheightdistance * rows / 2;
   
   for(var i:uint = 0; i < total; i++) {
      images[i] = data.mediadata[i].@image.toString();
      url[i] = data.mediadata[i].@url.toString();
      target[i] = data.mediadata[i].@target.toString();
   }

   if(imagepreloader == true) {
      Object(parent).preloader.visible = true;
   }
   
   loadImage();
};

function loadImage():void {
   for(var i:uint = 0; i < total; i++) {
      var myLoader:Loader = new Loader();
      var myRequest:URLRequest = new URLRequest(images[i]);

      myLoader.load(myRequest);
      myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, ImageLoaded);
      
      planeDictionary[myLoader] = i;
   }
};

function ImageLoaded(e:Event):void {
   var loadedObject:Loader = e.target.loader;
   
   var bmpData:BitmapData = new BitmapData(loadedObject.width, loadedObject.height, imagetransparent, 0x000000);
   bmpData.draw(loadedObject);

   var bitmapMaterial:BitmapMaterial = new BitmapMaterial(bmpData);
   bitmapMaterial.name = "BmpMaterial";
   bitmapMaterial.precise = true;
   bitmapMaterial.interactive = true;
   bitmapMaterial.doubleSided = false;
   bitmapMaterial.smooth = true;
 
   var plane:Plane = new Plane(bitmapMaterial, loadedObject.width, loadedObject.height, imagequality, imagequality);
   
   plane.useOwnContainer = true;
   
   if(imageshadow == true) {
       plane.filters = [new DropShadowFilter(0, 45, imageshadowcolor, 1, 8, 8, 3, 1)];
   }

   var index:Number = planeDictionary[loadedObject];
   
   scene.addChild(plane, "plane" + index);
   
   plane.extra = {
      index:new Number, width:new Number, height:new Number, x:new Number, y:new Number, z:new Number
   }

   plane.extra.index = index;
   plane.extra.width = loadedObject.width;
   plane.extra.height = loadedObject.height;
   
   plane.visible = false;
   
   cameraposition = ((imagewidthdistance * Math.ceil(columns/rows)) - imagewidthdistance) * 0.5;

   if(imagepreloader == true) {
      Object(parent).preloader.loadingback.visible = true;
      Object(parent).preloader.loadingback.width += imageloaded;
   }
   
   plane.addEventListener(InteractiveScene3DEvent.OBJECT_RELEASE, onPlaneRelease, false, 0, true);
   plane.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneRollOver, false, 0, true);
   plane.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneRollOut, false, 0, true);
         
   currentPlane = plane;

   planesloaded++
 
    if(planesloaded == total) {
      render3DScene();
      
      distributePlanes();
    }
};
      
function render3DScene():void {
   renderer.renderScene(scene, camera, viewport);
   
   addEventListener(Event.ENTER_FRAME, update3D);
   
   intervalId = setInterval(preloaderhide, 1000);
};

function preloaderhide():void {
   clearInterval(intervalId);
   
   Object(parent).preloader.visible = false;
};

function distributePlanes():void {
   for(var i:uint = 0; i < total; i++) {
      var plane:Plane = scene.getChildByName("plane" + i) as Plane;
      
      plane.x = distributehorizontal * imagewidthdistance - cameraposition;
      plane.y = distributevertical * imageheightdistance - deltaY + imageheightdistance / 2;
      
        plane.visible = true;
      
      distributehorizontal++;
   
       if(distributehorizontal % Math.ceil(columns/rows) == 0) {
         distributehorizontal = 0;
         distributevertical++;
      }
   }
};

function onPlaneRelease(e:InteractiveScene3DEvent):void {
   var plane:Plane = e.target as Plane;
   
   planeLink = url[plane.extra.index];
   planeTarget = target[plane.extra.index];
   
   vertices = plane.geometry.vertices;
   
   if(cameracheck == true) {
      cameracheck = false;
      
      currentPlane = plane;
      
      imageglowholder = plane;
      
      xposition = plane.x;
      yposition = plane.y;
      
      ycamposition = camera.y;
      xcamposition = camera.x;
      zcamposition = camera.z;
      
      Tweener.addTween(plane, {
         scaleX:  imageextend,
         scaleY:  imageextend,
         z: -imagescale,
         time: planeTweenTime,
         transition: planeTweenEasing
      });
   }
   
   else {
      if(plane == currentPlane) {
         Tweener.addTween(currentPlane, {
            scaleX:  1,
            scaleY:  1,
            z: 0,
            time: planeTweenTime,
            transition: planeTweenEasing,
            
            onComplete:function():void {
               cameracheck = true;
            }
         });
         
         imageglowholder = null;
      }
      
      if(plane != currentPlane) {
         if(imageshadow == true) {
             imageglowholder.filters = [new DropShadowFilter(0, 45, imageshadowcolor, 1, 8, 8, 3, 1)];
         }
   
         else {
            imageglowholder.filters = null;
         }
   
         Tweener.addTween(currentPlane, {
            scaleX:  1,
            scaleY:  1,
            z: 0,
            time: planeTweenTime,
            transition: planeTweenEasing
         });
         
         currentPlane = plane;
         
         imageglowholder = plane
         
         xposition = plane.x;
         yposition = plane.y;
      
         Tweener.addTween(plane, {
            scaleX:  imageextend,
            scaleY:  imageextend,
            z: -imagescale,
            time: planeTweenTime,
            transition: planeTweenEasing
         });
      }
   }
};

function onPlaneRollOver(e:InteractiveScene3DEvent):void {
   var plane:Plane = e.target as Plane;
   
   if(imageglow == true) {
      plane.filters = [new GlowFilter(imageglowcolor, 1, imageglowstrength, imageglowstrength, 5, 1, false, false)]
   }
   
   buttonMode = true;
};

function onPlaneRollOut(e:InteractiveScene3DEvent):void {
   var plane:Plane = e.target as Plane;
   
   if(imageshadow == true) {
       plane.filters = [new DropShadowFilter(0, 45, imageshadowcolor, 1, 8, 8, 3, 1)];
   }
   
   else {
      plane.filters = null;
   }
   
   if(imageglow == true) {
      if(imageglowholder != null) {
         imageglowholder.filters = [new GlowFilter(imageglowcolor, 1, imageglowstrength, imageglowstrength, 5, 1, false, false)]
      }
   }
      
   buttonMode = false;
};

Object(parent).downloadbutton.addEventListener(MouseEvent.CLICK, imageURL);
Object(parent).downloadbutton.addEventListener(MouseEvent.ROLL_OVER, downloadOver);
Object(parent).downloadbutton.addEventListener(MouseEvent.ROLL_OUT, downloadOut);

function imageURL(e:MouseEvent):void {
   navigateToURL(new URLRequest(planeLink), planeTarget);
};

function downloadOver(e:MouseEvent):void {
   Object(parent).downloadbutton.buttonMode = true;
};

function downloadOut(e:MouseEvent):void {
   Object(parent).downloadbutton.buttonMode = false;
};

stage.addEventListener(MouseEvent.MOUSE_WHEEL, CameraZoom);

function CameraZoom(e:MouseEvent) {
   var newzoom:Number = zoomdistance + e.delta/12;
   
   if(newzoom < 1) {
      newzoom = 1;
   }
   
   if(newzoom > 3) {
      newzoom = 3;
   }
   
   zoomdistance = newzoom;
   
   if(Object(parent).downloadbutton.visible == true) {
      Object(parent).downloadbutton.visible = false;
   }
};

function update3D(e:Event):void {
   if(cameramove == true) {
      camera.x += (((stage.mouseX-(stage.stageWidth * 0.5))*1)-camera.x) * 0.2;
        camera.y += (((stage.mouseY-(stage.stageHeight * 0.5))*1)-camera.y) * 0.2;
   }
   
   camera.zoom += (zoomdistance-camera.zoom)/5;
   
   renderer.renderScene(scene, camera, viewport);
};

create3DScene();


Vielen Dank schonmal für die Mühe!!!

Gruß Atticus^^
Geändert von Atticus am 11.09.08 um 15:32 Uhr
badskill#5
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

11.09.2008, 15:48

Einfach überall wo Viewport3D steht mit ReflectionView ersetzen. Das sollte eigentlich reichen.
Atticus#6
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

11.09.2008, 15:53

Hey badskill^^

Ich habe das jetzt mal alles so ersetzt, und da kamen bei mir 2 Fehlermeldungen, und zwar folgende:

ActionScript:
11067: Implicit coercion of a value of type org.papervision3d.core.effects.view:ReflectionView to an unrelated type org.papervision3d.view:Viewport3D.


Und in der Zeile steht dann folgendes:

ActionScript:
1renderer.renderScene(scene, camera, viewport);


und da ich das 2 mal habe erscheint die Fehlermeldung auch 2 mal. Weist du vielleicht noch was ich falsch mache???

Vielen Dank schonmal!!!

Gruß Atticus^^
badskill#7
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

11.09.2008, 16:01

Sieht mir aus, als ob du was übersehen hast, zu ersetzen.
Atticus#8
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

11.09.2008, 16:16

Hey badskill^^

Ich habe nochmal drüber geschaut und nicht mehr gefunden, ich habe das jetzt so:

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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
stop();

import flash.display.*;
import flash.events.*;
import flash.geom.Matrix;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.text.*;
import flash.utils.Dictionary;
import flash.filters.*;
import flash.filters.DropShadowFilter;

import caurina.transitions.*;

import org.papervision3d.*;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.events.InteractiveScene3DEvent;
import org.papervision3d.materials.*;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.materials.VideoStreamMaterial;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.core.effects.view.ReflectionView;

var scene:Scene3D = new Scene3D();
var camera:Camera3D = new Camera3D();
var viewport:ReflectionView;
var renderer:BasicRenderEngine = new BasicRenderEngine();
   
var cameradistance:Number = -2000;
var cameraposition:Number;
var camerazoom:Number = 2;
var cameramove:Boolean = true;
var cameracheck:Boolean = true;
var cameraTweenTime:Number = 2;
var cameraTweenEasing:String = "easeOutQuint";
var xcamposition:Number;
var ycamposition:Number;
var zcamposition:Number;
var zoomdistance:Number = 2;

var imagewidth:Number;
var imageheight:Number;
var imagewidthdistance:Number;
var imageheightdistance:Number;
var imagedistance:Number;
var imageshadow;
var imageshadowcolor;
var imageglow;
var imageglowcolor;
var imageglowstrength;
var imageglowholder;
var imagescale:Number;
var imageextend:Number;
var imagepreloader;
var imageloaded:Number;
var imageenhanced:Boolean = false;
var imagedownload;
var imagecheck:Boolean = false;
var imagetransparent:Boolean = false;
var imagequality:Number = 1;

var xposition:Number;
var yposition:Number;
var zposition:Number;
var deltaX:Number;
var deltaY:Number;
var rows:Number;
var columns:Number;
var intervalId;
var currentPlane:Plane = null;
var distributevertical:Number = 0; 
var distributehorizontal:Number = 0;

var total:Number;

var images:Array = new Array();
var url:Array = new Array();
var target:Array = new Array();
var vertices:Array = new Array();

var planeDictionary:Dictionary = new Dictionary();
var planeLink:String = "";
var planeTarget:String = "";
var planedistance:Number = -200;
var planeTweenTime:Number = 2;
var planeTweenEasing:String = "easeOutQuint";
var planesloaded:Number = 0;
      
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();

function create3DScene() {
   Initial3D();

   Load3DData();
};

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

   viewport = new ReflectionView(stage.stageWidth, stage.stageHeight, true, true);
   viewport.visible = true;
   addChild(viewport);
   
   camera.target = DisplayObject3D.ZERO;
   camera.zoom = camerazoom;
   camera.z = cameradistance;
   camera.focus = 800;
   
   camera.extra = {
      x: 0,
      y: 0,
      rotationX: 0,
      rotationY: 0,
      camerarotation: 0
   }
};

function Load3DData():void {
   xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
   xmlLoader.load(new URLRequest("XML/Imagedata01.xml"));
};

function LoadXML(e:Event):void {
   xmlData = new XML(e.target.data);
   ParseData(xmlData);
};

function ParseData(data:XML):void {
   total = data.mediadata.length();
   columns = data.mediadata.length();

   imageloaded = Math.round(52 / total * 100) / 100;
   
   imagedistance = xmlData.@imagedistance;
   imagewidth = xmlData.@imagewidth;
   imageheight = xmlData.@imageheight;
   imagescale = xmlData.@imagescale;
   
   imagewidthdistance = imagewidth + imagedistance;
   imageheightdistance = imageheight + imagedistance;

   imageshadow = xmlData.@imageshadow;
   imageshadowcolor = xmlData.@imageshadowcolor;
   imageglow = xmlData.@imageglow;
   imageglowcolor = xmlData.@imageglowcolor;
   imageglowstrength = xmlData.@imageglowstrength;
   imagedownload = xmlData.@imagedownload;
   imagepreloader = xmlData.@imagepreloader;
   imageextend = xmlData.@imageextend / 100;
   
   rows = xmlData.@imagelines;
   
   deltaX = imagewidthdistance * columns / 2;
   deltaY = imageheightdistance * rows / 2;
   
   for(var i:uint = 0; i < total; i++) {
      images[i] = data.mediadata[i].@image.toString();
      url[i] = data.mediadata[i].@url.toString();
      target[i] = data.mediadata[i].@target.toString();
   }

   if(imagepreloader == true) {
      Object(parent).preloader.visible = true;
   }
   
   loadImage();
};

function loadImage():void {
   for(var i:uint = 0; i < total; i++) {
      var myLoader:Loader = new Loader();
      var myRequest:URLRequest = new URLRequest(images[i]);

      myLoader.load(myRequest);
      myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, ImageLoaded);
      
      planeDictionary[myLoader] = i;
   }
};
      
function render3DScene():void {
   renderer.renderScene(scene, camera, viewport);
   
   addEventListener(Event.ENTER_FRAME, update3D);
   
   intervalId = setInterval(preloaderhide, 1000);
};

Object(parent).downloadbutton.addEventListener(MouseEvent.CLICK, imageURL);
Object(parent).downloadbutton.addEventListener(MouseEvent.ROLL_OVER, downloadOver);
Object(parent).downloadbutton.addEventListener(MouseEvent.ROLL_OUT, downloadOut);

function imageURL(e:MouseEvent):void {
   navigateToURL(new URLRequest(planeLink), planeTarget);
};

function downloadOver(e:MouseEvent):void {
   Object(parent).downloadbutton.buttonMode = true;
};

function downloadOut(e:MouseEvent):void {
   Object(parent).downloadbutton.buttonMode = false;
};

stage.addEventListener(MouseEvent.MOUSE_WHEEL, CameraZoom);

function CameraZoom(e:MouseEvent) {
   var newzoom:Number = zoomdistance + e.delta/12;
   
   if(newzoom < 1) {
      newzoom = 1;
   }
   
   if(newzoom > 3) {
      newzoom = 3;
   }
   
   zoomdistance = newzoom;
   
   if(Object(parent).downloadbutton.visible == true) {
      Object(parent).downloadbutton.visible = false;
   }
};

function update3D(e:Event):void {
   if(cameramove == true) {
      camera.x += (((stage.mouseX-(stage.stageWidth * 0.5))*1)-camera.x) * 0.2;
        camera.y += (((stage.mouseY-(stage.stageHeight * 0.5))*1)-camera.y) * 0.2;
   }
   
   camera.zoom += (zoomdistance-camera.zoom)/5;
   
   renderer.renderScene(scene, camera, viewport);
};

create3DScene();


Kannst du bitte nochmal darüber schauen??? Vielen Dank!!!

Gruß Atticus^^
Geändert von Atticus am 11.09.08 um 16:34 Uhr
badskill#9
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

11.09.2008, 16:18

Ich hab grad mal in die Klasse geschaut, die Integration von ReflectionView verläuft etwas anders:
Aus dem hier:
ActionScript:
1
2
3
4
var scene:Scene3D = new Scene3D();
var camera:Camera3D = new Camera3D();
var viewport:Viewport3D;
var renderer:BasicRenderEngine = new BasicRenderEngine();

Das:
ActionScript:
1
2
3
var scene:Scene3D;
var camera:Camera3D;
var viewport:ReflectionView;

Dann nachdem der viewport erstellt wurde, camera und scene zuweisen:
ActionScript:
1
2
camera = viewport.cameraAsCamera3D;
scene = viewport.scene;

Dann in der Renderfunktion statt dem:
ActionScript:
1renderer.renderScene(scene, camera, viewport);

Das:
ActionScript:
1viewport.singleRender();

Hoffe ich hab jetzt nichts übersehen/vergessen.
Geändert von badskill am 11.09.08 um 16:19 Uhr
Atticus#10
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

11.09.2008, 16:28

Hi badskill^^

Also das funktioniert jetzt super^^ Allerdings ist die Spiegelung jetzt nicht am boden wo sie hingehört sondern genau hinter der Gallerie und außerdem ist kein Transparenter verlauf drinne. Sondern Sie ist so komisch abgedunkelt dargestellt. Das habe ich mir irgendwie anders vorgestellt^^

Außerdem ist die animation der Speigelung nicht 1 zu 1 sondern sie hingt hinterher ??? Weist du vielleichtjetzt noch wie ich aus dieser Speigelung eine vernünftige Spiegelung hinbekomme???^^

Vielen Dank schonmal für deine Mühe!!!

Gruß Atticus^^
Geändert von Atticus am 11.09.08 um 16:30 Uhr
badskill#11
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

11.09.2008, 16:32

Einen transparenten Verlauf gibt es bei dieser Methode nicht.
Das hinterherhängen könnte an Performanceproblemen liegen. Es wird alles doppelt gerendert!!
Warum die Spiegelung nicht dort ist, wo sie hingehört, kann ich spontan auch nicht sagen.
Atticus#12
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

11.09.2008, 16:38

Hey badskill^^

Also erstmal vielen Dank für alles!!! Aber wenn es bei dieser Methode keine Möglichkeit gibt einen Trnsparenten verlauf zu machen dann finde ich das irgendwie doof und unbrauchbar^^ Kennst du den eine gute wo das Möglich ist und weist du vielleicht auch wie das geht??? ;)

Gruß Atticus^^
badskill#13
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

11.09.2008, 16:58

Bei der ReflectionView geht es weniger darum, alle möglichen Anforderungen abzudecken, sondern ein Konzept anzubieten, dass einem einen Weg zu realistischen Reflektionen zeigt. Dieses Konzept kann man durchaus erweitern um seinen eigenen Anforderungen umzusetzen. Alles ist möglich. :)

Ansonsten schau dir in meiner ersten Anwort die erste Möglichkeit an. Mit Reflektionsscripten hast du ja schon Erfahrung. ;)
Atticus#14
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

11.09.2008, 20:43

Vielen Dank badskill!!!

Hats ud den vielleicht noch eine Ahnung warum die Reflection nicht unter der Animation ist sondern dahinter??? Und ich habe auch das gefühl das die Reflektion sich nicht so bewegt wie die eigentliche gallery sondern nach der mausbewegung!!!

Wenn du möchtest schicke ich dir das mal alles oder Lade es mal hoch damit du es dir anschauen kanns ;)

Gruß Atticus^^
badskill#15
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

12.09.2008, 10:18

Moin,
ich denke die ReflectionView ist nichts für dich? Hast du doch gesagt, dass du die nicht gut findest.
Atticus#16
Benutzerbild von Atticus
Beiträge: 1411
Wohnort: Leverkusen
Registriert: Jul 2006

Themenautor/in

12.09.2008, 11:37

Hi badskill^^

Ich weis das ich das gesagt habe, aber ich bin jetzt schon so weit^^ Vielleicht ist es auch garnicht so schlecht wenn manalle arten kennt um den Vieport zu sspiegeln ;) Wie würdest du da den machen wenn du den gesammten vieport Spiegeln müßtest ???

Gruß Atticus^^
Geändert von Atticus am 12.09.08 um 12:01 Uhr

AntwortenRegistrieren Seite1 2 3 4  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de