ActionScript 誰かが物凄い勢いで解答するスレ 10at SWF
ActionScript 誰かが物凄い勢いで解答するスレ 10 - 暇つぶし2ch500:Now_loading...774KB
06/01/23 23:41:35 kpILgMti
>>499
デバッガ使う場合って、ホントにわかんないときだからなあ。
全部のas読まなくても、該当するas読み込んでブレークポイント付けて
元flaでムービーデバッグでそこでとまらないか?

501:Now_loading...774KB
06/01/23 23:42:28 kpILgMti
あ、ごめん、ファイル-->開く、ね。

502:494
06/01/23 23:59:03 UaLoiz2K
ファイル-->開く で開いたasファイルにはブレークポイントつけらんないっぽいです。

503:Now_loading...774KB
06/01/24 00:12:24 gnTcnWWs
>>502
8ならできるんだが、うーんmxだとわからん、スマン。

504:494
06/01/24 00:28:07 Th+G6CKf
がーん。8ならできるんすかー。
残念……。
ゲーム系作ってて、俺自身のFlash暦は短いせいでブレークポイントは
使いまくりなので、外部編集はあきらめます……。

505:Now_loading...774KB
06/01/24 00:37:39 Q3Wp9ZOe
XPathを使うためにDataBindingClassesをインポートしたA.swfを
B.swfにてloadMovieすると、インポートしたクラスがうまく動かないようです。
A.swf単体で動作させたときに正常に動作することは確認しました。

どなたかアドバイスをよろしくお願いいたします。

506:Now_loading...774KB
06/01/24 00:45:51 Q3Wp9ZOe
書き忘れましたが、B.swfでも同じクラスをライブラリに追加し、importしています。

507:Now_loading...774KB
06/01/24 01:05:55 9Hd9wWbU
flash8Basicで作ってます。
テキストをムービークリップに変換し、
スペースキーで表示非表示を切り替えたいです。

onClipEvent (keyDown) {
checkCnt = 1-checkCnt;
if (checkCnt == 1 && Key.isDown(Key.SPACE)) {
_root.txt._visible = false;
} else if (checkCnt == 0 && Key.isDown(Key.SPACE)) {
_root.txt._visible = true;
}
}

目的のムービークリップのインスタンスに対し
上のようなスクリプトを置きましたが、
どうも反応しません。どうしたらよいでしょうか。

508:Now_loading...774KB
06/01/24 01:11:23 CpU7c7id
>>507
試してないけど
onClipEvent (keyDown) {
if ( Key.isDown(Key.SPACE)) {
_root.txt._visible = !_root.txt._visible;
}
}

509:Now_loading...774KB
06/01/24 04:59:47 odfk2TaF
FlashMXです。
いくつかの子MCを持つ親MCがあったとして、子MCもろとも
重なり順が変わる事を期待して親MC.swapDepths(数字)
しましたが思った通りになりません。そういう仕様なんでしょうか?

入れ子状態なMCをひとかたまりと見なして深度を管理する良い
方法がありましたら教えて下さい。

510:507
06/01/24 06:46:58 9Hd9wWbU
>>508
できました!ありがとうございました。
感謝します。顔謝します。

511:Now_loading...774KB
06/01/24 07:21:27 gnTcnWWs
>>509
for inで子MC個々に変えるぐらいしか思いつかないな。
子MCがindexで参照できるならそっちを使って。
いずれにしても、一気に変えるときは他のMCとの競合に注意だね。

512:Now_loading...774KB
06/01/24 07:37:48 jx8ldrEJ
質問、とは少し違うのですが。
いままで他の言語(C等)を使っていてASは初めてなのですが
on~ = function(){・・・}
が、手軽にタスク処理なんかを増やせるのですごい重宝しています。
そしてASに興味が出てきました。
こういったASならではのおすすめの使いがってのある方式って他にないでしょうか?
当方、MX2004を使っています。

513:Now_loading...774KB
06/01/24 08:01:39 laWMHRpg
>>512
ASならではかどうか知らないけど、
リスナーとかどうだろう。

someListener = new Object();
someListener.onKeyDown = function () {
if(Key.isDown(Key.UP)){ MC._y -= 1 };
if(Key.isDown(Key.DOWN)){ MC._y += 1 };
if(Key.isDown(Key.LEFT)){ MC._x -= 1 };
if(Key.isDown(Key.RIGHT)){ MC._x += 1 };
};
Key.addListener(someListener);

514:Now_loading...774KB
06/01/24 09:10:38 Jpw0UGXi
>>506
URLリンク(oshige.com)
ここの _root という項目の記述が参考になるんじゃないかと思う。

これが関係なかったら、そっから改めてDataBindingClassesとやらの
挙動について調べればいいんじゃないかな。

515:Now_loading...774KB
06/01/24 10:23:59 gnTcnWWs
>>508
スレリンク(swf板:338番)

516:Now_loading...774KB
06/01/24 10:35:00 Jpw0UGXi
下らんことを蒸し返さなくていいよ。

517:Now_loading...774KB
06/01/24 10:36:10 gnTcnWWs
>>506
ここらへんも参考になるかも。要はlockrootいれとけみたいな。
URLリンク(livedocs.macromedia.com)


518:Now_loading...774KB
06/01/24 10:38:05 gnTcnWWs
>>516
うん、蒸し返すつもりは無いけど、いきなりこっちに来てってやられるとな。

519:Now_loading...774KB
06/01/24 11:25:02 Q3Wp9ZOe
>>514
>>517
ありがとうございます。

というか、検証してたらそもそもクラスの問題ではなく、A.swfのルートで宣言した配列が
B.swfにloadMovieするとundefinedになるようでした。
教えていただいた情報を頼りに_lockrootを設定したのですが、
なかなかうまくいきません。
なんでだろ。

520:Now_loading...774KB
06/01/24 12:03:09 gnTcnWWs
>>519
_global

521:329
06/01/24 12:26:55 zfxLHnoc
Flash8です。
ダイナミックテキストフィールドに1~10桁の数字をランダムに表示していますが、
桁が増えるとテキストフィールドに入りきりません。
フォントのサイズを自動で変更したいのですがよい方法はあるでしょうか?

今やっているのは、
2桁の場合→サイズ30
3桁の場合→サイズ32
と、予め決めています。

522:Now_loading...774KB
06/01/24 12:27:18 Q3Wp9ZOe
新しい発見をした。
A.swfでloadしたXMLが、B.swfの中で再生されると文字化けしてしまう。
コレが原因だった。

<A.swf>
doc = new XML();
doc.load("URLリンク(www.example.com)");
doc.onLoad = function(success) {
trace(doc.toString);//←問題ナス
}

<B.swf>
dummy_mc.loadMovie("URLリンク(www.example.com)");//←ここでは文字化けXMLがtraceされる。

このトラブルって結構ありそうだけど、ググっても見つかりません。
アドバイスよろしくお願いいたします。

523:329
06/01/24 12:28:08 zfxLHnoc
↑ よろしくお願いします。

524:Now_loading...774KB
06/01/24 13:12:27 Jpw0UGXi
>>522
俺も似たようなことをやっているので気になって確かめてみたが、
俺のローカル環境ではそれをやっても文字化けはおきなかった。
多少相対パスが怪しい状況にしてても問題なかった。
おまえさんも、まずは3ファイルをローカルの同一フォルダにおいてる状況から
確認してみたらどうだ?

ちなみに、A.swfにあたる俺のファイルには、

System.useCodepage = true;

を書いている。

525:Now_loading...774KB
06/01/24 13:25:42 Jpw0UGXi
>>521

field.txt = 123;// まあなんか数字をセットする

ln = field.txt.toString().length;// 桁数

size = 20;// デフォ
if (ln == 2) size = 30;
if (ln == 3) size = 32;// 桁数に応じてサイズ値を変更。

tf = new TextFormat();
tf.size = size;
field.setTextFormat(tf);// フォントサイズを設定。

こんな感じでええんじゃないの?

526:329
06/01/24 13:53:23 zfxLHnoc
>525
そうそう、今はこの仕様にしてるんです。
1桁増える毎に、一定ピクセル増加する用に直してみます
スクリプトありがとうございました





527:Now_loading...774KB
06/01/24 14:20:59 JzRbj6ax
>>511
ありがとうございました。for in調べてみます。

528:480
06/01/24 16:09:01 7YgpZGrn
マニュアルを調べてのですがやっぱりわかりませんでした。

この処理はアクションスクリプトではできないのでしょうか?
よろしくお願いします。



529:Now_loading...774KB
06/01/24 16:15:05 gnTcnWWs
>>528
rgbで明度といわれても困る。透明度なら_alphaを変えればいい。
hsv色空間での明度ということなら、hsv<-->rgb変換しないとできんがな。

530:Now_loading...774KB
06/01/24 17:45:58 Y/xz5k5f
>>528
アクションスクリプトで明度は変更可能

rgbのパーセントとオフセットの明度との関係知ってる?
まぁ簡単だから調べてみ
あとは簡単。ASで明度を計算しちゃいましょう

1、colorオブジェクト作る
2、指定した明度に対応する拡張効果(ra,rb,ga,gb,ab,bb)を出力する関数でも作る
3、setTransformでMCに色を設定して完了だ

ちなみに前の色からだんだんと明度を変化させたいとかなら
getTransformでMCの色の拡張効果を取得出来るからそれ使う



531:Now_loading...774KB
06/01/24 20:12:02 7YgpZGrn
>>529
>>530
ありがとうございました。
MCの色を変更するのでMovieClipクラスのメソッドやプロパティ
ばかり調べていました。

colorオブジェクト使用すればできました。

ありがとうございました。

532:Now_loading...774KB
06/01/24 21:11:48 Q3Wp9ZOe
>>524
ありがとうございます。
System.useCodepage = true; 関係で何かエラーが起きてたようです。

話が相当ややこしくなるのではしょりますが、
System.useCodepage = true;を書くところによって文字化けが起こったり直ったりするので
loadMovieでいろんなswfを読み込むときは、記述の位置を試行錯誤しようという教訓を得ました。
文字エンコード関係はホントややこしいわよね。

533:482&488
06/01/25 11:56:00 5hSmhNFE
目標: MCを線上に配置させる

→ 成功しました。ありがとうございます。


534:Now_loading...774KB
06/01/25 15:46:50 K0gGqMvE
質問させていただきます。
当方の環境MX2004です。
ムービークリップにloadMovieでswfを読み込むと
swf側のNOWLODINGが一瞬表示されるだけで機能しません。
どなたか助けてくださいorz


535:Now_loading...774KB
06/01/25 17:24:35 iczYMn2K
>>534
あんたマルチしまくりだな。ひどいぞ。

536:Now_loading...774KB
06/01/25 18:56:31 9sp8tSXj
教えてくれ 10進数、もしくは16進数から2進数への変換方法を!

parseIntで10進数に変換するってのは調べた=3

537:Now_loading...774KB
06/01/25 19:02:17 u9QqE4h7
toString

538:Now_loading...774KB
06/01/25 19:12:30 UZO7kIso
>>536
ほれ
aa=0xFF;
trace(aa.toString(16));
trace(aa.toString(8));
trace(aa.toString(2));

539:Now_loading...774KB
06/01/25 19:13:09 UZO7kIso
あ、かぶった、スマン。

540:Now_loading...774KB
06/01/25 19:15:55 9sp8tSXj
わかりません 先生!

541:Now_loading...774KB
06/01/25 19:18:45 9sp8tSXj
わかりました 先生! てかtoStoringでヘルプ見てもそんなの載ってなかったお
まくろめでぃあ氏ね! そして先生方ありがとう!

542:Now_loading...774KB
06/01/26 00:24:15 +mrvpoC6
AS使えてる人に質問~。
attachやduplicateでMC増やしたり、new でオブジェクトとか増やしたときに
消さないでそのまま放置でハングったことある?
やっぱり作ったものはちゃんとremoveなりdeleteなりしてますか?

543:Now_loading...774KB
06/01/26 00:34:31 Yf+Pxeiw
いらなくなったら消すよ

544:Now_loading...774KB
06/01/26 00:49:23 312438en
>>542
やってみりゃわかるけど増やし続ければハングするよ。

545:Now_loading...774KB
06/01/26 09:13:57 88xo8NKH
>>544 消さないで 同じ名前で別のMCを上書きし続けるってのは大丈夫だよね?

546:Now_loading...774KB
06/01/26 10:29:03 +mrvpoC6
>>513
ちょい亀レス。
レスサンクスです。
リスナーですね。調べて見ます^^

547:Now_loading...774KB
06/01/26 13:06:05 Tgdu1VHj
初めて質問させて頂きます。
当方の環境はFLASH MX2004です。
Webサイト作成中です。ボタンを押して別のシーンに飛ばすのですが、
飛ぶ前に元の画面のメニュー以外をゆっくり暗くしていって最終的に真っ暗になってから次のページにいかせたいのですが、うまくいきません。
ちなみにその元のページは静止していなくてモーショントゥイーンで動いています。
アドバイスお願いいたします。

548:Now_loading...774KB
06/01/26 13:20:33 bx32ds5D
>>547
具体的にどうやっていて、どのように意図と食い違っているのかを書かんと
「暗くなってから、移動させれば?」くらいしか言えん。


549:Now_loading...774KB
06/01/26 14:52:49 7QU2toIt
>>547
ボタンを押した時に変数を設定
と同時に、黒いシンボルのアルファ値が徐々に上がるアニメーションを再生
真っ黒になった瞬間に変数先にジャンプ

たぶんコレが一番簡単

550:Now_loading...774KB
06/01/26 15:53:38 hEomt5h2
>>547
使いやすいかどうかは分からないけど自分のやり方
フェードアウトしたいサイズに黒四角を作成してムービークリップシンボルにする
そのMC内で更に黒四角をグラフィックシンボルにしてアルファ0→100のモーショントゥイーンを作成(フレームの長さは任意)
最後のフレーム(別レイヤー)をキーフレームにして
_root.func() //実行したいコマンド
this.removeMovieClip();
と入れる

次にそのMCをリンケージでfoutとでも名付け、フェードアウトに入るタイミングで
attachMovie("fout","fout",100)を実行
//100(深度)はフェードアウト部分にattachで作成したMCがある場合そのMCの深度よりは大きくする
これでフェードアウト→ページ飛び?を処理させてます

その他MC内部を更にMCにして黒、白と四角の色を変えて黒フェードアウト、白フェードアウトとかやってます

551:Now_loading...774KB
06/01/26 16:41:54 Tgdu1VHj
>>550
ボタンには何も書かなくて良いのでしょうか?

552:Now_loading...774KB
06/01/26 19:59:18 8HrhqJ0k
>>547
function fadeout() {
xmin = 0; //暗くしたい画面領域のX座標左上隅位置
ymin = 30; //暗くしたい画面領域のY座標左上隅位置
xmax = 500; //暗くしたい画面領域のX座標右下隅位置
ymax = 400; //暗くしたい画面領域のY座標右下隅位置
alphaNum = 0;
_root.onEnterFrame = function() {
alphaNum += 5;
_root.createEmptyMovieClip("fadeoutMC", 100);
with (_root.fadeoutMC) {
beginFill(0x000000, alphaNum);
lineStyle(1, 0x000000, alphaNum);
moveTo(xmin, ymin);
lineTo(xmax, ymin);
lineTo(xmax, ymax);
lineTo(xmin, ymax);
lineTo(xmin, ymin);
endFill();
}
if (alphaNum>=100) {
delete _root.onEnterFrame;
_root.fadeoutMC.clear();
}
};
}
//ボタンの設定
btn1.onRelease = function() {
fadeout();
_root.gotoAndPlay("movie1");
};

553:Now_loading...774KB
06/01/26 20:57:12 dOUQFa58
ソフト:FlashMX2004_ver7.2

ドラッグした場合、曲線のMC(インスタンス名:clnAB)の上を動く(常に
曲線上にある)MC(このインスタンス名:point)のASを書いています。

これは、clnABからある程度離れたら元に戻れば良いと思い、pointイン
スタンスのASとして下を試しましたが、これではclnABの中心からの距
離の評価になってしまいます。

onClipEvent (enterFrame) {
 this.onPress = function() {
  this.startDrag();
 };
 this.onRelease = function() {
  this.stopDrag();
 };
 if (this._x-_root.clnAB._x>10 || this._y-_root.clnAB._y>10) {
    this._x = _root.clnAB._x;
    this._y = _root.clnAB._y;
 }
}

どのように改造すればいいでしょうか?


554:Now_loading...774KB
06/01/26 22:03:01 i0S1PFf5
>>553
どうなるのが正解かわからないけど、
onEnterFrameの中にonPress,onReleaseを書く必要はないと思う。

555:553
06/01/27 01:47:50 sfKB1Tk0
>>554
onPress,onReleaseは、_rootのフレームアクションとして外に出しました。

本題の方はどうでしょうか? hitTest()で、曲線MCに付いているかどうかを監視
する手を考えましたが、元に戻す時の動き幅を固定することになるので、これは
断念しました。
アドバイス願います。


556:Now_loading...774KB
06/01/27 01:59:13 H+cnbsDq
>>555
曲線MCじゃなくて曲線を2次関数なり3次関数なり数式にしないとダメじゃないかな?

557:553
06/01/27 03:44:39 sLg7KNw3
>>556 数式にしないとダメじゃないかな?

う~ん、数式の場合は、前に試して(482&488&533)成功しているのですが、
今回は前回の様にパラメーター毎にグラフを描画するのではなく、形を固定
したいと思っています。
固定する理由は、同様のグラフが他に隣接して3つあり(曲線4つでループを
形成している)、数式よりは見やすさやループの形のもっともらしさを優先す
るため、「線を変形したもの」に吸着するようにしたいと思っています。

どないでしょう?


558:Now_loading...774KB
06/01/27 11:13:01 2rZt3eLW
>>552 それをいったいどこに書けばいいの?orz
ボタンに書いたらエラーばっかだし...

559:Now_loading...774KB
06/01/27 12:04:59 hzYL/063
質問です。
自作クラス内のLoadVarsクラスで読み込んだ外部ファイルの値を、
自作クラスのプロパティに入れたいのですが、どのような方法があるのでしょうか。

