2010 年 4 月 28 日
AS3 最前面にもってくるDisplayObjectContainer
var sprite:Sprite=new Sprite(); sprite.setChildIndex(btn_obj,sprite.numChildren-1);
よくつかうので書いてあった気がするのですが・・・
ひさびさにFlashやると忘れてました。悲しい。
var sprite:Sprite=new Sprite(); sprite.setChildIndex(btn_obj,sprite.numChildren-1);
よくつかうので書いてあった気がするのですが・・・
ひさびさにFlashやると忘れてました。悲しい。
MCのフレームに _up と _over というラベルを付けて
mc.enabled
だけです。
簡単なものだったらこれで作りたいとこです。
mc.addEventlistener(MouseEvent.ROLL_OVER,rollOverHandler); mc.addEventlistener(MouseEvent.ROLL_OUT,rollOutHandler); function rollOverHandler(event:MouseEvent){ event.currentTarget.gotoAndStop("_over"); } function rollOutHandler(event:MouseEvent){ event.currentTarget.gotoAndStop("_up"); }
このくらいの記述が省略できます。
よく
getDefinitionBy〜だとかよくまちがえるのでメモしました。
DisplayObjectContainerクラスのメソッドです。
btn_mc=this.getChildByName("btn_"+id)
昔はこれと何がちがうのか、どういうときにつかうのかよくわからなかったです。
btn_mc=this["btn_"+id]
describeTypeはオブジェクトの構造をXML化してくれるらしいです。
import flash.utils.describeType; trace(describeType( obj ) );
なるほど。
信じられないくらいハマってしまいました。
原因はわからないんですが・・・
そもそも loaderInfoかLoaderInfoかってところまで疑いはじめて。
おそらく、CyberDuckで上書きをしない設定になってたので
アップされていなかったのが原因っぽいのですが納得いきません。
パラメータ一覧を出すスクリプトをいれたタイミングでなぜかクリア。
もやもやしてます。
var paramObj:Object=loaderInfo.parameters; for (var i:String in paramObj) { tf.appendText(i + "=" + paramObj[i] + "\n"); }
loaderで読み込まれたswfからメインタイムラインにアクセスしたいとき。
maintimline=loaderInfo.loader.root as MovieClip;
今日気づいたんですが、
MovieClip(loaderInfo.loader.root);
という書き方もあるんですね。
いつもヘルプをみるとhelp.adobe.comに接続されて困ってました、遅いので。
ローカルにあるんですね。
パスは以下のようになってました(MacOS)
file:///Library/Application%20Support/Adobe/Help/ja_JP/AS3LCR/Flash_10.0/index.html
これでヘルプが見やすくなります。
以下のようにすることで文字列のクラス名をgetDefinitionByNameに渡して
参照できるようです。
すごく基本的なことっぽいです。
import flash.utils.getDefinitionByName;
var ClassReference:Class; ClassReference=getDefinitionByName(class_name) as Class; var instance=new ClassReference();
ちょと県のリストを作る必要がありましたので
配列を作成するクラスを作りました。
当初、staticで二次元配列にしていたのですが
地域ごとに取得する必要もあるかもと思いインスタンスメンバにしました。
またまたこういった場合setter,getterで行うべきでしたか。
PrefList.as
package { import jp.feb19.ExArray; public class PrefList { public var pref_list:Array=new Array(); //pref_list:Array; var 北海道:Array=[["北海道","hokkaido"]]; var 東北:Array=[["青森","aomori"],["秋田","akita"],["岩手","iwate"],["山形","yamagata"],["福島","fukushima"],["宮城","miyagi"]]; var 関東:Array=[["茨城","ibaraki"],["栃木","tochigi"],["群馬","gunma"],["埼玉","saitama"],["千葉","chiba"],["東京","tokyo"],["神奈川","kanagawa"]]; var 中部:Array=new Array(); var 甲信越:Array=[["新潟","niigata"],["山梨","yamanashi"],["長野","nagano"]]; var 北陸:Array=[["富山","toyama"],["石川","ishikawa"],["福井","fukui"]]; var 東海:Array=[["岐阜","gifu"],["静岡","shizuoka"],["愛知","aichi"]]; var 近畿:Array=[["三重","mie"],["滋賀","shiga"],["京都","kyoto"],["大阪","osaka"],["兵庫","hyougo"],["奈良","nara"],["和歌山","wakayama"]]; var 中国:Array=[["鳥取","tottori"],["島根","shimane"],["岡山","okayama"],["広島","hiroshima"],["山口","yamaguchi"]]; var 四国:Array=[["徳島","tokushima"],["香川","kagawa"],["愛媛","ehime"],["高知","kouchi"]]; var 九州:Array=[["福岡","fukuoka"],["佐賀","saga"],["長崎","nagasaki"],["熊本","kumamoto"],["大分","ohita"],["宮崎","miyazaki"],["鹿児島","kagoshima"]]; //コンストラクタ public function PrefList() { 中部=中部.concat(甲信越,北陸,東海); pref_list=pref_list.concat(北海道,東北,関東,中部,近畿,中国,四国,九州); //pref_list=pref_list.concat(中国); pref_list=ExArray.shuffle(pref_list); } } }
var pref=new PrefList(); var pref_list=pref.pref_list;