Home > Flash | WEB > Flash,Degrafaで簡単に波を表現 (2)

Flash,Degrafaで簡単に波を表現 (2)

Degrafaのベジェ曲線描画に、さらに塗りを指定して、
もうちょっと見栄えのいい波にしてみました。

今回も、重ねた波の分だけ増えただけで、
コードはMXMLを除いて、13行といっても、
MXMLでLineToとかしちゃってるわけなので、ちょっとだけ複雑…。

塗り( fill )、線(strokes)をまず定義して、
今度は3次ベジェ曲線オブジェクトのCubicBezierではなく、
波を描くためのパス Path を用意します。

Pathに、CubicBezierTo,LineToでラインの情報を指示して、
塗りの指定をして、波を描画します。

↓波一つ分のパス

XML:
  1. <Path id="bezier4" x="{bigWaveWidth/2}" y="{height/2-10}" fill="{bigWaveFill}">
  2.     <segments>
  3.          <MoveTo x="0" y="0" />
  4.          <CubicBezierTo x="{bigWaveWidth}" y="0" cx="{bigWaveWidth/2}" cy="{-waveHeight}" cx1="{bigWaveWidth/2}" cy1="{waveHeight}" />
  5.          <LineTo x="{bigWaveWidth}" y="{height}"/>
  6.          <LineTo x="{0}" y="{height}"/>
  7.          <LineTo x="{0}" y="{0}"/>
  8.      </segments>
  9. </Path>

これを重ねて、前回の記事と同じようにEnterFrameイベントで動かします。
MXMLでお絵かきしてるようでおもしろいですね。

SVGインポートして描画したりもできるんで、
イラレとかで作ってやったほうがはやいかもしれないですね(^-^;;

今度は、Degrafaでコンポーネントスキンとかにも挑戦してみようかすら。

以下コードです。

XML:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns="http://www.degrafa.com/2007" width="400" height="220" backgroundColor="#FFFFFF" enterFrame="onEnterHandler(event)">
  3.   <mx:Script>
  4.     <![CDATA[
  5.       [Bindable]private var waveHeight:Number = 30;
  6.       [Bindable]private var waveWidth:Number = 410;
  7.       [Bindable]private var bigWaveWidth:Number = 600;
  8.       private function onEnterHandler(event:Event):void{
  9.         if(this.bezier1.x <-this.waveWidth) this.bezier1.x = this.bezier2.x + waveWidth;
  10.         if(this.bezier2.x <-this.waveWidth) this.bezier2.x = this.bezier1.x + waveWidth;
  11.         this.bezier1.x -= 10;
  12.         this.bezier2.x -= 10;
  13.         if(this.bezier3.x <-this.bigWaveWidth) this.bezier3.x = this.bezier4.x + bigWaveWidth;
  14.         if(this.bezier4.x <-this.bigWaveWidth) this.bezier4.x = this.bezier3.x + bigWaveWidth;
  15.         this.bezier3.x -= 5;
  16.         this.bezier4.x -= 5;
  17.       }
  18.     ]]>
  19.   </mx:Script>
  20.  
  21.   <Surface>
  22.     <!-- 塗りの指定 -->
  23.     <fills>
  24.       <LinearGradientFill id="MainFill" angle="90">
  25.         <GradientStop ratio="0" alpha="0.7" color="#FFFFFF"/>
  26.         <GradientStop ratio="1" alpha="0.7" color="#FFDDDD"/>
  27.       </LinearGradientFill>
  28.      
  29.       <LinearGradientFill id="smallWaveFill1" angle="0">
  30.         <GradientStop ratio="0" alpha="0.5" color="#FF6666"/>
  31.         <GradientStop ratio="1" alpha="0.5" color="#FFCC00"/>
  32.       </LinearGradientFill>
  33.       <LinearGradientFill id="smallWaveFill2" angle="0">
  34.         <GradientStop ratio="0" alpha="0.5" color="#FFCC00"/>
  35.         <GradientStop ratio="1" alpha="0.5" color="#FF6666"/>
  36.       </LinearGradientFill>
  37.      
  38.       <SolidFill id="bigWaveFill" color="#CCCC00" alpha="0.5"/>     
  39.     </fills>
  40.  
  41.     <!-- 線の指定 -->
  42.     <strokes>
  43.       <SolidStroke color="#666688" alpha="0.3" weight="1" id="BasicStroke"/>
  44.     </strokes>
  45.  
  46.     <!--表示するオブジェクト-->   
  47.     <GeometryGroup>
  48.       <RegularRectangle id="rect" width="{width-2}" height="{height-2}" x="0" y="0" fill="{MainFill}" stroke="{BasicStroke}">
  49.         <GeometryComposition id="beziers">
  50.           <Path id="bezier3" x="{-bigWaveWidth/2}" y="{height/2-10}" fill="{bigWaveFill}">
  51.             <segments>
  52.                <MoveTo x="0" y="0" />
  53.                <CubicBezierTo x="{bigWaveWidth}" y="0" cx="{bigWaveWidth/2}" cy="{-waveHeight}" cx1="{bigWaveWidth/2}" cy1="{waveHeight}" />
  54.                <LineTo x="{bigWaveWidth}" y="{height}"/>
  55.                <LineTo x="{0}" y="{height}"/>
  56.                <LineTo x="{0}" y="{0}"/>
  57.             </segments>
  58.           </Path>
  59.           <Path id="bezier4" x="{bigWaveWidth/2}" y="{height/2-10}" fill="{bigWaveFill}">
  60.             <segments>
  61.               <MoveTo x="0" y="0" />
  62.               <CubicBezierTo x="{bigWaveWidth}" y="0" cx="{bigWaveWidth/2}" cy="{-waveHeight}" cx1="{bigWaveWidth/2}" cy1="{waveHeight}" />
  63.               <LineTo x="{bigWaveWidth}" y="{height}"/>
  64.               <LineTo x="{0}" y="{height}"/>
  65.               <LineTo x="{0}" y="{0}"/>
  66.             </segments>
  67.           </Path>
  68.  
  69.           <Path id="bezier1" x="{-waveWidth/2}" y="{height/2}" fill="{smallWaveFill1}">
  70.             <segments>
  71.                <MoveTo x="0" y="0" />
  72.                <CubicBezierTo x="{waveWidth}" y="0" cx="{waveWidth/2}" cy="{-waveHeight}" cx1="{waveWidth/2}" cy1="{waveHeight}" />
  73.                <LineTo x="{waveWidth}" y="{height}"/>
  74.                <LineTo x="{0}" y="{height}"/>
  75.                <LineTo x="{0}" y="{0}"/>
  76.             </segments>
  77.           </Path>
  78.           <Path id="bezier2" x="{waveWidth/2}" y="{height/2}" fill="{smallWaveFill2}">
  79.             <segments>
  80.               <MoveTo x="0" y="0" />
  81.               <CubicBezierTo x="{waveWidth}" y="0" cx="{waveWidth/2}" cy="{-waveHeight}" cx1="{waveWidth/2}" cy1="{waveHeight}" />
  82.               <LineTo x="{waveWidth}" y="{height}"/>
  83.               <LineTo x="{0}" y="{height}"/>
  84.               <LineTo x="{0}" y="{0}"/>
  85.             </segments>
  86.           </Path>
  87.          
  88.         </GeometryComposition>     
  89.       </RegularRectangle>
  90.     </GeometryGroup>
  91.  </Surface>
  92. </mx:Application>

Comments:0

Comment Form
Remember personal info

Trackbacks:1

Trackback URL for this entry
http://parpue.net/web/645/trackback
Listed below are links to weblogs that reference
Flash,Degrafaで簡単に波を表現 (2) from parpue.net
pingback from parpue.net - Flash,Degrafaで簡単に波を表現 (1) 09-04-15 (水) 3:04

[...] Newer [...]

Home > Flash | WEB > Flash,Degrafaで簡単に波を表現 (2)

リンク
chocolataste-planner
millon

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

Return to page top