IFLashDes Studio

Meet your needs about Action Script

New Project FaPe 3D

Actually these days we ( Me and Pedram ) are busy of doing a new project code named FaPe 3D. We had started this project from months ago, and the beta version will be available for about next month. But let me explain you more about this project.

Where the hell FaPe 3D comes from?!
FaPe 3D Pronounced Fa/Pe stands for Fa eq. Farid and Pe eq. pedram. I know it's sort of lazy code name :D, But it's easy to say and remember.

What is FaPe 3D?
As far as the names shows you it's something thing about 3D! And as far as it's project that has me involved it's Flash project. But in order to makes things more clear I gonna start explain more about this project. FaPe 3D is 3D modeling package currently based on PaperVision 3D ( Great White ). But what a different it would make to the PaperVision? We have PaperVision and it's open source, then why do we need FaPe 3D? The answer is working FaPe 3D doesn't require you to be a powerful AS developer ( One thing that any 3D engine asks you ). It's basically based on simple XML Files and one precompiled Flash File. You don't even need Flash IDE or SDK to compile your project, simply edit series of XML files and render your output using FaPe SWF File. On the other hand you will have FaPe 3D class pack available for download, so you can compile your own version of FaPe 3D as well.

Details :
FaPe consists of basic XML named as Setting XML, this XML consists of basic configuration to run FaPe 3D. In order to read all basic XML files we have Something calls FaPe XML Parser. Very powerful recursive parser written by Pedram which reads all the XML files and send them to the core engine in order to render and creates objects. take a look at simple xml file FaPe should parse and render (really simple :D ) :

XML:
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <viewport>
  3.     <item id="basic_vp" type="Viewport3D">
  4.         <property>
  5.             <viewportWidth type="Number" param="true">800</viewportWidth>
  6.             <viewportHeight type="Number" param="true">600</viewportHeight>
  7.       <autoScaleToStage type="Boolean" param="true">true</autoScaleToStage>
  8.             <interactive type="Boolean" param="true">true</interactive>
  9.         </property>
  10.         <elements>
  11.             <scences>
  12.                 <item id="sc_default" type="Scene3D" default="true">
  13.                     <property>
  14.                     </property>
  15.  
  16.                     <elements>
  17.                         <item id="wall_1" type="Plane">
  18.                             <materials id="wall_01" />
  19.                             <property id="wall_01">
  20.                                 <z type="Number">200</z>
  21.                                 <segmentsH tyne="Number">2</segmentsH>
  22.                                 <segmentsW type="Number">2</segmentsW>
  23.                 <useHandCursor type="Boolean">true</useHandCursor>
  24.                             </property>
  25.                             <elements/>
  26.                             <events id="ex_ev_01"/>
  27.                         </item>
  28.                        
  29.                         <item id="wall_2" type="Plane">
  30.                             <materials id="wall_02" />
  31.                             <property id="wall_01">
  32.                                 <rotationY type="Number">90</rotationY>
  33.                                 <x type="Number">500</x>
  34.                                 <z type="Number">-300</z>
  35.                             </property>
  36.                             <elements/>
  37.                             <events/>
  38.                         </item>
  39.                        
  40.                         <item id="wall_3" type="Plane">
  41.                             <materials id="wall_03" />
  42.                             <property id="wall_01">
  43.                                 <rotationY type="Number">-90</rotationY>
  44.                                 <x type="Number">-500</x>
  45.                                 <z type="Number">-300</z>
  46.                             </property>
  47.                             <elements/>
  48.                             <events/>
  49.                         </item>
  50.  
  51.  
  52.             <item id="floor_1" type="Plane">
  53.               <materials id="floor" />
  54.               <property id="wall_01">
  55.                 <rotationX type="Number">-90</rotationX>
  56.                 <x type="Number">0</x>
  57.                 <y type="Number">-185</y>
  58.                 <z type="Number">-300</z>
  59.                 <height type="Number">1000</height>
  60.                 <useHandCursor type="Boolean">true</useHandCursor>
  61.               </property>
  62.               <elements/>
  63.               <events id="ex_ev_01"/>
  64.             </item>
  65.  
  66.             <item id="chair_1" type="Plane">
  67.  
  68.  
  69.  
  70.  
  71.               <materials id="chair_02" />
  72.               <property id="wall_01">
  73.                 <x type="Number">150</x>
  74.                 <y type="Number">-130</y>
  75.                 <z type="Number">-300</z>
  76.                 <height type="Number">175</height>
  77.                 <width type="Number">150</width>
  78.               </property>
  79.               <elements/>
  80.               <events/>
  81.             </item>
  82.  
  83.             <item id="chair_2" type="Plane">
  84.               <materials id="chair_03" />
  85.               <property id="wall_01">
  86.                 <x type="Number">0</x>
  87.                 <y type="Number">-130</y>
  88.                 <z type="Number">-300</z>
  89.                 <height type="Number">149</height>
  90.                 <width type="Number">150</width>
  91.               </property>
  92.               <elements/>
  93.               <events/>
  94.             </item>
  95.  
  96.             <item id="chair_2" type="Plane">
  97.               <materials id="chair_03_hor" />
  98.               <property id="wall_01">
  99.                 <x type="Number">300</x>
  100.                 <y type="Number">-130</y>
  101.                 <z type="Number">-300</z>
  102.                 <height type="Number">149</height>
  103.                 <width type="Number">150</width>
  104.               </property>
  105.               <elements/>
  106.               <events/>
  107.             </item>
  108.  
  109.             <item id="desck_2" type="Plane">
  110.               <materials id="desck" />
  111.               <property id="wall_01">
  112.                 <x type="Number">100</x>
  113.                 <y type="Number">-140</y>
  114.                 <z type="Number">-700</z>
  115.                 <height type="Number">90</height>
  116.                 <width type="Number">300</width>
  117.               </property>
  118.               <elements/>
  119.               <events id="ex_ev_01"/>
  120.             </item>
  121.  
  122.             <item id="glass_desck" type="Plane">
  123.               <materials id="glass_desck_01" />
  124.               <property id="wall_01">
  125.                 <x type="Number">-200</x>
  126.                 <y type="Number">-130</y>
  127.                 <z type="Number">-700</z>
  128.                 <height type="Number">141</height>
  129.                 <width type="Number">200</width>
  130.               </property>
  131.               <elements/>
  132.               <events/>
  133.             </item>
  134.  
  135.             <item id="entrance_01" type="Plane">
  136.               <materials id="entrance" />
  137.               <property id="wall_01">
  138.                 <z type="Number">-800</z>
  139.                 <useHandCursor type="Boolean">true</useHandCursor>
  140.                 <height type="Number">549</height>
  141.                 <width type="Number">1200</width>
  142.               </property>
  143.               <elements/>
  144.               <events id="ex_ev_01"/>
  145.             </item>
  146.          
  147.            
  148.                     </elements>
  149.                     <events/>
  150.                 </item>
  151.                 <events/>
  152.             </scences>
  153.             <cameras>
  154.                 <item id="ca_01" type="FreeCamera3D" default="true">
  155.                     <property>
  156.                         <z type="Number">-2000</z>
  157.                     </property>
  158.                     <events/>
  159.                 </item>
  160.             </cameras>
  161.         </elements>
  162.         <events/>
  163.     </item>
  164. </viewport>

