ActionScript 誰かが物凄い勢いで解答するスレ 12

このエントリーをはてなブックマークに追加
952Now_loading...774KB:2006/06/25(日) 13:35:26 ID:XtzlNSJZ
if (Key.isDown(Key.LEFT) || Key.isDown(100) || Key.isDown(72)) {
  // 左移動
}
953948:2006/06/25(日) 16:55:05 ID:pFk08P5v
950さん>ありがとうございます。できました。Flash8でないと、
この関数は使えないようですね。あともうひとつ実現したいことが
あるんですが、それは改行処理なんですが、可能でしょうか?
\nと記述していけるとおもったんですが、無理でした。
何かよい方法があればお教えください。
954Now_loading...774KB:2006/06/25(日) 18:33:06 ID:mbYf47aC
flash8Basicを使っています。

.mov形式の普通のムービーがありまして、
内容はコップが横に倒れるようなものだとします。

これをどうにかflash上に読み込み、
コップの上辺りに矢印かなんかを表示させて、
それをマウスでドラッグするとそれにあわせてコップが倒れるようにしたいです。
かつ、逆方向にドラッグしたら元に戻るように。

要するにマウスのドラッグにあわせて
ムービーの再生・逆再生を制御したいということなのですが、
どう書いたらよいでしょうか?

ちょっとドラッグしたらムービーの端まで一気に進んでしまうのではなくて、
出来ればマウスの移動量にあわせてコマ単位で制御したいです。
(半分あたりで行ったり戻ったり「行き来」ができる感じに)

ムービーで無理だとしたら、連番の静止画を用意することも出来ますので
それでもいいです。ASでどうやって書いたらよいか教えてください。
よろしくお願いします。
955Now_loading...774KB:2006/06/25(日) 18:56:24 ID:ZiIWqGaZ
>>952
ああいや、これはソース見やすくするために分離してるだけで
leftKeyがどっかで変更されてるとかはないんですが。
956Now_loading...774KB:2006/06/25(日) 19:22:17 ID:xmvkGDGf
if (Key.isDown(Key.LEFT) || Key.isDown(100) || Key.isDown(72)) {
  leftKey = true;
} else {
  leftKey = false;
}
957Now_loading...774KB:2006/06/25(日) 19:46:45 ID:vCww1Inu
>>953
外部テキストで\nしてるなら、
読み込み時点で\\nに変換されてるので、
str.split("\\n").join("\n")しないとダメ。

HTMLテキストの話なら単に<br>にしないとダメ。
958Now_loading...774KB:2006/06/25(日) 19:47:46 ID:XtzlNSJZ
>>956
leftKey = Key.isDown(Key.LEFT) || Key.isDown(100) || Key.isDown(72);
959Now_loading...774KB:2006/06/25(日) 19:52:45 ID:xmvkGDGf
>>954
メディアコンポーネントを使えばASいらないよ。
あとmovファイルよりもflvファイルをオススメする。
理由は自分で調べてみるといい。
960954:2006/06/25(日) 22:30:44 ID:mbYf47aC
>>959
レスありがとうございます。
そのメディアコンポーネントという奴を調べてみたんですが、
どうもflashのBasicでは使えないみたいです。
なのでどうにか他の方法は無いでしょうか・・・
961Now_loading...774KB:2006/06/25(日) 23:42:06 ID:xmvkGDGf
ごめんよ、professionalのみだと知らんかった
962Now_loading...774KB:2006/06/26(月) 00:33:24 ID:CFT/qwfI
>>954
ムービーの形式はどうであれ、マウスの移動量に対して、フレームを進めるのであれば
こう考えてみては。

theMovie.gotoAndStop(theMovie._totalframes * マウス座標の割合);

マウス座標の割合は0〜1の間で変化します。
例えば、x座標系でのドラッグを行うのであれば

現在のx座標 / 移動できる最大のx座標

で割合を出せます。(左端が0の場合)
963951:2006/06/26(月) 15:46:34 ID:hMsFNHT4
結局手がかりなしか。on_
なんなんだろうこれ。どっかローレベルで不具合があるとしか思えん。
964Now_loading...774KB:2006/06/26(月) 15:52:46 ID:N0LhgiCv
>>963
おまいはレス全部試してからいってんだろうな?お礼も無しか。
965Now_loading...774KB:2006/06/26(月) 15:55:11 ID:qx9C7nuj
>>951
100%あなたに原因があるとしか思えん。
966Now_loading...774KB:2006/06/26(月) 16:11:32 ID:u6yWYrfX
>>963
今まで出たような単純なスクリプトだけ書いても同じ現象が起こるのか?
そうでないなら、ここに提示されてない部分に原因がある。
trace()でフラグの変化見るなどして、いつどうしてそうの現象が起こるのかを探ってみたか?
ホラーじゃないんだから、作り方か仕様でそうなるように作られてるだけだろ。
967Now_loading...774KB:2006/06/26(月) 22:28:19 ID:x+CBcgj6
困った時はこれを使おう
callESP();
968Now_loading...774KB:2006/06/26(月) 22:41:39 ID:PbgMUxwl
callESPって何?
969Now_loading...774KB:2006/06/26(月) 22:43:16 ID:N0LhgiCv
エスパー来て〜と思われ。
970Now_loading...774KB:2006/06/27(火) 03:28:16 ID:3eDOSleX
tellTarget("/967"){
 _visible=false;
}

ってなあに?
971Now_loading...774KB:2006/06/27(火) 08:10:32 ID:92Wxh+oi
967._visible=false;
と同じ。
972Now_loading...774KB:2006/06/27(火) 16:41:58 ID:lxYNPPud
秒から時分秒にわけるにはどうしたらいいんでしょうか。
とりあえず分と秒にする方法は考えてみたんですが、

hun = byotime/60;
syosuPoint = Number(String(hun).indexOf(".", 0));
byo = Number("0"+String(hun).substr(syosuPoint, 5));
playtimeTxt.text = Math.floor(hun)+" : "+Math.floor(byo*60);

もっといい方法はないでしょうか。
973Now_loading...774KB:2006/06/27(火) 16:56:08 ID:SN09D9sQ
sec = time%60;
min = Math.floor(time/60);
/*
hour = Math.floor(min/24);
min = min%24;
*/

とかこの辺では
974Now_loading...774KB:2006/06/27(火) 17:01:39 ID:q6HsdXqm
>>972
24時間限定。0フォーマットは適当にしる。
var t_seconds = 3670;
var aa:Date = new Date(t_seconds*1000);
trace(t_seconds+"秒は"+aa.getUTCHours()+":"+aa.getUTCMinutes()+":"+aa.getUTCSeconds());
975Now_loading...774KB:2006/06/27(火) 17:08:41 ID:lxYNPPud
>>973-974
ありがとうございます。
参考にさせていただきます。
976951:2006/06/28(水) 00:58:52 ID:j3nRiz0U
>>966
>trace()でフラグの変化見るなどして、いつどうしてそうの現象が起こるのかを探ってみたか?

だから再現性がないんですよ。本当にまれにしか起きない。
でもトラブルのメールが1通来たので(何百通も来る中での1通)、
どうも偶然ではないらしいと。

Flashだけでなく、DirectXアプリケーションなんかでも何回か同じ現象を見たので、
やっぱりWindowsのキー周りか何かでおかしなことが起こってると思うんですが。
Flashの質問じゃなかったかも知れないけど、こんなことどこで訊いたらいいかわからないし。

とりあえずこの現象に心当たりのある方がいないのは分かりました。
ホラーじゃないっていうけど完全にホラーです。
977Now_loading...774KB:2006/06/28(水) 01:06:29 ID:m+tIVmfb
>>976
全体のスクリプトがわからないとなんともいえない。
他のところは関係ないと思っててもそこに原因があったりする。
978Now_loading...774KB:2006/06/28(水) 01:17:30 ID:cQcCKVzF
よろしくお願いします。
いま、フレームアクションに以下を記述しています。

//
_root.abc.loadMovie("aaa.swf");
_root.abc.loadMovie("bbb.swf");
_root.abc.loadMovie("ccc.swf");
timer_ID = setInterval( function(){ _root.gotoAndPlay(2);} , 2000 );
//

この記述だと、aaa.swf,bbb.swf,ccc.swfの読み込みが終了するか、
しないか、わからないまま、20秒たつと、フレーム2に進んでしまう
という処理になります。これを、すべてswfファイルの読み込みが終了した
時から、20sたつと、フレーム2に進むという処理のフローにしたいのですが、
可能でしょうか? よろしくお願いします。
979Now_loading...774KB:2006/06/28(水) 01:18:26 ID:n0XXKjo5
>>976
最初の書き込みでは、951の環境でも再現されたみたいに読めたけど
実はそうじゃないのか?
それとも、951とそのメールの相手、二件だけ確認されたってことか?

確かに、全体がわからんとこれ以上何とも言えないが。
980Now_loading...774KB:2006/06/28(水) 01:47:11 ID:54Hsv3Jy
>>978
Loaderコンポーネントを使うか MovieClipLoaderクラスを使うなりして
bytesLoaded と bytesTotalを取得して読み込みできたか確認すればいいと思うよ。
981Now_loading...774KB:2006/06/28(水) 01:47:30 ID:TA0qYdZy
キーリスナーを多重登録してるとかでないの?
Windowsキーとか危ないボタンもあるし
自分の所で再現しなければ、よっぽどじゃなければ知らぬ存ぜぬだな。
982Now_loading...774KB:2006/06/28(水) 06:09:11 ID:gpAfnE6W
>>976
少なくとも必要のない変数を使うこと自体がおかしい。
わざわざ、他から破壊される要素を持ち込んでる。
983978:2006/06/28(水) 07:34:47 ID:cQcCKVzF
980>ありがとうございます。
なにぶん、Flash初心者なもので、申し訳ありませんが、
書き方のヒントをお教え頂けないでしょうか?
984Now_loading...774KB:2006/06/28(水) 12:39:28 ID:VlyewM6/
985Now_loading...774KB:2006/06/28(水) 14:32:25 ID:NwoC6KHy
>>983
アクションウィンドウにMovieClipLoaderと書いて、
書いたMovieClipLoaderを選択し、
ウィンドウの?ボタンを押すとヘルプが出てくる。
例も載ってるよ。
986Now_loading...774KB:2006/06/28(水) 19:31:36 ID:54Hsv3Jy
//_rootにabc、abc内にaaa,bbb,cccを配置しておく。
var timeOut:Number = 2000;
var count:Number = 0;
var timer_ID:Number;
var myLoader:MovieClipLoader = new MovieClipLoader();
myLoader.addListener(this);
myLoader.loadClip("aaa.swf", _root.abc.aaa);
myLoader.loadClip("bbb.swf", _root.abc.bbb);
myLoader.loadClip("ccc.swf", _root.abc.ccc);

//読み込みがひとつ終わるたびに実行される
function onLoadInit(target_mc:MovieClip) {
count++;
if( count >=3 ) {
timer_ID = setInterval( function(){ _root.gotoAndPlay(2); clearInterval(ID); } , timeOut) ;
}
}
987Now_loading...774KB:2006/06/28(水) 19:58:19 ID:fjtuo5kZ
変数aがあるとして、
ある画像Aを表示した時aを10増やして、
また別の画像Bを表示した時はaが5増えるようにするアクションスクリプトを教えていただけませんか?
(つまり、画像Aと画像Bを両方表示したら、変数aの値が15になるようにしたい)
988Now_loading...774KB:2006/06/28(水) 20:03:37 ID:54Hsv3Jy
>>987
画像AとBはどこにあってどうやって表示させてるん?
それによって答えは違うよ。
989Now_loading...774KB:2006/06/28(水) 20:17:03 ID:fjtuo5kZ
>>988
paraflaを使っているので、言い方が良く分かりませんが、
普通に画像を表示させているだけで、特に変わったことはしてません。
990Now_loading...774KB:2006/06/28(水) 20:41:51 ID:m+tIVmfb
>>989
paraflaは使ったことが無いけど、フレームに画像が置いてあるってこと?
var a = 0;
//画像Aを表示させたとき(Aのフレームにきたとき)
a+=10
//画像Bを表示させたとき(Bのフレームにきたとき)
a+=5;
991Now_loading...774KB:2006/06/28(水) 20:42:35 ID:54Hsv3Jy
変数の値を15にするのはいいとして、それを何に使いたいん?
やりたいことと違うって言われても困るから。
992Now_loading...774KB:2006/06/28(水) 23:17:08 ID:fjtuo5kZ
>>991
結論から言うと、音ゲーみたいなのを作ってて、
それの『スコア』を表示をしようと思ってるんです…。
993Now_loading...774KB:2006/06/28(水) 23:38:30 ID:54Hsv3Jy
てことは、ダイナミックテキストを配置して変数をaに指定、
最初のフレームで var a = 0;
Aが表示されるフレームで a +=10;
Bが表示されるフレームで a += 5;
とすればいいんだろうけど、
指定されたフレームに到達したときにしか動作しないならゲームとはいえないけど
994Now_loading...774KB:2006/06/28(水) 23:59:36 ID:54Hsv3Jy
画像AとBをそれぞれ子スプライトにして
親スプライトの1フレーム目に
var a = 0;

画像Aの1フレーム目に
onClipEvent(load){_root.a += 10}

画像Bの1フレーム目に
onClipEvent(load){_root.a += 5}

とするとAとBを表示するたびにaに加算されるはず。
paraflaの仕様がわからなくてちょっとだけ調べてしまった。
995Now_loading...774KB:2006/06/29(木) 16:37:01 ID:VciUe71p
外部のflvファイルをnetStreamでmovieclipに割り当てて再生しているのですが
再生されるムービーに対してアンチエイリアスがかかりません。
ムービークリップも_rootも_quality = "best";にしたのですがダメでした。
どうすればアンチエイリアスがかかるんでしょうか?
996Now_loading...774KB:2006/06/29(木) 16:38:31 ID:zhLKiNve
誰か次スレよろ
997Now_loading...774KB:2006/06/29(木) 16:45:53 ID:7tIBZnzd
XPでfashMXです。

getURLで、外部テキスト(**.txt)に書かれてあるURLをリンク先に設定することはできますか?
998Now_loading...774KB:2006/06/29(木) 17:35:35 ID:pDTUVQj/
できる
999Now_loading...774KB:2006/06/29(木) 20:40:23 ID:yHa4zmYO
>>995
flvファイルにアンチエイリアス?
1000Now_loading...774KB:2006/06/29(木) 20:47:57 ID:yHa4zmYO
次スレたてた
ActionScript 誰かが物凄い勢いで解答するスレ 13
http://pc8.2ch.net/test/read.cgi/swf/1151581429/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。