Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-03-2010, 20:53   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2007
Beiträge: 4
Exclamation Flas 3d Seiten mit Mausbewegung steuern

Wie lautet das Action Script, damit ich ein Bild in Flash CS4 AS3 als 3D Objekt mit der Maus entlang der x und y Achse kippen und drehen kann?
So wie in diesem Beispiel: Soft Whiteroom

Vielleicht kennt jemand ein Tutorial oder einen Anleitungsfilm.

Thx für die Hilfe

Geändert von office@el-media (05-03-2010 um 22:05 Uhr)
office@el-media ist offline   Mit Zitat antworten
Alt 07-03-2010, 14:26   #2 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 485
Wenn Du das mit Flash Hauseigenen mitteln lösen möchtest, dann so
ActionScript:
  1. package {
  2.     import flash.display.DisplayObject;
  3.     import flash.display.Sprite;
  4.     import flash.display.StageAlign;
  5.     import flash.display.StageScaleMode;
  6.     import flash.events.Event;
  7.     import flash.events.MouseEvent;
  8.     import flash.geom.Point;
  9.  
  10.     public class Test3D extends Sprite
  11.     {
  12.         //-----------------------------------------------------------------------------------------
  13.        
  14.         private var sp:Sprite;
  15.        
  16.         private const MAX_ROT_X:int = 30;
  17.         private const MAX_ROT_Y:int = 30;
  18.        
  19.         //-----------------------------------------------------------------------------------------
  20.        
  21.         public function Test3D()
  22.         {         
  23.             stage.align = StageAlign.TOP_LEFT;
  24.             stage.scaleMode = StageScaleMode.NO_SCALE;
  25.             stage.addEventListener(Event.RESIZE, this.resizeHandler);
  26.             stage.addEventListener(MouseEvent.MOUSE_MOVE, this.mouseHandler);
  27.            
  28.             this.sp = new Sprite();
  29.             this.sp.graphics.beginFill(0x0000ff);
  30.             this.sp.graphics.drawRect(-150,-50,300,100);
  31.             this.sp.graphics.endFill();
  32.            
  33.             this.addChild(this.sp);
  34.             this.resizeHandler(null);
  35.         }
  36.        
  37.         //-----------------------------------------------------------------------------------------
  38.         // listener
  39.         //-----------------------------------------------------------------------------------------
  40.        
  41.         private function resizeHandler(e:Event):void
  42.         {
  43.             this.sp.x = stage.stageWidth/2;
  44.             this.sp.y = stage.stageHeight/2;
  45.             this.root.transform.perspectiveProjection.projectionCenter = new Point(stage.stageWidth/2,stage.stageHeight/2);
  46.         }
  47.        
  48.         //-----------------------------------------------------------------------------------------
  49.        
  50.         private function mouseHandler(e:MouseEvent):void
  51.         {
  52.             var dO:DisplayObject = DisplayObject(e.currentTarget);
  53.             var psX:Number = dO.mouseX / stage.stageWidth;
  54.             var psY:Number = dO.mouseY / stage.stageHeight;
  55.             this.sp.rotationX = this.MAX_ROT_X - psY*this.MAX_ROT_X*2;
  56.             this.sp.rotationY = this.MAX_ROT_Y - psX*this.MAX_ROT_Y*2;
  57.         }
  58.        
  59.         //-----------------------------------------------------------------------------------------
  60.     }
  61. }

Bei komplexeren 3D Geschichten würd ich aber lieber auf Papervision3D, Away3D oder andere zurückgreifen.
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website
Linowitch ist offline   Mit Zitat antworten
Alt 07-03-2010, 14:51   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2007
Beiträge: 4
Hi Linowitch

Zitat:
Zitat von office@el-media Beitrag anzeigen
Wie lautet das Action Script, damit ich ein Bild in Flash CS4 AS3 als 3D Objekt mit der Maus entlang der x und y Achse kippen und drehen kann?
So wie in diesem Beispiel: Soft Whiteroom

Vielleicht kennt jemand ein Tutorial oder einen Anleitungsfilm.

