Actionscript3 Hotspot distorted Problem

  • Hallo zusammen,

    ich habe mir ein AS3 plugin gebaut, das ein Webcam-Bild im Panorama anzeigt und "updatet". Als Plugin kein Problem, als Hotspot geht es auch, jedoch ist das Sprite nicht zu sehen, wenn distorted="true" konfiguriert wird. Der Videoplayer kann das ja, also denke ich, dass ich etwas verkehrt mache.

    Meine Frage ist also, ob man für AS3 Plugins etwas berücksichtigen muss, wenn es als distorted Hotspot sichtbar sein soll...

    Viele Grüße
    Peter

  • Hi,

    wenn ein Plugin als 'distorted' Hotspot verwendet werden soll, dann wird nicht das Plugin selbst dargestellt, sondern eine 'Bitmap' Kopie davon. Per AS3 animierte Plugins müssten dieses Bitmap selber updaten.

    Dazu zuerst einmal die interne Bitmap Größe festlegen: (auf z.B. die Größe des Videos setzen)

    Code
    plugin.setbitmapsize(width,height);

    Und dann in jedem Frame das Bitmap mit folgendem Code updaten:

    Code
    if (plugin.distorted)
    {
      var bitmapdata:BitmapData = plugin.bitmapdata;
    
    
      bitmapdata.fillRect(new Rectangle(0,0,bitmapdata.width,bitmapdata.height),0);
      bitmapdata.draw(...);
    }

    Schöne Grüße,
    Klaus

  • Vielen Dank Klaus,

    nu geht's. Naja, wenn ich es lokal von meiner Festplatte aus starte.
    Wenn ich "distorted=false" benutze, dann erscheint das Webcam Bild und wird auch neu geladen. Jedoch wird ein krpano.trace nicht ausgegeben

    das hier ist die COMPLETE event Funktion, lokal gestartet sehe ich brav "new image..." Vom Server aus nicht....

    Als "nicht-distorted" wird das Bild auch tatsächlich aktualisiert. Kann es ein Sicherheitsproblem sein? Ich meine, dass vielleicht bitmap.draw aus einer fremden Domain von einem Server aus nicht funktioniert, lokal aber schon?

    Kenne mich da leider überhaupt nicht aus. Versuche mit einem LoaderContext und CheckPolicyFile=true haben leider nichts gebracht.

    Danke sehr für's Lesen
    Peter

    Edited 5 times, last by inno (March 22, 2012 at 12:17 AM).

  • das ist ja doof. Ich kann also nur distorted webcam Bilder anzeigen, wenn der Server mit der Webcam eine entsprechende crossdomain.xml hat. Das liegt dann wohl daran, das zum Anzeigen von distorted Hotspots ein bitmapData.draw benötigt wird. Ein addChild(loader) unterliegt nicht der securitypolicy.

    Jemad einen Tip parat? (mit php erstmal auf den eigenen Server kopieren ist auch nicht so der Knaller)

    Schönes Wochenende
    Peter

  • Hi,

    ein BitmapData.draw ist notwendig, da das Bild dann letztendlich im Panorama per Flash Graphics API (drawTriangles) gezeichnet wird und daher als BitmapData vorliegen muss.

    Umgehen kann man diese Flash Sicherheitsbestimmung meines Wissens nicht (außer eben durch ein Proxy).

    Schöne Grüße,
    Klaus

  • Hallo Klaus und danke sehr für Deine Antwort. Ich hab's mir schon gedacht bzw. ergoogelt. Da kann man halt nichts dran ändern. Dann bleibt es halt bei nicht verzerrten Webcam Bildern *g* Besser als nichts.

    Viele Grüße
    Peter

  • ich muss nochmal frage ....

    bei mir und ganz vielen anderen klappt das Webcam Plugin... bis auf manche Ausnahmen. Wie kann das sein?
    Die Fehlermeldung lautet:

    Quote

    SecurityError: Error #2123: Verletzung der Sicherheits-Sandbox: Loader.content: http://www.inno360.de/pano/riemann/amrumwelle/whg4/raum4/w4r4_uexpmix.swf/[[DYNAMIC]]/1/[[DYNAMIC]]/8 kann nicht auf http://..... zugreifen. Es haben keine Richtliniendateien Zugriff gewährt.

    at flash.display::Loader/get content()
    at pano_webcam::pano_webcam/newWebCamImage()[C:\projects\Firma\flex_as3\pano_webcam\src\pano_webcam\pano_webcam.as:128]"


    Den Fehler bekam ich immer, wenn ich ein bitmap.draw (bei der distorted Darstellung) verwendet habe. Da half ja nur eine crossdomain.xml auf dem Server der die Webcam-Bilder abliefert.

    Warum geht es nun bei manchen und bei anderen nicht? Her ein Beispiel zum Corpus-Defekti

    http://www.inno360.de/pano/riemann/a…raum1/w5r1.html (oben links)

    LG
    Peter

  • Hallo Klaus,

    vielen Dank für Deine Antwort. Richtig, die meisten Webcam-Server haben das nicht. Was mich nur wundert ist, dass die meisten Besucher keine Fehlermeldung erhalten, manche jedoch schon. Müsste es nicht bei allen klappen oder eben bei allen nicht klappen? Ich finde nicht heraus, woran es liegt bzw. welche Voraussetzung ein Funktionieren ermöglichen...

    Viele Grüße
    Peter

  • danke für den Tip Klaus. Ich benutze beides und bekomme die Fehlermedlung nicht. Ob der Kunde einen Developer/Debug Player benutzt würde mich wundern, aber ich frag sicherheitshalber mal nach. Wär ja schonmal eine Fährte....


    LG
    Peter

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!