Zurück   Flashforum > Software > 3D

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-11-2008, 21:54   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 8
Papervision Flex Video flv dynamisch zur Laufzeit laden

Hallo zusammen,

ich bastel mir grade was mit Papervision. Einen Cube habe ich bereits erstellt und kann ihn auch mit den gewünschten Inhalten (Bilder, Videos als FLV) füllen. Das klappt aber soweit nur, wenn ich Movies hardcode (Bilder lade ich aus einer XML mittels BitmapFileMaterial; Code siehe weiter unten).
Dynamisch habe ich FLVs bisher nur mittels VideoStreamMaterial laden können. Jedoch ist die Qualität so miserabel, dass man kaum etwas erkennen kann.

Zum einen würde ich gerne wissen, was die beste Art ist, eine FLV auf die Seite eines Cubes zu legen (also welche Art von Material: MovieMaterial; MovieAssetMaterial; VideoStreamMaterial). Die FLV(s) werden lokal gespeichert und in der xml eingetragen. Die XML dient also als Lade-Liste zur Laufzeit.

Zum anderen wüßte ich auch gerne, wie ich in Flex Movies (oder MCs) zur LIBRARY hinzufüge, ohne sie zur Stage zu adden.

Nun bleibt mir nur noch zu hoffen, dass ich mich einigermaßen verständlich machen konnte. Die Papervision Doc. ist ja leider etwas spärlich.

Danke für alle Antworten.

Hier noch der Code für dyn. Laden der Bilder:
PHP-Code:
...
if(
xml.cubeList.project[0].cube_face[i].@type == "image") {
    
path path xml.cubeList.project[0].cube_face[i];
    var 
material:BitmapFileMaterial = new BitmapFileMaterial(pathfalse);
    
material.addEventListener(FileLoadEvent.LOAD_COMPLETEfacesLoaded);
    
material.addEventListener(FileLoadEvent.LOAD_ERRORfacesLoadingFailed);
    
material.name xml.cubeList.project[0].cube_face[i].@face;
    
material.interactive true;
    
material.smooth true;                
}
...
private function 
facesLoaded(e:FileLoadEvent):void {
    
trace("Adding: "+e.currentTarget.name);
    
materialArray.addItem(e.currentTarget);
    if(
materialArray.length == xml.cubeList.project[0].cube_face.length()) {
        
generateCube();
    }

Und ein Ausschnitt aus der XML:
PHP-Code:
<projects>
    <
project name='1stCube' path='path2Dir'>
        <!-- 
Front face used for project logo -->
        <
cube_face face='front' type='image'>logo.png</cube_face>
        <
cube_face face='left' type='image'>logo.png</cube_face>
        <
cube_face face='right' type='image'>Beyond.jpg</cube_face>
        <
cube_face face='top' type='image'>logo.png</cube_face>
        <
cube_face face='bottom' type='image'>Beyond.jpg</cube_face>
        <
cube_face face='back' type='video'>novel.flv</cube_face>
    </
project>
    <
project name='2ndCube' path='path2Dir'>
        <
cube_face face='front' type='image'></cube_face>
        <
cube_face face='left' type='image'></cube_face>
        <
cube_face face='right' type='video'></cube_face>
        <
cube_face face='top' type='image'></cube_face>
        <
cube_face face='bottom' type='image'></cube_face>
        <
cube_face face='back' type='image'></cube_face>
    </
project>
</
projects
steff@MA ist offline   Mit Zitat antworten
Alt 11-11-2008, 14:22   #2 (permalink)
ewig Neuer User
 
Registriert seit: Jun 2003
Beiträge: 423
vielleicht erstellst Du erst einen MC addest das Video dort rein und machst daraus eine Textur (über das MovieMaterial)?
__________________
http://www.a-d-k.de/ nicht gucken!
loetmann ist offline   Mit Zitat antworten
Alt 08-01-2009, 17:23   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 8
besser spät als nie und für den fall, dass jemand ein ähnliches Problem hat:
es geht jetzt und der code sieht so aus:
PHP-Code:
...
if(
face.@type == "video") {
   
videoURL projPath face;
   
videoFaceName face.@face;
                        
   
connection = new NetConnection();

   
connection.addEventListener(NetStatusEvent.NET_STATUSnetStatusHandler);
   
connection.addEventListener(SecurityErrorEvent.SECURITY_ERRORsecurityErrorHandler);
   
connection.connect(null);

und dazu
PHP-Code:
        private function connectStream():void {
            var 
stream:NetStream = new NetStream(connection);
            
stream.addEventListener(NetStatusEvent.NET_STATUSnetStatusHandler);
            
stream.client = new CustomStreamClient();
            var 
video:Video = new Video();
            
video.attachNetStream(stream);
            
stream.play(videoURL);
            
stream.seek(0);
            
stream.togglePause();
            
            var 
mmaterial:VideoStreamMaterial = new VideoStreamMaterial(videostreamtrue);
            
mmaterial.name videoFaceName;
            
mmaterial.type "vid";
            
mmaterial.interactive true;
            
mmaterial.smooth true;
            
mmaterial.animated true;
            
materialArray.addItem(mmaterial);
        }
        
        private function 
netStatusHandler(event:NetStatusEvent):void {
            switch (
event.info.code) {
                case 
"NetConnection.Connect.Success":
                    
connectStream();
                    break;
                case 
"NetStream.Play.StreamNotFound":
                    
trace("Stream not found: " videoURL);
                    break;
            }
        }
    
        private function 
securityErrorHandler(event:SecurityErrorEvent):void {
            
trace("securityErrorHandler: " event);
        }
        
        private function 
metaDataHandler(infoObject:Object):void {
            
trace("metaData");
        } 
steff@MA ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
cube, flex, material, movie, papervision

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



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

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


Copyright ©1999 – 2012 Marc Thiele