Thx für die Hilfe
Vielen Dank für die Antwort, jedoch klappt es bei mir leider nicht.
Ich hab ein Rechteck gezeichnet, dieses als MC gespeichert und das AS
in der selben Szene eine ebene höher eingefügt. Was mach ich wohl falsch?
Hättest Du vielleicht ein Tut für mich?

Liebe Grüße, Joe
office@el-media ist offline   Mit Zitat antworten
Alt 07-03-2010, 15:03   #4 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 485
Sorry, ein Tut hab ich leider nicht.

Du darfst aber das Script nicht in die Zeitleiste kopieren.

Speicher das Script mal in einer eigenen Datei die Du Test3D.as nennst und im selben Verzeichnis wie deine .fla liegt.
Dann gehst Du in die Eigenschaften der Bühne (dort wo die Höhe und Breite der stage festgelegt werden) und schreibst Test3D in das Feld Dokumentklasse:
Alles andere bleibt leer.

Veröffentlichen und fertig.
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website
Linowitch ist offline   Mit Zitat antworten
Alt 07-03-2010, 16:06   #5 (permalink)
Neuer User
 
Registriert seit: Feb 2007
Beiträge: 4
Zitat:
Zitat von Linowitch Beitrag anzeigen
Sorry, ein Tut hab ich leider nicht.

Du darfst aber das Script nicht in die Zeitleiste kopieren.

Speicher das Script mal in einer eigenen Datei die Du Test3D.as nennst und im selben Verzeichnis wie deine .fla liegt.
Dann gehst Du in die Eigenschaften der Bühne (dort wo die Höhe und Breite der stage festgelegt werden) und schreibst Test3D in das Feld Dokumentklasse:
Alles andere bleibt leer.

Veröffentlichen und fertig.
Vielen Dank, hat jetzt super funktioniert. Wenn ich jetzt aber Innhalte in dieses Feld schreiben möchte (Texte, Bilder, Buttons) dann kann ich das wohl auch nur in der .as Datei. oder?

LG, Joe
office@el-media ist offline   Mit Zitat antworten
Alt 22-09-2010, 21:15   #6 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 5
ich hab auch versucht das in der as datei zu ändern, aber ich seh nicht genau wo, bzw wie. und kann man da eine ebene einfügen, die nicht nur bild ist sondern auch funktionen haben kann?

LG redwhite
redwhitedesign ist offline   Mit Zitat antworten
Alt 23-09-2010, 06:53   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 548
Naja, die komplette Klasse mit Resize und so mag zwar brauchbar sein, war aber für einen Designer vielleicht ein wenig erschlagend für die Beantwortung der Frage Ich ziehe nochmal das Wesentliche raus.
Drei Dinge muss man grundsätzlich machen, um automatisch die Seite mit der Maus zu bewegen: a) einen über AS ansprechbaren Container erstellen (z.B. ein MovieClip), der alle Elemente enthält, b) einen Eventlistener auf die Mausbewegung, c) die beiden Rotationsfunktionen im Eventhandler, in die dann die aktuelle Mausposition eingeht.

Also erstelle einen leeren MC auf der Bühne, benenne ihn "my3DContainer" und ziehe in diesen MC alle Elemente rein die sich mitbewegen sollen.
Der folgende Code (in der Timeline) ist dann erstmal alles was du zum Experimentieren brauchst:

ActionScript:
  1. //Eventlistener auf Mausbewegung erstellen
  2. stage.addEventListener(MouseEvent.MOUSE_MOVE,move3D);
  3.  
  4. //Eventhandler
  5. function move3D(event:Event){
  6.     my3DContainer.rotationY=-(stage.mouseX-stage.stageWidth/2)/10;
  7.     my3DContainer.rotationX=(stage.mouseY-stage.stageHeight/2)/10;
  8.     }
