ActionScript 物凄い勢いで怪盗するスレ その3
MXエデュ版のヘルプの「マウス位置の取得」の
下記のコードですが、
onClipEvent(mouseMove){
x_pos = _root._xmouse;
y_pos = _root._ymouse;
}
行 1:クリップイベントはムービークリップインスタンスでのみ使用可能です。
とエラー通知がきます。
メインタイムライン上のマウス位置をマウスを動かす度に数値を取得する
という内容にしたいのですが、どう改善すれば良いでしょうか?
>>952 ステージ上に空でもかまわないので何かMCつくってそこにそのAS入れてみてください
954 :
952:04/09/06 22:13 ID:x5qcbGK7
>>953 上手くいかない様です。
x_pos = _root._xmouse;
y_pos = _root._ymouse;
のみフレームに入れた場合、数値を取得したテキストには
一応座標の数値が表示されますが、MCに前述のコードを入れると
各々に"level0.x_pos"、"level0.y_pos"
の様に表示されてしまいます。
955 :
952:04/09/06 22:16 ID:x5qcbGK7
嗚呼…説明下手でスマソ。言いたい事を伝えづらい
956 :
950:04/09/07 01:35 ID:ZfOioI9j
解る人中々いないみたいですね…。
Flash Playerで見るとしっかり動くのに、ブラウザだとダメなので、
HTMLの書き出し方法なのかと色々試していますが、
未だに解決出来ません。何方か解る方いたら是非お願いします。
>>954 onClipEventはタイムラインに入れるコードじゃないですよ。
ムービークリップ作ったら、そのムービークリップを1クリックして選択すると、
下のプロパティウィンドウからインスタンス名を付けたり出来ますよね?
その選択状態でアクションに書くんです。
タイムラインに書くのとは別で、Clip Actionって名称だったはず。
958 :
952:04/09/07 03:00 ID:yrN5DWcs
>>956 やはり日本語が変でしたorz
ムービークリップに一応選択して入れてます。
けど、なぜか座標の数値を取得するテキストには
上手く数値が表示されません。
flaファイルうpできたら手間取らないと思いますが。。。
>>958 なぜかは分かんないけど、こっちなら表示できた
変数ではなくインスタンス名をx_posとy_posとした場合変数名は付けずに
onClipEvent (mouseMove) {
this._parent.x_pos.text = _root._xmouse;
this._parent.y_pos.text = _root._ymouse;
}
仕様なのかバグなのか分かる人いる?
960 :
950:04/09/07 08:05 ID:ZfOioI9j
>>957 ありがとうございます。
そのサイト見てやっと原因が掴めました。
<param name="scale" value="noborder" />
これがいけなかったみたいです。
>>958 そのテキストはムービークリップの中?外?外だったら
_parent.x_pos = _root._xmouse
_parent.y_pos = _root._ymouse
にするのと、後テキストフィールドの変数名が入ってるか確認してみて。
インスタンス名だけ入れてるってだけかも。
961 :
952:04/09/07 20:34 ID:nesxldYq
>>959-960 ウホッ。ありがとうございます。
おかげ様で上手くいきました。
どうやらテキストがMCの外にあった様です。
複数のボタンに対応させたいのですが、どのようなスクリプトを
記述すればいいのかが分かりません。
イメージとしては、下の2つをまとめられるような
スクリプトは無いかなってことです。
on (keyPress "<Enter>") {
this.nextFrame();
}
on (keyPress "<Right>") {
this.nextFrame();
}
よろしくお願いします。
複数の、例えば10個ぐらいのMC同士で、
皆お互いにぶつかったかどうかをチェックする為にはどうしたら良いんでしょうか?
私が思いつくのは全てのMCに対して、
自分以外のMC分だけ、ifでぶつかったかどうか (hitTest) を
調べまくるっていう効率の悪そうな方法だけです。
もっと良い方法があるように思うのですが....
>>963 0 と 123456789
1 と 23456789
2 と 3456789
3 と 456789
:
:
かな?
会社でフルスクリーンフラッシュを作らされたんだが、
処理仕切れない現状。
exeで納品するわけなんだが、処理速くする方法教えてください。
>964
レスありがとです。
やっぱりそうやって総当たりみたいな感じでやるしかないんでしょかね...。
>>962 個々のボタンに書くしかない
>>963 その「効率の悪そうな方法」しかない
>>965 ベクターメインなのか画像取り込みなのか? 取り込みならもうダメぽい
もちっと詳しく説明しないと
次スレいつ作るん?
>>965 fps低めで、Pen4の3GHz以上のマシンで動かせばいいんじゃないかな。
>>965 flashでフルスクリーンを馬鹿正直にすると、画面全体をCPUで書き換える事になるんで
激しく重い。
できれば画面の解像度を下げて見てもらうとか、それが無理ならなるべく書き換えの起きる
範囲を狭くする事。
こしあん堂のTipsが参考になると思う。
あえてフルスクリーンの解像度で制作してみては?
そうとう画像簡略化しないとダメだけど。
あと容量気にしなくていいのなら、
画像は、最大に拡大するときの解像度で作っておくと、
無理に拡大するときよりは負荷少なかった希ガス。
なんにせよ、最大化画面では、アルファ関係は一切使えないね。
971 :
965:04/09/10 10:35 ID:CxQSdhmt
レスありがとうございます。
fpsは17 で、画面サイズは1024*768です。
オマケに画像取り込みが多く使われてて…
クライアントがダメで申し訳ないです。
exeで処理を速くするソフトがあるって聞いたんですが…
知ってる方いますか?
ムービークリップか埋め込みビデオを
操作できるシークバーを作りたいのですが、どうやっていいか分かりません。
アドバイスかヒントだけでもお願いします。。。
プログレスバーの質問です。
単純な一本の棒が、ロード完了した%にしたがって左から右に伸びていくものではなく、
円を描いてぐるっと一周描いたら完了って言うのを作りたいのですが、何か良い方法はないでしょうか?
ぱっと思いつく限りだと、
昔の映画の初めみたいにコマアニメで表現するか、三角関数とlineTo()使って描画するか、
かな。
自分が昔作った奴は、
半円のクリップを作る
ロードに合わせて、マスクを使って一つ目を回転させながら表示
50%以上ロードしたら、一つ目を固定して、二つ目を回転させながら表示
って感で、問題なく動いたよ。
>>965 どうせexeなら、画面サイズを640x480にしてからswfが起動するように
作ってしまえばいいかも。
個人的には勝手に画面サイズを変えられてしまうとムカつくけど。
アクセシビリティのかけらも無いフルスクリーンなんて今時流行らねぇんだよ
とクライアント様に提案してみるとか
980 :
Now_loading...774KB:04/09/11 22:49:27 ID:hJS8T9f/
Flashで検索窓を作ったんですが、日本語で検索すると
文字が化けます。どうしたら直すことができるのでしょうか。
変数を変えたりしても直りません。解決策は無いでしょうか?
982 :
Now_loading...774KB:04/09/11 23:58:55 ID:hJS8T9f/
文字コードとは?
にせさつ
>>982 何の検索?
よくわからんが文字化けなら文字コードを疑ってみる。
MX以降はデフォルトがUTF-8だったはず。
あとはググれば腐るほど出てくるよ。
985 :
980:04/09/12 01:43:14 ID:XDiyvLZw
>>984さん
ありがとうございます。
とりあえずググッて見ます。
一応Yahooなどの検索窓を作ったのですが、
例えば、「い」と入れて検索すると「縺」となってしまうんです。
∧((())∧
(((〃・∀・)))
= ))) (((
〜((( × )))
= (__/"(__) トテテテ...
WinXP、MX2004proでやってます。適当なところに透明ムービークリップを作って
onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT)) {
_root.prevFrame();
} else if (Key.isDown(Key.RIGHT)) {
_root.nextFrame();
} else if (Key.isDown(Key.SPACE)) {
_root.play();
}
}
として左右でコマ送り、スペースで再生としたんですが、
これをスペースを押したら止まって、止まってる時に左右キーでコマ送りできて、
スペースで再生というように改変するにはどこをどう書き換えればいいですか?
いきなり左右キーを押すのがちょっと嫌だったので…。
>987
こうかな
onClipEvent( enterFrame ){
if( Key.isDown( Key.LEFT ) ){
if( flg == false ){ _root.prevFrame(); }
}else if( Key.isDown( Key.RIGHT ) ){
if( flg == false ){ _root.nextFrame(); }
}else if( Key.isDown( Key.SPACE ) ){
if( flg == false ){
_root.play();
flg = true;
}else{
_root.stop();
flg = false;
}
}
}
>988
2行目でシンタックスエラーが出ました…
あ、ごめん、見やすくするために
全角スペースがところどころ入ってるの。
コピペせずに自分で記述してみてください。
>990
手入力しましたが、スペースを押しても止まらなかったり
次のフレームに行ったりしてしまいます…。
うう、すまん
enterframeで回してるんだった、、、orz
これに修正してください。
試したんでこれで動くはず、、、
onClipEvent( enterframe ){
if( Key.isDown( Key.LEFT ) ){
if( flg == false ){ _root.prevFrame(); }
}else if( Key.isDown( Key.RIGHT ) ){
if( flg == false ){ _root.nextFrame(); }
}
}
on( keyPress "<SPACE>" ){
if( flg == false ){
_root.play();
flg = true;
}else{
_root.stop();
flg = false;
}
}
>992
うわー!できた!わざわざありがとうございます。
つ旦 ご苦労様でございました。
994 :
Now_loading...774KB:04/09/13 07:11:33 ID:4g2wfwH+
995 :
Now_loading...774KB:04/09/13 07:36:48 ID:fDCdFojX
995
>996
考え方はそれであってます。
エラー内容はなんでしょう。
>>997どうもありがとうございます。
間違えてフレームにstopとgotoを両方配置してました…。
ボタンに配置したらちゃんと動きました。
999 :
Now_loading...774KB:04/09/13 15:22:15 ID:WqVRIP+z
( ´ー`)y-~~
_
( ゚∀゚)
<| |>
| ⊃
ノ U彡ヽ
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。