ハピバあぷり

簡単にハピバアプリを作ってみましたー
スピナーで名前を選んで、それぞれの誕生日メッセージを再生させることができまっす。

※明日くらいにはAndroidMarketにはhappyBirthDayAppで検索すれば出るかと思います。
ってことっでソースコードでーっすっ

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark" title="HappyBirthDayApp"
        xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="view1_creationCompleteHandler(event)">
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.events.FlexEvent;
            import spark.events.IndexChangeEvent;
            protected function image_clickHandler(event:MouseEvent):void
            {
                if( nameSound.isPlaying || messageSound.isPlaying ){
                    nameSound.stop();
                    messageSound.stop();
                    image.alpha = 0.5;
                    return ;
                }
                myFilter.play();
                nameSound.play([this]);
            }
            private var nameArr:Array = new Array(
                'abe',
                'akiyama',
                'andou',
                'aoki',
                'arai',
                'araki',
                'asano',
                'azuma',
                'baba',
                'chiba',
                'endo',
                'goto',
                'hagiwara',
                'hamada',
                'hara',
                'harada',
                'hasegawa',
                'hashimoto',
                'hattori',
                'hayakawa',
                'hayashi',
                'higuchi',
                'hirai',
                'hirano',
                'hirata',
                'hirose',
                'honda',
                'honnma',
                'hori',
                'hoshino',
                'hujii',
                'hujimoto',
                'hujita',
                'hujiwara',
                'hukuda',
                'hukui',
                'hukusima',
                'hurukawa',
                'ichikawa',
                'igarashi',
                'iida',
                'ikeda',
                'imai',
                'inoue',
                'ishibashi',
                'ishihara',
                'isida',
                'isii',
                'isikawa',
                'ito',
                'iwamoto',
                'iwasaki',
                'iwata',
                'kamata',
                'kaneko',
                'kannno',
                'katayama',
                'kato',
                'kawaguchi',
                'kawakami',
                'kawamura',
                'kawasaki',
                'kikuchi',
                'kimura',
                'kinoshita',
                'kitamura',
                'kobayashi',
                'koike',
                'kojima',
                'komatsu',
                'kondou',
                'konishi',
                'kouno',
                'koyama',
                'kubo',
                'kubota',
                'kudou',
                'kumagai',
                'kurihara',
                'kuroda',
                'kuwahara',
                'maeda',
                'maruyama',
                'masuda',
                'matsubara',
                'matsuda',
                'matsui',
                'matsumoto',
                'matsumura',
                'matsuo',
                'matsuoka',
                'matsushita',
                'matsuura',
                'minami',
                'miura',
                'miyake',
                'miyamoto',
                'miyata',
                'miyazaki',
                'mizuno',
                'mochiduki',
                'mori',
                'morimoto',
                'morita',
                'murakami',
                'murata',
                'nagai',
                'nagata',
                'naitou',
                'nakagawa',
                'nakajima',
                'nakamura',
                'nakanishi',
                'nakano',
                'nakata',
                'nakayama',
                'narita',
                'nishida',
                'nishikawa',
                'nishimura',
                'nishiyama',
                'noda',
                'noguchi',
                'nomura',
                'oda',
                'ogawa',
                'oka',
                'okada',
                'okamoto',
                'okazaki',
                'okumura',
                'ono',
                'oohashi',
                'ooishi',
                'ookubo',
                'oomori',
                'oonishi',
                'oono',
                'ooshima',
                'oota',
                'ootani',
                'ootsuka',
                'ozaki',
                'saito',
                'sakai',
                'sakamoto 1',
                'sakamoto 2',
                'sakamoto 3',
                'sakamoto',
                'sakurai',
                'sano',
                'sasaki',
                'sato',
                'sawada',
                'seki',
                'shimada',
                'shimizu',
                'shinohara',
                'sibata',
                'sudou',
                'sugawara',
                'sugimoto',
                'sugiyama',
                'suzuki',
                'taguchi',
                'takada',
                'takagi',
                'takahashi',
                'takano',
                'takayama',
                'takeda',
                'takeuchi',
                'tamura',
                'tanabe',
                'tanaka',
                'taniguchi',
                'tsuchiya',
                'tsuji',
                'uchida',
                'ueda',
                'ueno',
                'wada',
                'watabe',
                'watanabe',
                'yamada',
                'yamaguchi',
                'yamamoto',
                'yamanaka',
                'yamashita',
                'yamauchi',
                'yamazaki',
                'yano',
                'yasuda',
                'yokota',
                'yokoyama',
                'yoshida',
                'yoshikawa',
                'yoshimura',
                'yoshioka'
                );
            [Bindable]private var ac:ArrayCollection = new ArrayCollection();
            protected function dropdownlist1_changeHandler(event:IndexChangeEvent):void
            {
                nameSound.source = "assets/" + nameArr[ ddl.selectedIndex ] + ".mp3";
            }
            protected function view1_creationCompleteHandler(event:FlexEvent):void
            {
                var len:int = nameArr.length;
                for( var i:int = 0 ; i < len ; i ++ ){
                    ac.addItem({"name":nameArr[i]});
                }
            }
        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 -->
        <mx:SoundEffect  id="nameSound" source="@Embed('assets/sakamoto.mp3')" useDuration="false" effectEnd="{messageSound.play([this])}" startTime="100" volumeFrom="0.5" volumeTo="0.5"/>
        <mx:SoundEffect  id="messageSound" source="@Embed('assets/birthday4.mp3')" useDuration="false" startTime="600" volumeFrom="0.5" volumeTo="0.5" />
        <s:DropShadowFilter id="dsf" blurX="8" blurY="8" distance="0"/>
        <s:GlowFilter id="gf" blurX="4" blurY="4" strength="10" color="0xffffff" />
        <s:Parallel target="{image}" id="myFilter" >
            <s:Fade alphaFrom="0.5" alphaTo="1"/>
            <s:AnimateFilter bitmapFilter="{new spark.filters.DropShadowFilter()}">
                <s:SimpleMotionPath property="color" valueFrom="0" valueTo="0x000000"/>
                <s:SimpleMotionPath property="alpha" valueFrom="1" valueTo="0"/>
                <s:SimpleMotionPath property="distance" valueFrom="0" valueTo="0"/>
                <s:SimpleMotionPath property="blurX" valueFrom="0" valueTo="30"/>
                <s:SimpleMotionPath property="blurY" valueFrom="0" valueTo="30"/>
            </s:AnimateFilter>
        </s:Parallel>
    </fx:Declarations>
    <s:Image id="image" source="@Embed('assets/image.png')" width="100%" height="100%" alpha="0.4"
             verticalCenter="0" horizontalCenter="0" click="image_clickHandler(event)"    filters="{[gf,dsf]}" />
    <s:SpinnerListContainer id="sp" bottom="40" horizontalCenter="0" alpha="0.8">
    <s:SpinnerList id="ddl" dataProvider="{ac}" labelField="name" change="dropdownlist1_changeHandler(event)"
                    wrapElements="true" width="200" height="200"    />
    </s:SpinnerListContainer>
    <s:Image id="btn" source="@Embed('assets/btn.png')" x="{sp.x+sp.width-30}" y="{sp.y + sp.height/2 - 100}" width="80" click="image_clickHandler(event)"/>
</s:View>