joeydee ist offline   Mit Zitat antworten
Alt 23-09-2010, 14:05   #8 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 5
erstmal vielen dank für deine vereinfachende hilfe ich hab jetzt auf meiner hauptzeitleiste einmal die ebene für as, mit deinem script für den leeren MC. Den hab ich wiederum auf der 2. ebene und my3DContainer genannt. in den MC hab ich dann was reingezogen und das ganze getestet.

jetzt gibt mir der compiler aber für


my3DContainer.rotationY=-(stage.mouseX-stage.stageWidth/2)/10;

und

my3DContainer.rotationX=(stage.mouseY-stage.stageHeight/2)/10;

den fehler

1120: Zugriff auf eine nicht definierte Eigenschaft my3DContainer.

Wärs möglich, dass du mir hier auch weiterhelfen könntest?

LG redwhite
redwhitedesign ist offline   Mit Zitat antworten
Alt 23-09-2010, 14:30   #9 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 485
Du must für FlashPlayer 10 Veröffentlichen, der 9er hat die 3D Funktionalität noch nicht.

Einstellungen zur Veröffentlichung => Flash => Version => FlashPlayer 10 einstellen.

Vorraussetzung ist mindestens Flash CS4.
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website
Linowitch ist offline   Mit Zitat antworten
Alt 23-09-2010, 15:10   #10 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 5
das hab ich jetzt auch probiert, aber es klappt nicht. darf ich eigentlich das as des movieclips in der ebene des mc haben?

was könnte denn nicht definiert sein?

LG und danke für die hartnäckigkeit mir zu helfen
redwhitedesign ist offline   Mit Zitat antworten
Alt 23-09-2010, 15:30   #11 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 485
Ich glaub am leichtesten ist es wenn Du mal die fla rauf lädst, sonst haben wir hier eine fröhliche Ratestunde.
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website
Linowitch ist offline   Mit Zitat antworten
Alt 23-09-2010, 16:06   #12 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 5
hier ist, was ich bis jetzt erstellt habe. nicht viel, hoffentlich findet ihr das was LG
Angehängte Dateien
Dateityp: fla 3DProjektredwhite.fla (128,0 KB, 4x aufgerufen)
redwhitedesign ist offline   Mit Zitat antworten
Alt 23-09-2010, 17:51   #13 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 548
Hab grad nur CS3 hier, aber ich vermute du hast nur einen Bibliotheksnamen vergeben, nicht den Instanznamen. Denn laut Fehlermeldung kennt AS das Objekt nicht. Markiere mal den MC wenn er auf der Bühne ist und schau mal nach dem Feld "Instanzname", da muss der Name rein.
joeydee ist offline   Mit Zitat antworten
Alt 23-09-2010, 18:41   #14 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 485
Code:
aber ich vermute du hast nur einen Bibliotheksnamen vergeben
Genau so war's!

@redwhitedesign: Besorg Dir bitte ein Buch, oder mach ein paar Tutorials durch, Du hast einen, nicht zu vernachlässigenden, Mangel an Grundlagen.

Ohne Buch/Tut wird das Forum wahrscheinlich dein 2tes zu Hause.
Angehängte Dateien
Dateityp: fla 3DProjektredwhite.fla (119,5 KB, 7x aufgerufen)
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website
Linowitch ist offline   Mit Zitat antworten
Alt 23-09-2010, 19:23   #15 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 5
Ja ich stehe gerade erst am anfang dessen was ich mir noch erarbeiten will. trotzdem großen dank an euch beide(!), immerhin hats jetzt so bei mir funktioniert wies sollte. nen netten abend noch & LG
redwhitedesign ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
3d-effekt, flash cs4, maus, steuern mc

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash CS3] Mausbewegung steuern rcfman Flash Einsteiger 2 15-08-2009 12:14
[Flash CS3] Mit Mausbewegung Objekt steuern intercorni Flash Einsteiger 6 12-08-2009 16:29
per mausbewegung menu steuern iomondon Flash Einsteiger 2 12-01-2008 10:01
Mit Mausbewegung MC steuern brinchi Flash MX 12 25-05-2005 16:47
Film Mit Mausbewegung Steuern? heromator Flash MX 5 26-08-2003 12:51


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele