くろひょうのwebデザインのお勉強帳

フェリカテクニカルアカデミー web制作科の受講生です。授業の要点、復習でつまづいた点などを記録し、レベルアップに励みます。

クリエイターになるための、お勉強の記録帳

[Flash]this について

前回の記事の後半のスクリプトで、"this"を何度か使いました。
この”this”の使い方が初心者には難しく、動かない原因になりやすいらしいので、分かっていることをメモします。

JavaScriptの"this"と同じように、Flashでは「このステージ全体」というような意味合いで使われます。

また、thisがパスの役目もします。

 

前回の4.のスクリプトを例にします。

[例1]

var star_mc:MovieClip;
var play_btn:Button;
var angle:Number;

this.onLoad = function() {
  angle = 10;
}
this.play_btn.onPress = function(){
 star_mc.onEnterFrame = function() {
    star_mc._rotation += angle;    
 }
}
this.play_btn.onRelease = function() {
   star_mc.onEnterFrame = undefined;
}

[例2]

var star_mc:MovieClip;
var play_btn:Button;
var angle:Number;

this.onLoad = function() {
 angle = 10;
}
this.play_btn.onPress = function(){
 this.star_mc.onEnterFrame = function() {
   this.star_mc._rotation += angle;    
 }
}
this.play_btn.onRelease = function() {
   this.star_mc.onEnterFrame = undefined;
}

f:id:pleasure10501:20150414184838p:plain

例1と例2の違いは、ボタンだけにthisが付いているのが1、
ボタンとstar_mcと両方にthisをつけたのが2、です。

実行結果では、例1のスクリプトは動きますが、例2は動きません。

全体から見るとボタンとstar_mcは兄弟関係にあります。
なのでボタンにthisを付けると動かなくなります。