Zurück   Flashforum > Software > 3D

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-05-2010, 22:05   #1 (permalink)
Neuer User
 
Benutzerbild von Basti-n
 
Registriert seit: Apr 2010
Ort: Hamburg
Beiträge: 32
Question MovieMaterial aus Movieclip mit Actionscript?

Guten Abend liebe flash Gemeinde,

Ich bin gerade am verzweifeln mit Interaktiven Moviematerials aus MovieClips die mir Actionscript versehen sind.

Hier erstmal die As Klasse:
PHP-Code:
public class flashCS4_übergang extends Sprite
    
{
        
//__________________________Pv3D______________________________
        
private var vp:Viewport3D;
        private var 
scene:Scene3D;
        private var 
cam:Camera3D;
        private var 
render:BasicRenderEngine;
        private var 
container:DisplayObject3D;
        
        
//___________________________Plane_____________________________
        
[Embed (source='CS4_file.swf#plMc')]
        private var 
plMc:Class;
        private var 
plMatMc:* = new plMc();
        private var 
plMat:MovieMaterial;
        private var 
p:Plane;
        
        public function 
flashCS4_übergang()
        {
            
initPV3D();
            
initPlane();
        }
        
        private function 
initPV3D():void
        
{
            
vp = new Viewport3D(0,0true,true);//automatisch an stage anpassen...
            
vp.interactive true;
            
vp.buttonMode true;
            
addChild(vp);
            
            
scene = new Scene3D();
            
render = new BasicRenderEngine();
            
            
cam = new Camera3D();
            
cam.zoom 100;
            
cam.500;
            
cam.target DisplayObject3D.ZERO;
            
            
this.addEventListener(Event.ENTER_FRAMEloop);
        }
        
        private function 
initPlane():void
        
{
            
plMat = new MovieMaterial(plMatMc,false,true);
            
plMat.interactive true;
            
plMat.animated true;
            
plMat.smooth true;
            
plMat.doubleSided true;
            
            
= new Plane(plMat200,200,4,4);
            
scene.addChild(p);
        }
        
        private function 
loop(e:Event):void
        
{
            
//p.rotationY ++;
            
render.renderScene(scenecamvp);
        }
    } 
Kurze Erklärung:
Ich erstelle ne standart Papervision3D Plane und packe sie auf meine scene3D.
Die Plane besitzt ein MovieMaterial welches aus einem MovieClip mit dem namen "plMatMc" besteht. Dies hol ich mir aus einer, in Flash CS4 erzeugten swf (namens CS4_file.swf).

Es funktioniert eigentlich auch wunderbar, nur wenn ich nun im Mc (den ich ja in FlashCS4 erstellt habe) Actionscript schreibe und zum testen beispielsweise einen als Button fungierenden Mc einbaue, welcher bei drücken einen text erscheinen lässt, dann funktioniert dies nur in Flash, nicht aber in Flex auf dem Würfel.

Klingt kompliziert, habs sogar schon nochmal umformuliert aber ich hoffe das sich jemand mit solch speziellen dingen beschäftigt hat und hier rat weiß.

Ich denke das das problem irgendwie beim Material in PV3D liegt und nicht bei meinem Mc.


Ich bedanke mich jetzt schon für jede hilfe!
Basti-n ist offline   Mit Zitat antworten
Alt 04-05-2010, 13:57   #2 (permalink)
Neuer User
 
Benutzerbild von Basti-n
 