class Hoge{
 var my_lv:LoadVars;
 function Hoge(){
  my_lv = new LoadVars();
  my_lv.onLoad = function(success) {
  if (success) {
   var hoge_a = this.a;//これをHogeのプロパティにしたい
   }
  }
 //呼んだら読み込むメソッド
 function load_lv(){
 my_lv.load(test.txt);
 }
}

560:Now_loading...774KB
06/01/27 13:29:04 R4Uk9N/d
こんな?

class Hoge {
 var my_lv:LoadVars;
 var _a:String;
 function Hoge() {
  my_lv = new LoadVars();
  my_lv._parent = this; //ここで親クラスへの参照をセット
  my_lv.onLoad = function(success) {
   if (success) {
    this._parent._a = this.a; //親クラスの値を変更
   }
  };
 }
//呼んだら読み込むメソッド
 function load_lv() {
  my_lv.load("test.txt");
 }
}

561:Now_loading...774KB
06/01/27 13:31:04 GTN6YSVG
外部テキストを使用するswfを同時に2つloadMovieする場合、
System.useCodePage = true;
を両方のswfに記述してあっても大丈夫でしょうか?
それとも片方だけで良いのかな?

ヘルプには「useCodePageは1スクリプトに1回までを推奨」とあるのですが、
loadMovieしてる場合はどうなるのでしょうか。

562:Now_loading...774KB
06/01/27 13:36:48 R4Uk9N/d
両方に書かないで読み込む親のムービーに書けって事じゃない?


563:Now_loading...774KB
06/01/27 14:12:10 GTN6YSVG
>>562
親のムービーに書くこともしたのですが、
どうやらuseCodePageが有効にならないようで、文字化けしてしまいます。
そういう仕様なんですかねえ。

564:Now_loading...774KB
06/01/27 16:11:49 R4Uk9N/d
そんな馬鹿な仕様にするわけないっしょ。
こっちで試してみたら親の最初のコードとして書くだけで良かったよ。
読み込まれる側で「useCodepage」(「useCodePage」じゃ駄目だよ)
を検索してみればどこかで変更してるところあるんじゃないのかな。

565:Now_loading...774KB
06/01/27 16:45:05 0pMEv5bl
>>564
ちょ、おま、
○:useCodepage
×:useCodePage
の違いに気づいてるのに、なんで「どこかで変更してるところあるんじゃないのか」なんて
トボけた指摘してんだよ。
どう考えても、Pの大小のせいで、意図どおり設定がされてなかっただけだろ!

566:Now_loading...774KB
06/01/27 17:33:25 Amg9P5ex
スコアー計算で、小数がついてしまうことがあるのですが、
これを四捨五入等として整数に直す方法とかあるんですかね?
あったら教えてください。(四捨五入じゃなくても結構です)

567:Now_loading...774KB
06/01/27 17:45:52 W8V5L7fI
>>566
Math.round

568:Now_loading...774KB
06/01/27 17:51:23 joRSlyu4
マス・大山

569:566
06/01/27 17:57:57 Amg9P5ex
>>567
ありがとうございます!四捨五入で反映できました。

570:Now_loading...774KB
06/01/27 18:31:39 UXMgBBu3
>>547
ボタンは普段使ってないから自信ないんだけど
on(press){
if(sw == undefined){
_root.attachMovie("fout","fout",100);
sw=0;
}
かな。swは2回以上押した時また同じ物が生成されるのを防ぐためのスイッチ

571:Now_loading...774KB
06/01/27 18:54:12 yz6tXzkN
>>558
ボタンを置いてあるMCだかルートだかのタイムラインでいいと思うけど、
>>552のスクリプトはそのまま書いてもだめだよ。
インスタンス名やパス、フレームラベルに気をつけて書き直さないと。

ちなみにfadeout();の中に飛び先を設定しないと
飛んだのが見えちゃうよ。

572:Now_loading...774KB
06/01/27 19:12:02 GTN6YSVG
>>564
>>565
ごめん。レスの時はスペル勘違いしてたけど、flash上ではきちんと書いてます。
ちゃんと色変わってます。

いろいろいじってて気づいたんですが、
実際にサーバーにうpしてブラウザから動作確認すると、文字化け直ってました。
でもflashからプレビューしたときには文字化けするんですよ。何故だ。

573:Now_loading...774KB
06/01/27 19:15:20 hzYL/063
>>560
_parent!!
そうか、こういうときに使うんですね。
自分が考えていたものとはまるで違う実装方法だったので、驚きました。

結果、無事できました。ありがとうございます。

574:Now_loading...774KB
06/01/27 19:15:38 yz6tXzkN
面倒だからUTF-8にすれば?

575:Now_loading...774KB
06/01/27 19:57:18 GTN6YSVG
>>574
片方のswfではXMLを読み込み、もう片方ではCGIを読み込んでるのですが
そのCGIがメール送信のルーチンを持たせてあるため、
useCodepage=trueにすると送信メールが文字化けしてしまうのです。
どうして文字コードを統一しないのだ。

576:Now_loading...774KB
06/01/27 21:10:00 UPR5Wxrt
すいません、質問します

7 8 9
×○○
×=7使用済み
○=8、9使用可能
で、ランダムで7~9を選択し、ランダムで出た数値が×状態だった場合、
それ以外の7~9の範囲で使用可能な物の中からランダムに選ぶ

のような事をしたいのですが、どのようなスクリプトを書けば良いのかわからないのです
何卒、どうか教えてください。。

577:Now_loading...774KB
06/01/27 22:07:13 UXMgBBu3
>>576
whileで×じゃなくなるまで回せば?

578:Now_loading...774KB
06/01/27 22:16:36 CiDsxuuu
>>576
配列使えば?


579:Now_loading...774KB
06/01/27 22:24:18 UPR5Wxrt
>>577,578
ご教授ありがとうございます。
whileと配列、どちらも未知の領域なので調べながらやってみます
本当にどうもでした!

580:Now_loading...774KB
06/01/28 15:22:11 jzSkRhTo
現在、アクションゲームを製作しているのですが、
キャラクターデータを8方向*4~8コマ程度のbitmapで作成しています。

で、2キャラクター分の画像を書き出した所、
全部で716枚になっていました。

これを管理する方法ですが、Flashのライブラリに入れるか、
それとも外部ファイルにして読み込んでBitmapDataにキャッシュするのか、
どちらが適当なのでしょうか?

Flashのライブラリに入れるパターンでは
リンケージ登録やフォルダ分けが結構な手間なので、
今後キャラクターデータが増えた時に大変そうなのと、
パブリッシュに時間が掛かるのが難点です。

もうひとつの外部ファイルにして読み込むパターンは
大量ファイル読み込みがサーバへの負荷にならないかが心配です。
※それともファイル数はあまり関係無い?

他の方々はどうやって作っているか、アドバイスがあればお願いします。

581:Now_loading...774KB
06/01/28 17:54:19 2opiCzCr
初心者版かどっちかなんやんだんですけど
こちらに書きます

ボタンを作ってその上にマウスがある間、そのMCを再生する。
マウスをどけたらそのフレームでとまる。
10フレームまで行ったらとまる。

という処理をしたいのですが

ボタンに
on (rollOver) {

while (this._currentframe<>10) {
this.nextFrame();
}

}

と書いてみました。
でもロールオーバーするといきなり10フレームへ飛んでしまうんです。
ないがいけないのでしょう?
どうすれば、そのような処理になるのでしょうか?
お願いします。

582:Now_loading...774KB
06/01/28 18:06:09 k10AGt/R
>>581
ループの間は画面描画は行われないからフレーム位置だけ10になって
止まって、その後、描画されてるから。

583:581
06/01/28 18:25:33 2opiCzCr
>>582
ありがとうございます
なるほど~そういうわけですか

てことはどうすれば・・・・OTZ

今思いついたのは
マウスカーソルの位置を調べて
範囲内ならplay
範囲外ならstop
10まで行ったらストップ
とif文かswitch文で分岐させるか・・・

もっと簡単な方法あります?^^;

むーしかし難しいですね。
プログラム初めてだから悪戦苦闘しています。
でも、思いどうりに動いたときはうれしくて、楽しいです。

584:Now_loading...774KB
06/01/28 18:35:54 wBSn2hV5
>>580
外部ファイル読込みパターンがいいよ。
読込みの鯖への負担っていうのは、大量ファイルを同時に読み込んだときに問題になるわけで、
ひとつずつ順番に読み込んでいけば問題ない。
あと、雰囲気からするとBMP単位でファイルを読み込もうとしてるみたいだけど、
キャラ単位でまとめたswf(ようするに、モナー用データmona.swfやらギコ用データgiko.swfやら)を作って、
それを外部読込みして、gotoAndPlay()でどのパターンのアニメーションを再生するかを指示すればいい。
そうすればアニメーション部分とシステム部分を分離して開発できるからね。

585:Now_loading...774KB
06/01/28 18:47:47 8+NMEXK7
>>583
this.onLoad = function() {
MC.stop();
};
btn.onRollOver = function() {
MC.play();
MC.onEnterFrame = function(){
if(MC._currentframe == 10){
delete MC.onEnterFrame;
MC.stop();
}
}
};
btn.onRollOut = function() {
MC.stop();
};

586:Now_loading...774KB
06/01/28 19:01:21 919CKkdn
back.duplicateMovieClip("back2", 1);
back2._x = -back._width;
speed = 1;
this.onEnterFrame = function() {
back._x += speed;
back2._x += speed;
if (back._x>back._width) {
back._x = back2._x-back._width;
}
if (back2._x>back2._width) {
back2._x = back._x-back2._width;
}
};

という背景ループのASサンプルを自分の作成したものに適用したいのですが、

・2度目のループの際に、レイヤーが上にあるものより更に上を通過する

という理由で上手くいきません。

サンプルでは背景画面全てが、ループされてましたが、
自分は 1シンボル のみをループさせようとしています。

各行の意味すら解ってないので、どこを変更したらいいか
教えてもらえませんでしょうか。お願いします。

macOSX fashMX2004



587:583
06/01/28 20:00:02 2opiCzCr
>>585さんありがとうございます

そうか、そうですよね。

いや、何でループを使おうかと思ったってマウスカーソルの位置によって
再生したり逆再生したりしたかったんです。
でいろいろ調べたらprevFrame()つかえみたいに書いてあったから
ループを使ったんです。

でも描画されないんじゃつかえませんね。

押すたびに一コマじゃなくて、滑らかな逆再生はどのように書いてますか?

588:Now_loading...774KB
06/01/28 20:13:19 eKNWaQww
キーボード入力で、AltキーとCapsLockキーってもしかして事実上使えないんでしょーか?
ブラウザのメニューがアクティブになったり、反応がなかったり。

589:yuu
06/01/28 20:45:23 EUD+xegk
はじめまして。FlashMXで外部変数読み込みから
ダイナミックテキストでの表示の際、フォント指定が出来ません。
プロパティ内での指定、変数内でタグ指定。色々試しましたが
改善がみられません。何か解決策はありますか?

590:Now_loading...774KB
06/01/29 06:46:04 /YPtlAnj
以前質問させていただいた者ですが、初歩的なことで躓いてしまいました。
数枚の画像をランダムで表示させようとし、やってみたのですが、出来ずググッた結果、解説しているサイト様を見つけました。
しかし、サイトに掲載されている通りにやっても、上手く動きません。
どなたか解る方いらっしゃいましたら、お願いします。
ちなみに、ソフトはFlashMXです。

解説サイト様
URLリンク(cella.hp.infoseek.co.jp)

591:Now_loading...774KB
06/01/29 10:00:54 AJJalByS
>>590

アンサーというより便乗質問なんですが
私も初心者なので違う可能性も大ですが
たぶんターゲットパスの指定じゃないですか?

_rootにおいてあるmcを、_rootにスクリプトを書いて動かすのに
家の環境だと(windowsXP,flash8)
相対パスで
this.mc
とやると動きません

絶対パスで
_root.mc
とやれば動きます

これはなんでなんでしょう?
なんか勘違いをしてますか?

592:Now_loading...774KB
06/01/29 10:18:38 dvItKJTz
>>590
そのサイトを尊重したやり方をすれば、

1.写真を3枚用意し、Flashに「ライブラリに読み込む」で読み込みます。
2.新規シンボルを作成、名前は「Photo」、タイプは「ムービークリップ」で作成。
レイヤーにキーフレームを2つ追加し、3つのキーフレームにライブラリから読み込んだ写真を1枚づつ配置していく。
新規レイヤーを追加。そのレイヤーの1フレーム目に、
this.stop();
と記述します。
3.メインタイムラインに戻ります。
好きな位置、仮に50フレーム目を選択し、右クリックでフレームの挿入。
1フレーム目に、
ppp = Math.floor(Math.random()*3+1);
photo.gotoAndStop(ppp);
と記述します。
新規レイヤーを追加。そのレイヤーの1フレーム目に、
ライブラリからPhoto(MC)を配置し、インスタンス名を「photo」に設定。
50フレーム目にキーフレームを追加。1フレーム目を選択してモーショントゥイーンを作成。
1フレーム目のPhoto(MC)を選択し、プロパティのカラーでアルファ、0%にする。

593:Now_loading...774KB
06/01/29 16:26:05 Lwo5QSyJ
FLASHMXです。質問します
インスタンス名がMC1~9という9つのムービークリップを作って、
そのMCの数字の部分を変数であらわすことは可能なのでしょうか?
例えばAが3なら、MCとA でMC3、Bが5ならMCとBでMC5、というようにして処理したいのです。
よろしくお願いします。。

594:Now_loading...774KB
06/01/29 16:33:09 lwZ/BArR
>>593
配列アクセス演算子「[ ]」を使うといいよ。そのインスタンス群が_root上
にあるとしたら、
for(i=1;i<9;i++){
 trace(_root["MC" + i]._name)
}
とかね。

595:Now_loading...774KB
06/01/29 20:13:50 Lwo5QSyJ
>>594
なるほど、配列を使うのですね
がんばってみます、ありがとでした~

596:Now_loading...774KB
06/01/29 20:30:25 YY0miEl5
こんばんわ。
アクションスクリプト初心者です。
いま、表現したい表現があって、苦戦しています。

あるムービクリップがあって、仮にblurryとします。
そのムービクリップをモーショントィーンアニメーションをさせていてます。
そのアニメーションに対して、Flash8からの新関数でblur関数を使い、
モーションブラーチックな表現を試しています。

以下が、アクションスクリプトの構文です。

blurry = new flash.filters.BlurFilter();
blurry.quality = 2;
blurry.blurY = 30;
blurry.blurX = 30;
blurrer.filters = [blurry];

一応、動きにたいして、ブラーはかかるんですが、どうも、モーションブラーというより、ぼけてるってかんじなんですね。

そこで、考えたんですが、ブラー関数は、X軸、Y軸に対して、ブラーされますが、
以下の図に示すように、
URLリンク(v.isp.2ch.net)

オブジェクトの動きにたいして、ローカル軸にブラーをかけるようにできないんでしょうか?

また、ブラー関数にキーフレームを打ちたいのですが、書き方がわかりません。
例えば、1フレームの時は、blurX=0で、10フレームで、blurX=10になり、その間のフレームを補完させたいと思ってます。
アドバイスをお願いいたします。Flash8Pro


597:Now_loading...774KB
06/01/30 01:33:36 d0Y44naD
質問です
flash8を使っています

ネット上で色々調べると8を使ったいろいろなエフェクトがあり
例えば ガラスや水面の表現 球体の表現 それはbitmapDataを
使ってやってるのだと思いますが 色んなソースを見たところ
エフェクトをかけるもとの画像は外部から読み込んだビットマップの画像なんです

にフラッシュで描いたムービークリップにエフェクトをかけるために
ビットマップ化したいんですが どういうスクリプトを組めばいいでしょうか?

598:Now_loading...774KB
06/01/30 01:55:40 arMHajBY
モバイル向けコンテンツの質問です。
当方ようやく3G携帯というものを入手したのでFLASH形式のメニューを作ろうと思っているのですが、
グーグル先生でいくら探しても求めている情報が見つかりません。

現在私が作成しようとしているのはDocomo P902i用のメニューなのですが、それの資料が見つからなかったので
他機種のメニューと同じようにして
on (release) {
fscommand( "Launch" , "camera" );
}
というスクリプトをボタンに埋め込んでみたのですがさっぱり反応してくれません。
モバイル向けのコンテンツを製作している方、私でも携帯電話のメニューを作成できるようにどうか御指南お願いします。

599:Now_loading...774KB
06/01/30 17:01:51 N580XcAr
mx2004
>>547 の内容なのですが…
mcに

onClipEvent(load){
function next(nextMovie){
loadflag=1;
nextMov=nextMovie
}
}
onClipEvent(enterFrame){
if(loadFlag){
if(_alpha<=0){
this.loadMovie(nextMov);
loadFlag=0;
}else{ _alpha-=10; }
}else{
if(_alpha<100){
_alpha+=10;
}
}
}

ボタンに
on (release) {
_root.mc.next("a.swf");
}
このやり方で挑戦しているんですが動きません。
サイトからコピってやっているので間違いはないと思っていますが、
試行錯誤してもダメですたorz
なにか問題あれば教えてくらさい。

600:Now_loading...774KB
06/01/30 18:09:59 k38Yba89
>>596
flash.filters.BlurFilterは、ぼかしフィルタなのでぼけて当然かと思われます
タイムライン使うならいちいちASなど使わなくともトゥイーンでやればいいのでは?

>>597
BitmapDataを作成し、ライブラリ上のMCをロードする
空のMCでも作ってそこに作成したBitmapDataを貼り付ける
自分でどんなAS組んでみたかを報告してないので具体例は省略、とりあえず組んでみな

>>598
私はauなのでdocomoがどうなのかは知りませんが
同メーカーであっても他機種の物はメニュー名変更で動くことは少ない
あとメモ帳の場合(A機種:"memo")(B機種:"note")みたいにメニュー名そのものが違ったりする
Flash Liteスレがあるからそこに逝けばP902i情報入るかも

>>599
どこのサイトからぱくってきたかは知らんが、それじゃ絶対に動かん。俺が保障する!
突っ込みどころ満載だが、とりあえず今は下の『on(release)』部分だけを考えてみよう
599はシーン移動したいんだな?
まずnextはデータセット用なのでシーン移動は出来ん。
あと"a.swf"とあるがシーン移動の場合シーン名だから拡張子は付かない。
ぱくったの改造じゃなくて一から組んでみ?

601:Now_loading...774KB
06/01/30 18:37:11 v0jRHy4r
ムービー起動時にfsCommandでフルスクリーン化した後、
F11キーでフルスクリーンOn/OFF切り替えするスクリプトを書いたのですが、
別のシーンから上記処理のシーンに戻ると、起動時の処理のせいで、
意図せずフルスクリーンになってしまいます。。

fsCommandで設定した状態を取得する方法もしくはフラグ等をうまく使って実現する方法を教えてください。

602:Now_loading...774KB
06/01/30 18:54:27 xX9wE/xJ
>>601
Ctrl+F でフルスクリーン切り替えだとダメなの?

603:Now_loading...774KB
06/01/30 19:06:12 qyz6KCsp
戻る前のフレームで設定しときゃいいじゃん

604:Now_loading...774KB
06/01/30 21:52:01 aytlfER8
MX2004です。

Xmlクラスで読み込ませるデータの属性部分(?)に「<」が入っていると、
正しくデータを読み込んでくれません(その部分で解析判断ミスって、データが終わってる扱いになる)

<mona giko="nuru<po"/>


属性部分に「<」を使用しつつ、この問題を回避する方法はありますか?

605:Now_loading...774KB
06/01/30 21:56:37 3A/qb/Co
<

606:Now_loading...774KB
06/01/30 21:57:13 3A/qb/Co
&lt; を半角で

607:Now_loading...774KB
06/01/30 22:07:48 aytlfER8
おー。それ、使えたのですね。
xmlファイルの記述を

<mona giko="nuru&lt;po"/>

にしておいたら、属性gikoは確かにデバッガ上で "nuru<po" になってました。

ありがとうございました。


608:Now_loading...774KB
06/01/30 22:12:40 J2Tof9bv
>>604
> Xmlクラスで読み込ませるデータの属性部分(?)に「<」が入っていると、
> 正しくデータを読み込んでくれません(その部分で解析判断ミスって、データが終わってる扱いになる)

解析判断『ミスって』、なんてふざけた事言わないように。
XMLの仕様ではそれが正しい動きです。

609:Now_loading...774KB
06/01/31 01:08:59 idhoFAjQ
xmlネタって事で出てくるかな~?
と思ってが、この手の奴やっぱ出てくんね。
xmlの仕様程度でよくぞここまで(笑)

610:602
06/01/31 08:31:04 /8kQKgb4
〉603-604
ありがトン。両方試してみます!

611:Now_loading...774KB
06/01/31 09:45:11 uEnV+7yA
LoadVars.load( url ) の url には変数使えないんでしょうか?

612:611
06/01/31 10:04:27 uEnV+7yA
すいません。使えました。
ただ単にパスが間違ってただけだった orz...
スレ汚しスマンです。

613:Now_loading...774KB
06/01/31 12:44:46 lGHmWmQ0
>>600
ありがとです。
動かないのか...orz
やっぱりなー...
シーン移動じゃなくて、ムービーを読み込みたいのです。
とりあえず一から組むといっても全然わからんので
ヒントをくれませんか・・・?

614:Now_loading...774KB
06/01/31 12:56:55 uEnV+7yA
>>613
MXだけど動いたよ。
2004とか8は知らないけどvar ~とか
変数の宣言しないとだめなんじゃなかったっけ。
もしくはa.swfのパス間違えてるとか。

615:Now_loading...774KB
06/01/31 16:11:41 ZnXJ88B0
>>613
変数名の大文字と小文字は区別されますよ。

616:615
06/01/31 16:13:51 ZnXJ88B0
orz

617:Now_loading...774KB
06/01/31 16:23:26 1YZGFbNn
mx2004です。
ランダムでアイテムが出てくるアイテムランダムMCを置いて
ボタンアイテムをgetさせたいのですが
うまく動作してくれません。

基本的な事ですいませんがご教授をよろしくお願いします。

#_root上に置いてあるアイテムをget
させることはできました。


618:Now_loading...774KB
06/01/31 16:28:48 uEnV+7yA
俺の理解力が足りないのだろうか。
>>617が何を言いたいのか分からない。

619:Now_loading...774KB
06/01/31 16:37:04 FUcVSLLg
>>618
ダミー情報に惑わされるな!
最後の行に注目するんだ!
これは…おそらく…ターゲットパスがわからないという質問だ。

つーことで>>617はAS中のパスを確認しよう。

620:Now_loading...774KB
06/01/31 18:36:26 nAzN6SMG
誰かが物凄い勢いで解読するスレ

621:Now_loading...774KB
06/02/01 02:07:51 22T13Q7B
>>620
ワロタ

622:Now_loading...774KB
06/02/01 06:55:07 abCGYV2P
環境 Flash8 MacOSX でつくってるんですが
FLASH 道場さん URLリンク(www2.netwave.or.jp) の
スクロール縦 URLリンク(www2.netwave.or.jp) を
同じシーン&フレーム上に左右2つ置きたくて試してみたのですが
ファイルを分けても左右のボタンどちらかを押すと
両方のスクロール部分が同時に動いてしまいます
インスタンス名をどっかに付けて ボタンそれぞれにどちらをスクロールするか
指定すれば良いのかと思うのですがやり方が分かりません
(もしかしたらその考え方自体違うかも...)
とりあえずボタンには
on (rollOver) {
_root.mov = -600;
}
って書いてあります
たすけてください よろしくおねがいします


623:Now_loading...774KB
06/02/01 07:03:22 7DFqI6yf
mov1とmov2とかに分けたらいいかと

624:622
06/02/01 07:25:18 abCGYV2P
>>623
朝っぱらからすいません
寝てなくて頭動いてませんでした
分ける間もなく自己解決しました
ホントすいませんorz
濃ゆいコーヒー飲んで目さましてきます

625:Now_loading...774KB
06/02/01 12:23:32 FJgTa4EH
MX2004使っているのですけど、
メニューのキーボードショートカットで
スクリプト編集の欄のショートカットをいじっても全然反映されないのって
仕様ですか?それとも設定の仕方が悪いのでしょうか?
例えばカット(デフォCTRL+X)を、CTRL+MやCTRL+5にしたりしても全く反映されません。
どうしてでしょうか?

626:Now_loading...774KB
06/02/01 12:46:26 Rg1qxJqw
>>625
セット複製してそれに対して変更で問題なくできるが

627:Now_loading...774KB
06/02/01 12:58:58 shdlUQcZ
>>614-615 試してくれてありがとう。
とりあえず自分はmcにムービーを読み込んで、ボタンを押すと暗くなって他のムービーがmcに読み込まれるものを作りたいのです。
動く人もいるってことは間違いではないんだよね...orz

628:Now_loading...774KB
06/02/01 13:29:16 FJgTa4EH
>>626
セットも複製してます。
ありゃ。じゃあうちのPCが悪いのかな。。。
と思ったらデキタ!
なんか「描画メニューコマンド」のほうのショートカットをいじったら
ASウィンドウ上でもそのショートカットが効くようになってるorz
スクリプト編集ってASのことじゃないのかよぉ~・・・?


629:Now_loading...774KB
06/02/01 13:40:04 FJgTa4EH
あきらめない力をくれた>>626に乾杯。
しかしShift+Insertはどうやっても無理でした。

630:Now_loading...774KB
06/02/01 17:31:43 shdlUQcZ
>>627ですが、
maji困ってます。助けてorz

631:Now_loading...774KB
06/02/01 18:35:51 BEqceA7M
>>630
暗くなるっていってもアルファ下げてるんだから
読み込み先のMCが透明になるのはわかってるよね。
暗くして読み込み終了後に明るくするってことなら、MXだけどしたのでどう?

onClipEvent (load) {
loadflag = false;num = new Array(100, 100, 100);
myColor = new Color(this);myColorTransform = new Object();
function next(nextMovie) {loadflag = true;nextMov = nextMovie;}
}
onClipEvent (enterFrame) {
if (loadFlag) {
if (num[0]<=0) {
this.loadMovie(nextMov);num = new Array(100, 100, 100);
myColorTransform = {ra:num[0], ga:num[1], ba:num[2]};myColor.setTransform(myColorTransform);
loadFlag = false;
} else {
num[0] -= 10;num[1] -= 10;num[2] -= 10;
myColorTransform = {ra:num[0], ga:num[1], ba:num[2]};myColor.setTransform(myColorTransform);
}
} else {
if (num[0]<100) {
num = new Array(100, 100, 100);
myColorTransform = {ra:num[0], ga:num[1], ba:num[2]};myColor.setTransform(myColorTransform);
}
}
}
on (release) {
_root.mc.next("a.swf");
}


632:Now_loading...774KB
06/02/01 19:07:39 GOsfzHtH
シューティングゲームでZボタン(普通の弾)、スペース(ミサイル)、敵を(位置ランダム)で表示
させたいんですが実行すると敵がいるときにスペースを押すと敵が消えてしまうんですが
(通常の弾でもZボタン連射で時々敵が消えちゃいます。。。)
これはどこがいけないんでしょうか?orz ↓敵の処理です
targetMax = 5;// 弾の最高数
targetUse = new Array();
for (i=0; i<targetMax; i++) {
targetUse[i] = 0;// 敵の使用フラグ
}
function targetCreate (iteki) {
// 未使用番号を検索
for (i=0; i<targetMax; i++) {
if (targetUse[i] == 0) {
break;
}
}
if (i == targetMax)return false;

// 敵を生成
_root.attachMovie("target", "target"+i, i);

_root["target"+i]._x = iteki.x;
_root["target"+i]._y = iteki.y;
_root["target"+i].ID = i;
targetUse[i] = 1;
}

633:Now_loading...774KB
06/02/01 19:41:54 PZPHIWcd
>>632
深度の問題

634:Now_loading...774KB
06/02/01 20:36:03 FJgTa4EH
深度等のリスト

635:632
06/02/02 00:59:45 kjBb8D12
_root["target"+i].swapDepths(10+i);
こんな感じのを追加すればいいんでしょうか?
少しやってみたけどよくわからないですorz
助けてくらはい

636:632
06/02/02 01:10:10 kjBb8D12
今いぢっていたら消えなくなりました!
が。。。時々画面上でMCがいくつかフリーズしたように動かなくなっちゃいました。。。

637:Now_loading...774KB
06/02/02 10:53:11 Cqg5ULk9
>>631
ASありがとうございます。
しかし、今まで試してみたものと同様でアルファがかかりませんorz
ボタンを押すと、ピクっと一瞬画面が固まります。
なので、指令を聞いてるには聞いてると思うのですが・・・
サンプル用に簡単に作ったものでは>>631のASで動きました。
もしかして...と思っているのですが、その読み込むムービーの1フレ目に
ちょいと複雑な『nowloading』をつけてあります。
私がサンプルで簡単に作った方にはつけていません。
もう、違いといったらそれしか無かったものでnowloadingを外してみましたが
だめでした...途中でとってもASって残るものなんでしょうか?
無知ですみませんがアドバイス&意見お願いします。
皆さんの協力とても嬉しいです。


638:Now_loading...774KB
06/02/02 11:58:38 OIM4ds79
一回基礎から勉強しろよお前

639:Now_loading...774KB
06/02/02 12:41:26 Cqg5ULk9
もう一度基礎から勉強したらわかるようになりますか

640:Now_loading...774KB
06/02/02 12:57:29 AN8XTF1X
おしえて!!FLASHを読めw

641:Now_loading...774KB
06/02/02 13:00:02 53Souy3R
>>639
デバッガ使ってステップごとに追っていくとか、トレース入れるとか。

642:Now_loading...774KB
06/02/02 14:21:03 Cqg5ULk9
>>641 
ありがとうございますorz

643:Now_loading...774KB
06/02/02 16:36:49 Cqg5ULk9
もう全部解決しました!
感動です...み~~んなありがとう愛してるゼ

644:Now_loading...774KB
06/02/03 14:39:56 7PZX35FX
12という文字列を0000012に変換したいのですがどうすればいいのでしょうか

645:Now_loading...774KB
06/02/03 14:41:16 7PZX35FX
12という文字列を0000012に変換したいのですがどうすればいいのでしょうか

646:Now_loading...774KB
06/02/03 14:44:49 2FI1AZfP
str = "12";
str = "00000"+str;

647:Now_loading...774KB
06/02/03 14:48:50 4L9q4XFk
ワロスw

648:Now_loading...774KB
06/02/03 16:14:07 WHBJrxZr
str="0000".concat(12);
なら確実に文字列になるんじゃね?

649:329
06/02/03 21:24:52 PAaIx41i
ミリ秒を時間分秒にしたいのですが、
20736365ミリ秒→5時間45分36秒にする場合、
targetTime = 20736365/1000;
nowH = Math.floor(targetTime/3600);
nowM = Math.floor((targetTime%3600)/60);
nowS = Math.floor(((targetTime%3600)%60));
trace(nowH+":"+nowM+":"+nowS);
なんか凡雑な気がするものでもっといい方法ありますか?
よろしくお願いします

650:Now_loading...774KB
06/02/04 00:27:14 BbU3M0mp
>>645
それどこかのスレで見たよ。
5行くらいで、すっきりしたやつが書いてあって、
驚いた。どこかは覚えてない。

651:Now_loading...774KB
06/02/04 00:52:33 V66zA5VP
>>644
function toDigStr(num, dig){
return String(Math.pow(10, dig)+num).substr(1)
}
var str = toDigStr(12, 7)
trace(str)

hore


652:Now_loading...774KB
06/02/04 02:07:50 2l9gIoed
>>644
ソースの見た目のインパクト重視。
>>651は計算してるから埋めたい桁数が15桁ほどで破綻するけど、こっちは30桁までおっけー!

function toDigStr2(num,dig){
return "000000000000000000000000000000".substr(0,dig - num.toString().length) + num;
}
trace(toDigStr2(12,25));

653:Now_loading...774KB
06/02/04 02:34:24 e7Tso0Ig
>>644
function toDigStr3(num, dig) {
ret = "";
for (var i = 0; i<(dig-num.toString().length); i++) ret = "0"+ret;
return ret+num;
}
trace(toDigStr3(12,7));

654:Now_loading...774KB
06/02/04 04:46:20 z0+XKfg8
ボタンにマウスが乗っかるとMCが左にスライドして
クリックするとフレーム3に飛ぶ物を作りたいのですがうまくいきません
↓左にスクロールは出来たのですが押しても反応してくれません。
(フレーム3のMCインスタンス名は1977_mです)


on (rollOver) {
_root.mov = -100;
}
on (rollOut) {
_root.mov = 0;
}
on(release){
  _root.1977_m.gotoAndStop(3);
}

Flash8を使ってます。お願いいたします。

655:Now_loading...774KB
06/02/04 06:45:52 axMATYPD
>>649
なんか、昔やってみたなあと思いだし古いflaから。
はっきり言ってつかえねーと思うorx_..........

//1970/01/01 0:0:0からt_millisec経過した時分秒
//24時間以上だと日にちが加算される
//UTCでないとtimezone分時刻がずれるので注意
var t_millisec:Number=7200000;
var fa_date:Date = new Date(t_millisec);
//fa_date.setTime(3600000);
trace(t_millisec+"ミリ秒は");
trace("時間:"+fa_date.getUTCHours());
trace("分:"+fa_date.getUTCMinutes());
trace("秒:"+fa_date.getUTCSeconds());
trace("ミリ秒:"+fa_date.getUTCMilliseconds());

656:Now_loading...774KB
06/02/04 06:56:09 axMATYPD
>>654
mc.gotoAndStop();はそのmcのタイムラインの再生ヘッドを移動させる命令。
ルートのタイムラインのをと言うことなら_root.gotoAndStop();になるよね。
あと、ソース記載はコピペで。


657:654
06/02/04 08:32:34 z0+XKfg8
>>656
早朝からご回答ありがとうございます。
on (rollOver) {
_root.mov = -100;
}
on (rollOut) {
_root.mov = 0;
}
on(release){
  _root.gotoAndStop(3);
}

ってことですよね?でも、動きませんでした。エラー出ちゃいます
まさか、同じレイヤーじゃないと駄目な訳じゃないですよね?
あと、ボタンごとに欠くフレームに移動したいので
このタイムラインの各フレームにthis.stop();を入れてるんですが
それもおかしくはないですよね
なんで動かないんだろ
何処か間違ってそうなところ分かりませんか?

658:Now_loading...774KB
06/02/04 08:46:00 axMATYPD
>>657
mc座標の移動はmc._xとmc._yプロパティを設定することで行う。
movというインスタンス名を持つmcの座標を設定するには
mov._x=100;ルートにあるなら絶対パスで_root.mov._x=100;とかね。
pathが理解できていれば問題ないと思うぞ。
  _root.gotoAndStop(3);
^^^これはなんぞや。
コンパイルエラーが出ているならエラーを解決してからだね。

659:Now_loading...774KB
06/02/04 09:15:49 j2qShd6/
>>657
ひまだからサンプル作ってみた。

URLリンク(aploda.com)

660:654=657
06/02/04 10:17:09 z0+XKfg8
>>658
ありがとうございます。
この間買って来た本と格闘しながらつくってたんですが、いまいちよくわからなくって。
xとyの座標で設定するのは知ってたんですが、本に書いてなくて
それでも、移動はしてくれたので、まぁよし?とか思っちゃったんですが
それがまずかったのかな、作り直します。
ソレ、なんなんでしょう。。。すいません;

>>659
サンプルありがとうございます!!!!!
凄い分かり易い!参考に1から作り直します。
ホントにありがとうございました


661:Now_loading...774KB
06/02/04 10:21:32 jeiRZ/ye
>>649
うーん…、こんな感じかなあ?計算が冗長だけど。
function getPassage(a,n,t){
 a[2-t]= int(n/Math.pow(60,t))+a[2-t]
 return (t>0) ? getPassage(a,int(n%Math.pow(60,t)),t-1) : a.join("")
}
trace(getPassage(["時間","分","秒"],20736365/1000,2))

662:哲学者ナナーシァ・セブデック
06/02/04 11:31:25 TVhecWt7
a>d=3ma △ABC=180°540+180(□def)
a~ddd 4i(3no+502a)=540
□def=4i(3no+502a)
a~ddd+3s{540d(30s+54b)}×2=180
a~ddd+3s{540d(30s+54b)}×2=△ABC
540d-200=a
a+540d=3ma×2

663:Now_loading...774KB
06/02/04 16:43:53 axMATYPD
>>662
哲学とか数学とか記号論とかのスレの誤爆かな
ASスレなのでASしかわからんよ。

664:Now_loading...774KB
06/02/04 19:00:46 BbU3M0mp
誤爆でしょう

665:Now_loading...774KB
06/02/05 15:33:33 yY75V5WO
マウスクリックの反応領域について質問です。

ムービークリップAでは、onMouseDown = function(){~}によって、
マウスに反応して動く操作を定義しています。
ムービークリップBでは、ボタンを配置していろいろやっています。
Aの上にBがのっかるように配置されたとき、B上で操作しているつもりでも
Aのほうまでマウスクリックに反応して動いてしまいます。
Bでさえぎられた領域上ではAにマウス反応させないためには、
どうすればいいのでしょうか?

666:Now_loading...774KB
06/02/05 16:28:07 DW9eyhBx
>>665
hitTestで重なった場合にだけmcAの処理を中止とか、
深度を取得して上にあるほうの処理しかしないとか
分ければいいんじゃないかな。

667:Now_loading...774KB
06/02/05 16:53:27 nDngWA7j
>>665
onMouseDownをやめる。
onPressとかをつかう。

668:665
06/02/05 17:29:03 yY75V5WO
>>666
それはちょっと考えましたが、ほかのムービークリップの存在が
Aのコード内に入ってくるのがいまいちオブジェクト指向っぽく
ないので……。
ま、めんどいっしょ、それじゃ。ってのが本音です。

>>667
それです、ありがとうございます。
単純に置換しただけでほぼOKでした。
Bと重なっててもボタンがない部分ではやっぱりAが反応してしまったのですが、
Bの広さ分のダミーボタンを下に敷くことでうまくいきました。

669:Now_loading...774KB
06/02/05 18:38:57 VBHpLy9O
作成したswfを開いたときに、
はじめに1回だけloadMovieNumを発生させたいのですが
永遠と連続して発生してしまいます。
どうしたらよろしいでしょうか。。

670:Now_loading...774KB
06/02/05 18:50:39 8rPlWGWf
>>669
ループしてんじゃない?
this.stop();を書くとか。

671:Now_loading...774KB
06/02/05 18:55:07 VBHpLy9O
ありがとうございます!できました!

672:Now_loading...774KB
06/02/05 20:32:30 nhjoyPjE
とりあえずまずはflaファイルを…
URLリンク(www.uploda.net)
パス:DL

今度行くスキー合宿のゲーム大会で使うお題を表示するFLASHを作っているのですが、
お題の書いてある配列をシャッフルした後、お題をダイナミックテキストに順番に表示して行っても、
どうしても途中でエラーになって最後まで表示しきれません。
ランダムでお題を表示させると被るし、同じ配列のままだと何回も出来ないので、
シャッフルの機能だけは外せないのです…。
どなたか、どこが変なのか教えてください。

673:Now_loading...774KB
06/02/05 20:34:00 nhjoyPjE
すいません、質問する際はスレageた方が良いのでしょうか…?

674:Now_loading...774KB
06/02/05 20:40:50 JGBrottf
菅平.fla

675:Now_loading...774KB
06/02/05 20:43:19 nhjoyPjE
>>674
そう、長野県で一番寒いところだとか聞いてる(´Д`il!)

676:Now_loading...774KB
06/02/05 20:44:31 nhjoyPjE
あ、みんなスマン、パス大文字じゃなくて小文字だった、
ごめんよ…orz

dl

677:Now_loading...774KB
06/02/05 21:12:43 619/d2as
>>672
on (release) {
hensu += 1;
}
↑これがお題の配列数超えてもカウントアップしつづけるからじゃないの?
ifでお題の配列数でとめるか、%でループさせるか刷れば良いとおもうけど。

678:Now_loading...774KB
06/02/05 21:15:12 8rPlWGWf
>>672
エラーがでるってundefinedが表示されるって事なら
それは配列の最大数を超えてるから。
シャッフルするときfor文にhensu使ってるのでodai[180]から表示されてる
シャッフルが終わった時点でhensu=0を入れる。

679:Now_loading...774KB
06/02/05 21:27:31 nhjoyPjE
>>677-678
とても参考になります、
ありがとうございました。

680:Now_loading...774KB
06/02/05 21:52:56 nhjoyPjE
URLリンク(www.uploda.net)
PASS dl

undefinedの壁は乗り越えられたのですが、
今度は得点を表示させる所に問題が…orz

右方向キーで得点の変数に+1が加算されるようにしたはずなのですが、
これまたどうしてもいくらキーを叩いても数字が加算されません。

たびたび申し訳ありませんが、またお願いします…il!orz

681:Now_loading...774KB
06/02/05 22:35:47 nhjoyPjE
いかん、切欠なるような物を作ろうと思ってボタンを作っても駄目だ…。
どうしよう、何がいけないんだろう…il!orz

682:Now_loading...774KB
06/02/05 23:00:01 tm6LCWtb
ものすごく簡単だとは思うんですが、
ボタンを押すと(releaseで)シーンの移動をするという動作をさせたいんですが、
どう書けばいいんでしょうか?

683:Now_loading...774KB
06/02/05 23:24:26 619/d2as
>>680
お前好い加減にしろって。
ここ丸投げスレじゃないんだから、
根本的にAS理解してからこいよ。

>>682
gotoAndStop("シーン名", フレーム数)


684:Now_loading...774KB
06/02/05 23:49:39 nhjoyPjE
>>683
本当にごめん…orz
相対パスを絶対パスに直しただけでうまく行った…
勉強し直してくる(つД`)

685:Now_loading...774KB
06/02/06 00:09:26 NTPzadzn
>>681
ナニがいけないって、貴方のASの書き方がいけないんです。
>i + 2
コレでは i に2は加算されません。
>this.i = i + "点です";
i はすでに変数として使われているので、テキストフィールド名に i とつけるのは間違っています。
あと変数のパスがあっていません。

ソースだけ上げて~できるようにしたい。というのはもぅやめてください。
>>1をよく読んでください。

686:Now_loading...774KB
06/02/06 02:09:43 7buQPkEi
敵との当り判定を取りたいのですが弾が画面上に2個以上あると判定がされません
当り判定のソースはこれなんですがどこがいけないのでしょうか?><
onClipEvent (enterFrame) {
for (i=0; i<_root.tagsys.targetMax; i++) {
if (_root.tagsys.targetUse[i] == 1) {
for (hit=0; hit<_root.missys.GunMax; hit++) {
if (_root.missys.GunUse[hit] == 1) {
if (_root["target"+i].hitTest(_root["gun"+hit])) {
_root.hyouji = "判定あり";
} else {
_root.hyouji = "判定なし";
}
}
}
}
}
}


687:649
06/02/06 10:45:01 T9SSVhrP
>655,661
ほぁ~勉強になります
return使ったことなかった。
ありがとうです

688:Now_loading...774KB
06/02/06 11:38:18 WSO/0V1d
>>686
トレース入れるかデバッガで1ステップずつ追っていく。

689:Now_loading...774KB
06/02/06 14:32:49 237uZbTk
>>683
ありがとうございます。

gotoAndPlay("シーン",フレーム数)ではできましたが、this.gotoAnd.....ではできないんですが、
つけるとしたら他に何をつければいいんでしょうか?

690:Now_loading...774KB
06/02/06 14:51:16 WSO/0V1d
>>689
gotoAndPlay()とmc.gotoAndPlay()は別物。
シーンを指定する場合は前者しか使えない。
詳細はヘルプで確認。

691:654=657=660
06/02/06 20:06:50 /nvQS2QY
>>656 >>658>>659
本当にありがとうございました。しばらくネットにつなげない環境だったので
レスが遅くなりましてすみません、無事作動出来るようになりました。
もっといっぱい理解して他の困ってる方に教えてあげられるようになれたらと思います。
おせわになりました。

692:Now_loading...774KB
06/02/06 21:42:20 kJdzWrqO
>>686
取りあえず単純構造にしてやってみれ
わからん設定が条件に絡んでるからなんともいえんが、
大概は変数の設定がちゃんとできてないか、パスが違うか、だ

あとチェックは
>_root.hyouji = "判定あり";
より
trace("tag " + i + " gun " + hit);
とかの方がいいかもわからんが、まあそのへんはどうでもいいか


693:Now_loading...774KB
06/02/06 22:10:51 237uZbTk
>>690
たびたびありがとうございます!!!

694:Now_loading...774KB
06/02/07 13:23:22 umufhRhP
すいやせん、すごく簡単な質問。
if、for等の条件式のconditionで
( m + 1 == n )みたいに
比較演算子中に算術演算子を混入させることってできましたっけ?

695:Now_loading...774KB
06/02/07 13:30:28 oq3dMkYu
>>694
ん、うまくいかない事例を書いてくれれば悪いところが解るかもね

696:Now_loading...774KB
06/02/07 14:38:38 YAV7VGPZ
flash lite1.1でMCの中に入れたボタンの命令から
ルートのタイムライン上のラベルに飛ばしたいのですが
どうすればいいのでしょうか?



697:Now_loading...774KB
06/02/07 15:01:07 oq3dMkYu
>>696
flash lite1.1はしらんが、gotoAndPlayじゃだめかね

698:Now_loading...774KB
06/02/07 15:06:42 YAV7VGPZ
>>697
gotoAndStop()ではボタンがあるMCでgotoAndStop()してしまうのです。
flash5以上なら_root.gotoAndStop()でいけたんですが…

どうにも解決しないそうなら、ボタンをばらす方向でせめてみます…

699:Now_loading...774KB
06/02/07 15:12:50 d27xqGN1
telltargetじゃね?

700:Now_loading...774KB
06/02/07 15:25:51 umufhRhP
>>695
返事していただいて、自己解決してしまったなんて言えない…
しかも混入させる方法以外に解決方法があっただなんて更に言えない…

701:Now_loading...774KB
06/02/07 15:41:34 oq3dMkYu
np質問をしっかりと書いていく課程で解っちゃう場合も多々ありんす(古

702:Now_loading...774KB
06/02/07 16:44:32 3kfyA5sG
ASで特定のMCを別のレイヤーに移動させる方法ありますか?
レイヤーA ○
レイヤーB ↑■
レイヤーC ●
レイヤーCにあるMCをAに移して、BにあるMCより手前に表示させたいのですが。。。

703:Now_loading...774KB
06/02/07 17:19:51 BRAbRNj3
swapDepthsじゃダメなん?

704:Now_loading...774KB
06/02/07 17:46:36 3kfyA5sG
>>703
↑図のレイヤーBのMCの深度を変えたくなかったので。。。
でも一時的にcreateEmptyMovieClipでレイヤーBのMCの上にMCを作って
それとswapDepthsすることにしました。
・・・そこでまた質問なんですが
一番手前に表示されるようにと
_root.createEmptyMovieClip("temp_mc",_root.getNextHighestDepth());
this.swapDepths(_root.temp_mc);
(thisは手前に表示したいMC)
としたのですが手前に表示されません。
temp_mcの深度を調べると0でした。_root.getNextHighestDepth()は間違っているのでしょうか?

705:Now_loading...774KB
06/02/07 17:47:53 d27xqGN1
getNextHighestDepth()の位置にMC作ったのならswapする必要ないんじゃない?

706:Now_loading...774KB
06/02/07 18:24:28 3kfyA5sG
えっと、すでにあるMC(this)を一番手前の表示にしたいのです。
_root.createEmptyMovieClip("temp_mc",_root.getNextHighestDepth())で作った
MC(temp_mc)は空のMCで、一番手前の深度に作った(つもり)のです。
MC(this)とMC(temp_mc)をswapDepthsで入れ替えてMC(this)を浮き上がらせようという作戦なのです。

707:Now_loading...774KB
06/02/07 19:39:13 oq3dMkYu
>>706
NextHigh...使わずに自分で深度管理する。

708:Now_loading...774KB
06/02/07 20:23:24 3kfyA5sG
getNextHighestDepth()、ちょっとググってみたけどなんかバグっぽいみたいですね。
リリースによっては直ってるのかもしれないけど。(自分はMX2004)
trace(_root.getNextHighestDepth());
してみても何故かundefinedになるし(謎すぎ)

>>707
そうします・・・。

709:Now_loading...774KB
06/02/07 22:10:47 AC2NR9Yd
>>708
コンポーネント使ってる?
使ってたらそれが原因。

コンポーネントを一度配置すると、
コンポーネント内のオブジェクトが深度の上限超えた値使っちゃうので、
初期読み込みを行うルートのみgetNextHighestDepthで深度が取れなくなる。

このバグ対策はルートを使わず、
createEmptyMovieClipなんかで一個階層作ってその下で行えばOK。
(普通にMC配置してもいいけどね)

710:Now_loading...774KB
06/02/07 22:37:53 3kfyA5sG
>>709
コンポーネント、パネルを開いて見たことくらいはあるけど配置はしてないと思います。
そして_root以外のMC内の階層とかをgetNextHighestDepthで見てみようとしても
undefinedになりますorz
いま製作中のブツの開発環境がMX→8→MX2004って渡り歩いているので
もしかしたら深度とかいろいろやばいことになってるのかも(動くところは動いているので良いのですが)
ホントはできるはず!と思い横目で見ながら回避策とります。ありがとうです。



711:Now_loading...774KB
06/02/08 01:12:10 wFG37QGQ
>>710
コンポーネントは一度でも配置すると、消した後も影響するけど、
MC内でも取得出来ないのは謎だね。

深度は限界値があるから、
それ以上の値になってるのかもしれないけど、
とりあえず見えないから何ともいえないや。

712:Now_loading...774KB
06/02/08 04:01:41 5L1l4cyB
質問です 当方MXです
標準を定めて打つタイプの射撃ゲームを作っているのですが

”標準”(スコープ)の先にある対象を拡大したいのです
理想は サイト”冷蔵庫の中身”様の ゴルア13のようスコープです
本人様に直接聞こうと思ったのですが
メールフォームが無くサイトも更新されていないようなので・・・

xscale を使うとスコープ自体のMCが拡大されてしいまい、
その先の対象物は普通のままです

配置やスクリプトなど分かるかたがいればよろしくお願いします
簡単な質問で申し訳ありません



713:Now_loading...774KB
06/02/08 07:23:07 5S2ZdY1Z
ヒント:マスク

714:Now_loading...774KB
06/02/08 13:54:00 5A1xT4pc
>>712
「照準」な。

715:Now_loading...774KB
06/02/08 21:00:37 lxvm8bna
”マスク”で調べてみます 初めて聞く単語でした
初心者の相手ありがとうです

また不備があったら質問させていただきます

716:Now_loading...774KB
06/02/08 21:30:22 5sfMNnTJ
リスナーの使い方で困っています。
Windowコンポーネントの中に配置したButtonコンポーネントに、
メインフレームからリスナーを追加するということはできるのでしょうか?

function button_in_window() {
trace("test");
}
_root.window.content.test.addEventListener("click", button_in_window);

現在このような形でやっているのですが、ボタンを押してもtraceが実行されません。
Windowコンポーネントのインスタンス名はwindow
Buttonコンポーネントのインスタンス名はbuttonとなっています。

buttonインスタンス自身にon()を書けばいいのはわかっているのですが、
個人的なこだわりのためにメインフレームにASを全て記述したいのです。
どうぞよろしくお願いします。

717:Now_loading...774KB
06/02/08 22:18:26 5ue3d/Yo
_root.window.content.test.addEventListener

_root.window.content.button.addEventListener
じゃないの?

718:716
06/02/08 22:45:40 5sfMNnTJ
>>717
あ、実際作ったサンプルがtestで、書き込む際にわかりやすいようにと
書き直していたつもりがそのままでした…
かえってわかりにくくなってしまいすみません。

ちなみにbuttonで試しても無理でした。

719:Now_loading...774KB
06/02/08 23:34:47 y0qtO8OD
>>716
ボタンコンポーネント[名前:button]を含むMC(リンケージ識別子はbutton_mc)を用意する。
ステージ上にウインドウコンポーネント[名前:win]を配置

//フレームアクション
var myListener = new Object();
function button_in_window() {
trace("Button Clicked");
}
myListener.complete = function() { //contentPathが設定されると呼び出される
_root.win.content.button.onLoad = function() { //ボタンがロードされた時
//クリックイベント追加
_root.win.content.button.addEventListener("click", _root.button_in_window);
};
};
win.addEventListener("complete", myListener);
_root.win.contentPath = "button_mc";
//
なんか回りくどいやり方に見えるけどこうやんないと出来なかったので…。

ここ参考
URLリンク(www.fumiononaka.com)

720:Now_loading...774KB
06/02/09 00:44:01 n2vsdSrI
変数名が一部同じものを複数作る場合なんですが、
for文などで作ることってできるでしょうか?
Flash8です。

t1 = 0;
t2 = 0;
t3 = 0;
を作る場合

↓もちろんシンタックスエラーです;;

for (i=1; i<=3; i++) {
"t"+i =0;
}
trace(t2);
//結果=s2

よろしくお願いします

721:329
06/02/09 00:46:44 n2vsdSrI
>//結果=s2
//結果=0

間違えました。すいません。
for文でなくても、まとめて書ける方法があるでしょうか。

722:Now_loading...774KB
06/02/09 00:51:50 DgfNYtm7
>>720
配列使えばいい。
var t = new Array();
t[0]=0
t[1]=0
t[2]=0

723:Now_loading...774KB
06/02/09 00:52:59 oFgHp1IB
擬似配列でもいい
this["t"+i]=0

724:329
06/02/09 01:39:05 n2vsdSrI
>722,723
そうか。attachMovie使うときに似た物を使ってたわ
理解してないな~、どうもありがとうございます


725:Now_loading...774KB
06/02/09 01:39:08 vDqix1+3
MovieClipLoaderについて質問です。

_global.mcl = new MovieClipLoader()
|
+---ClassObjectA --- fileA.swf --- listnerA.onLoadInit = funcA
|
+---ClassObjectB --- fileB.swf --- listnerB.onLoadInit = funcB

現在、上のような構成です。グローバルにMovieClipLoader()オブジェクトを一つ置いています。
ClassObjectA の管轄で fileA.swf を読み込み、読込み完了時に funcA を呼び出したいので、
listnerA の onLoadInit に funcA を登録しています。
ClassObjectB でも同様です。

この構成だと、MovieClipLoader が共通のため、fileA.swf が読み込まれたときに
listnerA も listnerB も onLoadInit を呼び出してしまいます。
そのため、ターゲットムービークリップが適切かどうかの判断が必要になってしまいます。

そこで、以下のような構成にしようかと考えています。

なし
|
+---ClassObjectA --- fileA.swf --- mclA = new MovieClipLoader() --- listnerA.onLoadInit = funcA
|
+---ClassObjectB --- fileB.swf --- mclB = new MovieClipLoader() --- listnerB.onLoadInit = funcB

各クラスオブジェクトごとに MovieClipLoader を所持して、それぞれに Listner を登録すれば、
管轄内のファイルが読み込まれたときしか onLoadInit は呼び出されません。

軽く動作確認した限りではこれで問題なく動いたのですが、これはほんとに動くべくして動いているのでしょうか?
MovieClipLoader をググると、「単一の MovieClipLoader オブジェクトが、同時に複数のファイルの読込みを行う」
というサンプルは見つかるのですが、「複数の MovieClipLoader オブジェクトが、同時に複数のファイルの読込みを行う」
というサンプルが見つからないので、このやり方がなにか不正な動作を引き起こさないかどうか心配です。

726:716
06/02/09 08:27:09 CqZpFtGO
>>719
ありがとうございます!
おかげさまでちゃんと動きました!
簡単に言うとWindowコンポーネントの中に配置したコンポーネントは
完全に読み込むまでに時間差があって、すぐにはアクセスできないってことですかね?
今までにもWindowコンポーネントが期待通りの動きをしてくれなくて困っていたことがあったのですが
原因は同じことだったのかもしれません。

727:Now_loading...774KB
06/02/09 17:54:23 lTZYqZkJ
質問です。
function main_loop(){
 wait = true;
 mc.onEnterFrame=function(){
  if(this._currentframe==10){
   wait=false;
  }
 }
 while(wait){}
 ・・・
}
といったASで、mcが少し(10フレーム)再生されてからmain_loopの続きを実行したいのですが
mcは再生されずに、[応答なし]になってしまいます。orz
mc.onEnterFrameって完全に分離して動くわけじゃないのがわかったのですが
上記ASと同じようなことを実現させるにはどうのようなASを組めばよいでしょうか?
なるべく上記ASの構造は崩したくありません。(main_loopを抜けずにmc.onEnterFrameをつくるカタチ)

728:Now_loading...774KB
06/02/09 18:14:03 w49XHndo
できない

729:Now_loading...774KB
06/02/09 18:19:58 6ZQMJokC
 mc.onEnterFrame=function(){
  if(this._currentframe==10){
処理
delete this.onEnterFrame;
  }
 }
とかそんな感じ。
毎フレーム実行して、条件あったら処理して終了。って流れ

あと、whileは待ってもらうための機能ではないよ。
てことでいらない。

730:Now_loading...774KB
06/02/09 18:28:26 j/e1LLrw
>>727
//20カウントで終了
cnt = 0;
function main_loop() {
trace(cnt);
cnt++;
end = (cnt == 20) ? 1 : 0;
return end;
}
this.onEnterFrame = function() {
if (mc._currentframe == 10) {
main_loop();
if (end == 1) {delete this.onEnterFrame;}
}
};

731:727
06/02/09 19:20:28 1DYdPR5L
回答ありがとう。
やっぱonEnterFrame内に次の処理を入れとけってことですね…。
実はmain_loop内でこのmcが、特殊な場合のみ再生される予定でしたので
(onEnterFrameをifでくるむつもり)
その後の処理を別関数にしてonEnterFrame内に入れてみたり
else後にも入れてみたりしてみます。


732:Now_loading...774KB
06/02/09 23:34:47 0f6Bjax3
これでいいんじゃないの?

function main_loop(){
var count=0;
mc.onEnterFrame=function(){
  if(count<10){
count++;
return;
}
//続き
}
}

733:Now_loading...774KB
06/02/10 00:00:12 1tPtGrAD
レイヤー全体をスクロールするときはどうしたらいいんでしょうか?
そのレイヤー上には画像切り替えのパラパラアニメが置かれています。
パラパラアニメしながら全体がスクロールというものを作りたいんですが。

734:Now_loading...774KB
06/02/10 00:08:10 k0zDsfJJ
質問させて頂きます。
あるボタンを押すとWindow.createPopUp()で小さなwindowが出てムービークリップが読み込まれるようにしました。
on(release){
import mx.managers.PopUpManager
import mx.containers.Window
var smallWindow = PopUpManager.createPopUp(_root, Window, true, { title:"title", contentPath:"sWindow_mc" });
windowtmp = new Object();
windowtmp.complete = function(evtObj){
smallWindow.setSize(smallWindow.content._width+5, smallWindow.content._height + 35);
smallWindow.move(500,400);
}
smallWindow.addEventListener("complete", windowtmp);
}

この小windowに置いたyesボタンで異なる階層にあるムービークリップを動かしたいのですが、どうパスを設定すればいいでしょうか?
試しにyesボタンに
on(release){
 _level1.base_mc.moveTarget_mc.gotoAndPlay(10);
}
と書いてみたのですが動きませんでした。

それぞれのパスは
・小Windowを出すボタン _level1.button_1
・Window上のyesボタン _level1.depthChild0.content.yesButton
・動かしたいムービークリップ _level1.base_mc.moveTarget_mc
となっています。

よろしくお願いします。

735:Now_loading...774KB
06/02/10 00:10:37 Plah50FP
レイヤー単位での処理はできないよ
パラパラアニメ部分を独立したムービークリップにすれば、
それを動かせばOK

736:Now_loading...774KB
06/02/10 00:20:57 90+vIfzY
>>734
_levelは1であってる?
動かしたいムービークリップの中にtrace(this)かいてパス確認。

737:727
06/02/10 00:40:08 mSaDaIQV
>>732
はい。基本それで行こうと思いました。
もともとは以下のようなカタチで
function main_loop(){
 処理1・・・
 処理2・・・
}
処理1と処理2の間に、あるフラグが立ったときのみmcを再生させたくなって

function main_loop(){
 処理1・・・
 var count=0;
 if(flg){
  mc.onEnterFrame=function(){
   if(count<10){
    count++;
    return;
   }
  処理A 
  }  
処理2・・・
}
しかもこの処理Aとmc再生の間は処理2以降はちょっとタンマしてもらいたかったのでした。
処理1、2共に気合の入った処理だったであんまり動かしたくないなぁっていうワガママなのでした。

738:Now_loading...774KB
06/02/10 00:43:13 k0zDsfJJ
>>736
レスありがとうございます。
traceとオブジェクトのリストアップ両方しましたが、_level1.base_mc.moveTarget_mcでした。
小windowが出るとmoveTarget_mc同じフィールドに配置されているボタンが押せなくなりますが、このことに関係しているのでしょうか?
試しに_level1.base_mc.moveTarget_mc.gotoAndPlay(10); を小windowを出すかわりに、button_1に入れてみたら動きましたorz


739:Now_loading...774KB
06/02/10 11:53:35 1fUcmyvn
Flash8です。
複数あるテキストフィールド(t1,t2,t3)のどれかが変更されたら、
trace("Changed");を実行させたいのですが、出力されません。

//フォーカスのあるテキストフィールドを調べる
this.onEnterFrame =function(){
tName = Selection.getFocus();}
//テキストフィールドの内容が変わった時の処理
tName.onChanged = function() {
trace("Changed");};

そこで、
tName=t1;
と、具体的にテキストフィールドのインスタンス名を指定すると動きます。
何がいけないんでしょうか?よろしくお願いします。

740:Now_loading...774KB
06/02/10 12:08:53 PFSamJ/e
>>739
tName = new Object();
tName.onChanged = function() {
trace("Changed");
};
t1.addListener(tName);
t2.addListener(tName);
t3.addListener(tName);

でいいんじゃないかな?
たぶんこれで動くと思うけど間違ってるかもしれない。

741:739
06/02/10 14:00:11 1fUcmyvn
>740
ありがとう、動きました。でもごめんなさい
onSetFocus
onKillFocus
もつかいたいんで、
リスナーオブジェクトを避けてました
テキストフィールドのリスナーオブジェクトって、
上記の動作は使えないようです
(知識不足かもしれませんが)
説明不足ですいません。


742:739
06/02/10 14:04:46 1fUcmyvn
>739の追記です
テキストフィールドにフォーカスがきた時と、外れたとき、内容が変更されたときに、
処理をしたいと思っています。リスナーオブジェクトでいけるのかな?
よろしくお願いします。

//フォーカスのあるテキストフィールドを調べる
this.onEnterFrame =function(){
tName = Selection.getFocus();}
//テキストフィールドのイベント毎に処理
tName.onSetFocus = function() {
trace("Focus");};
tName.onKillFocus = function() {
trace("Out");};
tName.onChanged = function() {
trace("Changed"); };

743:Now_loading...774KB
06/02/10 15:25:28 PFSamJ/e
>>742
MXだけど8でも動くかな?

tName = new Object();
tName.onChanged = function(chgText) {
trace("Changed:"+chgText);
};
tName.onSetFocus = function(oldFocus, newFocus) {
if (newFocus != null) {
trace("Focus:"+newFocus);
}
if (oldFocus != null) {
trace("Out:"+oldFocus);
}
};
t1.addListener(tName);
t2.addListener(tName);
t3.addListener(tName);
Selection.addListener(tName);

744:Now_loading...774KB
06/02/10 23:47:46 T79Yaa+M
あるインスタンスの中に格納されている変数を
全部、別なインスタンスの中に移す、という処理をしたいのですが、
何かいい方法ありませんでしょうか?

格納されている変数のリストを参照する関数とかあるといいんですが・・・。

環境はwin XP,Flash 8です。

745:Now_loading...774KB
06/02/10 23:53:21 CIWoUwig
>>744
変数かどうかの判断はわからんけど、
for (obj in _root) {
trace(obj);
}

746:Now_loading...774KB
06/02/10 23:59:41 T79Yaa+M
ぉぉ! 糸口つかめました。
すばやい回答ありがとうございました。

747:Now_loading...774KB
06/02/11 15:13:43 WCWIzjn7
外部にある画像ファイルを読み込んで、それを並べて表示する、
という処理をしたいと思っています。
MovieClip.beginBitmapFill などを使えばいけるかもと思ったんですがどうですか?
(読み込む画像ファイルのサイズはバラバラ)

横方向にしか並べる予定がないので
サイズ取得して並べるという方法のほうがいいのかな・・・

どなたかお願いします。XP、Flash 8です。

748:Now_loading...774KB
06/02/11 15:51:16 AZOKNuH9
>>747
loadMovieは?
なんでファイルサイズ取得する必要がある?

749:747
06/02/11 16:05:30 WCWIzjn7
loadMovieだと1個しか表示されないみたいなんですが、
HTMLの背景のように敷き詰めて表示したいのです。。。

750:Now_loading...774KB
06/02/11 16:16:26 277HTIw2
ファイルの数だけ、空のMC作ってそれに読み込ませる。
MCはxy座標で移動させること。
8にファイルの数を取得する関数があれば良いけど、
無いならファイルの数は外部テキストで読み込ませる。

751:Now_loading...774KB
06/02/11 16:24:50 gBT9xPab
カスタム関数について質問です。
引数だけで値を呼び出し元に返せないんでしたっけ…。
例えば、下記のスクリプトでムービークリップ「MC1」のフレームを動かしたいんですが
上手くいかなくて。

//_rootのフレーム一行目AS
function testR(tPlace){
  tPlace = 6;
}

//_root.MC1.mc2のムービークリップAS
on(release){
  var MCtest;
  testR(MCtest);
  _parent.gotoAndStop(MCtest);
}

752:725
06/02/11 16:31:08 mwSYq/Ne
>>751

//_rootのフレーム一行目AS
function testR(){
  return 6;
}

//_root.MC1.mc2のムービークリップAS
on(release){
  var MCtest = testR();
  _parent.gotoAndStop(MCtest);
}



それはともかく、>>725は誰もわかりませんかねー。
無謀なことせずに、MovieClipLoader は一個で確実に動かすべきですか。

753:747
06/02/11 16:44:26 WCWIzjn7
>>750
やっぱりそれしかなさそうですね・・・
回答ありがとうございました。

754:Now_loading...774KB
06/02/11 16:57:02 gBT9xPab
>>752
ありがとうございます。
返せなかったのか……。

更に質問で恐縮なんですが、
関数から複数個の値を返したい時ってどうやってます?
例えば…私の勘違いしていた例>>751でやるなら下記みたいな感じの時です。

//_rootのフレーム一行目AS
function testR(tPlace1, tPlace2){
  tPlace = 6;
  tPlace = 10;
}

755:Now_loading...774KB
06/02/11 17:27:52 PMvln3DQ
>>754
配列やオブジェクト(内部的には同じっぺぇ)は参照渡しされるからそれつかったらええ

756:Now_loading...774KB
06/02/11 18:21:40 gBT9xPab
>>755
う、勉強不足でいまいち飲み込めないんですが、
こういう事ですか?

function testR(){
  tPlace = new Array();

}

757:Now_loading...774KB
06/02/11 18:24:51 gBT9xPab
>>756
途中で送ってしもた!
こんな感じですかね。

function testR(){
  tPlace = new Array();
  tPlace = [6, 10];
  return tPlace;
}

758:Now_loading...774KB
06/02/11 18:28:56 FjxsAZYA
>>757
最初のnew Array()は何がしたいの?

function testR(){ return [6,10]; }

でいいだろ。


で、どうしても引数を使って返したいというなら次の方法だ。

function testR(out){
out[0]=6;
out[1]=10;
}

var temp=[];
testR(temp);
trace(temp[0]);
trace(temp[1]);

759:Now_loading...774KB
06/02/11 18:39:35 gBT9xPab
>>758
どうもありがとう、すっきりわかりました。
new Array();は…明示的に書かないと(私が)解りづらくなってしまうって事でひとつの癖です。

760:Now_loading...774KB
06/02/11 18:45:06 FjxsAZYA
>>759
そのよくわからん癖は、このような風に変えた方がいい。

var tPlace:Array = [6,10];

761:Now_loading...774KB
06/02/11 19:04:39 xgpGZRji
横レスだけど

tPlace = new Array();
tPlace = [6, 10];

var tPlace:Array = [6,10];
って同じ?
varでローカルにするところが違うのかな?

762:Now_loading...774KB
06/02/11 19:13:22 FjxsAZYA
違う。変数のデータ型をArrayだと指定している。
Javaのような言語で表すと

Array tPlace = new Array();

と似たような感じ。
データ型指定はあまり普及してないんかな?

データ型指定がよくわからんなら、変数の末尾に_arrayと付けるのはどうだろう?
その変数に配列が入ってることが分かるし、入力支援も受けられる。


763:Now_loading...774KB
06/02/11 19:37:30 PK3az8rL
>>761
そう。スコープが変わってきてしまう。
なるべくvarで宣言しておいたほうがいいよ。

764:Now_loading...774KB
06/02/11 20:34:12 xgpGZRji
でも
tPlace = new Array();
ってだけでデータ型指定されてるってことになるでしょ?
ローカルorグローバル指定は用途によって異なるしどちらとも言えないけど。

あと
var tPlace:Array = [6,10]; ってvar外すと使えないのが前から謎です。

765:Now_loading...774KB
06/02/11 20:44:46 yvHzgles
自己流で変な癖が付く前に、基本を学んだ方がいいよ。

766:Now_loading...774KB
06/02/11 21:09:11 FjxsAZYA
>>764
>ってだけでデータ型指定されてるってことになるでしょ?
いや、ならないよ。

>var tPlace:Array = [6,10]; ってvar外すと使えないのが前から謎です。
データ型指定は変数宣言時に付けるモノだからね。

767:Now_loading...774KB
06/02/11 21:14:51 NDM1coPn
>>764
var 変数名:型
が一つのセットだからvarを外したらエラーになるだけ。
それからデータ型指定は、中身を指定するのが目的じゃなくて、
その変数には特定のデータ型しか入れられなくするのが目的。

つまり、エラーかどうかを判断したり、コードヒントを出したりという、
作り手にわかりやすくするための宣言という事。

tPlace = new Array(1,2)
でも、確かにtPlaceの中身は配列だけれども、その後に
tPlace = 10
と数値を入れることもできる。そういう用途にしたいのなら型宣言は
必要ないかもね。

でも、普通はそういう変な代入したときにきちんとエラーになってくれるように
var tPlace:Array = new Array(1,2)
と、型指定をするわけ。

768:Now_loading...774KB
06/02/12 00:43:53 bP5tyy4T
しつこかったらごめんなさい。
var tPlace:Array = new Array(1,2)
この書き方、ローカルの場合はいいけど、グローバルの場合はどうすればいいの?
var取るとエラーだし、var付けるとローカルだし。。。

769:Now_loading...774KB
06/02/12 00:50:26 ML0835Jd
>>768
グローバル変数は、ActionScript2のシンタックスの制限により
データ型指定は出来ない。

かといって、この↓書き方でも、データ指定は出来ていない。
tPlace = new Array();
tPlace = [1,2];

これは無駄に配列オブジェクトを生成して捨ててるだけ。


770:Now_loading...774KB
06/02/12 01:03:03 4ppzQo1+
>>768
グローバル変数は型定義できない。
でもタイムライン変数だったらメインのタイムラインでvarステートメントで宣言すればいいだけ。
ローカル変数だったらfunctionの中で宣言するだけ。
つまり、
_global.tPlace(グローバル変数)の型宣言はできないけど、
メインのタイムライン上で、
var tPlace:Array
とタイムライン変数の型は宣言できるし、
function hoge(){
var tPlace:Array
}
とローカル変数の型も宣言できる。

グローバル変数の型宣言はなんでできないの?という話になると、これはActionScript
がそういうようにできているから、としか言いようがない。

771:739
06/02/12 01:33:44 NrXXDOqh
>743
動きました。リスナーオブジェクトでいけるんですね
なんで自分は駄目だったんだろ
詳しく比較してみます。ありがとうございました

772:Now_loading...774KB
06/02/12 01:50:35 MWT3fjar
グローバル変数なんか使わない方がいいよ。


773:Now_loading...774KB
06/02/12 02:04:31 2v6eXnvu
それは…_global使うとプログラムに負担がかかるって事?

774:Now_loading...774KB
06/02/12 02:55:06 ML0835Jd
いや、プログラマに負担がかかる、と一般的には言われてるかな。


775:Now_loading...774KB
06/02/12 03:57:26 bP5tyy4T
>>770
なるほど。わかりましたありがとうございます。疑問が解けました。
~ = new Array()、2次元以上の配列のときに出番がくるのかな。


776:Now_loading...774KB
06/02/12 06:22:01 OntY83Ki
var myNumber:Number = new Number(3541);
trace(myNumber.toString(16));
とすると"dd5"という値が帰ってくるのですが、
これをまた10進法に戻す方法というのは無いのでしょうか?

777:Now_loading...774KB
06/02/12 07:20:43 pu9/miPc
>>776
parseInt(myNumber.toString(16), 16);
Number("0x"+myNumber.toString(16));

とか。

778:Now_loading...774KB
06/02/12 07:54:46 OntY83Ki
>>777
parseIntを使えばいいんですかー。
ありがとうございます!

779:Now_loading...774KB
06/02/12 09:34:23 eb/lcfbJ
>>773
そう。ローカル変数に比べてスコープを移動して走査する分遅くなる。
探す範囲が広くなるから遅くなるという事ね。
それと、多用するとプログラムが読みにくくなるというのもある。

780:Now_loading...774KB
06/02/12 09:56:58 jdpXcpZJ
遅くなるって、、、、なかなかすごい意見だ

781:Now_loading...774KB
06/02/12 10:16:15 jdpXcpZJ
>>776
また戻すというか、NumberはNumberだから、表現方法を変えるだけ。
違うものになるわけじゃない。

782:Now_loading...774KB
06/02/12 10:48:54 eb/lcfbJ
>>780
常識だっての。試してごらん。

//ローカル変数利用
var t = getTimer()
function hoge(){
var v = 0
for(i=0;i<100000;i++)v+=i
return v
}
v = hoge()
trace([v,getTimer()-t])

//グローバル変数利用
_global.v = 0
var t = getTimer()
function hoge(){
for(i=0;i<100000;i++)v+=i
return v
}
v = hoge()
trace([v,getTimer()-t])

783:Now_loading...774KB
06/02/12 10:53:06 eb/lcfbJ
>>781
toStringの戻り値は文字列だからNumberじゃない。まったく別物。

784:Now_loading...774KB
06/02/12 10:56:55 jdpXcpZJ
で、何msちがうの?

785:Now_loading...774KB
06/02/12 10:58:25 jdpXcpZJ
>>783
そんなのあたりまえじゃん。Number自体を変えるということではないよということでし。

786:Now_loading...774KB
06/02/12 11:18:32 oe8Ewmel
>>782
じゃあ、return _global.v;とスコープをちゃんと解決させたらどうなるの?


787:Now_loading...774KB
06/02/12 11:51:49 jdpXcpZJ
>>782
質問でし
iがvar宣言されてないから1度目のローカル..の方で宣言され、それがグローバルの
方でも使われる。ここで差が出る。あと、vでは無く_global.v=にしないと意味がない。
vという変数が新たに定義されそれに対して演算してる。この疑問に答えてちょ。

788:Now_loading...774KB
06/02/12 12:12:32 Fqke+fej
782のscriptを走らせた結果
local:650ms
global無し:900ms
_global有り:800ms

_global.vとしてもlocal変数の方が早かった。

>>787
>iがvar宣言されてないから1度目のローカル..の方で宣言され
コメントアウトしてそれぞれを実行した。
>vでは無く_global.v=にしないと意味がない。
_globalまでvを探しに行く。

789:Now_loading...774KB
06/02/12 12:20:35 jdpXcpZJ
>>788
参照はできるが、代入なり演算処理ではvは隠蔽されると思われるが。

790:Now_loading...774KB
06/02/12 12:29:55 jdpXcpZJ
_global .v = 0;
v=1;
trace(_global.v +":"+v);
な、感じ。

791:Now_loading...774KB
06/02/12 12:51:48 1eThsiou
>>789
あー! だから_globalつけずに代入しようとしたときにローカルに勝手に同一名が作られたんだ。

速度のことも含めて、勉強になったよ。オマイラ、ありがとう。

792:Now_loading...774KB
06/02/12 12:52:31 Fqke+fej
>>790
>参照はできるが、代入なり演算処理ではvは隠蔽されると思われるが。
納得。

_global.v = 100;
var t:Number = getTimer();
function hoge():Number {
for(var i:Number = 0; i < 100; i++) {
v++;
}
trace(v);//200
return v
}
hoge();
trace(_global.v);//100

793:Now_loading...774KB
06/02/12 21:21:22 2xlKm2kG
loadMovieについての質問なのですが、
最初にindex.swfというファイルを再生させたあと、その中にある
いくつかのボタンをクリックするとa.swfやb.swfなどをloadMovieするようにしています。
ですがa.swfをロードしたあと、たとえばさらにb.swfをロードさせたり
またa.swfをロードさせたりc.swfをロードさせたりすると
その都度それぞれのムービーが再生される前に一瞬だけ
index.swfの最後のフレームが表示されてしまいます。
画面がちらつくようでなんとか回避したくてググったりもして調べたのですが、
解決法がわかりませんでした。
つたない説明で恐縮ですが、どなたかご教示お願いします。

794:Now_loading...774KB
06/02/12 21:57:33 iaF8GvTC
flashとphpを組み合わせて遊んでいるのですが、
これらは同じドメイン内に置かないとダメですよね?

ナントカして違うドメイン間で通信させたいのですが、
何かよい方法はないものでしょうか。
どうぞよろしくお願いします。

795:Now_loading...774KB
06/02/12 22:32:23 FPRFZjh/
>>793
最小構成で試してもそうなる?
他にASかいてたり、this.stop()かいてなかったりしない?

796:Now_loading...774KB
06/02/12 22:35:28 0oaspviG
crossdomain.xmlをおけばダイジョーブ

797:Now_loading...774KB
06/02/12 22:49:04 iaF8GvTC
>>796
おー ホント助かりました!
ありがとう

798:Now_loading...774KB
06/02/13 04:32:05 EyJLc4KW
OSに関することになるかもしれませんが…質問させて頂きます。
静止テキストからリンクをはる対象がWindowsのユーザ名やMacOSXのユーザ名のとき、どのようにユーザ名を取得すればいいのでしょうか?
不特定多数のユーザに対応して「C:/Document and Settings/hogehoge/」や「/Users/hogehoge/」にリンクを作りたいです。
このような時はhogehogeのところにユーザ名取得の何かを入れると思うのですが…
よろしくお願いします。

799:Now_loading...774KB
06/02/13 11:01:42 tSD93hw4
flashでRSSを読み込みたいのですが、初心者なので何をどうしたらよいのかよくわかりません。
どなたか簡単にご説明頂けないでしょうか?


800:Now_loading...774KB
06/02/13 11:41:54 cNjYzG/C
>>799
RSSリーダーを作れというなら皆、断ると思うよ。
ヒントが欲しいとか、作ってみたが上手く行かないとかなら
教えてもらえるはず。
とりあえずFlashでxmlを処理する方法でも調べてみたら?

801:Now_loading...774KB
06/02/13 13:59:49 y/taBPuw
CGIから値を受け取るときに、
配列を受け取れたら便利だなあと思っています。

そこで、hoge[1]=abc&hoge[2]=def&... というものをCGIに送信させて受け取ってみたところ
[ や ] . が %2Eなどにエンコードされてしまってうまくいきません。

うまい方法はないでしょうか?
環境はXP, Flash 8 です。よろしくお願いします。

802:Now_loading...774KB
06/02/13 14:08:08 VcbY23Q3
>>801

hoge1=abc&hoge2=def&...

で、Flash上でアクセスするときは

this["hoge" + i]

にすれば、実質配列があるのといっしょでしょ。



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch