なんかよく忘れるんだよね。
if (contains(mc)) removeChild(mc);
なんかよく忘れるんだよね。
if (contains(mc)) removeChild(mc);
private function xGetUniqueArray(_array:Array):Array {
var result_array:Array = new Array();
var oValues:Object = new Object();
var nLength:Number = _array.length;
for (var i:Number = 0; i<nLength; ++i) {
var myValue:Object = _array[i];
if (!oValues[myValue]) {
oValues[myValue] = true;
result_array.push(myValue);
}
}
return result_array;
}
どこから探してきたんだっけな。。
Flash-jpだたー。
ついでにシャッフルも。
public function shuffle(array:Array):Array{
return array.sort(function():int{return int(Math.random()*3)-1});
}
as3以前には良く使ってた手法。as3ではこんな感じでやるみたい。
import flash.utils.getDefinitionByName;
for (var i:int = 0; i<3; i++) {
var name_str:String = "Pen"+i;
var myClass:Class = Class(getDefinitionByName(name_str));
var myInstance:MovieClip = new myClass();
addChild(myInstance);
// インスタンスの座標などを設定する処理
}
addEventListener(Event.ENTER_FRAME, function(e:Event):void {trace("ほげ")});
//
removeEventListener(Event.ENTER_FRAME, arguments.callee);
またまた1時間くらいはまったのでメモ。
var _loader:URLLoader = new URLLoader();
try{
_loader.load(new URLRequest("xxx"));
}catch (e:IOError){
hoge();
}
といけるかと思いきや、いけず。
こんな感じでやるみたい。
var _loader:URLLoader = new URLLoader();
_loader.addEventListener(IOErrorEvent.IO_ERROR, function():void{ hoge(); });
_loader.load(new URLRequest("xxx"));
かなり長い時間はまったのでメモメモ。
MCを作成して、リンケージ名を”OyaMC”とする。
その中にインスタンス名”koMC”を配置。
var oyaMC = new OyaMC(); addChild(oyaMC); oyaMC["koMC"].alpha = 0;
半日くらいはまって、結局ダイナミックにオブジェクトを作成してたけどやっと解決。。
as3でサウンドをいじるのはだいぶ楽になって、ライブラリに入れておけば以下のコードだけでOK。
var seObj = new btnSe(); seObj.play();
ボタンを作って音を鳴らしたら、思い通りの音が鳴らん。音自体は鳴ってる。
なんだーと思ったら、サウンドが圧縮されてたのが問題。パブリッシュの設定のサウンドの圧縮をなしにしたところ、無事に思い通りの音が鳴った。
にしても、MP3で圧縮して、ビットレート16kでも24kでも64kでも微妙に音が違って、そんなもんでも結構違うもんなんだなーと思った。たぶんボタン音じゃなくて、普通の曲とかだったらそれほどの違いが気にならないのかもしれないけど、「ピッ」くらいだとよく分かるのかも。
これで30分はかかった・・・
もろもろ検索してたらカヤックさんで便利そうなクラスを見つけた。
サウンドまわりの扱いがめんどくさいので。
簡単な音の扱いは簡単にできそう。そうサウンドを扱わないと毎回SoundChannelとかSoundTransform面倒を調べるのも大変だしな。