In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

SoundScape used by GoogleStaticMap

Get Adobe Flash player
by takimo 27 Feb 2009
    Embed
package {
    import flash.display.Sprite;
    import flash.display.Loader;
    import flash.net.URLRequest;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.events.Event;
    import flash.events.MouseEvent;

    public class GoogleStaticMapSample extends Sprite {
        /*
        * 絶賛作りかけ中
        * api_keyはhttp://wonderfl.kayac.comのもの
        */
        private var _url:String = "http://maps.google.com/staticmap?center=40.714728,-73.998672&zoom=16&size=465x465&key=ABQIAAAAPtBEKmwoSb1mcvueuEPWcxQhT1D-zBzSaMzrPqwMx30VwtznthShYcaY4l9_1DFeYdw1X5i-GB7yDw";
        private var _bgmURL:String = "http://movie.geocities.jp/mastergreatmario/smb3_w1.mp3";
        private var _soundURL:String = "http://ia311209.us.archive.org/2/items/Audio-Music-Treasures/SMB3_Jump.mp3";
        private var _popupBox:PopupBox = new PopupBox();
        private var _sound:Sound = new Sound();
        private var _bgm:SoundChannel;

        public function GoogleStaticMapSample() {
            // GoogleMapとpopupのBoxを配置
            init();
            // SoundScapeを作って配置
            setSoundScape();
            // BGMを生成
            var request:URLRequest = new URLRequest(_bgmURL);
            _sound.load(request);
            _bgm = _sound.play();
            // BGMをループさせる
            _bgm.addEventListener(Event.SOUND_COMPLETE, handleBGMComplete);
        }

        private function init():void
        {
            var request:URLRequest = new URLRequest(_url);
            var map:Loader = new Loader();
            map.load(request);
            addChild(map);
            _popupBox = new PopupBox(0x000000);
            _popupBox.visible = false;
            addChild(_popupBox);
        }
        
        private function setSoundScape():void
        {
            var circle1:SoundScape = new SoundScape(_soundURL, 0x2E95A3, "Super Mario");
            circle1.x = 170;
            circle1.y = 200;
            circle1.addEventListener(MouseEvent.ROLL_OVER, handleOver);
            circle1.addEventListener(MouseEvent.ROLL_OUT, handleOut);
            circle1.addEventListener(MouseEvent.CLICK, handleClick);
            addChild(circle1);
        }

        private function handleOver(e:MouseEvent):void
        {
            _popupBox.x = e.target.x - 10;
            _popupBox.y = e.target.y - 32;
            _popupBox.text = e.target.description;
            _popupBox.visible = true;
        }

        private function handleOut(e:MouseEvent):void
        {
            _popupBox.visible = false;
        }

        private function handleClick(e:MouseEvent):void
        {
            // 再生中かどうかチェック
            if(e.target.status)
            {
                e.target.stop();
            }
            else
            {
                e.target.play();
            }
        }
        
        private function handleBGMComplete(e:Event):void
        {
            // 再生をもう一度して再生終了時のイベントにこのfunction(リスナー)を登録 = 永遠にループ
            _bgm = _sound.play();
            _bgm.addEventListener(Event.SOUND_COMPLETE, handleBGMComplete);
        }
    }
}

import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFormat;

class PopupBox extends Sprite
{
    private var _textArea:TextField;

    public function PopupBox(color:int = 0x000000, description:String = ""):void
    {
        var box:Sprite = new Sprite();
        box.graphics.beginFill(color);
        box.graphics.drawRect(0, 0, 130, 18);
        box.alpha = 0.2;
        _textArea = new TextField();
        _textArea.textColor = 0xFFFFFF;
        _textArea.x = 3; 
        _textArea.y = 0;
        _textArea.width = 127;
        _textArea.height = 18;
        addChild(box);
        addChild(_textArea);
    }

    public function set text(text:String):void
    {
        _textArea.text = text;
    }
}

import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.IOErrorEvent;
import flash.media.Sound;
import flash.media.SoundTransform
import flash.media.SoundChannel;
import flash.net.URLRequest;

class SoundScape extends Sprite
{
    private var _sound:Sound = new Sound();
    private var _song:SoundChannel;
    private var _position:int;
    private var _description:String = "";
    private var _playStatus:int = 0;
    private var _volume:SoundTransform = new SoundTransform();

    public function SoundScape(soundURL:String, color:int = 0x2E95A3, description:String = null):void
    {
        this.graphics.beginFill(color);
        this.graphics.drawCircle(0, 0, 10);
        this.buttonMode = true;
        _description = description;
        var request:URLRequest = new URLRequest(soundURL);
        _sound.addEventListener(IOErrorEvent.IO_ERROR, handleIOError);
        _sound.load(request);
    }

    public function get description():String
    {
        return _description;
    }

    private function handleIOError(e:IOErrorEvent):void
    {

    }

    private function handleSoundComplete(e:Event):void
    {
        _song = _sound.play();
        _song.addEventListener(Event.SOUND_COMPLETE, handleSoundComplete);
    }

    public function get status():int
    {
        return _playStatus;
    }

    public function play():void
    {
        _song = _sound.play();
        _song.addEventListener(Event.SOUND_COMPLETE, handleSoundComplete);
        _playStatus = 1;
    }

    public function stop():void
    {
        _song.stop();
        _song.soundTransform = _volume;
        _song.removeEventListener(Event.SOUND_COMPLETE, handleSoundComplete);
        _playStatus = 0;
    }
}