You need to disable triangle caching like so:

this.view = new View3D(...);
view.forceUpdate = true;

Tony


On Dec 2, 12:05 pm, DrMcCleod <[EMAIL PROTECTED]> wrote:
> Code that worked under version 2_1_0 & 2_2_0 no longer seems to work
> under version 3_0_0 (fresh from the SVN repo).
> The class below opens a flash video source and maps it onto a plane -
> to use it, just
>
> var myvid:videoPlane;
> myVid = new videoPlane("/path/to/flvfile");
> view.scene.addChild(myVid);
>
> myVid.updateVideo();  //run to update frame
>
> The initial frame is mapped in the constructor and displays OK (when
> the movie is run in an external player (flash 9)) but when the
> updateVideo() function is called (every Event.ENTER_FRAME) I can see
> the pixel values in the plane changing as the video animates but the
> updated frame is never re-rendered (by a view.render() call).
>
> Has something changed in the latest build that I should worry about?
>
> package
> {
>         import away3d.primitives.Plane;
>         import away3d.materials.BitmapMaterial;
>         import flash.geom.Point;
>         import flash.geom.Rectangle;
>
>         import flash.display.*;
>         import flash.events.*;
>         import flash.net.*;
>         import flash.media.Video;
>
>         /**
>         * ...
>         * @author DefaultUser (Tools -> Custom Arguments...)
>         */
>         public class videoPlane extends Plane
>         {
>                 private var video: DisplayObject;
>                 private var videoURL:String;
>                 private var videoBitmapData: BitmapData;
>                 private var videomaterial: BitmapMaterial;
>
>                 private var alphaMap:BitmapData;
>
>                 private var vidConnection:NetConnection;
>                 private var vidStream:NetStream;
>                 private var vid:Video;
>                 private var infoClient:Object;
>                 private var alphax:Number;
>                 private var alphay:Number;
>                 private var asset:String;
>                 private var alphaBool:Boolean;
>
>                 //private var pix:Number;
>
>                 private var aspectRatio:Number;
>
>                 public function videoPlane(assetLocation:String)
>                 {
>
>                         asset = assetLocation;
>
>                         alphaBool = true;
>
>                         trace("videoPlane()");
>                         this.segmentsH = 8; //increases the number of 
> triangles in the
> plane, and hence improves the accuracy of
>                         this.segmentsW = 8; //the mean z algorithm used to 
> determine Z-
> depth when rendering
>
>                         vidConnection = new NetConnection();
>                         vidConnection.connect(null);
>                         vidStream = new NetStream(vidConnection);
>
>                         infoClient = new Object();
>                         vidStream.client = infoClient;
>
>                         vid = new Video();
>                         vid.attachNetStream(vidStream);
>
>                         vidStream.play(asset);
>
>                         this.videoBitmapData = new BitmapData(vid.width, 
> vid.height, true,
> 0xFF00ce);
>
>                         videomaterial = new 
> BitmapMaterial(this.videoBitmapData);
>                         videomaterial.precision = 5;
>
>                         this.material = videomaterial;
>                         this.bothsides = true;
>                         this.videoBitmapData.draw(vid);
>
>                         aspectRatio = 1024 / 576;
>
>                         this.height = 50;
>                         //trace(vid.videoWidth + " " + vid.videoHeight + " " +
> aspectRatio);
>                         this.width = this.height * aspectRatio;
>
>                         alphaMap = new BitmapData(vid.width, vid.height, true,
> 0x7F000000);
>
>                         vidStream.addEventListener(NetStatusEvent.NET_STATUS,
> vidStreamCompleteHandler);
>
>                 }
>
>                 private function 
> vidStreamCompleteHandler(ns:NetStatusEvent):void
>                 {
>                         //TODO: add functionality to restart video stream here
>                 //      vidStream.play(asset);
>                 }
>
>                 public function adjustAlphaMap():void
>                 {
>                         trace("adjustAlpha" + alphaBool);
>
>                         if (alphaBool)
>                         {
>                                 alphaMap = new BitmapData(vid.width, 
> vid.height, true,
> 0xFF000000);
>                         }
>                         else
>                         {
>                                         alphaMap = new BitmapData(vid.width, 
> vid.height, true,
> 0x7F000000);
>                         }
>
>                         alphaBool = !alphaBool;
>                 }
>
>                 public function updateVideo():void
>                 {
>                         //trace("updateVideo");
>                         if(vid != null)
>                         {
>                                 //trace("vid");
>                                 this.videoBitmapData.draw(vid);
>                                 videoBitmapData.copyChannel(alphaMap, new 
> Rectangle(0, 0,
> vid.width, vid.height), new Point(0, 0), 8, 8);
>
>                                 trace(videoBitmapData.getPixel(100, 
> 100).toString());
>                         }
>                 }
>         }
>
>
>
> }- Hide quoted text -
>
> - Show quoted text -

Reply via email to