07/12/16 15:01:46 GBR0+CJz
>>281
xxx.swf?aaa=bbb
trace(loaderInfo.parameters.aaa);
285:Now_loading...774KB
07/12/16 15:32:28 GBR0+CJz
ああ、traceじゃなくて、テキストフィールド作ってそこに表示して。
出ないときはhtmlのJS外してシンプルなhtmlでやってみる。
286:277
07/12/16 16:28:51 MyocSUJE
いろいろ試しましたが、やっぱりnullになってしまいます・・・
タイミング的にまだ読み込んでいないのでしょうか・・・
287:Now_loading...774KB
07/12/17 00:13:52 J3nA361w
>>272
>>270の「if (this[mcName]._x > 1000) {」にあるmcName が何を指してるのか分からない。
ていうか、停止とか以前にそれはちゃんと動いてる?
288:Now_loading...774KB
07/12/17 06:16:51 4adcExYM
>>274
>>287
やっぱり最初にfor文でattachMovieした方が良いでしょうね
mcNameが何を示しているかと言うとhosi.mc.[num]です
hosi.mc.[num]=星MC?
もう分かんないよ><
一応動いてます
MCのフレーム終了で止まってくれるので大丈夫です
後、ムービープレビューした時に何フレームからプレビューをするって指定出来るんでしょうか?
289:Now_loading...774KB
07/12/17 06:30:12 4adcExYM
あほな質問してすみませんでした。
gotoAndPlayで出来ました。
290:Now_loading...774KB
07/12/18 15:54:13 TzqRnZ4X
as3 の addChild() を拡張したいんですが、例えば
var sp : Sprite = this.addChild(new Sprite(), {x:10, y:10}) as Sprite;
みたいな形で、addChild() の第二引数に デフォルト値を格納したオブジェクトを
放り込めるようにするにはどーすれば良いのでしょうか...
291:Now_loading...774KB
07/12/18 16:34:32 1qTkCh2f
>>290
よくわからんが、addChildメソッドをオーバーライドしたいって事か?
292:Now_loading...774KB
07/12/18 16:45:42 TzqRnZ4X
>>291
多分オーバーラドって事だと思います...
ディスプレイリストに追加する際にプロパディも同時に追加出来るように拡張出来れば
コードを一行でまとめられて楽かなと思いまして...
293:Now_loading...774KB
07/12/18 16:57:27 1qTkCh2f
>>292
たぶんって、、、、その程度の理解と利用目的かよw
294:Now_loading...774KB
07/12/18 17:06:37 YdHK38bO
>>290
addChildをオーバーライドすると面倒(つーかできないんじゃないかな)だろうから、
専用の関数ひとつ作ればいいんじゃね?
function getNewChild(_class,_parm):DisplayObject{
var o = new _class();
for (var prop in _parm) {
o[prop] = _parm[prop];
}
return o;
}
addChild(getNewChild(Sprite,{x:10,y:10}));
295:Now_loading...774KB
07/12/18 22:58:01 MU/OOnmt
質問させてください 。
以下のようなXMLファイルをXPathAPIを用いて読み込もうとしているのですが
正しい値を取得できません。
<A>
<B id='1'>
<C>テスト1</C>
<D>100</D>
<E>ABC</E>
</B>
<B id='2'>
<C>テスト2</C>
<D>200</D>
<E>DEF</E>
</B>
</A>
取得したい値としては
Cが「テスト1」又は「テスト2」の中でDが「100」のEの値を取得するというものです。
取得するデータは「ABC」のみのはずなのですが、「ABC」と「DEF」両方取得できてしまいます。
スクリプトとしては
var XPathString:String = "/A/B[C='テスト1' or C='テスト2'][D='100']/E/*";
var rare:Array = XPathAPI.selectNodeList(this.firstChild, XPathString);
と記述しております。
どうぞご指導宜しくお願い致します。
296:Now_loading...774KB
07/12/18 23:32:00 noBFvV6I
AS2.0でメニューボタンとか似たような大きさのボタンを複数個作る場合の時に
単純に絵をそれぞれMC変換するより、一つのMCのフレームごとに絵を配置し、インスタンス配置してフレーム調整の方が軽い
という考えは間違ってないでしょうか
それと、ライブラリからインスタンスを配置するのとattachMovieで配置するのでは
容量や重さ等何か違いはあるのでしょうか?
297:261
07/12/19 01:54:46 uRhNfhKo
>>263
返事が遅くなってしまって本当に申し訳ありません。
おかげでだいぶゲームの動きが速くなりました!
298:Now_loading...774KB
07/12/19 05:27:27 uRhNfhKo
//ムービークリップのタイムライン
_root.eraseMe(this);
//_rootのタイムライン
function eraseMe(a) {
arrayDel(enemy_array,a._name);
}
function arrayDel(a,b) {
a.push("dummy");
a.unshift("dummy");
a = a.join().split(","+b+",").join().split(",");
a.pop();
a.shift();
}
と記述して、配列の中からムービークリックの名前を消したいのですが、
arrayDelのスクリプトをtraceすると正常に動いているのに、
実際に配列の中身を見てみるとpushとunshiftだけが実行された形になっています。
きちんと実行させるためにはどうしたらいいのでしょうか?
よろしくお願いします。
299:Now_loading...774KB
07/12/19 06:40:05 uRhNfhKo
>>296
CPUやグラボの性能によってそれぞれのPCで全然違うだろうけど、一応算出してみました。
環境は、FLASH MX2004、Windows2000。
平均容量7KBの画像が連番で90枚あったので、それをボタンに見立ててインスタンスを作成。120FPSで実験
90個のムービークリップをattachMovieでステージに配置:
処理が終わるまで=平均7msec ファイル容量=618,2743B
90フレームのムービークリックをfor文でattachMovieして配置後gotoAndStop:
処理が終わるまで=平均9msec ファイル容量=615,018B
90フレームそれぞれに1枚ずつムービークリップを手動で配置:
最初に90フレーム一周するまで=平均824.5msec
2週目以降一周するまで=平均720.04msec
ファイル容量=632,662B
空の90フレームを用意してonEnterFrameで1枚attachMovieしては前フレームの1枚をremoveMovieClip:
最初に90フレーム一周するまで=平均798.667msec
2週目以降一周するまで=平均719.087msec
ファイル容量=631,957B
画像データじゃなくてベクターデータでもまた全然違うかもしれない。
こんな情報でお役に立てただろうか?
300:Now_loading...774KB
07/12/19 07:56:06 MBJ7pBjM
>>295
Xpathは使ったことないけど両方取得するような記述なのでしょう
>>298
何がきちんとかわからないが、そういうコーディングだからなのでは?
301:298
07/12/19 10:55:59 uRhNfhKo
>>300
分かりにくい文章ですいません。
function eraseMe(a) {
trace("A) arrayDel関数前のenemy_array = "+enemy_array);
arrayDel(enemy_array,a._name);
trace("C) arrayDel関数後のenemy_array = "+enemy_array);
}
function arrayDel(a,b) {
a.push("dummy");
a.unshift("dummy");
a = a.join().split(","+b+",").join().split(",");
a.pop();
a.shift();
trace("B) arrayDel関数中のenemy_array = "+a);
}
//トレース結果
A) arrayDel関数前のenemy_array = enemy0,enemy1,enemy2,enemy3
B) arrayDel関数中のenemy_array = enemy1,enemy2,enemy3
C) arrayDel関数後のenemy_array = dummy,enemy0,enemy1,enemy2,enemy3,dummy
現在のスクリプトだと上記のトレース結果になってしまうのですが、
B) と C) が同じ結果になってほしいのです。
なぜB) では理想の配列になっているのにC) では
a.push("dummy"); と a.unshift("dummy"); だけが行われた配列になってしまっているのでしょうか…
302:Now_loading...774KB
07/12/19 12:06:26 LSm8J8mA
>>301
配列は参照型。
a = a.join().split(","+b+",").join().split(",");
この場所で、aはenemy_arrayが参照する配列とは別の配列を参照することになる。
303:Now_loading...774KB
07/12/19 12:21:55 3Htjnhhl
>>301
なんで、B)では、enemy_arrayじゃなくてaを参照してるの?
それ別物。
つか、単にMCの名前を削除するだけなのに、なんでそんなややこしいことしてんの?
spliceとか使えばいいだけでは?
304:Now_loading...774KB
07/12/19 13:56:24 UXJA67aB
>>294
おおぉ! いけました。
やっぱり、addChild() に手を加えるのは無理っぽいんですねー
有り難うございました!!