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

forked from: forked from: 超初心者です。動きません、どうしたらよいでしょうか?

ActionScript3.0超初心者です。
とりあえず本を丸写しして
試そうとしたのですが、
どうしても動きません。
大変初歩的な質問で申し訳ないのですが、
よろしくお願いいたします。
自分が見慣れている書き方にしてみました。

関数の中に関数を書くこは可能です。例えば次のような感じです。
ですが、こういう関数の中では'this'の意味が変わるのと、
イベント・リスナーとしてこのような関数を使ったときに
適切に処理を書かないと、
参照が上手く解放されない問題等がありますので、
それらの不利益を十分わかった上でかつ、関数の中に
関数を書くメリットがある時にのみ書くといいのではないかと思っています。
僕個人としては、使い捨てのイベントハンドラなんかは
用途として向いているかなとは思っています。
http://level0.kayac.com/2009/11/post_63.php
Get Adobe Flash player
by 9re 11 Apr 2011

    Talk

    0rafu0 at 11 Apr 2011 17:12
    アドバイスありがとうございます。 具体的な使い方まで教えていただいてとても勉強になりました。 色々実験してみます。
    Embed
/**
 * Copyright 9re ( http://wonderfl.net/user/9re )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/46cE
 */

// forked from 0rafu0's forked from: 超初心者です。動きません、どうしたらよいでしょうか?
// forked from kikyo929's forked from: 超初心者です。動きません、どうしたらよいでしょうか?
// forked from kikyo929's 超初心者です。動きません、どうしたらよいでしょうか?
// forked from kikyo929's forked from: forked from: flash on 2010-1-23
// forked from kikyo929's forked from: flash on 2010-1-23
// forked from kikyo929's flash on 2010-1-23
//ActionScript3.0超初心者です。
//とりあえず本を丸写しして
//試そうとしたのですが、
//どうしても動きません。
//大変初歩的な質問で申し訳ないのですが、
//よろしくお願いいたします。

//自分が見慣れている書き方にしてみました。
/*
 * 関数の中に関数を書くこは可能です。例えば次のような感じです。
 * ですが、こういう関数の中では'this'の意味が変わるのと、
 * イベント・リスナーとしてこのような関数を使ったときに
 * 適切に処理を書かないと、
 * 参照が上手く解放されない問題等がありますので、
 * それらの不利益を十分わかった上でかつ、関数の中に
 * 関数を書くメリットがある時にのみ書くといいのではないかと思っています。
 * 僕個人としては、使い捨てのイベントハンドラなんかは
 * 用途として向いているかなとは思っています。
 * http://level0.kayac.com/2009/11/post_63.php
 */
package {
    import flash.display.Sprite;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    
    public class FlashTest extends Sprite {
        public function FlashTest() {
            var circle:Sprite = new Sprite;
            var ookisa:Number;
            var timer:Timer;
            
            circle.graphics.lineStyle(2,0x0000ff);
            circle.graphics.beginFill(0x888888);
            circle.graphics.drawCircle(0,0,50);
                   
            //circle.graphics.endFill();            
            addChild (circle);
            //プロパティの宣言
            
            Sample();
          
            //初期化メソッド
             function Sample():void{
                //プロパティ ookisaを0にする
              ookisa = 0;
                //タイマーの初期化と開始
                timer = new Timer(33);
                timer.addEventListener(TimerEvent.TIMER,loop);
                timer.start();               
            }
                //1秒間に30回繰り返されるメソッド
            function loop (event:TimerEvent):void{
                //ookisaを毎回0.05ずつ増やす(10より大きくなったら0にする)
                ookisa += 0.05;
                if(ookisa > 10) ookisa = 0;    
                
                //ステージ上のgraphicsをマウスの位置にする
                circle.x = mouseX;
                circle.y = mouseY;
                //graphicsの大きさをookisaにする
                circle.scaleX = circle.scaleY =  ookisa;
            }
        }
    }
    
}