Fabrice

will have to try the Animator when I get a chance

cheers

;j

On 23 Apr 2010, at 08:49, Fabrice3D wrote:

but why not use the Animator class here?
by just modeling the start, end and probably in between you end up as a one liner...

if you preffer define the geometry like this, use the 3 elements --> Merge, you pass to animator
repeat for your anim steps.

Fabrice


On Apr 22, 2010, at 11:27 PM, Justin Lawerance Mills wrote:

(ps the graphics in the test link were from someone i helped on actionscript.org so not mine) 'Door' concept are great for setting up a scene of planes, as you may have seen in one of my other posts.


On 22 Apr 2010, at 22:22, Justin Lawerance Mills wrote:

Ok this is haXe but concepts are similar...

You can cut the bitmap up by modifying this
     /**
      *  used for copying a movie to a bitmapdata object
      */
public function copyToBitmapWithTransparency( mc: MovieClip ): BitmapData
     {

         mc.cacheAsBitmap                = true;

         var wide:       Int             = Std.int( mc.width );
         var hi:         Int             = Std.int( mc.height );
         var point:      Point           = new Point( 0, 0);
var rect: Rectangle = new Rectangle( 0 , 0, wide, hi); var abitmap: BitmapData = new BitmapData( wide, hi, true, 0x00000 );
         abitmap.draw( mc );
abitmap.copyPixels( abitmap, rect, point, abitmap, point, false );

         return abitmap;


     }

I have a Door class ( it still needs work ), it allows you to easily work with planes, you can use it for creating structures, although probably adds overhead and almost overkill for a class and is far from complete, I have an as3 papervision version somewhere that was more finished, ( see test http://www.justinfront.net/demos/treepopup.swf ) the link should give you an idea on its use. Anyway here is my current haXe one but I need to do more work on it probably could be implemented better.


package zpartan.generic.views.away;

/*
* Copyright (c) 2010, Justinfront Ltd, ( JLM at Justinfront dot net )
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution.
* * Neither the name of the Justinfront Ltd nor the
* names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY Justinfront Ltd 'AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL Justinfront Ltd BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
 import away3dlite.core.base.Mesh;
 import away3dlite.containers.ObjectContainer3D;

 import flash.display.DisplayObject;
 import flash.geom.Rectangle;


 enum Open
 {
     left;
     right;
     top;
     bottom;
 }

 enum Orientation
 {
     X;
     Y;
 }

 class Door extends ObjectContainer3D
 {


     public var rotate( _get_rotate, _set_rotate ): Float;


     private function _get_rotate():Float
     {
         switch( _orientationRotation )
         {
             case X:
                 return _get_rotation_X();
             case Y:
                 return _get_rotation_Y();
         }
     }


     private function _set_rotate( val: Float ):Float
     {

         switch( _orientationRotation )
         {
             case X:
                 return _set_rotation_X( val );
             case Y:
                 return _set_rotation_Y( val );
         }
     }


     private function _get_rotation_X():Float
     {
         return _holder.rotationX;
     }

     private function _set_rotation_X( val: Float ):Float
     {

         _holder.rotationX    = val;
         return val;

     }


     private function _get_rotation_Y():Float
     {
         return _holder.rotationY;
     }

     private function _set_rotation_Y( val: Float ):Float
     {

         _holder.rotationY    = val;
         return val;

     }



     public function addNob( doorNob: Mesh )
     {

         _doorNob.addChild( doorNob );

     }


     public function addLeg( doorleg: Mesh )
     {

         _doorLeg.addChild( doorleg );

     }

     private var _holder:                ObjectContainer3D;
     public var _hi:                     Float;
     public var _wide:                   Float;

     private var _orientationRotation:   Orientation;
     public var _doorNob:                ObjectContainer3D;
     private var _doorLeg:               ObjectContainer3D;


     /**
     *  @Constructor
     */
     public function new( rectangle_: Rectangle, opening_: Open )
     {

         super();
         _hi     = rectangle_.height;
         _wide   = rectangle_.width;
         _doorNob = new ObjectContainer3D();
         _doorLeg = new ObjectContainer3D();

         switch( opening_ )
         {
             case left:
                 _orientationRotation    =   Orientation.Y;
                 _doorNob.x      +=   _wide/2;
                 _doorLeg.x      +=   _wide;

             case right:
                 _orientationRotation    =   Orientation.Y;
                 _doorNob.x      -=   _wide/2;
                 _doorLeg.x      -=   _wide;

             case top:
                 _orientationRotation    =   Orientation.X;
                 _doorNob.y      -=   _hi/2;
                 _doorLeg.y      -=   _hi;

             case bottom:
                 _orientationRotation    =   Orientation.X;
                 _doorNob.y      +=   _hi/2;
                 _doorLeg.y      +=   _hi;

         }

         _holder = new ObjectContainer3D();
         _holder.addChild( _doorNob );
         _holder.addChild( _doorLeg );

         addChild( _holder );

     }


 }







On 22 Apr 2010, at 13:07, Colir wrote:

Hi,
I asking me what is the better approach to fold a bitmap like in this
website :
http://www.bloodstream.com.br/

in my case i want to fold and unfold a bitmap in two piece (like some
alarm clock)

Do you think is better to use 2 plan with each one have a part of the
bitmap,
or  i can fold directly a plan ? how ? must use AS3Dmod ?

Thanks for you help


--
Subscription settings: http://groups.google.com/group/away3d-dev/subscribe?hl=en




Reply via email to