Home > Flash | WEB | デザイン > FlashグラフィックコンポーネントDegrafaを試す

FlashグラフィックコンポーネントDegrafaを試す

MoonGiftで紹介されていたDegrafaを試してみた。

■参考リンク
Flash向けのグラフィックスフレームワーク「Degrafa」
http://www.degrafa.org/


公式のサンプルたちがおもしろい
これでFlex標準コンポーネントのスキンも作成できるようです。
Flexコンポーネント使いつつも我流Flex画面とかもできます。

ついでに見つけた反射効果のライブラリも使いました
Live “reflection” component

■作ってみたデモ

反射とかやったせいでちょっと重い・・・。オブジェクトの描画は全部MXMLだけで行ってます。

公式のサンプルをいくつか落として、ドキュメントも適当に読んで、
ちょっと理解した程度ですが、
MXMLで、線や、円などの描画オブジェクトを配置していき、
塗りや、線の太さなどもMXMLで定義できるようなものだと思います。

XML:
  1. <mx:Canvas id="main_canvas" x="5" y="5" width="400" height="258" verticalScrollPolicy="off" horizontalScrollPolicy="off">
  2.        
  3.     <degrafa:Surface>
  4.         <degrafa:fills>

UIComponentを継承しているSurfaceを用意して、
その上に塗りの定義のfills,線(ストローク)の定義であるstrokes,
描画オブジェクトGeometryGroupを定義していくことで、描画していく。

XML:
  1. <degrafa:fills>
  2.             <degrafa:LinearGradientFill id="MainFill" angle="90">
  3.                 <degrafa:GradientStop ratio="0" alpha="1" color="#FFFFFF"/>
  4.                 <degrafa:GradientStop ratio="1" alpha="1" color="#DDDDDD"/>
  5.         </degrafa:LinearGradientFill>

グラデーション塗りの定義をしてから、

XML:
  1. <degrafa:GeometryGroup>
  2.             <degrafa:RoundedRectangle id="aa" width="300" height="248" x="40" y="10" cornerRadius="15" fill="{MainFill}" stroke="{BasicStroke}">

描画オブジェクトに塗りの設定を適用していく。

おもしろいけど、、、結構めんどくさい。

でもこれで、MXMLコンポーネントを手軽に作るにはいいかもしれない、です。

以下全部

XML:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:degrafa="http://www.degrafa.com/2007"
  3.     xmlns:refrector="com.rictus.reflector.*" width="410" height="400" color="#000000" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#010101, #010101]" verticalScrollPolicy="off" horizontalScrollPolicy="off" xmlns:geometry="com.degrafa.geometry.*" creationComplete="startHandler(event);">
  4.        
  5.     <mx:Canvas id="main_canvas" x="5" y="5" width="400" height="258" verticalScrollPolicy="off" horizontalScrollPolicy="off">
  6.        
  7.     <degrafa:Surface>
  8.         <degrafa:fills>
  9.             <degrafa:LinearGradientFill id="MainFill" angle="90">
  10.                 <degrafa:GradientStop ratio="0" alpha="1" color="#FFFFFF"/>
  11.                 <degrafa:GradientStop ratio="1" alpha="1" color="#DDDDDD"/>
  12.             </degrafa:LinearGradientFill>
  13.            
  14.             <degrafa:LinearGradientFill id="TextFill" angle="90">
  15.                 <degrafa:GradientStop ratio="0" alpha="1" color="#AAAAAA"/>
  16.                 <degrafa:GradientStop ratio="1" alpha="1" color="#444444"/>
  17.             </degrafa:LinearGradientFill>
  18.            
  19.             <degrafa:SolidFill id="CircleFill1" color="#000044"/>
  20.             <degrafa:SolidFill id="CircleFill2" color="#FFFFFF"/>
  21.             <degrafa:SolidFill id="CircleFill3" color="#333333"/>
  22.         </degrafa:fills>
  23.         <degrafa:strokes>
  24.             <degrafa:SolidStroke color="#000000" alpha="1" weight="1" id="BasicStroke"/>
  25.  
  26.             <degrafa:SolidStroke color="#222222" alpha="1" weight="3" id="CircleStroke1"/>
  27.  
  28.             <degrafa:LinearGradientStroke weight="4" id="insetEdge" pixelHinting="true">
  29.                 <degrafa:GradientStop ratio="0" alpha=".3" color="#366079"/>
  30.                 <degrafa:GradientStop ratio=".5" alpha="0" color="#366079"/>
  31.                 <degrafa:GradientStop ratio="1" alpha=".3" color="#366079"/>
  32.             </degrafa:LinearGradientStroke>
  33.  
  34.  
  35.      </degrafa:strokes>
  36.         <degrafa:GeometryGroup>
  37.             <degrafa:RoundedRectangle id="aa" width="300" height="248" x="40" y="10" cornerRadius="15" fill="{MainFill}" stroke="{BasicStroke}">
  38.                 <degrafa:RasterText fill="{TextFill}" x="55" y="210 " fontSize="34" text="Hello!!Degrafa!" bold="true" autoSize="left"/>
  39.                
  40.                 <degrafa:GeometryComposition x="100" y="150" id="circle">
  41.                     <degrafa:Circle radius="30" fill="{CircleFill1}" stroke="{CircleStroke1}" x="10" y="10">
  42.               <degrafa:Circle  radius="25" fill="{CircleFill2}" stroke="{CircleStroke1}" x="5" y="5">
  43.                <degrafa:Circle  radius="15" fill="{CircleFill3}" stroke="{CircleStroke1}" x="10" y="10">
  44.               </degrafa:Circle>
  45.               </degrafa:Circle>
  46.                  <degrafa:filters>
  47.              <mx:GlowFilter alpha="0.5" color="0x777777" blurX="10" blurY="10" strength="3" inner="false" />
  48.                  </degrafa:filters>
  49.  
  50.                  </degrafa:Circle>
  51.             </degrafa:GeometryComposition>     
  52.        
  53.             </degrafa:RoundedRectangle>
  54.         </degrafa:GeometryGroup>
  55.     </degrafa:Surface>
  56.     </mx:Canvas>
  57.    
  58.   <refrector:Reflector target="{main_canvas}" alpha=".3" falloff="{(this.circle.y+100)}" id="reflector"/>
  59.  
  60.   <mx:Script>
  61.     <![CDATA[
  62.       private var add_y:Number = 3;
  63.       private var add_x:Number = 3;
  64.      
  65.       function startHandler(event:Event):void{
  66.         this.addEventListener(Event.ENTER_FRAME, this.onEnterHandler);
  67.       }
  68.      
  69.       function onEnterHandler(event:Event):void{
  70.           if(circle.x <-3) this.add_x = -add_x;
  71.             else if(circle.x> 225) this.add_x = -add_x;
  72.             if(circle.y <0) this.add_y = -add_y;
  73.             else if(circle.y> 177) this.add_y = -add_y;
  74.             circle.x += add_x;
  75.             circle.y += add_y;
  76.       }
  77.      
  78.     ]]>
  79.   </mx:Script>
  80. </mx:Application>

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://parpue.net/web/432/trackback
Listed below are links to weblogs that reference
FlashグラフィックコンポーネントDegrafaを試す from parpue.net

Home > Flash | WEB | デザイン > FlashグラフィックコンポーネントDegrafaを試す

リンク
chocolataste-planner
millon

サーチ
Feeds
Meta
blog ranking ブログランキング・にほんブログ村へ
にほんブログ村 テクノラティのお気に入りに追加する

Return to page top