[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;
}
例1と例2の違いは、ボタンだけにthisが付いているのが1、
ボタンとstar_mcと両方にthisをつけたのが2、です。
実行結果では、例1のスクリプトは動きますが、例2は動きません。
全体から見るとボタンとstar_mcは兄弟関係にあります。
なのでボタンにthisを付けると動かなくなります。