It's an error in your Away3D_drawLines class which uses Number3D
instead of the Vertex class.
I think this is a change that was introduced after the writing of the
Book?

You could easily fix that by writing:
seg.start = new Vertex(p1.x, p1.y, p1.z);
seg.end = new Vertex(p2.x, p2.y, p2.z);

On Jun 17, 12:43 pm, rowild <[email protected]> wrote:
> Hi,
>
> I bought the book "The Essential Guide to 3D in Flash", which is
> totally about Away3D. I am in chapter 4, where this code is posted
> (compared to the book, I changed the names of the classes):
>
> // Base Class
> package
> {
>         import away3d.core.base.*;
>         import away3d.cameras.*;
>         import away3d.containers.*;
>
>         import flash.display.*;
>         import flash.events.*;
>
>         public class Away3D_BaseClass2 extends Sprite
>         {
>                 protected var _camera:HoverCamera3D;
>                 protected var _view:View3D;
>
>                 public function Away3D_BaseClass2()
>                 {
>                         super();
>                         _createView();
>                         _createScene();
>                 }
>
>                 protected function _createView():void
>                 {
>                         _camera = new HoverCamera3D();
>                         _camera.distance = 1000;
>                         _camera.tiltAngle = 10;
>                         _camera.panAngle = 180;
>
>                         _view = new View3D();
>                         _view.x = 400;
>                         _view.y = 300;
>                         _view.camera = _camera;
>
>                         addChild(_view);
>                         addEventListener(Event.ENTER_FRAME, _onEnterFrame);
>                 }
>
>                 protected function _createScene():void
>                 {
>                         // To be overridden
>                 }
>
>                 protected function _onEnterFrame(ev : Event):void
>                 {
>                         _camera.panAngle += (stage.mouseX - 
> stage.stageWidth/2) / 100;
>                         _camera.hover();
>                         //_camera.steps = 2;
>
>                         _view.render();
>                 }
>         }
>
> }
>
> // Extending Class (in new File of course)
> package
> {
>         import away3d.core.math.*;
>         import away3d.primitives.LineSegment;
>
>         [SWF(width="800",height="600")]
>
>         public class Away3D_drawLines extends Away3D_BaseClass2
>         {
>                 public function Away3D_drawLines():void
>                 {
>                         super();
>                 }
>
>                 override protected function _createScene():void
>                 {
>                         var i:int, p1:Number3D, p2:Number3D, seg:LineSegment;
>
>                         p1 = new Number3D();
>                         p2 = new Number3D();
>
>                         for (i=0; i < 5; i++)
>                         {
>                                 p2.x = (Math.random() - 0.5) *200;
>                                 p2.y = (Math.random() - 0.5) *200;
>                                 p2.z = (Math.random() - 0.5) *200;
>
>                                 p2.add(p2, p1);
>
>                                 seg = new LineSegment();
>                                 seg.start = p1;
>                                 seg.end = p2;
>
>                                 _view.scene.addChild(seg);
>
>                                 p1.clone(p2);
>                         }
>                 }
>         }
>
> }
>
> and this error message shows up in my Flash CS5:
> /...h/Away3D_drawLines.as, Line 31      1067: Implicit coercion of a value
> of type away3d.core.math:Number3D to an unrelated type
> away3d.core.base:Vertex.
>
> I cannot solve this problem, and there is no Errata page at friendsof
> ed.com.
>
> Can anybody give me a hint what's wrong here?
> Thanks!

Reply via email to