Hey Rob,

Thank you again:)

I had tried the method what you metioned in the beginning of my
project.
(That is, set ownCanvas as true, and add filter directly on specific
object)

But I found this way would cause a problem.
When the camera rotated, some part of that filtered object would
disappear.
(Z-sorting issue? I am not sure)

Thus I add filters on the whole viewport.

Best regards,
Andy


On May 7, 9:58 pm, Rob Bateman <[email protected]> wrote:
> Hey Andy
>
> if you want to apply a filter to a 3d object, the best way to do it is to
> use the filters property directly on the object
>
> for this to work, you need to first set ownCanvas of the object to true:
>
> myPlane.ownCanvas = true;
>
> and you can then set filters like you would normally on any native
> displayobject:
>
> myPlane.filters = [new BlurFilter()];
>
> cheers
>
> Rob
>
> 2009/5/7 Andy Fang 方永安 <[email protected]>
>
>
>
>
>
>
>
> > Hey Rob,
>
> > After looking more deeply what the MovieMaterial class is,
> > I realize that the size of interactive layer is not the problem, the
> > position of it is (the problem).
>
> > I think the better way to solve this problem I mentioned (filter can't
> > be working),
> > it's to find a another way to present the visual effect I wanted ("out
> > of focus").
>
> > How about your recommendation of this issue?
>
> > Anyway, I have to thank you again and agian:)
>
> > Andy
>
> > On May 7, 9:21 am, Andy Fang 方永安 <[email protected]> wrote:
> > > Hey Rob,
>
> > > Thank you so much!!!
> > > Your explanation makes me understand clearly why it produced a huge
> > > viewport.
>
> > > In this project, I add a BlurFilter on View3D sprite.
> > > Because I want to present some kinds of visual effect, such as "out of
> > > focus".
> > > If View3D sprite is too huge, filter can not be working.
>
> > > Is there any possibility let me shrink the size of interactive layer?
>
> > > Best regards,
> > > Andy
>
> > > On May 7, 7:01 am, Rob Bateman <[email protected]> wrote:
>
> > > > Hey Andy
>
> > > > the excessive width will be caused by the moviematerial and it's
> > interactive
> > > > layer. when the mose is not over a moviematerial, it stores an instance
> > of
> > > > the interactive content at -10000, -10000 to ensure it is offstage but
> > still
> > > > receiving events (such as tab events, important with forms). i don't
> > know
> > > > why this isn't being picked up with your width proprties for the
> > children of
> > > > view, but it may be because the interactive layer has an alpha
> > blendmode
> > > > applied to make it hidden but still interactive.
>
> > > > can i ask why you need to use the width property of the view? if you
> > need to
> > > > grab the viewport size, you are better off using the screenClipping
> > property
> > > > of the view object
>
> > > > cheers
>
> > > > Rob
>
> > > > 2009/5/6 Andy Fang 方永安 <[email protected]>
>
> > > > > Hey Rob,
>
> > > > > I use Flash authoring tool CS4 to create 3D Flash.
>
> > > > > There is a file Main.fla in my project.
> > > > > Its document class is Main.as (extends Sprite).
>
> > > > > In the beginning, there was three objects in the stage.
> > > > > Which is (and I take their width for example):
> > > > > ----------------------------
> > > > > Object Main         width=1368
> > > > > Object OnScreenBtn1 width=50
> > > > > Object OnScreenBtn2 width=50
> > > > > ----------------------------
>
> > > > >  Furthor analyse object Main:
> > > > >  ----------------------------
> > > > >  Object View3D     width=1368
> > > > >  Object DebugPanel width=137
> > > > >  ----------------------------
>
> > > > >    And components of View3D(I use view.getChildAt(i) to get them):
> > > > >    ----------------------------
> > > > >    Object Sprite width=0
> > > > >    Object Sprite width=1368
> > > > >    Object Sprite width=0
> > > > >    Object Sprite width=0
> > > > >    ----------------------------
>
> > > > > After I add a 640 x 480 plane into a ObjectContainer3D which is child
> > > > > of view.scene.
> > > > > ----------------------------
> > > > > Object Main         width=10684
> > > > > Object OnScreenBtn1 width=50
> > > > > Object OnScreenBtn2 width=50
> > > > > ----------------------------
>
> > > > >  Furthor analyse object Main:
> > > > >  ----------------------------
> > > > >  Object View3D     width=10684
> > > > >  Object DebugPanel width=137
> > > > >  ----------------------------
>
> > > > >    And components of View3D(I use view.getChildAt(i) to get them):
> > > > >    ----------------------------
> > > > >    Object Sprite width=0
> > > > >    Object Sprite width=1368
> > > > >    Object Sprite width=640
> > > > >    Object Sprite width=0
> > > > >    ----------------------------
>
> > > > > According to foregoing width changes,
> > > > > I think the huge View3D produces a huge stage.
>
> > > > > But analyse the components of View3D,
> > > > > I still don't know which part make View3D become so huge.
>
> > > > > Andy
>
> > > > > On May 6, 7:46 am, Rob Bateman <[email protected]> wrote:
> > > > > > Hey Andy
>
> > > > > > not sure i understand what you mean by 'the dimensions of the stage
> > are
> > > > > > huge'. do you mean the viewport? the clipping object? or the
> > relative
> > > > > scale
> > > > > > of 3d objects in the scene?
>
> > > > > > Rob
>
> > > > > > On Tue, May 5, 2009 at 10:17 AM, Andy Fang 方永安 <[email protected]
>
> > > > > wrote:
>
> > > > > > > Hi Fabrice,
>
> > > > > > > Thx for your help.
> > > > > > > But the dimensions of the stage are still huge after setting
> > lockH,
> > > > > > > lockW and clipRect.
>
> > > > > > > Let me brief my 3D environment
>
> > > > > > > There is a big cube (1366 x 768 x 1366) surround camera in my
> > scene.
> > > > > > > The camera can only rotate 360 degree, can't move its position.
>
> > > > > > > There are three ObjectContainer3D objects inside the cube.
> > > > > > > Each ObjectContainer3D object has a single cube at first.
> > > > > > > When you click this cube, a Plane will reveal and load swf as its
> > > > > > > material.
>
> > > > > > > Andy
>
> > > > > > > On May 5, 4:47 pm, Fabrice3D <[email protected]> wrote:
> > > > > > > > Hi Andy,
> > > > > > > > You can set MovieMaterial size by using lockH and lockW
> > properties.
> > > > > > > > see this as a sort of embed.
>
> > > > > > > > more than 10000...
> > > > > > > > In this case, I presume your plane displayed normally shows a
> > very
> > > > > > > > small texture, and you probably compensate by making the plane
> > > > > bigger...
> > > > > > > > To avoid this just set the clipRect of the MovieMaterial as
> > well...
> > > > > > > > you avoid then to compensate the size of your sprite/mc.
>
> > > > > > > > Fabrice
>
> > > > > > > > On May 5, 2009, at 10:28 AM, Andy Fang 方永安 wrote:
>
> > > > > > > > > I load a .swf file into a loader.
> > > > > > > > > And then set content of loader as a Sprite.
> > > > > > > > > Assing this sprite as a MovieMaterial.
>
> > > > > > > > > Finally, attach this MovieMaterial in a Plane.
>
> > > > > > > > > But I find the dimensions of stage become very big (more than
> > 10000
> > > > > x
> > > > > > > > > 10000).
>
> > > > > > > > > Here is my source code.
>
> > > > > > > > > swfLoader=new Loader();
> > > > > > > > > swfRequest=new URLRequest("sample.swf");
> > > > > > > > > swfLoader.load(swfRequest);
>
> > > > > > > > > swfLoader.contentLoaderInfo.addEventListneer(Event.COMPLETE,
> > > > > > > > > swfLoadedHandler);
>
> > > > > > > > > function swfLoadedHandler():void{
> > > > > > > > >    swfInstance=swfLoader.content as Sprite
> > > > > > > > >    swfMaterial=new MovieMaterial(swfInstance,
> > {interactive:true,
> > > > > > > > > smooth:true});
>
> > > > > > > > >    swfPlane=new Plane({material:swfMaterial});
> > > > > > > > > }- Hide quoted text -
>
> > > > > > > > - Show quoted text -
>
> > > > > > --
> > > > > > Rob Bateman
> > > > > > Flash Development & Consultancy
>
> > > > > > rob.bate...@gmail.comwww.infiniteturtles.co.ukwww.away3d.com-hide
> > > > > quoted text -
>
> > > > > > - Show quoted text -
>
> > > > --
> > > > Rob Bateman
> > > > Flash Development & Consultancy
>
> > > > rob.bate...@gmail.comwww.infiniteturtles.co.ukwww.away3d.com-hidequotedtext
> > > >  -
>
> > > > - Show quoted text -- Hide quoted text -
>
> > > - Show quoted text -
>
> --
> Rob Bateman
> Flash Development & Consultancy
>
> [email protected] Hide quoted 
> text -
>
> - Show quoted text -

Reply via email to