if you want to limit the size, use the scrollRect property of MovieClip. only the area in the scrollRect will render and then you can use filters again.
2009/5/7 Andy Fang 方永安 <[email protected]> > > 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 - >
