無名関数[ActionScrip2.0] †traceしてもkey_mameが取れないといった現象が起きた †_root.sampple.onPress = function():Void { for (var key_mame:String in genre) { //fusekitのalphaToでボタンのalphaを0にした後、ボタンを消す _root[key_mame].alphaTo(0, 1, 'linear', 0, function ():Void{ trace(key_mame); removeMovieClip(_root[key_mame]); }); } } これでkey_mameが取れました。これが無名関数ってやつですか!? †_root.sampple.onPress = function():Void { for (var key_name:String in genre) { //fusekitのalphaToでボタンのalphaを0にした後、ボタンを消す var evtAdder = function(key_name:String){ _root[key_name].alphaTo(0, 1, 'linear', 0, function ():Void{ trace(key_mame); removeMovieClip(_root[key_name]); }); } evtAdder(key_name); } } こんな感じにも書けるらしいです(実証してません) †_root.sampple.onPress = function():Void { for (var key_name:String in genre) { //fusekitのalphaToでボタンのalphaを0にした後、ボタンを消す (function(key_name:String):Void{ _root[key_name].alphaTo(0, 1, 'linear', 0, function ():Void{ trace(key_mame); removeMovieClip(_root[key_name]); }); })(key_name); } } 追記(20078/05/11) †beinteractiveさんに、このページは、「変数のスコープとかアクチベーションオブジェクトの話」ですよーとご指摘いただきましたっ!!ありがとうございます!
Comment †
Counter: 8558,
today: 1,
yesterday: 0
|