To cut a long story short here is features list :

  • No need of compile for daily projects.
  • Dynamically attach your 3D Engine to your CMS.
  • Create 3D objects likes Cube, Sphere, Plane, Colladas and more.
  • Design your objects in an external XML file and include it into the project.
  • Materialize your 3D objects using external files like what you with CSS in your web site.
  • Dynamically attach events to the objects and send parameters to the final function.
  • Library of common classes in order to do your basic interaction ie. Arch Movement.
  • Supports add on features for basic 3D engine like Bio Text Support, Magical cube (assign any material to any side any time you want) and more.
  • Custom events for FaPe 3D.
  • Extensible event manager class in order to add your own library of functions.
  • Binding values in XML Files.
  • N level parent and child container ( support multiple addChild ie. cube in plane and plane in parent displayObjectContainer3D.
  • Append and replacement support for external files.
  • And so many more features.

Don't hesitate to contact us and ask about the project. Please support FaPe 3D.

FaPe 3D

Once again Bitmap Vs. Vector in Iran!

In the last post of "Flash In Iran" series, I mentioned new generation of Flash based web interfaces in Iran using mostly Bitmaps versus Vectors and illustrations. To day I wanna talk more about this type of design, introducing you Sima Studio known as Digital-Art before that. First time yo see their web site, you'll notice that they have passion for creating bitmaps and some how motion it in Flash. Some of their projects looks hot to me! I like to talk about them here and mention my opinions about their projects, so let's take a look at some of their projects :

The most amazing one to me was Bahram Radan High band width version. Quite mature and professional at first glance. The most excitement thing about their projects is using of unruled elements in their designs. What do I mean by unruled!? Oom if you deep inside this web site you may notice so many interactive things that does not appear to be interactive at beginning. You may ask like what!? Check out flying insects below the lamps, car lighting, news paper on a floor, and so many more. The biggest problem in design in my opinion backs to the limitation over the quality of bitmaps. This limitation is necessary to have good loading time, but it hearts the design in my point of view!

The Tak Makaron project was again one of those perfect looking projects, but with the same good and bad features as the previous one had. Nice use of colors but poor quality. Other projects may looks weaker than these two but each has their own unique elements.

But now it's time to talk about the weak part! The Action Script portion in their projects is below 20% in my view! All the actions comes from basic knowledge of AS and this is not good for such a beautiful web sites. The graphic is what the clients and public users prefer to talk, but the back end and programming is a developers daily talks. So it's better to focus more and more to this part to call you application or website perfect and magical. Some of those poor AS that was bold to me are event handling, dirty structure of multilingualism, simple and highly process maker filters and effects, usage of XML Objects and ...! But at last I should mentioned may be their projects lacks highly productive Action Script elements but it's simply enough to their end users, so keep working harder and harder!

  • 2 Comments
  • Filed under: Flash in Iran
  • Bitmap side of Flash in Iran, LimooSoft

    Bitmap is very popular between Iranian Flash designers! But is that OK to use bitmaps in your Flash applications ?! Yes! Some times it's recommended to use bitmaps in order to manage memory and CPU usage. One thing is important here is the quality of bitmap! LimooSoft is nice and neat example of how to use bitmaps in your Flash applications and web sites. The perfect usage of bitmaps along with suitable ActionScripts made their portfolio bright to me. The ActionScripts part in their applications are not as powerful as I like, but it's enough to me. LimoSoft website is perfect example of their portfolio to me, clear motions, nice GUI, and dynamic data handling in BIDI way. Below here I provided you a gallery of some their projects, in order to find out more about their power and solutions please check out their website.