Registriert seit: Apr 2010
Ort: Hamburg
Beiträge: 32
:(

Währe echt klasse wenn mir jemand helfen könnte..
bin am Verzweifeln
Basti-n ist offline   Mit Zitat antworten
Alt 04-05-2010, 15:56   #3 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 2.040
Der MovieMaterial Konstruktor erwartet ein DisplayObject, dein plMatMc is aber nur Object.

Typisiere das Ding und es sollte funktionieren, bzw. caste es mittels "as" zum DisplayObject.

Wenn du im Konstruktor vom vp schon angibst, das es interaktiv sein soll, dann musst du das nicht drunter nochmal machen
__________________
anbei Grüße vom milchreis: Viva la [Silb]
"Selbst wenn uns nur noch der Zynismus treibt, wir werden trotzdem einfach immer weiter gehen!"

[Von null auf Flash in einem Klick.] <<< klick
milchreis ist offline   Mit Zitat antworten
Alt 04-05-2010, 16:42   #4 (permalink)
Neuer User
 
Benutzerbild von Basti-n
 
Registriert seit: Apr 2010
Ort: Hamburg
Beiträge: 32
Unhappy As Code im Mc wird leider immernoch nicht ausgeführt.

Thx schonmal! Ahh klar...
Aber das Problem besteht weiterhin. Der Simple ActionScript Code in meinem MovieClip (CS4_file.swf#plMc) wird garnicht ausgeführt. Weder ein einfaches trace noch einem leeren textfeld ein text zuweisen funktioniert.
(in FlashCS4 leuft's ja noch d.h. der code ist richtig und wird ausgeführt.)

Hier nochma mein Case
PHP-Code:
plMat = new MovieMaterial(plMatMc as DisplayObject,false,true); 
Was ich noch versucht habe ist:
PHP-Code:
plMat = new MovieMaterial(plMatMc as MovieClip,false,true); 
Dann kommt aber nen fetter Fehler vonwegen "Main Thread (Suspended: TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.)"

Ich wollte auch schon gleich am anfang folgendes machen:

PHP-Code:
[Embed (source='CS4_file.swf#plMc')]
        private var 
plMc:Class;

        private var 
plMatMc:MovieClip = new plMc();//hier plMatMc direkt als MovieClip Typisieren

        
private var plMat:MovieMaterial;
        private var 
p:Plane
Dann kommt aber "...#1034: Typenumwandlung Fehlgeschlagen..."

Irgendwo auch klar denke ich, aber wie soll ich dem dann kla machen, dass es sich um einen MovieClip handelt? MovieClip ist ja vom Typ DisplayObjekt. Und der As Code (im Mc) wird sicher nur ausgeführt wenn das MovieMaterial weiß wie er mit dem DisplayObjekt umgehen soll. D.h. er muss wissen, dass es sich um einen MovieClip handelt [denke ich mal]. :S


beim interactive meiner viewport sag ich nur doppelt hällt besser xD bei Papervision weiß man ja nie (habs jetzt aber auch rausgenommen)
Basti-n ist offline   Mit Zitat antworten
Alt 05-05-2010, 21:16   #5 (permalink)
Neuer User
 
Benutzerbild von Basti-n
 
Registriert seit: Apr 2010
Ort: Hamburg
Beiträge: 32
Unhappy Help please

Ich dachte ich könnte vielleicht ohne das ganze auskommen, aber ich Brauchs überall... weiß nicht jemand rat?

Danke schonmal im vorraus!
__________________
Programme: Flash CS5, Flash Builder 4, Dreamweaver CS5, Photoshop CS5, Illustrator CS5, After Effects CS4, Cinema 4D R11.
Programmiersprachen: ActionScript 3, Java, "html", PHP, Visual Basic NET.

Geändert von Basti-n (05-05-2010 um 21:16 Uhr) Grund: -
Basti-n ist offline   Mit Zitat antworten
Alt 06-05-2010, 01:20   #6 (permalink)
Neuer User
 
Benutzerbild von Basti-n
 
Registriert seit: Apr 2010
Ort: Hamburg
Beiträge: 32
Thumbs up Sooo....

Ich habs zwar immer noch nicht hinbekommen aber hier ein anderer weg:

pv3d.org - Papervision3D, ActionScript, and Flex Tutorials and Examples by John Lindquist - Part 7
Tutorial Nummer 5 (Watch Part 5 on Buttons on MovieMaterials).

Die anderen sind für Anfänger sicher auch sehr interessant .
__________________
Programme: Flash CS5, Flash Builder 4, Dreamweaver CS5, Photoshop CS5, Illustrator CS5, After Effects CS4, Cinema 4D R11.
Programmiersprachen: ActionScript 3, Java, "html", PHP, Visual Basic NET.
Basti-n ist offline   Mit Zitat antworten
Alt 07-06-2010, 18:44   #7 (permalink)
Neuer User
 
Benutzerbild von Basti-n
 
Registriert seit: Apr 2010
Ort: Hamburg
Beiträge: 32
Exclamation Falscher Link

Entweder der Link hat sich geändert oder ich hab nen Fehler gemacht... hier der neue Link:

pv3d.org - Papervision3D, ActionScript, and Flex Tutorials and Examples by John Lindquist - Part 8
__________________
Programme: Flash CS5, Flash Builder 4, Dreamweaver CS5, Photoshop CS5, Illustrator CS5, After Effects CS4, Cinema 4D R11.
Programmiersprachen: ActionScript 3, Java, "html", PHP, Visual Basic NET.
Basti-n ist offline   Mit Zitat antworten
Alt 07-06-2010, 19:15   #8 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.159
Sollange Du plMc nur deklarierst aber nicht mit einer Klasse belegst kann das auch nicht funktionieren:
PHP-Code:
private var plMc:Class; // plMc hat den Wert null
private var plMatMc:* = new plMc(); //Und jetzt versuchst Du null zu instanziieren -> Fehler 
Versuchs mal so:
PHP-Code:
private var plMc:Class = MovieClip// Oder eine andere Klasse Deiner Wahl
private var plMatMc:MovieClip = new plMc(); 
Wenn Die Klasse erst später feststehen sollte würde ich das über eine set-Funktion lösen:
PHP-Code:
private var _plMc:Class;
private var 
plMatMc:MovieClip;

public function 
get plMc():Class { return _plMc; }        
public function 
set plMc(value:Class):void {
    
_plMc value;
     
plMatMc = new value();
}

// Und irgendwo im Code legst Du dann Deine Klasse fest:
plMc MovieClip
Allerdings ist mir dann nicht klar warum Du nicht einfach direkt plMatMc mit einer Instanz belegst:
PHP-Code:
private var plMatMc:MovieClip = new MovieClip(); //oder irgendeine Andere Klasseninstanz 
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 07-06-2010, 22:04   #9 (permalink)
Neuer User
 
Benutzerbild von Basti-n
 
Registriert seit: Apr 2010
Ort: Hamburg
Beiträge: 32
:p

hehe danke erstmal..

du hast vermutlich die zeile überlesen:
PHP-Code:
[Embed (source='CS4_file.swf#plMc')] 
oder?
das ist ja mein prob, ich will den Mc aus der swf importieren und dann auf das Material packen.. dafür muss ich aber erstmal festlegen das ein neues Objekt der Klasse "plMc", vom typ MovieClip ist (denke ich..). Aber das will Flash nicht -.-

wenn ich nähmlich schreibe:
PHP-Code:
    [Embed (source='CS4_file.swf#plMc')]
    private var 
plMc:Class;
    private var 
plMatMc:MovieClip = new plMc();//hier der fehler! 
dann sagt Flash:
Fehler.. Typenumwandlung fehlgeschlagen, ..plMc... kann nicht in flash.display.MovieClip umgewandelt werden...

dabei ist das ja ein MovieClip, nur halt aus der swf importiert -.-
__________________
Programme: Flash CS5, Flash Builder 4, Dreamweaver CS5, Photoshop CS5, Illustrator CS5, After Effects CS4, Cinema 4D R11.
Programmiersprachen: ActionScript 3, Java, "html", PHP, Visual Basic NET.
Basti-n ist offline   Mit Zitat antworten
Alt 07-06-2010, 22:09   #10 (permalink)
Neuer User
 
Benutzerbild von Basti-n
 
Registriert seit: Apr 2010
Ort: Hamburg
Beiträge: 32
Lightbulb

Hab grad was rausgefunden, frage mich warum ich's nich gleich gemerkt hab..

Ich hab probiert:
PHP-Code:
    [Embed (source='CS4_file.swf#plMc')]//hier die Fehlernachicht
    
private var plMc:MovieClip;
    private var 
plMatMc:* = new plMc(); 
dann kommt der Error:
"Embed only supported with variables of type Class or String."

schade auch :P

dann halt über ne swc wie in dem tut (nr 5):
click me
__________________
Programme: Flash CS5, Flash Builder 4, Dreamweaver CS5, Photoshop CS5, Illustrator CS5, After Effects CS4, Cinema 4D R11.
Programmiersprachen: ActionScript 3, Java, "html", PHP, Visual Basic NET.
Basti-n ist offline   Mit Zitat antworten
Antwort

Lesezeichen

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
MovieMaterial wird gestaucht? xeed 3D 1 04-05-2010 13:29
Collada + MovieMaterial - clipping padavan 3D 6 30-03-2009 07:36
papervision -> moviematerial steuern kakktus ActionScript 3 2 10-11-2008 13:57
away3D: Shadingmöglichkeiten für MovieMaterial? jacquesr 3D 2 01-09-2008 15:42
[PV3D] MovieMaterial Bug? b.asile ActionScript 3 2 29-08-2008 16:25


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:23 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele