[Sorry about previous message(s), accidentally hit enter and it posted
it unfinished]

Ok, I messed around with the Face() object and it seems like it is
exactly what i was looking for, EXCEPT i can't figure out one tiny
thing as described below:


//In the SecondClass AS3 Class File (Extends ObjectContainer3D)
------------------------------------------------------------------------------------------------
var hex:Face = new Face();   // Create Face object, in this example it
is a square
     hex.moveTo(0,0,0);
     hex.moveTo(-50, 0, 0)
     hex.lineTo(-50,0,-50);
     hex.lineTo(50,0,-50);
     hex.lineTo(50,0,50);
     hex.lineTo(-50,0,50);
     hex.lineTo(-50,0,0);

     // Set the material. This works great and it lets me set the
color of the face and it lets me change the outline of the Face to a
different color and thickness
     hex.material = new WireColorMaterial(0xff0000, {alpha:0.2,
wireColor:0xFFFFFF, thickness:2});

     //This is only so that i can assign a NAME to each hexagon so i
can retrieve it later because a Face() object does not have a ".name"
property.
     var mesh:Mesh = new Mesh();
          mesh.name = "hex1";

        mesh.addFace(hex);
        this.addChild(mesh);

That all works and is displayed fine on screen. I do not add a mouse
event to the Face() object in this class, but have tried that and it
did not work for me.

In the MAIN AS3 Class file: (Extends Sprite)
----------------------------------------------------------------
grid:SecondClass = new SecondClass();
grid.addEventListener(MouseEvent3D.MOUSE_DOWN, mouseClick);

private function mouseClick(e:MouseEvent3D):void
{
        //This does not do anything, but also does not give any error
messages. This way works for other primitive objects, but not for a
Face(),
        var obj:Mesh =  grid.getChildByName(e.object.name) as Mesh;
             obj.material = new WireColorMaterial(0x9BE0FD, {alpha:0.2,
wireColor:0xFFFFFF, thickness:3});

        // This gives the Error #1009 Nulll Object Reference, so that
does not work..
        var obj:Face =  grid.getChildByName(e.object.name) as Face;
             obj.material = new WireColorMaterial(0x9BE0FD, {alpha:0.2,
wireColor:0xFFFFFF, thickness:3});
}

For kicks, i tried using ColorMaterial(), WireframeMaterial(), and
ShadingColorMaterial() but noting worked.

I am sure it is something VERY simple i am missing or don't yet
know.... any hints would be wonderful.. :)

Thank you again.



> > Thank you everyone for all of the suggestions and thanks Rob, i think
> > your way sounds like the way to go. I will mess around with it and see
> > where i get.
> >
> > Last night i was figuring out how to draw lines in Away3D and never
> > could get Line2D to work, not without seeing some examples on how to
> > use it at least, BUT i did managed to get LineSegment() to work,
> > assign it a line thickness and color, and be able to add it to an
> > ObjectContainer3D so i can display it.
> >
> > BUT as for a base object to draw lines on, I also got Sprite2D /
> > Sprite3D to display on screen, BUT its problem was that it is designed
> > to always face the camera and since i am using HoverCamera3D where the
> > hex plane or stage can be made to tilt and also pan across the screen,
> > that would not work for me. Besides, never figured creating a simple
> > SPRITE object would be so complicated in Away3D as compared to Native
> > Flash...lol... at least took a bit to figure out what worked without
> > assigning the Sprite an Bitmap image.
> >
> > I was also hoping that an object similar to SHAPE() in Flash was
> > possible in Away3D as the SHAPE is something lightweight to draw on
> > but does not get bloated easily with extra stuff like MouseEvents or
> > etc. Also, in Native Flash you can actually draw different shapes
> > using either SPRITE or SHAPE and using drawPath and beingFIll/endFill
> > for color SO there had to be a way to do something similar in Away3D.
> >
> > But, i think that FACE object in Away3D is just what i was looking for
> > so again thanks for everyone and will give that a try first and see
> > where i get.
> >
> > On May 4, 3:27 am, Rob Bateman <[email protected]> wrote:
> >
>> > > Hey CyberHawk
> >
>> > > the best way to draw a hexagon in teh way you're desciubing is probably
>> > > using the drawing api on the face class. This is similar to the native
>> > > drawing api in flash, and just requires that you create a mesh object, 
>> > > and
>> > > add each face using something like:
> >
>> > > var hex:Face = new Face();
>> > > hex.moveTo(p0X, p0Y, 0);
>> > > hex.lineTo(p1X, p1Y, 0);
>> > > hex.lineTo(p2X, p2Y, 0);
>> > > hex.lineTo(p3X, p3Y, 0);
>> > > hex.lineTo(p4X, p4Y, 0);
>> > > hex.lineTo(p5X, p5Y, 0);
>> > > hex.lineTo(p0X, p0Y, 0);
> >
>> > > mesh.addFace(hex)
> >
>> > > you can then apply materials to the face using the 'material' property, 
>> > > and
>> > > react to mouse events in the usual way etc
> >
>> > > Rob
> >
>> > > On Tue, May 4, 2010 at 7:42 AM, Peter Kapelyan <[email protected]> 
>> > > wrote:
>>> > > > You can also have a sort of dynamic or LOD material, or just a 
>>> > > > high-res
>>> > > > low-res version (high res shows if you are super close, and concerned 
>>> > > > with
>>> > > > it looking crappy). So Plane + png or bitmap will be your fastest, 
>>> > > > best bet.
>>> > > > Next best bet might be just to outline each shape with vector lines, 
>>> > > > but
>>> > > > you'll have to find a way to fill that shape, and it most likely  
>>> > > > won't be
>>> > > > as fast as what I said earlier.
> >
>>> > > > -Pete
> >
>>> > > > On Mon, May 3, 2010 at 5:21 PM, Reinorvak 
>>> > > > <[email protected]>wrote:
> >
>>>> > > >> You can use the Plane method if you're clever about it. Depends on 
>>>> > > >> how
>>>> > > >> you use your picking. Just from using 3D experience though, Less 
>>>> > > >> faces
>>>> > > >> is usually the better option so I'd vote towards Line2D or Sprite.
> >
>>>> > > >> As for zooming in and out, I've seen little effect on PNGs really
>>>> > > >> unless you get really really really close to these 
>>>> > > >> models/images/etc.
>>>> > > >> If you can make the texture repeatable, you could do it simply with
>>>> > > >> one giant plane, and repeat the texture across it till you're
>>>> > > >> satisfied, unless it needs to be more dynamic then that. You'd have 
>>>> > > >> a
>>>> > > >> square map, with a hexagonal field.
> >
>>>> > > >> On May 3, 5:12 pm, CyberHawk <[email protected]> wrote:
>>>>> > > >> > Well, i don't what to use a PLANE as that means my grid has to be
>>>>> > > >> > square in shape. I need/would like to create a hexagon shaped 
>>>>> > > >> > grid. I
>>>>> > > >> > have thought about just creating a PNG image of a hexagon with a
>>>>> > > >> > partial transparent background and a certain color outline in 
>>>>> > > >> > like
>>>>> > > >> > Photoshop or similar, BUT that means if i later change 
>>>>> > > >> > something, i
>>>>> > > >> > have to recreate it ever time. Not saying it is hard or 
>>>>> > > >> > anything, but
>>>>> > > >> > it makes it less dynamically generated. If that is the ONLY way 
>>>>> > > >> > to do
>>>>> > > >> > it, i definitely will have to do it that way as this issue is 
>>>>> > > >> > holding
>>>>> > > >> > back my project, but i was hoping to find a way to draw the 
>>>>> > > >> > hexagons
>>>>> > > >> > instead of creating a PNG. It is not an absolute requirement to 
>>>>> > > >> > be
>>>>> > > >> > partially transparent, it could be completely transparent, but i 
>>>>> > > >> > did
>>>>> > > >> > not try that yet as i wasn't sure how the PNG would look like 
>>>>> > > >> > once you
>>>>> > > >> > zoom in and out on the grid, as in if it will distort the image 
>>>>> > > >> > or
>>>>> > > >> > not.
> >
>>>>> > > >> > On May 3, 4:59 pm, Peter Kapelyan <[email protected]> wrote:
> >
>>>>>> > > >> > > Why not just use a plane (two polys) with a MovieClip or 
>>>>>> > > >> > > regular
>>>> > > >> bitmap
>>>>>> > > >> > > (png?). The mouse *should detect the parts that are 
>>>>>> > > >> > > transparent as
>>>>>> > > >> > > unclickable, so you can have hundreds of those, quite 
>>>>>> > > >> > > possibly.
> >
>>>>>> > > >> > > -Pete
> >
>>>>>> > > >> > > On Mon, May 3, 2010 at 4:35 PM, CyberHawk 
>>>>>> > > >> > > <[email protected]>
>>>> > > >> wrote:
>>>>>>> > > >> > > > I have such a simple problem/issue/question that i can't 
>>>>>>> > > >> > > > seem to
>>>> > > >> find
>>>>>>> > > >> > > > quite the answer to without asking. So, I am using Away3D 
>>>>>>> > > >> > > > 3.5
>>>> > > >> (Latest
>>>>>>> > > >> > > > as of this question 5-3-10) and for starters all i am 
>>>>>>> > > >> > > > trying to do
>>>> > > >> is
>>>>>>> > > >> > > > create a hexagonal shaped grid using smaller hexagons.  
>>>>>>> > > >> > > > The MAIN
>>>>>>> > > >> > > > purpose for this larger hexagon grid is so you can drag 
>>>>>>> > > >> > > > other 3D
>>>>>>> > > >> > > > objects to it from a list later on and the grid accepts 
>>>>>>> > > >> > > > mouse clicks
>>>>>>> > > >> > > > so you can select the hexagons.
> >
>>>> > > >> -----------------------------------------------------------------------------------------------
>>>>>>> > > >> > > > I am creating one hexagon shape (Side=6) using the object 
>>>>>>> > > >> > > > type
>>>>>>> > > >> > > > "RegularPolygon", Radius=57, and i am using that as a BASE 
>>>>>>> > > >> > > > since i
>>>>>>> > > >> > > > want to set a color to it, an “alpha= 0.3, ownCanva=true”, 
>>>>>>> > > >> > > > to make
>>>> > > >> it
>>>>>>> > > >> > > > partially transparent so the background show's thru and i 
>>>>>>> > > >> > > > need to
>>>>>>> > > >> > > > create this base object so i can have something solid so i 
>>>>>>> > > >> > > > can click
>>>>>>> > > >> > > > on using the “MouseEvent3D” event.
> >
>>>>>>> > > >> > > > Next i create a second hexagon shape (Side=6) using the 
>>>>>>> > > >> > > > object type
>>>>>>> > > >> > > > "WireRegularPolygon", Radius=57 to form an outline to the 
>>>>>>> > > >> > > > first
>>>> > > >> "BASE"
>>>>>>> > > >> > > > hexagon so you can see the hexagon object AND its main 
>>>>>>> > > >> > > > purpose is
>>>> > > >> once
>>>>>>> > > >> > > > you click on the base hexagon, it will change the wire 
>>>>>>> > > >> > > > hexagons
>>>> > > >> color
>>>>>>> > > >> > > > to something else, showing that that hexagon was selected.
> >
>>>>>>> > > >> > > > I use a FOR LOOP to generate a larger Hexagon shape using 
>>>>>>> > > >> > > > the above
>>>>>>> > > >> > > > two objects, which is made up of a total of 542 
>>>>>>> > > >> > > > RegularPolygon’s and
>>>>>>> > > >> > > > 542 WireRegularPolygon’s but would like twice that much or 
>>>>>>> > > >> > > > more
>>>> > > >> later
>>>>>>> > > >> > > > on.
> >
>>>>>>> > > >> > > > The reason I would rather generate the grid dynamically is 
>>>>>>> > > >> > > > so I can
>>>>>>> > > >> > > > create different size hexagons or different patterns of 
>>>>>>> > > >> > > > them later
>>>> > > >> on.
>>>>>>> > > >> > > > If I used a hexagon image, I would have to recreate it if 
>>>>>>> > > >> > > > I changed
>>>>>>> > > >> > > > its size or color.
> >
>>>> > > >> -----------------------------------------------------------------------------------------------
>>>>>>> > > >> > > > MY PROBLEM is that once I make that grid zoomed out all 
>>>>>>> > > >> > > > the way so
>>>> > > >> you
>>>>>>> > > >> > > > can see the entire thing, the "T ELEMENT=3252" and the "R 
>>>>>>> > > >> > > > ELEMENT
>>>>>>> > > >> > > > ranges from 3405 to 3795" depending on how the 
>>>>>>> > > >> > > > HoweverCamera3D is
>>>>>>> > > >> > > > tilted. The RAM is around 50MB to 60MB which does not seem 
>>>>>>> > > >> > > > too bad
>>>> > > >> for
>>>>>>> > > >> > > > now. The FPS at max zoom is around 8 to 10 FPS when you 
>>>>>>> > > >> > > > rotate and
>>>>>>> > > >> > > > till the camera. It is also using FP10 and all coding is 
>>>>>>> > > >> > > > done in
>>>> > > >> Adobe
>>>>>>> > > >> > > > CS4 Suite. I am also using BASIC RENDERING. All hexagons 
>>>>>>> > > >> > > > are
>>>> > > >> generated
>>>>>>> > > >> > > > in a separate AS3 class file which extends 
>>>>>>> > > >> > > > ObjectContainer3D and I
>>>>>>> > > >> > > > create an instance of this class in the MAIN AS3 class 
>>>>>>> > > >> > > > file. I have
>>>>>>> > > >> > > > nothing else on screen but the large hex grid and a static 
>>>>>>> > > >> > > > 500x500
>>>> > > >> JPG
>>>>>>> > > >> > > > image as the background.
> >
>>>>>>> > > >> > > > ALL I am looking to do is make a very lightweight hexagon 
>>>>>>> > > >> > > > grid using
>>>>>>> > > >> > > > ANY 3D Object type that can accept a MouseEvent3D event so 
>>>>>>> > > >> > > > I can
>>>> > > >> click
>>>>>>> > > >> > > > on it, be able to have alpha set (BUT I could do away with 
>>>>>>> > > >> > > > that and
>>>>>>> > > >> > > > make it be 100% transparent), and have an outline that I 
>>>>>>> > > >> > > > can later
>>>>>>> > > >> > > > change its color and thickness to show it was clicked on 
>>>>>>> > > >> > > > as this
>>>>>>> > > >> > > > object serves nothing more than a sort of "stage" for 
>>>>>>> > > >> > > > other objects.
>>>>>>> > > >> > > > Basically, in my view, that hexagon “stage” is suppose to 
>>>>>>> > > >> > > > be the
>>>> > > >> LEAST
>>>>>>> > > >> > > > performance hungry of all other objects to come.
> >
>>>> > > >> -----------------------------------------------------------------------------------------------
>>>>>>> > > >> > > > In my first attempt before I started using away3D, i just 
>>>>>>> > > >> > > > created
>>>> > > >> each
>>>>>>> > > >> > > > Hexagon "BASE" using a Sprite object and generating the 
>>>>>>> > > >> > > > "OUTLINE"
>>>>>>> > > >> > > > using a Shape object that you can draw on using the 
>>>>>>> > > >> > > > graphics and
>>>>>>> > > >> > > > drawPath functions and had to actually draw the hexagon 
>>>>>>> > > >> > > > shape
>>>> > > >> manually
>>>>>>> > > >> > > > using lines and sin/cos.
> >
>>>>>>> > > >> > > > MY next set of questions would be about if there is a 
>>>>>>> > > >> > > > "drawPath()"
>>>>>>> > > >> > > > function in away3d just like in Flash to draw on sprites 
>>>>>>> > > >> > > > and Shape
>>>>>>> > > >> > > > objects. I did see it, BUT really don't know if it works 
>>>>>>> > > >> > > > like the
>>>> > > >> one
>>>>>>> > > >> > > > in Flash. I also did see a Graphics3D.as file that seems 
>>>>>>> > > >> > > > to have
>>>>>>> > > >> > > > similar functions such as "moveTo" and etc, but i have not 
>>>>>>> > > >> > > > seen any
>>>>>>> > > >> > > > examples on how to use it yet.
> >
>>>>>>> > > >> > > > When i just display the outline hexagon SHAPE objects in 
>>>>>>> > > >> > > > Flash, i
>>>> > > >> can
>>>>>>> > > >> > > > create a huge grid, over 1000 objects, and it runs really 
>>>>>>> > > >> > > > fast
>>>>>>> > > >> > > > (meaning can rotate it using rotationY as well as panning 
>>>>>>> > > >> > > > without
>>>> > > >> loss
>>>>>>> > > >> > > > of FPS). But
> >
> > ...
> >
> > read more »

Reply via email to