ActionScript 誰かが物凄い勢いで解答するスレ 4
3get
さっそくなんだけど MovieClip とかに 「_」とか「__」とかで はじまるメンバがあるんだけどこれの意味はなに?
class hoge { private var _parentNumber; } とかの変数宣言すると予約語でもないのに _parent が青文字になるんだけどなんで?
>>6 はミスです
class hoge {
private var _parentNumber;
function hoge() {
_parent = 0;
}
}
上記のようなクラスを作成すると_parent が青文字になるんだけどなんで?
Helpみると予約語でもないみたいだけど
>>7 編集>環境設定>ActionScript>識別子
help をみると普通の変数も識別子に当てはまるみたいだけど 青くならない変数もある。というか青くならないほうが普通。 しかし「_parent」はあおくなる。 変数名に 「_parent」 って使うと動作がおかしくなるの?
遅れながらも、1乙
>>10 _parentNumberは変数になるけど、
_parentは相対パスを書くための識別子で変数にはならない。
_parent.hensuuみたいな使いかた
>>12 解答してくれてありがとう!
オブジェクトのメンバに使われている名前は
変数名につかえないの?
「_parentは相対パスを書くための識別子」ってどういう事?
単純にオブジェクト(MovieClipとか)のプロパティじゃないの?
あと
「var _hhh」 の 「_hhh」 も識別子になるよね?
ヘルプ嫁
ヘルプかなりよんだけど ワカンネーw だいたいどこらへんかヒントください。 あと下記のテストは正常に「1」がoutputされたが それでもやっぱり問題があるのか? ■■■ Hoge.as ■■■ class Hoge { var _parent:Number; function Hoge() { _parent = 1; } function set parent(num:Number):Void { _parent = num; } function get parent():Number { return _parent; } } ■■■ ■■■ ■■■ test.flp ■■■ var _hoge:Hoge = new Hoge(); trace((_hoge.parent).toString()); ■■■ ■■■
>>15 釣りじゃなくて
>>12 読んでわからなけりゃどうしようもない
とにかく_parentは使うな
そのうち必然的に覚えるだろうから今はそう覚えとけ
自分だけで使うソースなら問題ないよ。 今後コンパイラで蹴られる可能性を気にしないなら問題ないよ。 普通は、そんなリスクしょうのは馬鹿馬鹿しいので使わない。 >ActionScript 言語のエレメントを変数名として使用することはできません。 >使用すると、シンタックスエラーになったり、 >予期しない結果が発生することになります。
いや つりじゃないよ。 _parentって階層構造をもつカスタムクラスを作成する時に プロパティ名で使いたいんだけどやっぱりだめ? だめっぽいからあきらめてparentEx とか変更しようと思うけど 他にも引っかかる変数名があるかもしれないと思うとちょっと怖い。 だからルールがしりたいと思ってます。 あとヘルプで識別子をよんだけどやっぱり 「_hhh」 も普通に識別子だよね?
むしろヘルプ読むより、自分のやりたいことをググって 一般的なやりかたを学んだほうがいいような
_parentに値を代入するということは その_parentを持つオブジェクトの_parentのパスを変更することを示す。 階層構造が判り難くなる恐れがあるので素人にはお勧めできない。
わたしは「MX2004」から入ってきた組で
以前のFlashとはコーディングの作法とかがもしかしたら
違うのかもしれないと思ってもいます。
その辺を吟味して解答していただける方がいらっしゃいましたら
うれしいと思っています。
(青くなるルールはFlash に精通している方でないと説明が難しい問題かもしれないとも思っています。)
>>20 さんへ
「_parent」 には親オブジェクトへの参照アドレスを格納できる型を選ぶつもりです。
そして再帰的に処理できるようにしてトラバースできるようにするつもりです。
>>17 さんへ
「言語のエレメント」っていわれても「_parent」は
ステートメント
キーワード
演算子
予約語
でもないと思うのですがどうでしょうか?
質問している間になんとなくおもったんですが
今回のケースは青くなる事にあまり意味がないのかも
しれないかなと思ってるんですがこの意見は間違いですか?
今回、このような質問をしたのは自分のコーディングスタイルを
きめてプログラムを組みたい(それと意見交換!)と思ってのことです。
>21 あなたの疑問点が何なのかが、いまいちわかんねえです。 今までのあなたの書いたもので解決していないものを 箇条書きかなにかでまとめてください。
23 :
Now_loading...774KB :04/09/16 11:22:33 ID:2qPH1uj3
サーバスクリプトを使わずに、SWFファイル単体で パスワード認証機能を付けようと考えています。 具体的には、ゲームの試用版をパスで解除して正式版で遊べるような 仕組みをActionScriptで実装したいのですが、これって技術的に可能ですか?
>23 可能ですが swf解析ソフトで中身のぞかれて あっさり認証解除できてしまうということに。
25 :
Now_loading...774KB :04/09/16 12:21:55 ID:ex4fJyg8
質問です。環境はMX2004。 attachを使用する際、シンボルをリンケージ登録しますが このシンボルの読み込みを第1フレーム以外に設定するには どうすれば良いでしょう? 第1フレームだとローディング画面が表示されるまでに 時間がかかってしまうので・・。 よろしくお願いいたします。
>25 リンケージの「最初のフレームに書き出し」のチェックをはずす
>>21 class hoge {
private var _parentNumber;
function hoge() {
_parent = 0;
}
}
上記のようなクラスを作成すると_parent が青文字になるんだけどなんで?
Helpみると予約語でもないみたいだけど
28 :
↑ :04/09/16 12:47:36 ID:IkRSXgBf
29 :
Now_loading...774KB :04/09/16 13:08:35 ID:ex4fJyg8
>26 レスどうも。それはそうなんだけど、 「最初のフレームに書き出し」チェック時は正常にAttachできるんだけど チェック外すとAttach出来ないんですよ・・。 読み込みのタイミングとかActionScriptで指定できるのでしょうか?
>>27 嘘付くなよ、お前Helpなんか調べてないだろ。
_parent
Player
Flash Player 5。
シンタックス
_parent.property
_parent._parent.property
説明
識別子; 現在のムービークリップまたはオブジェクトを含むムービークリップまたはオブジェクトへの参照を指定するか、返します。
現在のオブジェクトとは、_parent を参照する ActionScript コードがあるオブジェクトです。現在のムービークリップまたはオブジェクトの上位のムービークリップまたはオブジェクトへの相対パスを指定するには、_parent を使用します。
例
次の例では、ムービークリップ desk はムービークリップ classroom の子です。
次のスクリプトがムービークリップ desk 内で実行されると、再生ヘッドはムービークリップ classroom のタイムライン内のフレーム 10 にジャンプします。
_parent.gotoAndStop(10);
関連項目
_root, targetPath
31 :
将軍様 :04/09/16 13:31:57 ID:Ykt5dahy
サーバーサイドスクリプトからcgiなどを呼んで外部ファイルとのやり取りをすることはできますか?
32 :
↑ :04/09/16 13:50:58 ID:QxzbKqWv
>>30 解答ありがとう。
MX2004 の ヘルプだと具体例が
this.square_mc.circle_mc.onRelease = function() {
this._parent._alpha -= 5;
};
てなってるけど これって this で参照しているオブジェクトの
_parent プロパティがないとエラーにならない?
いきなり 「_parent」 で親オブジェクトの参照をかえすの?
この例だとにオブジェクトのプロパティだと思うんだけど
他のクラスのオブジェクトで使用されている名前は
変数名として使えないなんておかしい仕様ではないよね?
説明の識別子って「_parent」はプロパティですっていってるんだよね?
なんか今テストしてわかったんだけど カスタムクラスでも「_parent」プロパティがどっかから継承されてるのかな?
>29 うろ覚えですが 「最初のフレームに書き出し」チェックを外した場合 そのattach対象のムービークリップ等は、 あらかじめどこかのフレームに配置しておく必要があるはず。
>27,33 とりあえず30で挙げた説明が答え。 似たようなもので thisとか_rootとかも青くなるのと同様。
36 :
Now_loading...774KB :04/09/16 14:43:54 ID:3KTwaACn
on(press) { this.getURL("javascript:resizeTo(800,600);"); } swfを表示しているウインドウのサイズを、上記スクリプトで変更したいのですが、出来ません。 resizeToではなくcolose等のスクリプトなら正常に動きます。 fscommandも試しましたが出来ませんでした。 どなたか教えてください。 動作環境 OS : WIN XP PRO ブラウザ : MSIE6 FLASH : MX パブリッシュ : Flash Player5 よろしくおねがします。
>36 試してみたら問題なく動作したので 他に原因があるのでは。 ブラウザのjavascript無効にしているとか。
>>35 意見交換に参加していただきありがとうございます。
自分の中では
「_parent」 はカスタムクラスで作成するクラスでも
最初からそなわっているプロパティという認識になりました。
そうすると「_parent」 が必要ないカスタムクラスでも
そんなプロパティがあってじゃまという意見もあるとおもうの
ですが、それは仕様だという事で納得いたしました。(以外に便利かも)
なので変数の宣言をするとたまに青くなる時があるのですが
それは最初からカスタムクラスにあるプロパティなので
なまえが示す大体の役割どうりに使用すればいいんだなと
思いました。
あと
「this」はキーワードなので青くなるのが普通。
「_root」は実行環境が実行時に作成するオブジェクトへの参照なので
使えない。
という風に青くなるルールはわかるが、
「_parent」はなぜ青くなるのか(他にもあおくなるものがある)
それのルールがわからんと思ったので質問したという経緯です。
以外にむずかしい問題だったようなきガします。
意見交換してたら発見をしたような気がしました。
ありがとうございます。解決です。
あ、 他の記述で動くなら、javascript無効にしているとかはないですね。
40 :
Now_loading...774KB :04/09/16 14:53:43 ID:3KTwaACn
on(press) { this.getURL("javascript:close();"); } 上記スクリプトは正常に動作するので、Javascriptの設定は有効になっていると思います。
41 :
Now_loading...774KB :04/09/16 14:56:42 ID:9w7v+Dnk
別のスレでも質問したのですが、 どうしても分からないのでどなたか教えてください。 フラッシュが表示されてるページのURLを取得する方法教えてください。 .swfファイルではなく、例えば.htmlファイルです。 一つの.swfファイルが複数の.htmlファイル上に表示された場合でも、 それぞれのページでその.htmlファイルのURLを取得する方法です。 現在、フラッシュからPOSTでCGIにデータを送って、HTTP_REFERERから URLを取得する方法をとっていますが、 これだと一部のブラウザ(確認されてるのはMacだとIE5とOPERA7)からのアクセスでなければ取得できません。 アクションスクリプトによる取得方法、 あるいはCGI等によって確実に取得できる方法をご存知の方は、ぜひ教えてください。 お願いします。
>>38 訂正
>という風に青くなるルールはわかるが
変数名として使用できないルールはわかるが
43 :
36 :04/09/16 15:18:11 ID:3KTwaACn
IE5.5の環境で試したら動きました・・・・
44 :
Now_loading...774KB :04/09/16 18:08:21 ID:ex4fJyg8
>34 助かりました!無事動作しました。 どうもありがとうございます!
45 :
Now_loading...774KB :04/09/16 19:25:13 ID:zuJ0Nkia
>>23 >>24 JavaScriptで実装されたUNIX cryptがあります。
それをASに移植(というほど大げさな作業ではありません=移植実績あり)してあげれば、
DES不可逆でパスワードを保持できるので、
スクリプトを解析されたとしても、だいぶましだと思いますよ。
46 :
Now_loading...774KB :04/09/16 20:03:51 ID:M0H65xBa
>>23 テキストボックスの変数を「Password」としてボタンシンボルを作成しアクションを
on (press, release) {
if (Password eq "1234") {
loadMovieNum("members.swf", 1);
} else if (Password ne "1234") {
loadMovieNum("xxx.swf", 1);
}
}
と、記入したら、パスワード「1234」で指定したmembers.swfがレベル1に表示し
違うパスワードを入れるとxxx.swfがレベル1に表示する。
確かに解析ソフトや秀丸等のエディタを使えば簡単に見れるけど、
その辺の厨房には分からないから気休め程度ならこれで良いと思うよ。
FLASHに精通して、更にそうゆう諸々の事を知って無いと解読という考えは起こらないと思うし
>>45 そもそもパスワードチェックルーチン自体をパスされたらおしまい。
逆コンパイルしてチェックしてるルーチン潰し、それをまた戻す事の出来るツールがあるからなぁ・・・
ダイナミックテキストの、テキストボックス内で name2という変数の文章を表示させています。 このname2の文章の中で、name1という変数に入れてある名前1という文字を 表示させたいのですが、うまくいきません。 こんな感じで書いてます name1= "名前1"; name2 = "この文章で"name1"を表示したい。"; もしかして根本的に何か間違ってるんでしょうか…。
>48 name2 = "この文章で" + name1 + "を表示したい。";
>49 ありがとうございます、できました! すみません、もう一つだけよろしいでしょうか? 1.swfに、上のname1という変数が記述されており、1.swfから 外部swfファイルとして読み込んだ2.swf内でname2の変数を 記述する場合、 name2 = "この文章で" + name1 + "を表示したい。"; これにまた手を加える形になるのでしょうか。 ファイルサイズが膨大になったので、ファイルを分割しつつ 最初のファイルで得た変数を、以降に読み込むファイルにも引き継ぎたいんです。
>50 name1に 2.swfから1.swfを見た場合のパス(階層)を付与します。 例えば 1.swfが2.swfから見て_rootにあるならば name2 = "この文章で" + _root.name1 + "を表示したい。"; となります。
>51 度々すみません、ようやく1.swfから2.swfへ変数を引き継げました! 本当に助かりました。
53 :
Now_loading...774KB :04/09/17 09:52:30 ID:0h30er/S
すれ違いかもしれないが教えてください。 ずばりActiveXとFLASHの連携って可能でしょうか? FLASHで値を入力させてAvtiveXで処理、結果をFLASHに返して表示・・・ってものなんですが。 よろしければ教えてくだされ。
54 :
Now_loading...774KB :04/09/17 13:49:25 ID:3HYh70fR
>>53 同じHTML上に配置されたActiveXコンポーネントとswfの間なら、
JavaScriptを介して相互にコントロールできます。
flash playerも(IE上なら)ActiveXコンポーネントですし。
55 :
Now_loading...774KB :04/09/17 14:41:11 ID:0h30er/S
>>54 アドバイスどもです。
ちなみに何か参考になるサイト、もしくは書籍等あれば教えてもらえないでしょうか。
よろしくお願いしますm(_ _)m
56 :
Now_loading...774KB :04/09/17 16:23:04 ID:3HYh70fR
>>55 Flash<-->JavaScriptの方法はぐぐればいっぱい出てきます。(キーワードはそのまんま)
相手方のActiveXコンポーネントについては情報が無いので分かりません。
57 :
名無し :04/09/17 16:25:29 ID:DyUKSvy0
あげます
HitTestについて聞きたいのですが、 MC.hitTest(MC2);というふうにターゲットにMCを指定した場合、 ヒット領域が四角形になってしまって思ったように動いてくれないのですが、 実際に見えている部分をヒット領域にはできないのでしょうか?
59 :
Now_loading...774KB :04/09/20 01:27:13 ID:q7zOeeCb
失礼します。FlashMXを使用しています。 FlashからDB(SQL)を制御したいのですが、 「Flash上からPerlへ命令を出し、 PerlはDBと接続するだけで、SQL構文はFlash内に記述しておく。」 といった方法で、DBを制御することは可能でしょうか。 【構造】 Flash⇔Perl⇔DB(SQL) PerlはDBと接続し、Flashから届いたデータをSQLに転送するだけの簡単な処理です。
60 :
59 :04/09/20 01:28:32 ID:q7zOeeCb
Perlというより、CGIと書いたほうがよかったかもしれません・・・。
61 :
Now_loading...774KB :04/09/20 01:37:02 ID:90eqtYzq
>>59 可能です。が、
swfファイルはわりと簡単に解析できるため、SQL文をswf内に
埋め込んでしまうのはセキュリティー上あんましうまくないかもです。
62 :
Now_loading...774KB :04/09/20 18:02:45 ID:51+rWJwV
矢印キーを押してその方向に進ましています。 進める領域も作ることができますが、領域をいろいろな形(多角形) にしたいのですが、どうやればいいのですか。
63 :
Now_loading...774KB :04/09/20 22:24:22 ID:xB+8t/vg
MXです。 一度duplicateMovieClipで作ったMCをいったんremoveMovieClipで消したあと もう一度同じ深度に新たにMCを作成したいのですが どうもかち合ってしまっているようでうまくいきません。 一度使用した深度はremoveMovieClipを使ってもクリアできないのでしょうか? また、それを可能にする方法があれば教えてください。
64 :
63 :04/09/20 23:41:50 ID:xB+8t/vg
勘違いでしたすいません
サウンドに関する質問です。 _root.onLoad = function(){ attack_se = new Sound(); bg_se = new Sound(); attack_se.attachSound("attack_se"); bg_se.attachSound("bg_se"); bg_se.setVolume(0); }; とすると、すべてのサウンドボリュームが「ゼロ」になってしまいます。 特定のサウンドのみのボリュームを下げる方法はあるのでしょうか?
XPなんですが、MXのチュートリアル見ると ダイナミックテキストの変数自体の語頭に"_root"つけてるけど、 構わんのですか? "_root"って別のMCのインスタンスとか変数を指定する時に使うアレですよね。 というか、"_root"とか"_parent"の使い方が明確に分からないので 教えてください。 あと、ライブラリからステージに呼び出す様な関数か何かないですかね? 何か色々欲張ってスマソ。お願いします。
テキストファイルを読み込み、そこに書かれているのjpgファイルを読み込みたいと思っています。 環境はWinMX,Flash MX 2004です。 HTML中の呼び出しソース <EMBED src="flash.swf" FlashVars="inText=text.txt" ・・・・・> &テキストファイル(text.txt)の内容& &gazou1.jpg& /*タイムライン1*/ loadVariablesNum (inText, 0);//HTMLからinTextに変数を受け取る loadMovie(gazou1, "imgField");//画像を画像ロードエリアに読み込む stop(); 上記の内容ではimgFieldとインスタンス名を付けたインスタンスに画像がロードされます。 しかし、1行目を変更し下の様にするとロードされません。 どうしてでしょうか? /*タイムライン1*/ loadVariablesNum (inText, 0);//HTMLからinTextに変数を受け取る in_img = "gazou" + "1"; loadMovie(in_img, "imgField");//画像を画像ロードエリアラインに読み込む stop();
69 :
53 :04/09/21 09:48:47 ID:uw874NOe
>>56 返答遅れてスミマセン&レスサンクスです。
頑張ってみまつ。
>>68 in_img = "gazou" + "1.jpg";
じゃないのかな?
質問です。 ムービークリップの指定にワイルドカードのようなものは使えないのでしょうか? _root.mc1〜5が出たり消えたりするとして、 mc1〜5が存在しなかれば、関数を実行するという文を書きたいのです。
72 :
68 :04/09/21 22:07:10 ID:m5XZXH+C
>>70 せっかく答えて頂いたのですが、質問内容にミスがあったので訂正します。
申し訳ありません。
------------------------
テキストファイルを読み込み、そこに書かれているのjpgファイルを読み込みたいと思っています。
環境はWinMX,Flash MX 2004です。
HTML中の呼び出しソース
<EMBED src="flash.swf" FlashVars="inText=text.txt" ・・・・・>
&テキストファイル(text.txt)の内容&
&cnt=1&
&img1=gazou1.jpg&
/*タイムライン1*/
loadVariablesNum (inText, 0);//HTMLからinTextに変数を受け取る
loadMovie(img1, "imgField");//画像を画像ロードエリアに読み込む
stop();
上記の内容ではimgFieldとインスタンス名を付けたインスタンスに画像がロードされます。
しかし、下記の様に変更するとロードされません。
/*タイムライン1*/
loadVariablesNum (inText, 0);//HTMLからinTextに変数を受け取る
in_img = "img" + cnt;
loadMovie(in_img, "imgField");//画像を画像ロードエリアラインに読み込む
stop();
上は"img1"という変数を参照しているが、下では"img1"という文字列を代入してしまっていると考えています。
しかし、どうしても下のような方法を実現したいのです。
>>72 in_img=_level0["img" + 1]
74 :
68 :04/09/21 23:48:55 ID:m5XZXH+C
75 :
68 :04/09/22 00:26:29 ID:JeyXM4KJ
76 :
@ :04/09/22 16:42:56 ID:vJKyMMK1
質問です。
77 :
76 :04/09/22 16:44:42 ID:vJKyMMK1
↑ミス 質問です。 Flashで2つのURLを同時に開かせたい場合は どうすればよいでしょうか?
>77 getURLを2つ書けばいい
79 :
76=77 :04/09/22 17:30:06 ID:vJKyMMK1
>>78 dクス。できました。
HTMLくらいメンドーだと思ってましたが、案外簡単でしたね…俺バカ
80 :
67 :04/09/23 16:30:04 ID:ollmGeCI
マダー?
>>80 絶対パスに使うのが_root
相対パスに使うのが_parent
attachMovie()
後はヘルプなりググるなりして
>>80 マダー?じゃねぇだろ
ググればすぐ見つかるだろそんなもん
flashを使ってメニューを作りたいと思ってるんですが、 初めてActionScriptに挑戦したらいきなり壁にぶち当たりましたorz 左フレームページにフラッシュで作ったメニューを置き、 そこのボタンを押すことで右のフレームページの内容を表示させるように したいのですが、GetURLでHTMLタグのtarget="right"みたいに設定することは 出来ないのでしょうか? 物凄く初歩的な質問で申し訳ありませんが、どうかよろしくお願いします。
>>83 getURL("xxx.html","right")
86 :
76=77 :04/09/24 11:24:02 ID:lUxJNPS3
再び質問です。
>>77 でのトラブルを
>>78 で解決したのですが、
クライアント様がウンコなことにネスケ4.7でチェックしやがって…
「リンクを開くとブラウザが落ちる」
win2000でチェックしましたが、同じような現象になりました。
原因はなんでしょうか? 何か解決策があればおねがいします。
>>86 同時だから落ちるのでは?
MCのタイムラインに乗っけて時間をヅラしてみてもだめ?
>>87 ウッホ! 出来ますた。
あんがとー。
(
>>86 はクライアントじゃなくて代理店でした。)
89 :
Now_loading...774KB :04/09/24 21:16:12 ID:dxS1LQVd
xmlソケットのスレがなくなってるのでこっちで質問させてください。 ウィンドウズ2000でflashmxでFACEsサーバを使っています。 通信手段としてこんな感じの文字をサーバに送るのですが、 str = "<QN app=soft1 r=room1 />\n"; 「<」から「>」までの文字数を1/2にすれば、 サーバへの通信負荷は約1/2になるんでしょうか? それとも大して変わりませんか? よろしくおねがいします。
91 :
Now_loading...774KB :04/09/24 21:42:17 ID:wtG1QZcQ
千葉!滋賀!佐賀!って言うフラッシュのタイトル教えてください
what?
93 :
67 :04/09/25 00:41:59 ID:Oiq+OTtD
>>81-82 ありがd。
_rootとかは何とかなるかもしれなかったけど、
意味からはググれないもん。
ファイル数の取得について質問です。 imgview.swf [img](フォルダ) ├img0001.jpg ├img0002.jpg ├img0003.jpg ・ ・ ・ 上記のようなディレクトリ構成で、 img####.jpgの連番が何番まであるかを取得するには どうしたら宜しいか解りますか? 1.ロードしてロード出来たらtrue、 2.出来なかったらfalse、 3.falseを返してきたら終了しそこまでのカウントを表示 で出来そうなのですが、色々やってもうまく行かずで…。 何方かお解りになりましたらご教授よろしくお願いします。
>94 FlashMX2004でMovieClipLoader.loadClip()を使用してください。
>>95 その関数は一つのMCに
複数の画像を読み込む為の物ではないですか?
ディレクトリ内の連番ファイルの終わりをチェックするのとは別っぽかったのですが…。
>96 違います。 外部ファイルの読み込み判定ができます。ヘルプ読んでください。
98 :
Now_loading...774KB :04/09/27 22:23:44 ID:jO+RH9Dj
if (hensuu=="次へ"){ } こういうのって日本以外のflashplayerで実行できますか?
MXでXpです。 片端を軸に90度まで動く直線のMCを作りたいのですが、 下記のコードでは、だんだんと振れ幅が大きくなってしまいます。 onClipEvent (load) { cnt = 1; // 角度 deg = 0; // 度数をラジアンに変換 rad = Math.PI/180*deg; } onClipEvent (mouseMove) { this.degree._x = this.degree._x+Math.cos(rad); this.degree._y = this.degree._y+Math.sin(rad); // 90度回転すれば逆移動 if (deg == 90) { deg = 270; cnt = cnt*-1; } else if (deg == 180) { deg = 0; cnt = cnt*-1; } deg = deg+cnt; rad = Math.PI/180*deg; // MCを回転 this.degree._rotation = deg; } ずれない様に回転させるには、どうしたら良いか教えてください。 お願いします。
this.degree._x = this.degree._x+Math.cos(rad); this.degree._y = this.degree._y+Math.sin(rad); 正移動時のときと逆移動時のときのdegree.x、yの総増減量が違うんでしょう。
>100 レスありがとうございます。 申し訳ないのですが、なぜ総増減量が違ってくるのか教えて下さい。 逆向きにすれば増減量は同じなのでだと思っていたんですが、 テキストに書き出してみたら90,180,270度の時、値が0、1の整数とは限りませんでした。 (単位円とか授業で習った覚えのあるもので考えてたんですが。。。) できれば、もっと簡単な方法があったら知りたいです。コードも汚いと思いますし。
円ならこう書いたほうが this.degree._x = 100*Math.cos(rad); this.degree._y = 100*Math.sin(rad);
ってか90度まで動くってどういう意味? 90度まで回転だとラジアンが出てくる意味が分からないし・・・。
そんな感じです。 /\___/ヽ ヽ / ::::::::::::::::\ つ . | ,,-‐‐ ‐‐-、 .:::| わ | 、_(o)_,: _(o)_, :::|ぁぁ . | ::< .::|あぁ \ /( [三] )ヽ ::/ああ /`ー‐--‐‐―´\ぁあ …そうか。 なんて事だ! 一日の努力は無駄だったって事か。 ありがとうございました。吊ってくる。
ASで、フレームラベルから、そのフレームNoを数値として取り出すことはできるでしょうか? やりたいこと: 複数フレームに渡っているボタンのアクションで on ( release ){ if ( _currentFrame == "label1" ) { ... 環境はFLASH MX/Win2Kです
109 :
Now_loading...774KB :04/09/28 19:58:12 ID:LL19k2ol
>108 できません。 そのフレームラベルのフレームへジャンプして _currentFrameを取得するしかないかも。
110 :
Now_loading...774KB :04/09/29 13:05:46 ID:1X8zfyLJ
varで宣言していないにもかかわらず、使用している変数を調べる方法ってありますか?
111 :
Now_loading...774KB :04/09/29 13:24:21 ID:vKlGAtih
質問させてください。 使用OS:WIN98 、 使用バージョン:MX やりたい事:定義しておいた数種類の関数をランダムに実行させたい。 目的:パズルのシャッフルに使います。 やってみた事:ランダムで数値を取得、繰り返しで配列内から拾ってきて実行させようと思いました。 a= new Array(kansu1(),kansu2(),kansu3(),kansu4(),kansu5(),kansu6()) for(hoge=0;hoge<50;hoge++){ b=Math.floor(Math.random()*6) a[b]} kansu1〜kansu6は定義してあり、正常動作の確認は取りました。 このように試してみたのですが、for内での関数実行がなされていないように思えました。 以前に初心者スレで質問したのですが、自分で再度試して失敗した為、再びこちらで質問させてもらおうと思います。 何が問題なのか。またどのようにすれば目的通りに動くようになるか、アドバイスをよろしくお願いします。
>>111 自分なら6個ぐらいだったらswitchで分岐させるな。
switch b{
case 0: kansu1();break;
case 1: kansu2();break;
case 2: kansu3();break;
case 3: kansu4();break;
case 4: kansu5();break;
case 5: kansu6();break;
}
113 :
112 :04/09/29 14:18:42 ID:BxfjdzrC
括弧をつけわすれた。 switch (b) ね。(´・ω・`)
>>112 本当にありがとうございました。
for(hoge=0;hoge<1000;hoge++){
b=Math.floor(Math.random()*5)
switch(b){
case 0: kansu1();break;
case 1: kansu2();break;
case 2: kansu3();break;
case 3: kansu4();break;
case 4: kansu5();break;
case 5: kansu6();break;}}
で完璧に目的通り動くようになりました!!!
switch文は初めて使ったので、勉強になります!!
本当にありがとうございました。
似たような動作の関数ならクラス定義するってのも
>>114 random()は1未満の数字を返すのでrandom()*5だと5未満(整数部は4)になる。
それをfloorすると0から4の整数になるので注意が必要です。
117 :
ども :04/09/29 17:18:26 ID:ENnJrOqc
MXのデモ版いじってます。 ASのありネタで遊んでるのですが 配置された多数のシンボルのスクリプト内の数値を一気に置換するにはどうすればいいのでしょうか? 今のところ1シンボルごとに手作業でタイプしています。 どなたかご存知の方 おながいします。
MacOSX10.2、FlashMXです。 ローカル環境で、ボタンをクリックすると 直接PDFファイルを開くようにしたいのですが on (release) { fscommand("exec", "○○.pdf"); } と、ボタンに記述してもダメでした。 どなたかアドバイスをお願いします。
FlashMX2004 WINXP
on(press){
getURL('http〜(b.swf内にあるb.text).htm')
}
みたいな感じで、別のswf内にあるb.textの値を読み込ませたいのですが
可能でしょうか?単純に
on(press){
getURL('http//www.ahoaho.'+
http://www.uhuhu.swf.b.text+ '.html)
}
と試してみたが、だめでした。b.swf内のb.textには[index]と入れてあり、
開きたい目的のURLは[
http://www.ahoaho.index.html]です 。b.swfへのパス
も、フルパスにしたいです。可能であれば、どなたかご教示下さい。
やりたいことがわからない。 b.swfはすでに読み込んであるの?
>>117 一つのシンボルから多数のインスタンスを作っているという意味なら、
そのシンボルのフレームアクションにスクリプトを書けばすべてに反映されます。
シンボルが複数あるという意味なら、_rootあたりにhoge=30;のように書いておいてそれを参照させればいいと思います。
>>118 on(press){
getURL("hoge.pdf");
}
122 :
108 :04/09/30 11:04:04 ID:11xWA62b
>>109 ご回答ありがとうございました! できないのか・・・
123 :
118 :04/09/30 13:32:33 ID:LAMCDKTI
>>121 アドバイスありがとうございます。
しかしながら、getURLを使うと、ブラウザが立ち上がってしまいます。
直接PDFファイルを開くようにしたいのですが・・・
ムリなんですかねぇ・・・。
>>123 SWF内のボタンを押すとウィルス実行とか。楽しそうだね。
>124 既にやってるヤツいるし。
>123 Directorをからませればできるかな。 持ってないからやったことないけれども。
FLASHでメールフォームを作ることは可能でしょうか? もし可能でしたらscriptの記述も教えて下さい。 よろしくお願いいたします。
>127 CGIと連携させる必要があり、 一口でどう書いたらいいか言えない量なので 色々調べてから、わからない部分を聞いてください。
FlashMX2004で、Windows2000です。始めたばかりの初心者です。 立方体のそれぞれの角に球が置いてあり、その立方体がマウスによって回転するというものがあるのですが、 この立方体の辺上を単振動で玉が行ったり来たりして、それも一緒に回転させたいのですが(説明下手で申し訳ありません) どうしたら良いでしょうか??
130 :
続き :04/10/01 17:26:16 ID:fBdo7etn
(本体のAction script) //ポイントの数 var max:Number = 8; var vp:Number = 150; var rx:Number = 0; var ry:Number = 0; var rz:Number = 0; var centerX:Number = 300/2; var centerY:Number = 225/2; var mousex:Number = this._xmouse; var mousey:Number = this._ymouse; var st:Object = { centerX:centerX , centerY:centerY , vp:vp }; var threeD:threeD_class = new threeD_class(); var p:Array = new Array();
131 :
続き2 :04/10/01 17:26:43 ID:fBdo7etn
p[1] = [-40,-40,-40]; p[2] = [40,-40,-40]; p[3] = [40,40,-40]; p[4] = [-40,40,-40]; p[5] = [-40,-40,40]; p[6] = [40,-40,40]; p[7] = [40,40,40]; p[8] = [-40,40,40]; for (n=1; n<=max; n++) { var obj = this.point.duplicateMovieClip("point" + n, n); obj.px = p[n][0]; obj.py = p[n][1]; obj.pz = p[n][2]; }
132 :
続き3 :04/10/01 17:28:05 ID:fBdo7etn
function rot_matrix(target,all){ for (n=1; n<=all; n++){ var obj = eval("_root." + target + n); var pObj:Object = { px:obj.px , py:obj.py , pz:obj.pz }; pObj = threeD.rotate(pObj,rx,ry,rz); obj.px = pObj.x; obj.py = pObj.y; obj.pz = pObj.z; threeD.henkan(obj,obj.px,obj.py,obj.pz,st); } } var tName:String = "point"; this.onEnterFrame = function(){ rot_matrix(tName,max); ry = (centerX-this._xmouse)/1000; rx = (centerY-this._ymouse)/1000; } this.stop();
133 :
続き4 :04/10/01 17:28:45 ID:fBdo7etn
(クラス定義) class threeD_class extends MovieClip{ function rotate(ob,rx,ry,rz){ var qx:Number = ob.px; var qz:Number = ob.pz; var qy:Number = ob.py;
134 :
続き5 :04/10/01 17:29:29 ID:fBdo7etn
ob.pz = qz*Math.cos(rx) - qy*Math.sin(rx); ob.py = qy*Math.cos(rx) + qz*Math.sin(rx); qy = ob.py; qz = ob.pz; ob.px = qx*Math.cos(ry) - qz*Math.sin(ry); ob.pz = qz*Math.cos(ry) + qx*Math.sin(ry); qx = ob.px; qz = ob.pz; ob.px = qx*Math.cos(rz) - qy*Math.sin(rz); ob.py = qy*Math.cos(rz) + qx*Math.sin(rz);
135 :
続き6 :04/10/01 17:30:00 ID:fBdo7etn
return {x:ob.px,y:ob.py,z:ob.pz}; } function henkan(pass,xx,yy,zz,status){ var k = status.vp/(status.vp - zz); pass._x = status.centerX + xx * k; pass._y = status.centerY - yy * k; pass._xscale = pass._alpha = 100 * k; pass._yscale = 100 * k; pass.swapDepths(zz); } } です。長々すみません…。
>>137 マスク使って、HPゲージのMCを左に動かすようにすれば良いんでない?
>>138 ありがとうございます!本当に物凄い勢いで驚きました・・・。
141 :
Now_loading...774KB :04/10/02 21:01:06 ID:1DhQshGp
質問なんですが、外部テキストを読み込むflashを作りました。 サーバに上げてテキストファイルのみを更新した場合、 更新以前の内容がキャッシュに残っているせいで更新が反映されない場合があります。 キャッシュを無視して常にサーバから最新のテキストを読み込ませる方法はあるでしょうか? WinXP,MX2004という環境です。
143 :
142 :04/10/02 22:51:10 ID:8WM/2FFI
145 :
Now_loading...774KB :04/10/03 01:14:40 ID:ZVaOBTZU
flashのなかにAds by Googleのバナーを仕込む方法はありますか? flashmxです。
Ads by Googleがどんな仕組みかわかりませんが Amazonみたいに広告のリンクURLが自分で設定できるならば可能です。
147 :
141 :04/10/03 01:36:37 ID:EWhVLXJ9
なるほど。 ありがとうございました
148 :
Now_loading...774KB :04/10/03 17:55:50 ID:u4p8P9zs
最大値がある数字aであるランダムで決められた5つの数字の合計値を、 ある数字aと一致させたいと思っています。(a=a1+...+a5, an=[0,1...a]) 現在、 hoge=30; numarray=newArray(); while(sum!=hoge){ for (i=0; i<5; i++) { sum=0; numarray[i] = Math.floor(Math.random()*hoge); sum += numarray[i]; } } という方法しか思い浮かばないのですが、これはかなり危うい力技かと思います。 もっとスマートで安全な方法があれば教えてください。
>>148 最大値がaで合計がaってのがわからない。
んで、a=hoge=30 なのかな?
もう一度質問を分かりやすく書き直してほしい。
とりあえず、aを5で割って、平均値から補正して行く方向で作るにしても、
やっぱり質問を書き直して欲しい。
>>149 どうもすいません。a=hoge=30です。
この例の場合だと、0〜30の範囲の数字を5つ用意して、
なおかつその数字の合計も30になるようにしたいのです。(5+20+2+2+1=30のように)
>>150 5つくらいなら、手書きで一つずつ発生させるのも悪くないんでないかな。
hoge = 30
a=Math.ceil(Math.random()*30)
b=Math.ceil(Math.random()*(hoge-a))
c=Math.ceil(Math.random()*(hoge-a-b))
d=Math.ceil(Math.random()*(hoge-a-b-c))
e=hoge-a-b-c-d
これがスマートかどうかは知らないけど、こんな方法はダメなのかなぁ。
一応確認したら大丈夫だったけど。
プログラムとしてスマートかどうかは分かりかねる。
152 :
148 :04/10/03 20:20:08 ID:u4p8P9zs
その方法だとa〜eの期待値が一致しませんでした。 (0〜100の範囲で10000回試行した結果、平均値が a=49.4442 b=24.701 c=12.256 d=6.3401 e=7.2587) 情報不足ですいません、a〜eの期待値を同じにしたいという条件も追加させてください。
>>152 そりゃそうでしょう。
発生させるだけで終わりにしてますんで。
たとえば、a-eを配列に押し込んで、その配列をシャッフルする事で偏りを無くす事も可能ではないでしょうか?
>たとえば、a-eを配列に押し込んで、その配列をシャッフルする事で偏りを無くす事も可能ではないでしょうか? ID:mOraBc4Vさんは頭がいいね
っていうか a〜eの期待値が同じ だったら無理だと思うんですけど・・・
考えただけで頭痛くなってきたので 無理ということで。
だからの配列の中身をシャッフルすりゃいいじゃん
158 :
129-135 :04/10/04 00:02:23 ID:hC6hJLhL
レスありがとうございました。 注釈入れ忘れてすみません。わかりづらいですよね…。 そのサイト見ました。が、私には複雑すぎて理解できないのです…。 129-135に単振動のscript+3D回転させる方法はありますでしょうか?
>>158 複雑ではないよ・・作者の作った Eventなんとかっていう機能が
コードをややこしく見せているだけ。 外してどんどん単純化していけば
理解しやすくなるはず。
160 :
Now_loading...774KB :04/10/04 09:41:37 ID:PgZpQcJN
個人的に はーぼっとのようなものを作りたいのですが データのセーブの方法がわかりません ローカルのだと 見た人にしか反映されませんし cgiをつかったほうほうを解説しているサイトなどないでしょうか? コンポーネントあると楽ですけど・・
>160 「Flash CGI 連携」でググって見ると吉
162 :
Now_loading...774KB :04/10/04 12:51:37 ID:Rwp8CvzN
>>159 >Eventなんとかっていう機能
これ自体はあまり意味のないscriptなんでしょうか?
このFLASHの中に跳ねているボールを取り除き、
//単振動
onClipEvent(load){
time = 0;
}
onClipEvent(enterFrame){
time += 1;
sinpuku = 40;
kakusokudo = 10;
omega = Math.sin(Math.PI/180*kakusokudo*time);
tansindou = sinpuku*omega;
_x = 1+tansindou;
}
163 :
続き :04/10/04 12:52:05 ID:Rwp8CvzN
を組み込むことは可能ですか??
164 :
162-163 :04/10/04 12:53:49 ID:Rwp8CvzN
日本語おかしくなりました。 このFLASHの中に跳ねているボール→このFLASHで立方体の中で跳ねているボール
166 :
162-163 :04/10/04 13:47:25 ID:Rwp8CvzN
>>165 そうです。その角の玉と玉の間をまた別の玉が行ったり来たりするといえば伝わりますかねぇ…。
言葉でイメージ伝えるの難しいorz
>166 スクリプトとかまったく考えておらずのあてずっぽうかもしれないけれども 上に挙がっているサンプルのsimple3Dで ライン(各辺)を引いている処理部分があると思います。 多分そのラインの回転処理は そのラインを引く処理を呼び出している親側で行っていると思うので、 そのラインを引いている処理部分に単振動処理を加えれば 回転処理も自動で行ってくれそうな気がします。
>>162 >これ自体はあまり意味のないscriptなんでしょうか?
その通り イベントを管理する為のモノ(らしい) あのスクリプトでは
1個しか走ってないから取っても平気 とにかく人の作ったコードを解析するのも勉強だ
3Dをやろうって人間がアレを理解できないなんて...3Dをナメんなァっ!
・・・という漏れも3Dを勉強中 お互いがんがろー
flashってそれほどポリゴン数でないってきいたけど実際どうなの?
>169 Flashは全部2Dですよ。
Flashで3D Script組んで面も描画した場合の 影のつき方の計算方法ってどこかにTips無いでしょうか?
172 :
Now_loading...774KB :04/10/05 21:12:00 ID:hDkGuG0c
テキストファイルをFlashファイルの中に入れるにはどうすればいいでしょうか? 読み込みで読み込もうとしてもエラーが出てライブラリに読み込めません。 テキストを人が勝手に見たり書き換えたりできないようにしたいです。 FlashMX2004 Proです。お願い致します。
>172 テキストファイル自体はFlashファイル内のライブラリには どうやっても読み込むことはできません。 テキストファイルの内容ならば スクリプトを用いて読み込むことは可能です。
174 :
1/2 :04/10/06 22:26:04 ID:hgbbYLFn
ムービークリップを縦に座標200,240,280と矢印キー(上下)で動かしたいのですがなかなかうまくいきません。 下記のソースを、ムービークリップの1フレーム目にはると、 最初240の位置、矢印キーの押した方向に移動し、次におしたキーと逆のキーをおすと240の位置にもどるようにしたいのですが、 最初にキーで移動したときと真逆の座標へいってしまいます。(例 240→200(↑キーを押した)→280(↓をおすと240にいってほしいのに280になる)→240→280・・) //座標 myY = new Array(200, 240, 280); this._y = myY[1]; this.onEnterFrame = function() { myListener = new Object(); myListener.onKeyDown = function() { switch (Key.getCode()) { case Key.UP : Ido("up"); break; case Key.DOWN : Ido("down"); break; } };
175 :
2/2 :04/10/06 22:26:42 ID:hgbbYLFn
Key.addListener(myListener); }; //キーをおされた時の処理 function Ido(key) { nowY = 1; if(key == "up"){ nowY--; this._y = myY[nowY]; } if(key == "down"){ nowY++; this._y = myY[nowY]; } } どうか、うまくできないでしょうか。
>174 >nowY = 1; この行がよろしくないですね。
>>175 if(nowY < 0) と if(nowY > 2) のときの処理も必要です。
すいませんが質問させてください。 loadVariablesNum("aaa.php", 0, "POST"); if (flag) { gotoAndStop(3); } このように、フレームアクションに記述してあり、 それで、aaa.phpには、Flashで入力させた変数の正当性を判断させ、 正しくなければflagにfalseを返すようにしています。 そして、メインのタイムラインは |1|2|3| のようになっていて、 1にあるボタンを押すとplay();するようになっていて、 2にこのフレームアクションが記述してあります。 そして、1,2,3共にstop();を入力してあります。(3は必要ないですが・・・・) このムービーを実行すると、2でとまってしまい、3に行かずうまくいかないのです。 どうすればいいのでしょうか・・・心底困っています・・・・
179 :
フサ :04/10/07 13:18:46 ID:MvHAZfaF
>178 ∧,,∧ PHPにアクセスして、その結果を取得するまで ミ,,゚Д゚彡 待機する必要有 (ミ ミ) ミ ミ if文の前に trace( flag ); を行ってみると ∪ ∪ flagの内容が空っぽなのがわかりますよ
180 :
Now_loading...774KB :04/10/07 20:08:07 ID:6Q1++YQ0
ボタンシンボル内で変数 a を置いて ボタンが押されるとMCが動いて MC内で a = a + 1 と書いてもボタンのaの値に反映されません・・ シンボル内の変数はそのシンボル内でしか使えないのでしょうか?
パスを使うんですね・・・わかりました。すみません
Flashのスタンドアーロンプレイヤーの入手方法知ってる人いますか? Macromedia Flash に梱包されているSAFlashPlayer.exeっていうやつで Flash持ってる人がswfを開くと起動するやつ。 Macromedia Flash持っていない普通の人がswfを起動すると ブラウザが立ち上がってしまうんですが、 スタンドアーロンのほうが再生速度が明らかに上なんですよね。 Player6時代のものは単体で配布していたらしいのですが Player7になってからは、開発者でないと 手に入らなくなってしまったのでしょうか?
>>182 FLASH MX 2004の体験版をダウンロードすると幸せになれます
>183 ____∧∧ 〜' ____(,,゚Д゚) < exeに書き出しする UU U U
186 :
185 :04/10/08 01:49:55 ID:NNq+mzGy
アンカーミス >182ね
>>185 スバラシイ!確かに。
それでスタンドアーロンと同時配布するのと同じになりますね。
ありがとうございました。
>188 ____∧∧ 〜' ____(,,゚Д゚) < 古い UU U U
ifとかforの省略形の書き方ってどうやればいいんでしょう? if( i<10 ){ x=i i++ } を if i < 10 : x=i : i++ (これはうろ覚えなのでエラー出ます) のような感じに略して書いてるのを見たことがあったのですが、 よく覚えてなくて。
>>190 if i<10 ? [ture] : [false];
だったような
>>190 if要らんよ。
三項演算子だけどifの省略形ではないのと、流れがわかり難くなるので、
その例みたいな用途にはあまり使わない方がいいと思う。
ちなみにその例だと
x = (i<10)?i++:x;
と書ける。
forの省略形ってのは何を指すのか判らん。
193 :
Now_loading...774KB :04/10/09 14:18:01 ID:rgKgOhw4
WinXP,MX2004という環境で作っています。 質問なのですが、ムービークリップをhitTestでボタン化して、 それにカーソルが乗ったら特定の文字列などをシンボル化したテキストに送りたいと思っています。 自分で書いたスクリプトは以下です。 尚、製作の都合上、タイムライン3で止めています。 上記のシンボルもすべてタイムライン3においてあります。 -------------------- /*タイムライン1*/ loading = Math.floor( (getBytesLoaded()/getBytesTotal() )*100)+"%"; //DL量の確認 /*タイムライン2*/ if (loading == "100%" && check == 1) { //100%DLできるまでループ } else { gotoAndPlay(1); } /*タイムライン3*/ stop(); /*ボタン*/ onClipEvent (mouseMove) { //マウスカーソルが動いて↓ if (hitTest(_parent._xmouse, _parent._ymouse, true)) { //ボタンと重なっていたら text = "特定の文字列"; //文字を送る } -------------------- 尚、シンボル化したテキストの変数名は"text"としてあります。
195 :
Now_loading...774KB :04/10/09 16:22:26 ID:ghz/hlUC
環境:WindowsXP-MX2004 1000x1000(pix)程度のMC(base)を、 onClipEvent (enterFrame) { if (Key.isDown(Key.LEFT)) { _root.base._x += 10; } else if (Key.isDown(Key.RIGHT)) { _root.base._x -= 10; } } とやって、移動させると、数回移動後に移動速度が 急激に遅くなったり、移動しなくなったりしてしまいます。 keyPressを使った場合には、処理速度は問題無いのですが キーリピートがかかるまでの待ち時間が、気になります。 何か良い解決方法、ありませんでしょうか。
別スレで相手にされなかったので、こちらにて質問させて下さい。 loadvariablesを使って外部テキストを読み込むように、 htmlファイルを読み込むことは可能でしょうか?
197 :
Now_loading...774KB :04/10/09 20:03:22 ID:Z3u4q1g/
質問させていただきます。 フラッシュ製作ソフトはマクロメディア以外の会社は出していますか? あとだいたいその製品の値段はどのぐらいしますか?
198 :
Now_loading...774KB :04/10/09 20:07:41 ID:SgOvgtEW
ローディング時のプログレスバーの作り方を書いているページを知りませんか? 検索しても、見つからなくて。
>>197 スレタイ:ActionScript 誰かが物凄い勢いで解答するスレ 4
このスレはActionScriptに関する質問をするスレです。
要するに 板 違 い
200 :
195 :04/10/09 23:13:37 ID:ghz/hlUC
物凄い勢いを期待して待ってます。
>>195 普通に動くだろとおもったけど
flaで一応試してみた
やっぱり普通に動いた。
>199 熱く語ってるとこ悪いんだが「スレ違い」 だろ。 ソフトウェア板池ってんなら板違いになるけどさ
>>196 htmlはタグごとかな?
CGI,PHP,ASPのどれかでloadvariablesで読み込めるように加工してやれば可能
204 :
193 :04/10/10 13:16:16 ID:QkjBcydl
205 :
195 :04/10/10 13:21:15 ID:do/rGa+l
>>201 ありがとうございます。
問題の切り分けができました。
1000pixというのが問題では無かったようです。
15x15(pix)のMCにリンケージを設定して、それをステージ上に
attachMovieで2500個程、配置しているのが原因でCPU使用率が100%に...
CGIで変更されたデータを初回だけ読み込むものなので
attachMovieの後に、これを一つのMCにする等、処理を軽くする方法が
ありましたら、ご教授下さい。
>>205 2500個も複製すりゃ何をどうやっても重くなる
ひとつのMCにしても無駄だ
制作意図が根底から間違ってる
やりなおし!
>>193 MCなんでボタンと違って階層概念が発生する
なんで_parent.textか_root.textにする。
あとテキストインスタンスのtextに表示するにはtext.textとしないとだめ
_root.text.text = "特定の文字列";と変更
>>205 fpsを小さくしても問題ないなら出来るだけ小さく。シンボルにした図形を出来るだけ簡略
209 :
195 :04/10/10 14:00:19 ID:do/rGa+l
>>206 ありがとうございます。
やはり、そうですか...
15x15(pix)程度の画像を、横に50・縦に50敷き詰める
という部分に、attachMovieを使用していました。
検索をしてみた所、シェイプだと重くならないという情報を
見つけましたが、リンケージを設定する事ができません。
どういう命令を使えば、最適な処理となるのでしょうか?
>>196 MX2004なら出来る。外部htmlと外部CSSを読み込み独自の定義を使えば
IMGタグも使えるよ。
211 :
193 :04/10/10 15:14:32 ID:phJJRjy2
>>207 できました、ありがとうございます。
しかしもう一つ問題が発生してしまいました。
ボタンは1つではなく複数あるのですが、
一つのボタンしか特定の文字列をテキストインスタンスに送れないんです。
ボタンはすべて共通のシンボルで、インスタンス名に1〜*で指定しています。
>>209 10000pxのMCを動かすってのはステージサイズも10000pxなのか?
そうでなければ他に対処の方法があるだろ!
>193,211 ∧,,∧ 他のボタンMCにも同じスクリプト書いているのなら ミ,,゚Д゚彡 複数同じMCがあっても問題なく表示されます。 (ミ ミ) ミ ミ 各ボタンのインスタンス名は ∪ ∪ 今回はまったく関係ないです。
>195,209 >検索をしてみた所、シェイプだと重くならないという情報を >見つけましたが、リンケージを設定する事ができません。 >どういう命令を使えば、最適な処理となるのでしょうか? ∧,,∧ ミ,,゚Д゚彡 意味がちょっとわからないです。 (ミ ミ) シェイプって何のこといっているのでしょうか。 ミ ミ 今までビットマップ使っていたということですかね? ∪ ∪
215 :
193 :04/10/10 20:37:23 ID:phJJRjy2
>>213 まったく関係ないと言われてもできないんです。
スクリプトをコピペしても正常に動くのは1つだけ。
他の部分にバグがあると考えた方がいいんでしょうか?
>>209 シェイプとかそういう問題じゃないだろ。
どうやっても処理は重くなると思うよ。
>15x15(pix)程度の画像を、横に50・縦に50敷き詰める
これで何がしたいのかを書けば別な方法で実現できるアドバイスがあるかもよ。
>>215 ClipEventはそんなにたくさん発生しないんじゃなかった?
218 :
195 :04/10/10 21:10:10 ID:do/rGa+l
>>212 >>214 >>216 ありがとうございます。
内容としては、地図の地面のような背景チップA(15x15pic)を
画面に敷き詰めて、キー入力によって動かそうとしているのです。
背景チップAの配置は、テキストデータとして毎回開始時に読み込みを行ないます。
ゲーム等で良くあるように、中心部分に自キャラを書いておいて
マップを反対方向に動かすというものです。
何かアドバイスをお願いします。
219 :
193 :04/10/10 21:47:26 ID:phJJRjy2
>>217 実際には
onClipEvent (mouseMove) { //マウスカーソルが動いて↓
if (hitTest(_parent._xmouse, _parent._ymouse, true)) { //ボタンと重なっていたら
text = "特定の文字列"; //文字を送る
line_color = _parent["map_color_a"];//RGB値取得
mycolor.setRGB(parseInt(line_color,16));//色を変更
}
}
の4,5行目のインスタンスの色を変える部分は反応があり、
3行目の文字を送る部分が反応がないのです。
なのでonClipEvent自体は発生していると思うのですが…
>>219 普通に送れました。
一つしかパス指定の書き換えをしていないとかいうオチじゃないですか?
同じボタンが複数あるならフレームに書いたほうがいいですよ。
221 :
193 :04/10/11 01:11:49 ID:+hWlgc5v
>>220 >>219 で書いたASを、同じレイヤーの同じフレームに複数個あるボタンに書いています。
この手法に問題はあるのでしょうか?
>>同じボタンが複数あるならフレームに書いたほうがいいですよ。
これはタイムラインの方に直接ASを書くということですか?
タイムラインにはonClipEventは使えないようなので、
別の方法で代用できるならご教授下さい。
>193,218 ∧,,∧ 一つが15x15とはこれまた小さいものを作っているのですね。 ミ,,゚Д゚彡 (ミ ミ) ステージサイズ表示分のみのチップMCをattachして ミ ミ ステージサイズからはみ出ているチップは ∪ ∪ どんどん消去するようなスクリプトを組むといいですよ。
223 :
222 :04/10/11 01:53:25 ID:wQU9zzWI
アンカーミス >195,218 です
>193,219,221 ∧,,∧ >text = "特定の文字列"; //文字を送る ミ,,゚Д゚彡 これはここに書くときの書き間違えかな?修正してください。 (ミ ミ) ミ ミ >これはタイムラインの方に直接ASを書くということですか? ∪ ∪ functionは知っていますか? 全部のボタンに同じスクリプトをコピペするのではなく、 スクリプトをfunction一つにまとめて、 全てのボタンから同じfunctionを呼び出します。 一から余分なものは全部取り除いて作り直すと、 きちんと動作することがわかりますよ。 動作しないというのは どこかに余分な処理が混入してしまっているのかもしれません。
225 :
193 :04/10/11 14:46:49 ID:+hWlgc5v
>>224 関数を実装してみました。
/*MCボタン*/
onClipEvent (mouseMove) { //マウスカーソルが動いて↓
if (hitTest(_parent._xmouse, _parent._ymouse, true)) { //ボタンと重なっていたら
line_color = _parent["map_color_a"];//RGB値取得
mycolor.setRGB(parseInt(line_color,16));//色を変更
_root.kansu();
}
}
/*MCボタンのあるタイムライン*/
stop();
function kansu(){
_root.i_kenmei.kenmei ="a";
}
-----
としてみましたが、やはり正常に動くボタンは最初に設置した1つだけでした。
そのボタンを消すと2番目に設置したボタンのみが反応するという状況です。
>225 >_root.i_kenmei.kenmei ="a"; 動作していないのではなく そのスクリプトではどのボタンが動作しても _root.i_kenmei.kenmeiにaという値しか入らないんじゃ?
227 :
モン :04/10/11 17:39:14 ID:JVQQ5gZC
メニューバーを押したら、外部FLASHを指定位置に読み込むようにしています。 連続で同じボタンを押しても、再読み込みしないようにしたいのですが、 どうしたらいいですか?
228 :
195 :04/10/11 18:27:13 ID:kcV/2bT3
>>222 ありがとうございます。
見えない部分まで全てを描画して、動かそうとするからいけない訳ですね。
◆ステージ部分だけをattach
◆キー入力によって
・はみ出る部分を削除
・入ってくる部分をattach
という感じで、組みなおして見ます。
(動作後に書き込みをしようとしましたが、ちょっと時間がかかりそうなので
先にお礼を。)
的確なアドバイス、ありがとうございました。
>227 フラグを使ってください。 読み込んだらフラグを立てて、 フラグが立っていたら読み込みを行わないようにします。
230 :
220 :04/10/11 18:49:13 ID:9w4phoiX
>>221 ボタン用のMCに
this.onMouseMove=function(){
if (hitTest(_parent._xmouse, _parent._ymouse, true)) {
_root.kansu(Number(this._name.slice(1))); //MCの名前をa1,a2・・・のようにしておく
}
}
function kansu(num){
_root.i_kenmei.text=num; //もしくはswitchで任意に
}
231 :
225 :04/10/11 18:52:13 ID:+hWlgc5v
>>226 記述にミスがあしました、すいません。
正確には以下の通りです。
/*MCボタン*/
onClipEvent (mouseMove) {
if (hitTest(_parent._xmouse, _parent._ymouse, true)) {
line_color = _parent["map_color_a"];//RGB値取得
mycolor.setRGB(parseInt(line_color,16));//RGB値変更
_root.kansu_1();
}else {
line_color = _parent["map_color_b"];//RGB値取得
mycolor.setRGB(parseInt(line_color,16));//RGB値変更
_root.kansu_2();
}
}
/*MCボタンのあるタイムライン*/
stop();
function kansu_1(){
_root.i_kenmei.kenmei ="a";
}
function kansu_2(){
_root.i_kenmei.kenmei ="b";
}
>231 そのスクリプトですと 他のボタンMCとのhitTestの判定で競合が起こってしまっていますね。 そして誤動作が起きてしまっているようですよ。 230さんのスクリプトを試してみては。
233 :
225 :04/10/11 19:59:26 ID:+hWlgc5v
>>232 >他のボタンMCとのhitTestの判定で競合が起こってしまっていますね。
つまりMCボタンが2つある場合、
MC1のelseの部分と、MC2のifの部分が競り合っているということですよね?
なのでテキストインスタンスに空白文字列を送るMCボタンを別に用意しました。
自分が意図した通りに動きはしたのですが、問題はあるでしょうか?
今回はインスタンス名をテキストインスタンスに送るようにしています。
236 :
Now_loading...774KB :04/10/12 01:25:49 ID:IxAs5rnd
WinXP,MX2004環境で作っています。 スペースを押すとMCがジャンプする動きを希望します。 とりあえずいまはキーを押すと横に移動するだけです。 最終的に横移動するアクションゲームを作りたいです。
____∧∧ 〜' ____(,,゚Д゚) UU U U >233 行った内容と質問事項を明確化することをお勧めする >236 スペースを押したら縦に移動するように作る
238 :
Now_loading...774KB :04/10/12 12:32:08 ID:HH/EpkBr
すいません。ちょっとスレ違いかもしれないんですが質問させてください。 Flashをベースとして、やはりこれからはCGIの知識が必要不可欠になって来ると考え、 CGIを構築する為の言語を学ぼうと思いました。 プログラムの経験はJSPとAS程度しかないのですが、PerlとPHPでしたら、どちらが良いと思われるでしょうか? Flashの事、今後の事を踏まえてどちらが良いかのアドバイスをお願いします。
239 :
Now_loading...774KB :04/10/12 12:50:21 ID:MmFz22p7
>>238 phpだな。
いずれperlは枯れ果てる。
>238 ____∧∧ 〜' ____(,,゚Д゚) <どっちもやっとくがよい UU U U 仕事内容による。 ただPHPは対応していないサーバがある場合が。
質問です。 flashを使って映像をストリーム再生させる…なんてコトできますか? (俺知識では出来ないと思ってますが、言い切る自信が無いので)
>241 ____∧∧ 〜' ____(,,゚Д゚) <Flashは全部ストリーミング再生 UU U U
(,,゚Д゚)さん速い仕事乙。
>>241 補足しておくとFlashは自動で再生が始まり、
読み込めていないフレームまで達すると、読み込まれるまで停止するという仕様です。
つまりデフォルトの設定ではストリーミングをします。
普通のFlashはこの停止が嫌だという理由で、
制作者がローディングを待つようにASを組んでいます。
予想読み込み時間からバッファを取って、停止しないギリギリのタイミングで再生するなどの
高度な意味でのストリーミングは別途ASで操作することになります。
でも、できます。
>>238 Phpのほうが優先順位が高くていいと思いますが
どっちもやっといたほうがいいのは確かです。
244 :
238 :04/10/12 14:18:09 ID:HH/EpkBr
ありがとー。 PHPの本を買って勉強する事にしまーす。
245 :
241 :04/10/12 14:36:13 ID:wXiaBrAF
>>242 さん
>>243 さん
怪盗ありがとうございます。
もっと勉強しねーとイカンですね。片マユ剃って修行してきます。
246 :
236 :04/10/12 18:27:16 ID:IxAs5rnd
>>237 thx。そこまでは分かったんですがねー。
落下する運動をロジックに変換したり
スクリプトをどう書けば良いのかわかんない。
もう少し勉強します。
>>246 とりあえずさ、変数で制御する方法を覚えると良いかもね。
もしくはダイレクトに座標の位置で計算する方法も良い。
ボタンを押すとジャンプして、ある点まで移動すると落下になる。
んで、その上なり下方向への移動速度に関しては関数を組めばOK。
自由落下ならそこらへんのサイトに公式載ってるしね。
248 :
236 :04/10/13 04:10:30 ID:xiwAhSYq
>>247 回答ありがとうございます。参考になりました。
変数、関数くらいから出直してきます。
249 :
Now_loading...774KB :04/10/13 09:00:56 ID:xy4sS4uI
FlashMX使用 質問なのですが HPなどで 最初に訪れたときに 名前を入力して 次来たときに 何々さん こんにちは 何回目の来場です と表示を SharedObject を使ってやりたいのですが いまいちやり方がわかりません。 簡単なサンプルなど教えていただけないでしょうか?
251 :
Now_loading...774KB :04/10/13 10:48:00 ID:Ic7XQkLr
FlashでAS、ブラウザでJS、サーバーでPHP この3つを使えるとかなり遊びの幅が広がると聞いたのですが本当でしょうか? ASはある程度出来るのですが、JSはやった事ありません。 皆さんは色んな言語やってるんでしょうか。
252 :
Now_loading...774KB :04/10/13 10:56:06 ID:/Vq/D1wg
_, ___________________________, l ゜__,.-''''-.,____ ゜||ニニニニニニニニニニニニニニニニニニ/ =´'/ ,__ /ニニニニニ|| ,.- '" ̄ .,,.-― ''' ̄ヽ, ||三三三三三三三三三三三三三三三三 ./ / ̄//ソ/.三三三三三|| ,/ / ,, -―''' ̄,/ヽ||三三三三三三三三三三三三三三三三/ `-´-' ./ 三三三三三 || ._,.-', (通) ,'-.,_ ----- ,--l . ;;||三三三三/ ̄ ̄ ̄ ̄/三三三三三三 ./ペリカン便/三三三三三三|| _,,,/'二二二二二二' ,'二二二,  ̄ヽ;;||三三三 ./ ,/'⌒'ヽ ./三三三三三三 ./ ./.三三三三三三 || .l' | ._l@二| OT ̄| | r――ii | r-i |;;||三三三/ i. 通 i. '――――――――――――――――――.|| .[;;].| (・∀・ ) .|;;;].| | |l l| | | .| |;||三三 ./ ゝ,__,.ノ.. ./'|// // 7√ 7√ ((,´ //,// .|| | |._⊆⊇ ヽ .) |[;;]| | |l_,,--''l..|.t=l |;||三三/______//|,/_//_//__//_ヽノ_|_',/________|| ''|, ̄ ̄isuzu ̄ ̄'ノ | |l ̄ ̄|.ll| | ,,,,,,|;| . |;;|. |;;| / / |;;| .| .|l. ̄ ̄ ̄ ̄ ̄ ̄l...| ''--'''''""_l.'--'l;;| |;;|. |;;| ./ /. |;;| .| _[l_三三三三三_l]_||.==_,. -―i,,二 |;|_,,_,,_,,_,,_,,_,,_,,_,,_|;;|/__,,_,,_,,/__,,_,,_,,_,,_,,_,,_| . |二l_ l;;;;;;;;;;;;;l _l二lコ_|二。///⌒ヽ;;;ヽ::::,:'" ヽ;ヽ _ヽ____ヽ____ヽ__/;;;;;//⌒ヽ==/⌒ヽ;ヽ ̄ヽヽ (__(]| ヽ,= lニ[二]ニl. == .|二 |」iii ::0 :i ;;;;||. iii :0 i;;;|| l三||三三三||三三三||三l;;;;|ii ::0 :i ::iii ::0 :i;;;|| 二二"l]  ̄ ̄.ゞ;三ノ ̄ ̄ ̄ ̄ ゞ_ノ. ゞ__ノ  ̄ ̄ ̄ ̄ゞ三ノ ̄ゞ三ノ ̄ゞ_ノ ゞ_ノ ≡3
253 :
Now_loading...774KB :04/10/13 11:40:10 ID:eewOO8po
FlashMX2004 を WinXP(SP1)で使っています. TextField コンポーネントがロードされた時にハイライト( | ←がちかちかするやつ) されるようにしたいんです.以下のようなことは試しましたがダメでした. どうすればいいでしょうか? TextField コンポーネントをステージに配置してインスタンス名を myText としました. そして1フレーム目に focusManager.setFocus(myText); とか myText.setFocus(); とかやってみました.
すいません。質問させてください。 シングルクォート と ダブルクォート の違いを教えて欲しいです>< うろ覚えなのですが、 ' と " で変数の代入の際に何か違いがあった記憶があるのですが、 どうにも思い出せなくて・・・。 よろしくお願いします。
255 :
Now_loading...774KB :04/10/14 12:59:04 ID:XtqeJ4tS
質問です。 function aaa(){ trace("aaa"); this.onEnterFrame = this.bbb(); } function bbb(){ trace("bbb"); } this.onEnterFrame = this.aaa(); だと「aaa」と「bbb」が一回ずつ表示されますが 関数aaaを一回だけ起動させ、あと関数bbbをタイムレートにそってずっと繰り返したい場合 どうすれば良いでしょうか? 関数aaaの中のthis.onEnterFrame = this.bbb();を this.onEnterFrame = this.bbb;にすると動かなくなります。 どこが間違っているんでしょうか?
>>254 無いんじゃないかな。あるとすれば文字列引用符内でもう一度引用符を使いたいときに
使い分けるくらい?
getURL("JavaScript:alert('Hello ActionScript!!');")
>>255 最初のaaaの呼び出しも「this.onEnterFrame = this.aaa;」にしたうえで
aaa内の呼び出しも「this.onEnterFrame = this.bbb;」にしてみて
____∧∧
〜' ____(,,゚Д゚)
UU U U
>253
こちらで Selection.setForcus( "myText" ); を試してみたが
FlashMXで書き出した場合 TextFieldにフォーカスが当たり
カーソルの点滅が行われるが、
FlashMX2004で書き出した場合 TextFieldにフォーカスは当たるが
カーソルの点滅が行われない模様。原因不明。
>254
256さんとほぼ同じ内容だけれども、このページの下の方参照
ttp://www.fumiononaka.com/TechNotes/Flash/FN0110011.html
258 :
Now_loading...774KB :04/10/14 18:09:02 ID:6KYRobLN
ベクターアニメーションと画像ファイルを使ったアニメーションでは どちらが処理速度が速いでしょうか? どちらの絵も回転、移動をしつつ毎フレームアニメーションします。 絵の大きさは300*300ぐらいです。
>>259 ありがとうございます。
ラスターでやってみます。
>>251 AS/JS/PHPならかなり遊べるぞい。
利点は一つの言語では複雑になりすぎるスクリプトが簡略化されるから
デバッグや可読性に優れる。
DBなどの巨大なデーターもサーバーにまかせてメモリーを気にせず使える。
でも遊びなら掲示板やゲームのランキング程度しか思いつかないorz
loadMovieで外部のswfファイルをムービークリップに読み込ませて swfを表示させています。 しかし、容量の大きいswfファイルだと loadMovieで外部ファイルを表示した瞬間すぐには動いてくれません。 外部swfを表示させる前にあらかじめ 外部ファイルを先読みしておく、といったことは可能でしょうか?
可能
以前に初心者の質問スレッドで同じような質問をしたのですが、 回答がもらえなかったのでこちらの方でよろしくおながいします。 以下のような事がしたいのですが、1は全然問題ありませんが 2.と3.の方法がわかりません。ご教授よろしくお願いします。 1.外部swfファイルをloadMovieで読み込む 2.1.で読み込んだMovieを削除 3.1.で読み込んだ後削除したMovieを再度読み込む、ただし一度読み込んだ内容なので 今回はメモリ上からattachMovieしたい。
よくわからんけど、 最初に読み込んでおいてからAttachすれば?
>264 ____∧∧ 〜' ____(,,゚Д゚) < 2. unloadMovieを使用 UU U U 3.は1で読み込んだものが2で削除した後でも ブラウザにキャッシュされているので 再度1と同じ命令を呼ぶとよい
267 :
264 :04/10/15 15:48:28 ID:NR79zQBv
レスどうもありがとうございます。
>>265 コンテンツの内容が、
重いMovieClipをタイル状に敷き詰めるようなもので、
そのタイルが表示されるのは条件に合致した時だけなので、
できるだけ大元のMovie内部に保持しておくのは避けたいのです。
>>266 3.はブラウザのキャッシュ頼りしか方法はありませんか?
可能であれがLoadMovieしたMovieを配列に読み込んで、一定数を越えれば古いものから削除し、
リクエストがあれば、まず最初に配列を探して見つかればそこから呼び出し、
見つからなければ、再度LoadMovieするような構造にしたいのですが・・・・?
LoadMovieしたMovieに対して識別子を与えるのはActionscriptでは無理なのでしょうか?
>>267 >3.はブラウザのキャッシュ頼りしか方法はありませんか?
うん。無い。
>LoadMovieしたMovieに対して識別子を与えるのはActionscriptでは無理なのでしょうか?
うん。無理。
いMovieClipをタイル状に敷き詰めるという使用自体が苦しい。
>264,267 ____∧∧ 〜' ____(,,゚Д゚) <Flashの仕様により無理 UU U U 外部から読み込んだものを複製しようとしてもできない。 条件に一致したときに対象ムービーが表示されるというのなら 最初に全部読み込んでおいても重くはならないのでは。
270 :
264 :04/10/15 16:07:39 ID:NR79zQBv
>>268 早レスありがとうございます。
あきらめて再度loadMovieします。
>>269 すみません入れ違いになりました。
>条件に一致したときに対象ムービーが表示されるというのなら
>最初に全部読み込んでおいても重くはならないのでは。
表示されてなくても、Movieのデータサイズが大きくなると
レスポンスに影響がでると思ったのですが・・・・
すみませんFlashは初心者なので、このあたりがよくわかってないのです。
この方法も検討してみます。
ありがとうございました。
272 :
Now_loading...774KB :04/10/15 16:52:10 ID:EwFAAB47
質問です Flashでサイトを作ってます。 その際 子ウィンドウ(のようなMC)を何回も attachMovie, removeMovieClip させているんですがMCを消した時に タイムライン変数のメモリは開放されるのでしょうか? onEnterFrameを使っているMCもありますが 消す前に=nullを入れています。 またメモリのチェックの仕方も教えて下さい。
前もここで質問した者ですが、教えて下さい。 タイムライン1 flag = undefined; loadVariablesNum("aaa.php", 0, "POST"); //aaa.phpはmessageとflagを、 //messageは文字列を、 //flagはtrueかfalseか判別し、値を返す i = 1; タイムライン2〜5:フレームラベルroop 空のキーフレーム タイムライン6 if (flag == false) { gotoAndStop("false"); } else if (flag) { gotoAndStop("true"); } else { i++; if(i>30) { message="PHPが応答しません。"; gotoAndStop("false"); } else { gotoAndPlay("roop"); } } タイムライン7:フレームラベルfalse 変数messageを出力 タイムライン8:フレームラベルtrue 変数messageを出力 の様に成っているんですが、何故かいつも タイムライン7に移行し、「PHPが応答しません」と出てしまいます。 いったいどこが問題なんでしょうか・・・・
274 :
262 :04/10/15 17:58:08 ID:cjEuDPe8
再度質問すいません...
>>262 を実行しようとした場合
具体的にどのような記述をすればいいでしょうか?
よろしくお願いいたします。
>>272 消した次のフレームに開放。
nullは無効化、deleteさせないと
メモリのは板違い
>>273 12fpsでi>30じゃ短すぎかも120ぐらいにしてみたら
>>276-277 長々とした記事読んで頂き本当に感謝しています。
文才が無いので、的確に伝えるにはどうしても長くなってしまいます・・・・
>>276 データがきちんと渡されていない、と言うのは
どういう状況で起こるんでしょうか・・・・
また、タイムアウトとは、Flashのタイムアウトでしょうか。
>>277 fpsは15なので試しに150にしてやってみましたが、
やっぱり・・・・駄目です。
____∧∧ 〜' ____(,,゚Д゚) UU U U >278 ブラウザのフォーム等からPOSTでaaa.phpにアクセスした場合 flag=true&message=あいうえお のような形式で表示されるかどうか要確認。 タイムアウトとは phpにアクセスして 応答がなかなか返ってこずブラウザが時間切れでエラーを返すこと。
>>279 確認してみました。
ちゃんとそのような形式で表示されていました。
タイムアウトしてるんでしょうか。。
281 :
Now_loading...774KB :04/10/15 21:48:47 ID:uYdrx4jB
Flash MX 2004を使用しています。 前提条件として aaa ┗bbb ┗ccc0〜cccX(数は可変) という構造のムービークリップがあり、aaaの中にASが書いてあるとします。 配列Arrayの各要素にはccc0〜cccXまでのインスタンス名が格納されています。 この時、for文とthisを用いてaaaからccc0〜cccXまでのインスタンスを指定するにはどうしたらいいのでしょうか? 初めは for(i = 0;i < Array.length;i++) { this.bbb.this["ccc" + i].変数名 = i; } のような感じで指定できるのかと思ったんですが、上手くいきませんでした。 一体どのようにしてやればいいのでしょうか?
FlashMX2004 WinXP on(press){ A.loadMovie(b.swf); } と、ボタンを押してA_mcにb.swfを読み込んでいます。A_mcの位置は、 画面中央付近に配置。1回目にボタンを押した時はA_mcに表示される のですが、2回目以降、なぜか画面の左上に配置されてしまいます (loadMovieNum(b.swf,1)のように)。 何か原因があるのでしょうか?よろしければ、ご教示お願いします。
____∧∧ 〜' ____(,,゚Д゚) UU U U >280 試しに色々試す aaa.phpではなく aaa.txtを読み込めるか確認 読み込み待ち処理がよろしくないのでスクリプトを練り直す LoadVarsを用いてスクリプトを書き直す >281 this.bbb[ "ccc" + i ].変数名 >282 原因はそれだけではわからないが A_mc.loadMovie( "b.swf" ); ではないか。
284 :
280 :04/10/16 15:02:53 ID:K51s5qAr
>>283 わかりました。色々とがんばってみます。
色々と華麗なレス有難うございました。
なぁなぁ、誰かさ。 棒人間とかあるじゃん。 空MCの中に関節ごとのオブジェ入れ込んでから、ASで制御してIKを表現させてる人いる? onClipEvent(enterFrame){ _root.hoge_IK._x = this._x; _root.hoge_IK._y = this._y; }
FlashMX2004です ムービークリップに独自に判断してタイムラインをコントロールさせたいのでが、 うまくいかないです。 @ムービークリップ名 : suuchi このムービークリップに空のレイヤーを作り、 変数 atai = 0 を作成(初期値:0) 別のレイヤー、1フレーム目にstop(); で止める ムービークリップのスクリプト onClipEvent (enterFrame) { if (this.atai == 1) { this.gotoAndPlay(2); }else if (this.atai == 2) { this.gotoAndPlay(20); } 以下else if(this.atai=)が3,4,5,6と続く } A各ボタンのスクリプト on (release) { suuchi.atai = 1; //suuchiムービークリップのatai変数に数値を代入 } 以下suuchi.atai = 2,3,4,5,6、とボタンが複数ある。 問題点:変数を代入しているのに、アニメーションが再生されないです。 ためしに、ダイナミックテキストでsuuchi.ataiを監視していましたが、ボタンが押されると、 ataiに一瞬、数値が代入され消えてしまいます。よい解決法はないでしょうか?
287 :
Now_loading...774KB :04/10/16 18:38:09 ID:VlcSi6qh
Flash5ユーザですが… Flash5にもともと入っている[ヘルプ]-[サンプル]-[ボタン-高度]のサンプルのボタンにくっついているASで、 on (release) { gotoAndPlay (2); /:check = "\"on\""; } っていうのがあるんですが、 /:check って特殊な変数なんですか?
____∧∧ 〜' ____(,,゚Д゚) UU U U >286 多分 各ボタンのスクリプトに delete suuchi.onEnterFrame; が必要 >287 スラッシュシンタックス /:check は_root.check を示す。
289 :
Now_loading...774KB :04/10/16 21:54:52 ID:VlcSi6qh
>>288 Σ(´Д` )
本でもほとんどドットシンタックスなので…
ありがとうございます。
290 :
281 :04/10/16 22:07:59 ID:ztrJSUEg
>>283 どうもありがとうございます。
期待通りの動作をさせることが出来ました。
291 :
Now_loading...774KB :04/10/16 22:28:51 ID:Bkkmj6WV
メインのタイムライン上に、それぞれ上下に動くAとBのMCを配置し、 Aの中にあるボタンを指定された瞬間に押すと、変数a=1 Bの中にあるボタンを指定された瞬間に押すと、変数b=1 最初にAのボタンを押し次にBのボタンを押し、ともに変数が1ならメインのフレームを移動させるには、どうしたらいいのですか? BボタンのASに if(a==1&&b==1){_root.gotoAndPlay();} ではダメでした。 一つのボタンだけなら if(b==1){_root.gotoAndPlay();} これで問題なく移行するのですが。
292 :
286 :04/10/16 22:46:34 ID:Ff8MYc8R
>288 駄目ですた(´Д`; ) on (release) { suuchi.atai = 1; delete suuchi.onEnterFrame; } とボタンに付け加えたのですが、先ほどの症状と同じで 指定したフレームには飛ぶのですが、アニメーションが再生されないです。 (もちろんstop();などで止めていません)
>>292 パス指定の問題だろうね。
どこに存在する変数か指定出来てない。
Aの内部のボタンと言う事は、
if(_root.A_mc.a==1&&_root.B_mc.b==1)
MX使ってます。 UIコンポーネントの、文字の色はどこ(フォルダ名のどのへん)を弄れば変えられますか? UIコンポーネントの中を見てみると相当な行数や、MCが登録されていて、 カスタムしたデザインや、速度やファイルサイズを考えると、 機能を求めなければ、改造よりも、5の頃のように 自分で作っちゃったほうが早い気もするのですが、 ご意見をお願いします。
>>291 変数をaとbじゃなくて_root.aと_root.bにするといいんじゃないかなぁ?
>>292 数値が代入されて消えるって0になるってことかなあ?
suuchi のonClipEvent (enterFrame) の中の
gotoの直前にtrace入れて、どのタイミングでgotoしてるのか
監視してみると何か分かるかもよ。
>>294 2004にしちゃったんでよくわかんないんだけど
結構探せば見つかった記憶があるよ。
コンポーネントのスタイル設定用のアクションスクリプトがあったはず。
UIの機能は結構凄いんで使うのがおすすめかなあ?
一時期俺も自分で作ろうとしたけどさ、プロには勝てないよ。
こちらにおられます先生方の中で「livly」してる方いらっしゃいますか? 違法ツールではなく、シュミレーターを作っているのですが、リヴリーの 中でのASを聞きたいんですけど、ご教示願えるでしょうかm(_ _)m
297 :
Now_loading...774KB :04/10/17 07:47:22 ID:GLi6AqLQ
MX 2004のNumericStepperコンポーネントですが、 矢印をクリックして数値を上下させた時に、 フォーカスが数値入力欄に移動してしまうのを防ぐ方法は無いでしょうか。 changeイベント時にsetFocus()で逃がすことも試してみたんですが、 この方法だと、矢印を押しっぱなしにした時の高速増減ができなくなってしまいます。 ご教授お願い致します。
>>291 出来たのかな。出来なかったのかな。
_root --- A_mc --- A_btn
|____ B_mc --- B_btn
今こう言う階層の入れ子をしてるのは分かるかな。
ボタンはMCと違って特殊な扱いになっておるのです。
A_mcから見た this は A_mc 、 A_btnから見た this も A_mc
つまり、ボタンシンボルの場合はMCとは異なって、this は自分が置かれた階層になる。
ボタンで変数を使った時には注意が必要。
その場合で最もスマートなのは、ボタンを押した時に _root階層 の変数を刺激してやれば良い。
Aの中にあるボタンを指定された瞬間に押すと、変数 _root.a = 1
Bの中にあるボタンを指定された瞬間に押すと、変数 _root.b = 1
299 :
291 :04/10/17 19:49:52 ID:mX/9sRqP
自分なりにいろいろやってみて if(a==1&&this._parent.MC_B.b==1) でうまく動作するようになったんですが このファイルを外部ファイルとして別のファイルに読み込むと、キーを押してもなにも起こりません。 _root.層の変数に変えて一度ためしてみます。
300 :
249 :04/10/17 23:21:16 ID:K5EKNqF6
いろいろ調べてデータのセーブに成功しました しかし セーブする環境によって セーブ時間が異なり 遅い場合データを保存する前にウインドウを閉じてしまうと データが消える場合がありました データの書き込み待ちをどうやって作ったらいいでしょうか?
他のスレでスルーされたのでお願いします。 loadMovie ("JPEGファイルまでのパス", Flash上で読み込む階層); で読み込んだJPGを元の画像のサイズを変えないでFLASHでサイズを拡大することはできますか?
____∧∧ 〜' ____(,,゚Д゚) UU U U >300 SharedObject.flush(); >301 読み込み先をムービークリップにして そのムービークリップのサイズを変更する。
303 :
KEI :04/10/18 02:37:52 ID:MyCNUckU
こんにちは。 FlashMXでロサンジェルス時間を表示するアナログ時計を作りたいのですが、 ACTIONSCRIPTがどうもうまく動作しません(/_\) 日本の時計はうまくいったのですが。。。 MXは比較的簡単なスクリプトで時計ができますが、 時差をどうやって表せばよいのかわからなくて困っています。 どなたかご存知の方がいらっしゃったら、アドバイスをください。 よろしくお願いいたします。
304 :
300 :04/10/18 09:10:41 ID:lXsr2xuM
>>302 ↓フレーム
mySO = SharedObject.getLocal("hogedata")
↓ボタン
on (release) {
mySo.data.name = _root.inname.text;
mySo.flush();
}
テキスト入力された名前をボタンを押すとすぐ書き込む
これであってますかね??
>>303 時差はいかなる時も変わらないから
日本とロスの時差分を、時間から引いてやればいいんじゃないの?
日付が無ければそれで問題ないはず。
>>304 それでいいと思うよ。
なるべく自分でテストしてみるクセをつけような。
306 :
KEI :04/10/18 19:25:59 ID:MyCNUckU
>>305 アドバイス、ありがとうございます。
時差を計算すればよいのですね!
でもひとつ問題があって、実はこのアナログ時計をアメリカで見ても同じように、
日本とアメリカ両方の時間が正確に表示されるように(計2つ)作りたいのです。
ですから、パソコンから自動的に時刻を取得する「now.gethours();」では
うまく動作しなくて困っています。。。
こういう場合は、どういった方法をとっているのでしょうか?
もしもお分かりになりましたら是非お力を貸してください。
よろしくお願いしますm(_ _)m
>306 ____∧∧ 〜' ____(,,゚Д゚) <「何が」「どう」うまく動作しないのか書く事 UU U U
>306 ____∧∧ 〜' ____(,,゚Д゚) UU U U ごめん。言いたいことわかった。 日本とアメリカ両方でCGI利用可能なレンタルサーバを用意し 各サーバから時間をCGI経由で時間を取得する。
>306 ____∧∧ 〜' ____(,,゚Д゚) <修正 UU U U サーバは日本だけで大丈夫か。 CGI内、もしくはFlash側で サーバから取得した日本時間を元にアメリカとの時差を計算する。
世界時(utc)とローカル時のhoursを読み込みんで、その誤差が9時間なら、そのフラッシュを日本で表示している。 15時間?ならロサンゼルスで表示している。って感じでやればおk。
>310 「サーバは日本だけで大丈夫か。 CGI内、もしくはFlash側で サーバから取得した日本時間を元にアメリカとの時差を計算する。」 これのほうが良いだろ
そうかじゃ僕のは無視してください。
でもPCがちゃんと国の標準時設定されてるPCなら、 Flashが世界標準時間取れるっしょ?
getUTCHours()で時計作ればいいのか?
日本時計 = 世界標準時 + 9 ロサンゼルス時計 = 世界標準時 - 7 これじゃだめなんかい? どこにいても同じ表示になると思うけど。 サーバーとか使わないとダメってことは無いと思うんだがなあ。
日本はGMT+9、ロサンゼルスはGMT-8かGMT-7と決まっているのだから、
getTimezoneOffset()の値で切り分ければよいだけと思うよ。
switch(new Date().getTimezoneOffset()){
case -540:trace("ここは東京");break
case 480:trace("ここはロサンゼルス");break
case 420:trace("ここはロスでサマータイム");break
}
時間も別にサーバーを介する必要は無いのでは。
>>313 さんや
>>315 さんの言ってる事に全面同意。時計とタイムゾーンくらいは自分で合わせて
くれてあるでしょ。そこまで面倒みきれん。
here_date = new Date();
utc_timer = here_date.getTime()+(here_date.getTimezoneOffset()*1000*60);
tokio_date = new Date(utc_timer+(1000*3600*9));
los_date = new Date(utc_timer+(1000*3600*-8));
los_summer_date = new Date(utc_timer+(1000*3600*-7));
trace("東京:"+tokio_date);
trace("ロス:"+los_date);
trace("ロス サマータイム:"+los_summer_date);
こんな感じ?GMT表示なのはご愛嬌。
>>316 必死ですねー。物凄い解答お疲れ様です。
319 :
KEI :04/10/19 20:42:57 ID:9Z8lG8ql
丁寧なお答えをありがとうございます!! 早速試してみたのですが、下記のようなエラーが出てしまいます。。。 **エラー** シーン = シーン 1, レイヤー = スクリプト, フレーム = 1 :行 9:シンタックスエラー case -540:trace("ここは東京");break **エラー** シーン = シーン 1, レイヤー = スクリプト, フレーム = 1 :行 10:シンタックスエラー case 480:trace("ここはロサンゼルス");break 時間の取得は下記のようにしており、 その中に教えて頂いたスクリプトを足しています。 now = new Date(); theHour = now.getHours(); theMin = now.getMinutes(); theSec = now.getSeconds(); hour._rotation = (theHour*30)+(theMin/2); min._rotation = (theMin*6); sec._rotation = (theSec*6) いろいろと順番を変えたりしてみましたが、 どうもうまくいきません。 何がいけないのでしょうか。。。 自分でもがんばってやってみますが、 お分かりになりましたらお返事をください。 本当にわざわざありがとうございます。
>319 breakのあとにセミコロン
>>319 そのままコピペしたんだったら、caseの前が全角スペースになってるから削除してみて
シンタックスエラーなら、たぶんそれだと思う
322 :
KEI :04/10/20 03:18:18 ID:sQLNr8B4
>>320 >>321 ありがとうございます!
そのとおりでした!
エラーが出なくなりました(^▽^)
ところが、日本時間が表示されてしまいます。
さっきまで自分で試行錯誤してみたのですが、
何が間違っているのかどうしてもわかりません。
何度も何度も申し訳ありません(/_\)
お力を貸してください。
>322 アメリカ時間にも日本時間が表示されてしまうということですか??
>>322 あなたの問題点を示す文章が
>ところが、日本時間が表示されてしまいます。
これだけなのですが、これじゃあ普通は分からないですよ。
上下の余計な文章はいらないので、状況を詳しく書いてください。
325 :
KEI :04/10/20 13:40:36 ID:sQLNr8B4
えっと。。。私の時間取得の仕方が間違っているのでしょうか。 ActionScriptは下記のように書いています。 now = new Date(); theHour = now.getHours(); theMin = now.getMinutes(); theSec = now.getSeconds(); switch(new Date().getTimezoneOffset()){ case -540:trace("ここは東京");break; case 480:trace("ここはロサンゼルス");break; case 420:trace("ここはロスでサマータイム");break; } here_date = new Date(); utc_timer = here_date.getTime()+(here_date.getTimezoneOffset()*1000*60); tokio_date = new Date(utc_timer+(1000*3600*9)); los_date = new Date(utc_timer+(1000*3600*-8)); los_summer_date = new Date(utc_timer+(1000*3600*-7)); trace("東京:"+tokio_date); trace("ロス:"+los_date); trace("ロス サマータイム:"+los_summer_date); hour._rotation = (theHour*30)+(theMin/2); min._rotation = (theMin*6); sec._rotation = (theSec*6) これでは、ロス時間で動かないのでしょうか???
326 :
Now_loading...774KB :04/10/20 15:10:21 ID:aRjs540T
if(this.hitTest(_parent.line1)||this.hitTest(_parent.line2)){ 〜スクリプト〜 } のように、あるMCが他の複数のMCと重なったときに実行するIF文を作ったのですが、 この重なったMCが複数の中のどのMCであるか知る方法てありませんかね?
>>325 theHour = now.getHours(); ←PC時間
theMin = now.getMinutes();
theSec = now.getSeconds();
utc_timer = here_date.getTime()+(here_date.getTimezoneOffset()*1000*60);←世界時間?
tokio_date = new Date(utc_timer+(1000*3600*9)); ←東京時間
los_date = new Date(utc_timer+(1000*3600*-8)); ←ロス時間
los_summer_date = new Date(utc_timer+(1000*3600*-7));
hour._rotation = (theHour*30)+(theMin/2); ←theHourはPC時間
min._rotation = (theMin*6);
sec._rotation = (theSec*6)
当然時計はPCの時間になりますな。
>>326 >>326 if(this.hitTest(_parent.line1)){
〜スクリプト〜
}else if (this.hitTest(_parent.line2)){
〜スクリプト〜
}
こうじゃだめなんか?
もしくは
var hit_mc;
if(this.hitTest(_parent.line1)){
hit_mc = _parent.line1;
}else if (this.hitTest(_parent.line2)){
hit_mc = _parent.line2;
}
if (hit_mc){ // hit_mcが存在するとif文が実行される。
〜スクリプト〜
}
>>328 やはりそういうやり方しかないんですかねー。
実はシューティングゲームで敵の弾との衝突処理を作っていて、
そういうふうにelse ifで作っちゃうと、敵の弾が多くなったときに
同じ内容の処理なのに莫大な行数が必要になるじゃないですか。
なんか賢いやり方ないかなと迷っていたんです。
あ、弾自身の方に各自ヒット判定を持たせれば良いのか。自己解決しました。 それと、新たに問題が1つでてきて、ヒット判定の話なのですが 横長い線(MC)と丸い自機(MC)を判定させようとするとき 横長い線を斜めに回転させると判定が外郭の真四角部分まで全て ヒット範囲になるのですが、ここの対処方法て無いのでしょうか? /・ ←イメージ図
>>329 できれば、配列なんかを利用していっぺんに判定する方法をお勧めしますよ。
そのやり方だと、弾の数以上に、例外的な状況でのバグが怖いから。
例えばクリアした直後にヒットとか、死んだ瞬間にヒットとか2つ以上同時にヒットとか。
>>330 hitTestをそのまま使っている限り仕方ないのですが、対処法はあります。
例えば線ではなく、点の集まりと考え
・
・
・
・
↑こんな感じに、線の等間隔の位置の点で判定を取ってあげればいいのです。
点を増やせば精度は上がりますが、動作が遅くなるので注意してください。
他にも自分で計算式を作って判定してもいいですよ。
>>331 なるほど、アドバイスありがとうございます。
すごく参考になりました。
ちょっと、fps気にしながらギリギリの精度を模索してみます。
>>332 ベクトルとか分かるならそれでやればいいと思います。
334 :
Now_loading...774KB :04/10/20 17:49:25 ID:Xs3QuqZY
MX2004使用です。
ボタンに
on (release) {
thisSound = new Sound(this);
thisSound.loadSound("
http://xxxxx/hoge.mp3 ",true);
}
というスクリプトで外部MP3を再生させています。
このスクリプトだと1回再生すると止まってしまうんですが
ストップボタンを押す または 違う曲のボタンを押すまで
繰り返し再生させるにはどうしたらいいでしょうか?
ご指導ください。
>334 ____∧∧ 〜' ____(,,゚Д゚) <Sound.start or Sound.stop を利用 UU U U
>>337 ごめんなさい。
sageとくの忘れた。orz
掲示板持ってるような人がマルチ? トリップ割れとかじゃないだろうか
>掲示板持ってるような人がマルチ? _, ,_ ( ゚д゚)!?
342 :
KEI :04/10/22 08:58:53 ID:Z31XFY5q
>>327 お返事ありがとうございます!
下記の部分をロス時間にあわせて変えればいいのですね!
hour._rotation = (theHour*30)+(theMin/2); ←theHourはPC時間
min._rotation = (theMin*6);
sec._rotation = (theSec*6)
自分でがんばって成功させてから、良いご報告をと思ったのですが、
あれからなかなかうまく行きません(/_\)
もう少しヒントを頂けたら嬉しいのですが。。。
hour._rotation = (los_date*30)+(theMin/2); min._rotation = (theMin*6); sec._rotation = (theSec*6)
344 :
Now_loading...774KB :04/10/22 23:01:54 ID:jNdCI3kx
音を鳴らすときカッコに数字が入っているのですが どのような意味でしょうか? いろいろ試してみて、後ろの数字は再生回数っぽいのですが _root.SE.start(0,1);
345 :
Now_loading...774KB :04/10/23 02:15:08 ID:BRzR5cXu
あるmovieclip内で以下のASを書いています this.onPress=function(){ st_select = "chara"+j; //j=1が代入されている duplicateMovieClip(_root.chara_n,st_select,100+j); eval_chara = eval(_root.st_select); trace(eval_chara); } つまり root に chara1 を複製して、その eval を取りたいんですが、 trace を実行しても undefined が返されてしまいます これは何故なんですか? eval_chara = eval(_root.chara1); とするときちんとtraceを返してくれるんですが
>>344 再生開始位置じゃない?
>>345 evalはもう推奨されないじゃなかった?
eval_chara = _root[st_select];
というかその前に
duplicateMovieClip(_root.chara_n,st_select,100+j);
↑こいつにインスタンスの指定がありませんがな
たぶんやりたいことは
this.onPress=function(){
//j=1が代入されている
eval_chara = 複製したいMC.duplicateMovieClip("chara"+j ,st_select,100+j);
trace(eval_chara);
}
これでどうでしょう?duplicateMovieClipは複製したMCへの参照を返してくれますよ。
347 :
345 :04/10/23 02:59:03 ID:BRzR5cXu
>>346 あ、できました
ありがとう
Helpを見たらMCのメソッドでは無い使い方があって
>duplicateMovieClip(target, newname, depth)
> target 複製するムービークリップのターゲットパス。
> newname 複製したムービークリップの一意識別子。
となってたんですが、
>>346 の方が遥かに使いやすいです
evalはもう推奨されない なんてこたぁない。 []を用いると、配列を用いているのかそれともevalの意味なのか ソースを見てわかりにくい場合があるので []を使わずにevalで書ける記述の場合はevalを用いることにしている。
>>348 説明足らずですいません。
Flash4からFlash5になった時に
等式の左辺にevalを使用できなくなったので
[]で統一するほうが安全かなという程度です。
この場合はevalでもいいですね。
ヘルプより
Flash 5 以降では、eval() を使用して変数の値またはインスタンス名を動的に設定および取得することはできません。これは、等式の左辺に eval() を使用できないためです。たとえば、次のようなコードは、
eval ("var" + i) = "first";
次のコードに置き換える必要があります。
this["var"+i] = "first"
質問です 一度に何個かの当たり判定をつけるにはどうすればいいですか やっぱり努力と根性?
>>350 判定したいMCを全部同じMCにまとめとくとかどうよ
352 :
Now_loading...774KB :04/10/23 17:00:41 ID:K6cLZ8YV
FLASHリモーティングを使用してJavaオブジェクトとマッピングしています。 この場合、ASでもJavaと同じ形式でクラスを定義して Object.registerClass()で読み込んでますが、 AS2.0でもこの方法でマッピング行うのが正しいのでしょうか?
353 :
Now_loading...774KB :04/10/24 22:49:04 ID:+Cd74apU
AS2.0での質問なんですが asファイル class action_01 extends MovieClip { } としてMCとリンケージさせました。 ムービークリップの中にダイナミックテキストを配置し変数名をmytxtと しました。 上記の別スクリプトファイルからmytxtに文字を設定したいのですが どのようにすればよいのでしょうか?
354 :
Now_loading...774KB :04/10/25 01:57:14 ID:ZCyD10WA
ボタンを押した時 [A] という場所にFlashを読み込みたい場合はどうすればよいのでしょうか・・・ 以前あった神サイトがなくなっていて調べられずにいます。。。orz どうかご教授のほどお願いします
フラッシュで
ttp://www.fasco-csc.com/index_j.html (↑FASCO-CS)
にあるようなゲームを作る場合、アクションスクリプトをどのように使うのがいいでしょうか?
次の段階に進む条件を満たしたかどうかの判定はif(else)を使えばいいのかな?と思うのですが、
使用法がぼんやりとしかわかりません。というか、わかっていないかも。。。
どなたかよい方法や、こうしたゲームの作り方などでアドバイスありましたらよろしくお願いします。
また、上記参考URLのようなゲームを作る解説などがあるサイトでオススメサイトがありましたらぜひ教えてください。
因みにソフトはMXを使っています。
よろしくお願いします。
クリムゾンルーム系のゲームって事? 透明ボタン被せて、フラグ変数の制御して終わりじゃないのかな?
357 :
Now_loading...774KB :04/10/25 10:58:11 ID:wR8Zva4o
MX2004 AS2.0環境での質問です。 テキストフィールドのテキスト(内容は掲示板などの方式でphpより読み込み)の一部だけ <font size="24">テストhtml</font>テスト<span class="test">テストcss</span> (cssも文字サイズを変えるだけとします)のように行って、普通に表示すると確かに適用されて文字が出力されるのですが、 css、もしくはhtmlによるフォントサイズを適用しつつ、Flashでテキストフィールドプロパティを使いクライアントがいつでも任意に全体の文字サイズを 大きくしたり小さくしたりする方法が見つかりません。(手順は逆でも構いません) ヘルプにはcssを適用したテキストフィールドはプロパティによる受付をしません といったような記述がありました。 さらにプロパティを適用したテキストフィールドはhtml <font size>を最初から受け付けてくれません。 荒技をお知りの方お願いします。
____∧∧ 〜' ____(,,゚Д゚) UU U U >354 [A]という場所に空のムービークリップを配置し そこにswfを読み込む。 >357 テキストフィールド全体をムービークリップで包み そのムービークリップのサイズをスクリプトで変更させる。
>>353 それはリンケージではなくMovieClipクラスの継承。
ダイナミックテキストを配置して変数名をmytxtとしたムービークリップの識別子を仮にhogeとすると、
action_01クラスのインスタンスを生成した時に、
mytxtに文字列を設定したMCインスタンスをステーjに配置するのならこんな感じ。
class action_01 extends MovieClip{
static var depth:Number = 1;
public var mytxt:String;
//コンストラクタ関数
public action_01_class(){
_root.attachMovie("hoge","hoge"+depth,depth++);
this = eval("hoge"+depth);
//適当な座標設定
this._x = 100;
this._y = 100;
this.mytxt = "文字列";
}
}
コンストラクタ関数名にミス action_01_class → action_01
とらぶるうぃんどうずのようなムービーなのに画像をクリックすると 反応するフラッシュを作る方法がわかりません。 どうやればいいのでしょうか。
362 :
KEI :04/10/25 18:53:38 ID:eE6uin7s
>>343 アドバイスありがとうございました!
そうか!!と思い、あれからずーっとActionScriptに取り組んでいました。
が、一向にうまく動かず、短針がぐるぐる回っている状態が続いています。。。
なぜなのでしょうか。。。
今度こそ、いい知らせを書き込もうと思っていたのですが、
どんどん時間が経ってしまうので、先にお礼を!と思い、
こうして書いています。
本当に本当に丁寧に教えていただき、
ありがとうございますm(_ _)m
がんばります!
>>361 〜のようなFlashを作りたいんですが、のような質問する時は、
URLよろしく。
フラグ変数って何ですか?
>>359 いや、多分そうではなくて、action_01をあるムービークリップのAS2.0クラスに設定したんだと思う。
その場合はこうなるハズ。
import mx.controls.TextField;
class action_01 extends MovieClip
{
private var mytxt:TextField;
function action_01 ()
{
trace(mytxt); // test
mytxt.text = "文字列";
}
}
// もしかしたらコンストラクタから1フレーム遅らせて設定しないとダメかも
質問です。 nowloadingのオープニングにしたいのですが、 音楽をライブラリに読み込んで、「リンケージ」の 「最初のフレームに書き出し」にチェックをいれると、 nowloadingの表示される1フレーム目が読み込み開始しません。 というか、正確にいうとどうやら音楽をすべてよみこまないと、 1フレーム目を再生しないらしく、nowloadingのアニメが全く無意味です。 かといって、「リンケージ」の「最初のフレームに書き出し」を はずしてしまうと、 s.attachSound("winsnd"); のようにattachSoundコマンドで呼び出しても、音楽がきちんと 再生されません。 なんとかしてattachSoundで音楽を「再生」「停止」して、 かつnowloadingもやりたいのですが、どうすればよいのでしょうか。
>>367 他に良い方法があるかもだけど、自分のやってる方法紹介。
新規シンボルを作る。
作ったシンボルの1フレーム目のフレームアクションでstop()を呼ぶ。
2フレーム目のフレームに読み込みたい音を配置する。
上のシンボルを、ローディング処理が終わった後のフレームに適当に配置する。
これで、attachSoundで使えるようになると思う。
大量のムービーをattachMovieで使いたいときも同じ方法で使えます。
お試しをー。
369 :
367 :04/10/25 23:45:51 ID:SLMnKez3
>>368 ありがとうございます!!!!!!
今試してみたところ、きちんとnowloadingが表示され、
かつ、音楽も再生されました。
ありがとうございました。
370 :
Now_loading...774KB :04/10/25 23:56:06 ID:6uAzx0Vi
>>353 ,366
ありがとうございます。
>action_01をあるムービークリップのAS2.0クラスに設定したんだと思う。
そうです、今回の質問は366さんのほうです。
どうもです、出来ました〜。
371 :
357 :04/10/26 00:08:45 ID:HaNH1bnk
>>358 あ、荒技過ぎます・・・・・
参考にしておきます・・・・ありがとうございました
372 :
Now_loading...774KB :04/10/26 16:54:25 ID:rQvLaXCP
>>343 >>362 僕もFLASH世界時計作ってるんですけど大分苦戦してます。
詳しい作り方がわかる方ぜひ教えて下さい。
お願いします。
373 :
Now_loading...774KB :04/10/26 16:58:33 ID:rOFAlr4u
FLASHでお気に入りに追加ボタンを作りたいのですが やり方わかる方いましたら教えてくださいませ。
374 :
しぃ虐待反対委員会会長 :04/10/26 17:01:32 ID:BqJN4f4R
タイピングモナー ver 3.20 タイプ数:176 ミスタイプ:38(21.5%) 平均速度(keys/s):2.3 スコア:721 ランキング:2532位/3303人中 あなたは「逝ってよし++」レベルです
>373 ____∧∧ 〜' ____(,,゚Д゚) UU U U getURLで「お気に入り追加」命令用JavaScriptを呼び出す
376 :
Now_loading...774KB :04/10/26 17:32:28 ID:rOFAlr4u
>>375 どうもありがとうございます。
これでうまくいくかやってみます。
ボタンのAS
on (release) {
getURL("javascript:openWindow()");
}
htmlに書くスクリプト
<script language="JavaScript" type="text/JavaScript">
<!--
function openWindow(){
window.external.AddFavorite('URL','name'");
}
-->
</script>
>>376 なんで
getURL("javascript:openWindow()");
↑ここに直接お気に入りに入れるJavascript書かないの?
378 :
Now_loading...774KB :04/10/26 19:07:36 ID:rOFAlr4u
最初これでやったら出来なかったもんで。。 on (release) { getURL("javascript:window.external.AddFavorite('URL','name'"); } どこか間違ってますか?
>>378 Javascriptは分野じゃないけどさー
("javascript:window.external.AddFavorite('URL','name'");
この部分さ、「(」が2個あるのに、「)」が1個しかないのは、おかしくないかなー?
380 :
378 :04/10/26 19:30:59 ID:rOFAlr4u
>>379 ("javascript:window.external.AddFavorite('URL','name')");
で出来ました。
ありがとうございました。
時差のある時計ができない云々言ってる人が約1名いるみたいなんで、
OOPの勉強ついでに作ってみた。ソースUPしとくので適当に覗いて。
スクリプトを記述してあるのはASファイルと、FLAファイルのフレーム1のフレームスクリプト部分のみ。
ちなみにスクリプトの腕は初心者級なのであくまでも参考程度に。
ttp://haiiro.info/up/file/671.zip
382 :
Now_loading...774KB :04/10/27 06:36:56 ID:mzlnBDWd
action scriptでfpsを操作するにはどうしたらよいのですか?
>>382 できるらしいが、公式には無理って事になってる。
かなり嫌な処理なので本当に必要かよく考えたほうがいい。
お勧めしない。
384 :
Now_loading...774KB :04/10/27 11:10:43 ID:4Po9ILQB
action scriptを使って flashのみで メッセンジャーのようなものを作るのは可能でしょうか もしあれば教えていただきたいのですが
>384 ____∧∧ 〜' ____(,,゚Д゚) <Flash単体では無理 UU U U CGIとかJavaとかFlashCommunicationServerを用いる必要あり
この間から、Flash勉強し出したんですけど、 マジでほんさんのサイト 分かりやすいですね。 あと、今日>>1にある本見てきたんですけど、 ActionScript関係の本は、リファレンス本以外 ほとんど値段分の内容が無い本ばっかりでしたね。 (関数関係が最後にちょこちょこあるだけじゃん) マジで、ほんさんのサイトすごいと思いました。 ムービーをタイムラインで自由に扱える以上、 そのタイムラインとムービの挙動制御系を覚えれば ある程度のもののムービー(メニュー・広告Flash)を作れると思いましたが いかがでしょう?そんなにあまくないですかね?orz もうちょっと早く勉強しとくべきだったFlash.
387 :
Now_loading...774KB :04/10/28 00:06:53 ID:ZKDtMtuH
>>385 JavaとかFlashCommunicationServerは
自サーバがいるんですよね
cgiにするしかないかなぁ。。
flashでの基本的なチャットの作り方を解説したサイト
とかあったら教えていただけないでしょうか
>>387 flashはインターフェイス部分に過ぎないと考えた方がいいよ。
普通のチャットが作れなきゃ、flashのチャットは無理。
質問させていただきます。 目的地dxをSetDestinationで指定すると、スムースに目的地へ移動するテキストを作るために 下記のようなクラスを作ったのですが、SetDestinationを呼び出してもdxが変更されません。 何故ですか? class MovingText extends MovieClip { static var num:Number = 0; private var dx:Number = 0; public function MovingText() { _root.attachMovie("MvText", "MvText" + num, 0); this = eval("MvText" + num); num++; this.onEnterFrame = function():Void { _x += Math.round((dx - _x) / 4); } } public function SetDestination(x:Number):Void { dx = x; } }
>>389 動きそうな感じではあるんだけどねー。
とりあえずこういう場合は
public function SetDestination(x:Number):Void
{
trace("SetDestination");
trace("x = " + x);
dx = x;
trace("dx = " + dx);
}
こうやって、処理がどこまで来てるか確かめてみよう。
そしたらこっちもアドバイスしやすいし。
SetDestination(320)を実行すると public function SetDestination(x:Number):Void { dx = x; trace("x = "+ x); trace("dx = "+ dx); } では x = 320 dx = 320 と出ます。 this.onEnterFrame = function():Void { _x += Math.round((dx - _x) / 4); trace("_x = "+ _x); trace("dx = "+ dx); } では _x = 0 dx = 0 と、SetDestinationをする前と変わらない結果しか返しません。 SetDestination内のdxと、this.onEnterFrame内のdxが一致していないようなのですが。
public function onEnterFrame():Void { } こう?
>>391 今ふと試してみましたが、別にそのスクリプトで普通に動きましたが。
ちなみに
>>389 のスクリプトだと、attachMovieしたMCは一緒に動きません。
(_rootにattachMovieしているので)
attachMovieしたMCも一緒に動かしたいなら、_rootをthisにでも変えてみ。
スライドショーを作るときの質問です。 画像4 (1−4) 左矢印 右矢印 この状態のとき、右矢印を押しても変数の値を変えず、 いわゆる無反応にさせたいのですが どういう風なASを記述すればよいでしょうか? if ( 変数(クリック回数) == 3 ) 変数(クリック回数) = 3 というような感じ”3”の時はロックさせれば、OKでしょうか? ( となると、左矢印も同じよう”1”でロックさせればいいのかなぁ。。) このようなものを作りたいのですが、コレの状態で new_Array での配列で、ムービーのフレームを移動させたいいときの ASがちょっとどう書いていいものが分かりせん。。 先生方、どうかご教授いただければと思います。m(_ _)m
395 :
Now_loading...774KB :04/10/28 13:09:34 ID:Vxz//z99
exeとして起動した時に、外部の映像ファイルを読み込みたいとのことだが…できますか?
396 :
395 :04/10/28 13:22:36 ID:Vxz//z99
上司に聞いたら無理ポ。って言われましたので。 失礼しました。
外部フォルダから複数の画像を呼び出してサムネイル表示 (画像の枚数によってはスクロールも)をさせ、 尚且つそれらをドラッグ&ドロップで任意のエリアに 拡大表示させたいのですが、配列とかがよく判らなくてうまくいきません。。 それから、XMLソースをそのまま表示させることはできないのでしょうか?
>>397 どこまで自分でやってみて、具体的にどの部分がわからないの?
質問の範囲が広すぎて答えられない。
ありがとうございます、すみません(汗 とりあえずサムネイル画像の方は外部XMLファイルを参照して、 一応表示されています。でもスクロールのさせ方が判りません。。 あと、ドラッグ&ドロップの方は、任意のエリアにドロップさせることは 可能なのですが、枠内からドロップさせた画像が一部はみだしてしまいます。 この状態から、指定エリア内にきちんと収まるように 画像を拡大表示させたいのと、XMLファイルを参照して反映という形ではなく、 ソース自体をテキスト文書のようにそのまま表示させることはできないか。。 ということです。 使用しているOSはWin2k Pro、FlashはMX2004 Pro、playerはVer7です。
>>399 data_xmlをXMLクラスのインスタンスとすると、以下のコードでXMLの内容を表示できます。
data_xml.onData=function(src:String){
trace(src);
}
画像については、loadMovie("image.jpg")で画像を読み込んだ後、
そのMovieClipのインスタンスの_widthと_height使ってうまくリサイズしてください。
例えば100pxにしたい場合、こんな感じ。
var scale_width=100;
var scale_height=100;
//MovieClip display
display.loadMovie("image.jpg");
display.xscale=100*scale_width/display._width;
display.yscale=100*scale_height/display._height;
動かなかったらすまんorz
401 :
397 :04/10/28 16:55:03 ID:8V8qnuFt
丁寧に有難うございます。 ちょっと今からやってみます(゚ー゚*) また、結果ご報告いたしますー。
シンボルを上下左右の矢印キーに合わせて動かす方法を教えてください。
403 :
402 :04/10/28 19:06:30 ID:9x0FVBs+
解決しました。
404 :
397 :04/10/28 19:07:04 ID:8V8qnuFt
2時間程作業してましたが、力量不足で解決不可でしたorz せっかく親切丁寧に教えてくださったのに申し訳ないです(ノД`) 1つめのXMLの内容を表示する場合なのですが、 表示させたい場所指定は何処でするのでしょうか? また、Jpgを呼ぶのにまずインスタンスを生成し、 //サムネイルインスタンスの生成と設定 for(var i:Number= 1; i<=menu_num; i++) { var menu_str:String = "menu"+i; _root.attachMovie("menu", menu_str, i); obj_array[i] = eval(menu_str); obj_array[i].num = i; obj_array[i].mctext = i; obj_array[i]._x = 120; obj_array[i]._y = 80*(i-1); obj_array[i]._alpha = 80; //XMLオブジェクトからJPG名を読み込む var jpg_str:String = obj_xml.firstChild.childNodes[i-1].firstChild; obj_array[i].jpg_mc.loadMovie(jpg_str); このような形で外部から読み込ませているのですが、 それでも自動リサイズさせることは可能でしょうか?
405 :
389 :04/10/28 20:39:35 ID:8E9oECnE
力業で自己解決しました。
this = eval("MvText" + num);
↓
myself = this = eval("MvText" + num);
としてthisの代わりにmyselfで自己指定したところ意図通りに動きました。
>>393 _rootをthisに代えたら何も生成されなくなってしまいました……
>>397 ちょっと長くなってぬまん。
まずXMLについて。
XMLを読み込むときは以下のようなイディオムになっているはず。
//サムネールをロード
this.loadThumbnail = function(){
var filename=obj_xml.firstChild.childNodes[i-1].firstChild;
...(ここでJPGをloadMovie()させる)
}
//XMLがロードされたときに呼ばれる関数
this.onGalleryLoad = function(sccess:Boolean){
if(!success) return;
loadThumbnail();
}
obj_xml= new XML();
obj_xml.ignoreWhite=true;
obj_xml.onLoad=this.onGalleryLoad;//ここでロードされたときに呼ぶ関数を指定
obj_xml.load("gallery.xml");
続く。
で、XMLの中身をを表示させたいなら以下のソースをobj_xml.load("gallery.xml");の前に付加する。 obj_xml.onData = function (src:String) { if (src == undefined) { this.onLoad(false); } else { trace("XMLの中身:"); trace(src); this.parseXML(src); this.loaded = true; this.onLoad(true); } } とりあえずXMLの内容の表示に成功したら報告してちょうだい。 JPGについては、 obj_array[i].jpg_mc.loadMovie(jpg_str); の後に obj_array[i].jpg_mc.xscale=100*320/obj_array[i].jpg_mc.width; obj_array[i].jpg_mc.yscale=100*240/obj_array[i].jpg_mc.height; とつけてみれば画像サイズが320x240になるんじゃないかな。
408 :
397 :04/10/29 00:20:52 ID:IDQH47/y
>>406-407 とても詳しく解説してくれてありがとうございます(>_<)
今から教えてくださった方法で試してみます。
作業を終わったら、結果報告しにまいりますね。
本当にありがとうございましたー(゚ー゚*)
409 :
397 :04/10/29 02:15:48 ID:IDQH47/y
連投すみませんm(_ _)m えと、今まで必死に試してたのですが 今日のところはどうにもうまく行きませんでしたorz 明日もう少し続きをやってみて、また報告しにこさせていただきます。 406さん、本当にお世話になりましたー。
411 :
Now_loading...774KB :04/10/29 11:28:58 ID:c4nQ/XKl
フラッシュのA(メニュー.swf)とB(コンテンツ.swf)を一つの HTML上に配置し、Aから変数をBに渡すことは可能ですか?
>>411 localConnectionのヘルプにそのまま乗ってるよ
413 :
397 :04/10/29 14:35:51 ID:AOCjPeEC
>>410 重ね重ねありがとうございます。
DLさせてもらって参考にさせていただきますっ(゚ー゚*)
414 :
Now_loading...774KB :04/10/29 17:07:31 ID:c4nQ/XKl
>>412 素早い解凍ありがとうございます。
もうひとつオマケに質問なんですが、
on (press) {
fscommand("exec", "000.exe");
}
で同一階層exeファイルを起動しようとしてるのですが、起動しません。
問題と思われる点はどこでしょうか?プロジェクタにしても起動しません。
415 :
414 :04/10/29 17:34:16 ID:c4nQ/XKl
度々すんません。自己解決しました。orz
416 :
質問です :04/10/29 23:20:28 ID:v47HuSBi
マウスのy座標が、0より小さくなった時又は240より大きくなった時 にフレームを3に移動したいのですが下記のスプリクトではそうならないようです。 どうすればいいですか? onClipEvent (enterFrame) { _x = _root._xmouse; _y = _root._ymouse; if (_y<0) { gotoAndStop(3); } else if (_y>240) { gotoAndStop(3); } }
>>416 あなたがどういう動作を望んでいるのかわからない。
フレームを3に移動したいってのは、ムービクリップのフレーム?
それともルートのフレーム?
ルートのフレームならgotoAndStop(3)を_root.gotoAndStop(3)に書き換えるだけ。
あと、_rootのY座標が0より小さくなることは基本的に有り得ない。
>461 ____∧∧ 〜' ____(,,゚Д゚) UU U U そのスクリプトを記述しているムービークリップ内のフレームは しっかり3に移動される。
419 :
416 :04/10/30 14:02:57 ID:YNxJ7nxE
>>417 _root.gotoAndStop(3)にしたら思い通りにいきました
ありがとうございました
420 :
Now_loading...774KB :04/10/30 18:04:17 ID:qEWMNfv3
少々面倒なのですができたらお願いします。 シューティングにおいて、大量に生成し続なければならない 敵MCや弾MCを、AS上でちゃんと管理するにはどうしたらいいのでしょうか? Flashはコレクション型や厳密なforeachがないようなのですが ・オーバーフローしないように、MCが登録される集合の中で、 削除されたMCが入っていた場所と生存しているMCが入っている場所との フラグメントを見て空きをチェックして新規挿入する ・挿入、削除が頻繁に行われる集合に対する繰り返し処理の書き方 等の処理の記述がうまく書けません。 また、もっと簡単なやり方があったら教えていただきたいです。
422 :
Now_loading...774KB :04/10/30 21:30:55 ID:qEWMNfv3
>>421 ありがとうございます。
この直接的な配列記述を避けるというのは、
ある種類のオブジェクトのグループを
全て同名のオブジェクトとして登録することで走査の際に
配列でやらなくてもオブジェクトを指定するだけで
後は内部に任せてよいということでしょうか?
>>422 同名のオブジェクトの中に、「名前」をつけて格納する。
削除や追加は、その「名前」でアクセスする。
全体を動作させたりするときは、for 〜 in を使う。
ってことだと思う。
>421流し読みした程度だから、間違ってたらスマン。
424 :
Now_loading...774KB :04/10/31 00:11:32 ID:i4wN6R/U
質問です。 WIN-XPで MX使っています。 ダイナミックテキストに外部テキストファイルを読み込むことは できました。が、そのダイナミックテキストにUIコンポーネントの スクロールバーをはりつけたところ、全然反応しません。 ドラッグして動かす部分が出てこないのです。 普通に外部ファイルではなく、flaファイルそのものにテキストを 埋め込んだ場合はスクロールバーもでてきて反応します。 外部から読み込んだ場合はうまくいかないものなのでしょうか、、、、? よろしくお願いします。
>420,422 ____∧∧ 〜' ____(,,゚Д゚) UU U U 423さんの言うとおり。 各敵MCや弾MC複製時に各IDを持たせ、削除時にそのIDから 全ての敵MCや弾MCを管理するオブジェクトにアクセスする。 走査の必要はなくなるハッシュ法。
>>424 ダイナミックテキストの変数に直接読み込むと、スクロールバーは反応しない。
解決策は、ダイナミックテキストに適当なインスタンス名を付けて、
そのtextプロパティに読み込んだ内容を入れる。
仮にあなたがダイナミックテキストに付けてる変数をdisplay_var、外部ファイルの内容が入ってる変数をsrc、
これからダイナミックテキストにdisplay_txtというインスタンス名を付けるとすると、
あなたのスクリプトの
display_var = src;
の部分を
display_txt.text = src;
と書き換える。
>424 ____∧∧ 〜' ____(,,゚Д゚) UU U U 外部から文字列を読み込んだから うまくいかなくなるということはない。 適当な変数に複数行になる文字列を代入したものを用意し 対象テキストエリアに その値を代入してみて スクロールバーが動作するかどうか実験。
>426 ____∧∧ 〜' ____(,,゚Д゚) <知らんかった! UU U U 勉強になりました。
このスレ質問しなくても見てるだけで勉強になるよなぁ。
430 :
424 :04/10/31 02:09:40 ID:xc06vnph
>>426 ご回答ありがとうございます。
すみません。あまりActionScriptが得意でないもので、教えてもらった後
調べたり試してみたのですが、うまくいきません。
少しまとめてみます。
テキストファイルの名前: smp.txt
テキストの中身の初めにかいてある文字(変数名): nakami=
ダイナミックテキストには直接ASを組み込めなかったので、
シンボル(ムービークリップ)化したインスタンス名: kumikomi
ダイナミックテキストのインスタンス名: textfield
ダイナミックテキストの変数名: nakami
ここで、通常であればインスタンスkumikomiに
onClipEvent(load){
System.useCodepage = true;
this.loadVariables("smp.txt");
}
と記述すれば、テキストファイルの文字自体はダイナミックテキストに
表示されます。しかしスクロールバーは動きません。
ですが、426さんはtextfieldをうまく使えとのこと。どのようにすれば
よいのでしょうか。本当にすみませんです。
>>427 ありがとうございます。色々と試してみたのですが、うまくいきません。
1.テキストフィールド作製 2.テキストの内容量によってスクロールバーが変化する 3.テキストフィールドに内容が読み込まれる ↑ヒント:この順番だから悪い
432 :
424 :04/10/31 02:41:33 ID:xc06vnph
>>431 1→3→2の順にすればよいのでしょうか。
試行錯誤しておりますが、なかなかうまくいかず。
とりあえず、今日は寝てまた明日やることにします。
ありがとうございました。
>>424 横槍入れるようで悪いが、
スクロール可能なテキスト処理ならTextAreaが楽
TextAreaコンポーネントを配置して、次の方法で文字をセットする
TextAreaのインスタンス名.text = "文字列";
スクロール処理を書かなくていいからソースがきれいになるよ
詳しくはヘルプを見てくれ
>>430 そのスクリプトを最大限に尊重しつつ望みの動作をさせるには、
こんな感じに書けばとりあえず動きます。
・・・色々と問題のあるスクリプトですが。
onClipEvent(load){
System.useCodepage = true;
this.loadVariables("smp.txt");
var loadData_lv = new LoadVars();
loadData_lv.onLoad = function(success){
if(success){
textfield.text = nakami;
}
}
loadData_lv.load("smp.txt");
}
435 :
424 :04/10/31 10:43:55 ID:evUXTZN0
>>433 TextAreaですね。
ヘルプで勉強してみます!
ありがとうございました。
>>434 試してみたところ、なんと動くではありませんですか!
でも、どうして動くのかは、今のところさっぱりわかりませんので
これから解説書と格闘です。
ありがとうございました。
変数の名前を入れた後で
インスタンス名.textで出力するようにすると
うまくいかないことあるね。
>>428 タソ
コテハン化希望
質問です。 初めてフラッシュゲームを作ろうと思っているのですが A-B と入れ子になっているMCがメインタイムフレームに配置してあり Bがロードされた時にイベントを起こしたいのですが、どのようにしたら良いでしょうか? ・FLASH_MXを使っています ・Aはマップで、Bは敵キャラ、マップが動くので入れ子になってます。 ・Bは複製させる予定なので、フレームアクションで制御してます ・_parent.onLoadイベントを使ったところ、 A-B のカタチではイベントが起きず、 試しにBを直接メインに配置した所イベントが発生しました。 なんかクイズみたいな書き方になりましたが。。。 こうしたら良いかもって意見があったらよろしくお願いしますm(._.)m
>>437 onLoadの代わりにonClipEvent(load)を使えとヘルプは言っている。
ただ、すべてのインスタンスに設定するのは現実的ではないので、
MC内部のフレームアクションに初期化処理を直接書けばいいのかも。
どうしてもロード時に処理したいんだったら、
メインタイムラインのフレームアクションからインスタンスのonLoadを手動でたたく。
//メインタイムラインのフレームアクション
this.onLoad=function(){
A_mc.onLoad();
}
//Aのフレームアクション
this.onLoad=function(){
B_mc.onLoad();
}
//Bのフレームアクション
this.onLoad=function(){
(任意の動作)
}
439 :
超基本的スレ459 :04/10/31 17:03:53 ID:59kLYWCU
>438 さん レス有り難う御座いましたm( __ __ )m 私の書き方が悪かったですね。 つまり ・スクロールするマップA_mcの上に敵B_mcが乗っている ・敵B_mcは時間内で無限に生成される メイン ├マップA_mc ├敵B_mc ├敵B_mc ├敵B_mc ・ ・ この条件で、 ・敵B_mcが発生した時に一度だけ、変数を定義するイベントを起こしたい と言う事なのです。 敵B_mcのフレームアクションにonLoadを使えば出来るだろうと 思ったのですが、A-Bと入れ子になっていると、onLoadが動かないらしく 途方にくれていました。。 分りづらくてすみません orz
onLoadは関係ないと考えてみてください。 例えば敵のIDを定義するとき、Bのフレームアクションに if(this.enemyID==undefined) this.enemyID=_parent.getNewEnemyId(); と書けば一度だけ動くはず。 あとはAのフレームアクションにgetNewEnemyId()を実装すればOK この応用で、一連の初期化を行いたいときはこう記述する。 //Bのフレームアクション if(this.init==undefined){ (初期化処理) this.init=true; }
441 :
超基本的スレ459 :04/10/31 23:38:53 ID:59kLYWCU
>440 さん やっっっと思ったとおりに動かす事が出来ました! ありがとうございました(*_ _)
またageてしまった・・・・ごめんなさいorz
ちと質問です。 コンポーネントのクラスへの参照をLocalConnectionで異なるswfに転送したいなあと考えてます。 //送信側swf var param = new Object();//送信するオブジェクト param.classEP = mx.controls.ComboBox; //クラスへの参照を定義 param.text = "test"; //ちゃんと転送できるかテストする変数 var connToDst = new LocalConnection(); connToDst.send("connection", "onData", param); //受信側swf var connFromSrc = new LocalConnection(); connFromSrc.connect("connection"); connFromSrc.onData = function(param){ for(var key in param){ trace(key + "=" + param[key]); // "classEP=Function" と出るはず } } いざデータを受信してみると、テスト用変数(param.test)は正常に渡されるのですが、 クラスへの参照(param.classEP)は正常に渡されていません。 エラーも吐かず、ひっそりと抹消されてますorz クラスへの参照を文字列で受け取り、文字列をキーにして参照を抽出すれば回避できますが、 もっとエレガントな回避方法はないのでしょうか? 動作環境はFlash MX 2004 Professional for Windowsです。
>>441 補足。
このテクニック、実はヘルプに書いてあります。
ActionScriptユーザーガイド→ベストプラクティスの使用→
→ActionScriptのコーディング規則→ActionScriptの記述→初期化の追加
よーく読むと、こんなことが書いてあります。
> 次のコードはアプリケーション内の最初の関数呼び出しで、初期化を行う唯一のものです。
Macromedia語から地球語に訳すと「ある処理を一度だけするにはこう書きます」って意味。
ヘルプのコードに if (init == undefined) とか init = true; とか登場してきて、
今読めば納得できるはず。
こっちを見るともっとシンプルかも。
ActionScriptユーザーガイド→ActionScriptの基礎→データ型について→未定義 (Undefined) データ型
MXで質問です。 MC(MovieClip)に各々EnterFrameを指定するよりも、 一つのMCに全てのMCを制御するAS(ActionScript)を組み込んだ方が 処理が軽くなりませんか? 非同期に処理しているなら、そうなると思ったんですが。
>>445 自分で試した処理を(ry
処理時間は以下のコードで分かる
var nTime:Number = getTimer();
this.onLoad = function(){
trace('処理時間:'+(getTimer()-nTime)+'msec');
}
>>446 d。そのコードで試してみました。
一つに纏めて制御した方が軽かったです。
けど、確証が持てないから(コードにもよるかもしれんし)
報告d。 予想でしかないが、速度差はあまりないはず。 厳密なことを言うのなら、記述するコードによってどっちが速いか変わると思われ。 [ひとつの処理にまとめた場合] ・MC内のonEnterFrameへの参照がなくなる分早くなる ・ただしMC内の変数への参照処理を増やした場合、遅くなる [処理を分散させた場合] ・MC内へのonEnterFrameへの参照が増える分遅くなる ・ただし、MC内での参照処理を増やした場合、メインタイムラインから直接参照するのと比べて速度は低下しない 自分も開発関係者ではないから確証は持てない。 まあ実行速度よりも開発速度を上げたほうが後々楽。
質問させて頂きます resultData[0]の値が、最後に実行されたcalcDataの戻り値で 上書きされているようなのですが何故でしょうか。 class resultObject{ public var value:Number; } var resultData:Array = new Array(); function calcAll():Void{ for(var i = 0; i < 3; i++){ resultData.push( calcData(i) ); trace(resultData[0].value + " , " + resultData[i].value); } } function calcData(i:number):resultObject{ var d = new resultObject(); d.value = i * 20; return(d); } 実際のトレース結果 期待しているトレース結果 0 , 0 0 , 0 20 , 20 0 , 20 40 , 40 0 , 40
>>449 MX2004で試したら期待通りの出力がされましたよ。
以下のような形でテストしました。
外部asファイル:resultObject.as
------------------------------
class resultObject{
public var value:Number;
}
フレームスクリプト ------------------------------ var resultData:Array = new Array(); function calcAll():Void{ for(var i = 0; i < 3; i++){ resultData.push( calcData(i) ); trace(resultData[0].value + " , " + resultData[i].value); } } function calcData(i:Number):resultObject{ var d = new resultObject(); d.value = i * 20; return(d); } calcAll(); 結果 ------------------------------ 0 , 0 0 , 20 0 , 40 特に問題ないように思えますが、どこか大文字小文字が間違っていたりとか ないでしょうか?
452 :
448 :04/11/02 10:54:58 ID:Dwu66EwL
>>450 ありがとうございます。そして、すみません。問題の抽出の仕方を間違ってました。
448のコードはこちらでも問題なく動きました。
resultObject内のArray型の変数操作が上手くいかないのですが。何故でしょうか。
class resultObject{
public var value:Array = new Array()r;
}
var resultData:Array = new Array();
function calcAll():Void{
for(var i = 0; i < 3; i++){
resultData.push( calcData(i) );
trace(resultData[0].value[0] + " , " + resultData[i].value[0]);
}
}
function calcData(i:number):resultObject{
var d = new resultObject();
for(var n = 0; n < 3; n++){ d.value[n] = i * 20; }
return(d);
}
実際のトレース結果 期待しているトレース結果
0 , 0 0 , 0
20 , 20 0 , 20
40 , 40 0 , 40
>>452 たぶんこうかな?ちょっと未検証ですけどお試しを
class resultObject {
public var value:Array;
function resultObject(){
value = new Array();
}
}
454 :
448 :04/11/02 11:29:15 ID:Dwu66EwL
>>453 成功しました。ありがとうございます。
配列型の宣言には気を付けます。
MXです。 「もし、一方の文字列がもう一方の文字列と”一部”一致する場合」 という条件を作りたいですが、よく分かりません。 教えてください。お願いします。
>>455 indexOfの値が-1より大きいかどうかで判断
a = "あ、りょうちんこないだはありがとうなり。うれしかったお。";
b = "ちんこ";
if (a.indexOf(b)>-1) {trace(b+"が入ってます");}
MX2004 WinXP ちょっとしたゲームを作ってるのですが、 a.text = boss.substr(0,3) //ボスの体力 0〜100まで if ( a.text < b.text ){ //b.textで指定した数値よりボスの体力が低かったら gotoAndplay(3) //3フレームに飛ぶ と、こんな感じで書いてるのですが、b.textに9と入力した時、 ボスの体力が100でもフレーム3に飛んでしまいます。b.textは 「テキスト入力」です。 初心者ですみません。どなたかご教示下さいませんか?m(_ _)m よろしくお願いします。
>>458 すみません。
a.text = boss.substr(0,3) //ボスの体力 0〜100まで
if ( a.text < b.text ){ //b.textで指定した数値よりボスの体力が低かったら
gotoAndplay(3)
}
ですっm(_ _)m
変数が数値として認識されてないから。
461 :
Now_loading...774KB :04/11/03 18:13:46 ID:Zztuc6jI
ルート上にひとつムービクリップ(hoge_mc)を配置しました。 そのMCにクリップアクション onClipEvent(keyDown) { trace("clip action"); } だとトレースが実行されるのですが フレームアクション this.hoge_mc.onKeyDown = function() { trace("frame action"); }; の場合はキーを押してもトレースは実行されません・・ この2つのちがいはなんなんでしょうか? なぜクリップアクションだと実行されてフレームアクションだと 実行されないのですか?
>>459 Number()とかそこら辺
>>461 onClipEventだと勝手にリスナー登録までしてくれるんだけど
this.hoge_mc.onKeyDown = function()は個別にリスナー登録しなきゃいけないみたい。
Key.addListener(this.hoge_mc);とか書くと動くかもしれない。
463 :
461 :04/11/03 19:02:43 ID:Zztuc6jI
>>462 なるほどonClipEventはかってにリスナー登録してあるからKeyイベント
が通知されるって言うことだったんですね。
>Key.addListener(this.hoge_mc);
Keyオブジェクトにhoge_mcをリスナー登録したら動きました。
onClipEventはリスナー登録を自動でしてくれるなんて知りません
でした、勉強になりました、どうもです。
次のフレームにも同じスクリプトを書きなさい。 フレームはループさせること。
466 :
Now_loading...774KB :04/11/03 21:02:32 ID:HjKDPOL6
ムービークリップA・B・Cとありまして全部個々に移動しています。 このインスタンスの移動をボタンで止めて 止まった位置から指定した座標へインスタンスを 30フレームかけて移動させたいのですがどうすればよいですか? とりあえず、ムービークリップABCを止めることは出来たのですが ABCを指定した座標へ移動させる事が出来ません。 テレポーテーションは出来るのですが。。。 どなたかお知恵をお願いします。 FLASH MXを使用しております。 もう朝からずっとやってるのにまったくわからない…(;´д`)
>>466 目的の座標までの距離を30等分して、
for文かなんかで移動する処理を30回やればいいんでねーの。
468 :
Now_loading...774KB :04/11/03 21:26:39 ID:HjKDPOL6
>>467 ムービークリップが移動していて、それを好きな時にボタンで止めてるんで
目的座標までの距離がいつもバラバラなんです。
まぁ、その前にXとYの目的座標までの距離をどうやって出すのかもわかりませんが…_| ̄|○
無理なのかなぁ。。。
>>468 もっと基本的なことから勉強した方がいいよ。
悪いこといわないから本買って読んでからやったほうがいい。
A._x
A._y
これはムービークリップAの座標を表してる。
目的の座標から、現在の座標を引いて30で割ってその値を30回足せばいい。
>>469 才オォ(゚Д゚)ォオ才
そんな方法でOKなのですね!!
つまり現在の座標を取得して変数に入れて、目的座標から現在の座標を引いて割ってループさせろ、と。
やってみます!
やっぱり本は買った方がいいですよね(;´Д`)
JavaScriptならほんの少しわかるんでそれを頼りにやってました。。。
とりあえず、ActionScriptバイブルとやらを買ってみます。
本当にありがとうございました!!
471 :
455 :04/11/03 23:08:49 ID:PCFzKYc6
>456 ありがとうございます。 あれから、お返しできるネタを考えていたのですが、 思いつきませんでした。すみません。
472 :
Now_loading...774KB :04/11/04 00:59:54 ID:uYMrb6Zr
リンクボタンをswfで作ってHTMLのインラインフレーム内の ページをそのリンクボタンを押して別ページに移動させたいんですが、 なかなかうまくいかなく激しくしょんぼりしてます。 WinXPでFlashMX、ブラウザはIE6です。 下がswfリンクボタンのactionスクリプトです。 on (release) { getURL("test.htm", "main"); } 非常に単純です。これでの実行動作は「ボタンをクリックしてもまったく反応がない」との現状です。 「ボタンを押す→インラインフレーム内のページを別ページに移動させる」と これだけの動作です。インラインフレームのnameはmain、別ページがtest.htm。 どなたか助言よろしくお願いします。
とりあえずswfファイル単体で起動して ボタンを押してみるといい。 新しいウインドウが開けばHTMLに問題がある 新しいウインドウが開かなければflashに問題がある(ボタンそのものが動いていない)
ACじゃなくて恐縮ですがFLASHって最大フレーム数が決まってます? 自分が作っているものは16000フレーム以降がうまく動作しません。 バージョンはMXです。
>>474 16000だったかな?とにかく限界はある。
loadMovieNumで再生中に次のswfを読み込むことで回避できる。
getURLで次のswfに飛ばすって方が見た目は悪いが簡単かも。
全てのフレームをコピペしたシンボルを作れば、なんと1フレームに。
478 :
474 :04/11/04 15:03:13 ID:pSMiyQGf
>476 やっぱり限界があるんですね。 loadMovieNumをうまいこと盛り込むのがよさそうですね。 >477 なるほど・・・コロンブスの卵的発想ですね^^ うまい事いくかどうか分かりませんがそれも試してみようっと。 ありがとうございました。
はじめまして。 現在、 flashにてファイルのブラウズをしようと考えています。 私の考えでは、flashからJavaScriptを呼び出し、 <input type="fileupload">をclickメソッドで自動表示させ、 そのファイルパスを取得したいと考えています。 このとき、 flash側ではリロード処理などを行わないようにしたいのですが、 どうも上手くいきません。 何か良い方法があればご教授お願いします。 私の環境は。。。 os:windows2000 flash:FLASH MX テスト環境のサーバーにはcoldfusionMX が入っていますが、できればcfcとの連携は 回避したいと思っています。
>>480 参加者に(;´Д`)ハァハァしますた
「オブジェクト指向をなんでつかわなきゃいけないんですか? コピペでいいじゃん」
と部下にいわれたのですがどうやって説明すればいいですか?
R.K ディレクター歴4年 Flash歴2年
オブジェクト指向でActionScriptを書くと、流用しやすい、効率的というのですが…
ぶっちゃげ現場で活用できていません。どうすればよいでしょうか?
R.S ディレクター歴3年 Flash歴1年
482 :
480 :04/11/05 17:48:35 ID:74ea58Mz
よく見たらここのディレクター前にデザイニングに出てたな。Flashカンファレンス2004にも居たわ
483 :
472 :04/11/05 18:17:00 ID:94aI1Ccy
>>473 返信ありがとうございます。
swf単体で動作実行してみた所、新しいウィンドウが開いたのでhtml側に
原因があるようです。htmlをもう一度見直してみます。
本当にありがとうございました。
484 :
Now_loading...774KB :04/11/05 18:32:57 ID:21kwjylp
FLASHMXでテキスト入力BOXを入れて 検索機能をつけようと思っているのですが テキスト入力の変数に=や&等が入ると=が%3dになったりして マクロのサイトでもFAQなどみたのですが解決できません。 =や&を変数に加えるにはどのようにすれば宜しいのでしょうか? 皆様よろしくお願いします。
>>484 System.useCodepage = true;
とりあえずこの一行を実行させておくのがおすすめ
そういうことじゃないと思うけど
487 :
484 :04/11/06 12:30:22 ID:l1L+jbDT
488 :
484 :04/11/06 12:33:21 ID:l1L+jbDT
>>485 さん
とりあえず入れておきました、がやはり変化はありませんでした。
>>488 一回 escape() してから unescape() すればいいんじゃネーノ。
490 :
484 :04/11/06 14:41:18 ID:l1L+jbDT
>>489 さん
ありがとうございます、escape() unescape() なんですが
調べてみても使い方がよくわからず苦戦しています。
具体的に変数にはmode=search&wordを入れたいんですが
これをmode%3Dsearch%26wordと入れるだけではだめなんですよねぇ?
申し訳ないのですがもう少しだけ詳しく教えていただければ
うれしいです。よろしくお願いします。
質問します。 attachMovieで表示したムービークリップをlineToで塗りつぶした後に 同一インスタンスを再描画することは可能でしょうか。 例えば下記のようにムービークリップを毎回呼び出したりしても無視されてしまいます。 何度も同じシンボルを塗りつぶしては描画、塗りつぶしては描画・・・とやりたいのですが 方法はありますか? this.onEnterFrame = function(){ _root.attachMovie( "Graphic", "Graphic1", 3 ); }
教えてください。 RPGの様にキャラクターが画面上を移動する時、 MAPの範囲以上は進めない様にしたいのですが、 どのようにすればいいのでしょうか。 ちなみにMAPはフリーハンドで書いているので、規則性がありません。
フリーハンドで書かないでください と言いたいとこだけど、方法は hitTestで、キャラの4スミの点とマップを判定すればいい。 精度を上げたかったらもっと点を増やす。 で、これでわかんない場合は悪いことは言わないから フリーハンドじゃなくてブロックにしなさい。
>>491 描画の定義が間違ってると思う。
attachはMCの複製でもないし描画でもないし呼び出しでもないし、配置なので
言ってることとそのスクリプトが合致してないよ。
どっちをしたいのかな?
495 :
491 :04/11/06 19:57:08 ID:/n6+qUdh
>>494 どうもです。
やりたいのは文章の方でして、何かしらの画像を描画して・・・同一の画像をまた描画して・・・
の繰り返しをしたいと思っています。
実際に作ってみたけど、 「=」 や 「&」 も普通に変数に入れられるけどなあ。
>>495 画像を描画という表現がよくわからないです。
499 :
491 :04/11/06 20:18:36 ID:/n6+qUdh
>>498 要はムービークリップなりビットマップなりを画面の特定位置に表示(配置)して、
その位置にlineToなどで塗りつぶしたとしますよね。
そうすると、塗りつぶされた部分は見えなくなる。
その後に先ほどの画像を何度も元に戻したいのですが、できるのでしょうか?
>>492 マップのサイズが例えば200 X 200なら、
40000座標について全て移動可能か不可かのデータを作って、
それで判定する方法も。
実際にやるなら多次元配列を使うことになると思うけど、
わかりやすく書けば[0,0] = '不可'、[0,1] = '不可'、[0,2] = '可能'みたいな感じで。
あるいはデータ量を減らすために、2 X 2とか3 X 3を1マスとしても良いかもしれない。
フリーハンドで描いたマップをデータに変換するプログラムを別途作成する必要が出てくるけどね。
実際のゲームでも用いられてる方法。
>>499 lineToで書いた分をクリアするのとは違うんですか?
もしそうならMC.clear();でできます。
502 :
491 :04/11/06 21:33:29 ID:/n6+qUdh
>>501 lineToで描いた分をクリアできる方法があると知りませんでした。
clear();でなんとかなりそうです。
ありがとうございました。
タイムラインにレイヤーを二つ作って、 下のレイヤーにボタンを配置し、上のレイヤーにムービークリップを配置したのですが、 カーソルが、上のレイヤーに配置したムービークリップ上にある時でも、下のレイヤーに配置したボタンを押せてしまいます。 上のレイヤーに配置したムービクリップ上にカーソルがある時は、 下のレイヤーに配置したボタンが反応しないようにするには、どうすればよいのでしょうか?
>>504 上のレイヤーのムービーに何も処理をしないボタンを被せる。
指カーソルを使用しない設定にしたら、なおよし。
508 :
Now_loading...774KB :04/11/07 21:24:40 ID:VAAUEsvT
actionscriptの 1.0と2.0の主な違いってどんなのがあるの?
角度とか
ラジアンでちゃんと計算されてる
厳格な型指定 別ファイルによるjavaライクなクラス 大文字と小文字の区別 存在しない呼び出しの警告
質問させてください。 tgt_mc._height = 300; tgt_mc._width = 200; 上記のような形で MCのサイズを変更した時、 そのMCに含まれる全てのオブジェクトが、 拡大・縮小されますよね? このとき、 この対象となるオブジェクトのサイズのみ 変更する方法はないでしょうか? 宜しくお願い致します。
中身を同じ比率で拡大する。 ただし、俺に言わせればそれはMCの設計から間違っている。
514 :
512 :04/11/08 15:51:05 ID:DsDT/iPf
>>513 ありがとうございます。
なんとか対象のオブジェクトだけのサイズ変更を実現できました。
ていうか、ちと勉強不足のようなので、
修行してきます。。。
質問です。 ドキュメントのサイズを”プリンタ”で合わせて、Flash全体を印刷したいのですが、 print関数で印刷すると、隅のほうに小さく印刷されます。 パラメータをbmaxにしてもダメでした。 Flashプレイヤーの「プリント」だと、用紙一杯に印刷されます。 ちなみに違うflaファイル(サイズはまったく同じ)でprint関数で印刷したところ、問題なく用紙一杯に印刷されました。 print関数で問題なく用紙一杯に印刷するにはどうすればいいでしょうか? また、FlashPlayerメニューの「印刷」はprint関数で印刷してるんでしょうか?
516 :
Now_loading...774KB :04/11/08 20:48:27 ID:hebAt40j
テキストを外部ファイルから読み込んだときに 文字化けするんですけどどうしたらいいんでしょうか。 なんか本を見たら”System.useCodePage”ていうのを使うって書いてあったから System.useCodePage=true; って書いたら 「:useCodePage' という名前のプロパティはありません」 ってなったんですけど。
517 :
516 :04/11/08 20:53:38 ID:hebAt40j
スンマセン、自己解決しました。
518 :
Now_loading...774KB :04/11/08 21:26:00 ID:lulxlcIM
ドラッグドロップでオブジェクトのサイズ変更 をしたいんですけどどうすればいいんですか。
startDragとか_widthとか使う
>>518 ドラッグするダミーの透明とかのMCを使って
その座標で目的のMCのサイズを変えるのが楽かな。
質問です MX2004使用 _root にMC_headlineを置き、 インスタンスMC_headlineの中身は、 ダイナミックテキスト(デバイスフォント)MC_moji を setMask でマスクし、 トゥーインで右から左へモーションさせています。 表示状態としては _root上で、ヘッドラインニュースとしてMC_mojiをスクロールさせています。 そこでいくつか教えていただきたいことがあるのですが、 ダイナミックテキストMC_moji の中身は onClipEvent (load) { this.loadVariables("text.txt", MC_headline); } としているのですが、text.txt の中にHTMLを記載しても全く反映されていません。 text.txt には Text1=<font color="ff0000">赤</font> などと書いています。どうすれば、HTMLが正常に表示されるのでしょうか?m(_ _)m それと、setMask の件ですが、 マスクの対象の MC_moji のトゥーインのキーフレームと同じフレームに setMask もキーフレーム入れておかないと、MC_mojiのキーフレームが変わる瞬間から マスクが一切きかなくなるのですが、これはAS書き方の問題でしょうか? MC_moji のインスタンス名は全て同一です。。 どうぞ宜しくお願いします。m(_ _)m
>>522 テキストフィールドのプロパティにHTML表示のon offがある
デバイスフォントにマスクは×
>>523 ほんとだ・・プロパティにあるよ・・orz
デバイスフォントにもマスク自体は出来るようになったみたいです
(とうかやっていますが・・)
そのXっての使わないほうがいいってことでしょうか?皆がみな最新プレイヤーじゃないし・・
忘れた・・お礼言ってなかった
>>523 ありがとう
デバイスフォントにマスクすると、マカーとドザの間で壁が生じる。
527 :
Now_loading...774KB :04/11/09 18:24:17 ID:Y23sUTN7
アクションスクリプトでカードゲームって作れます? それをオンライン対戦実現可能?可能なら1から勉強しようと思うのですが…」
できますが、想像以上に大変です。 しかし、その内容だと別の言語で作るよりもFlashで作ると楽かな。 ただし、オンラインで対戦を行う場合、アクションスクリプトだけではなく サーバー関係の知識が必要になります。 かなり大変なので、失敗しても当然の気持ちで作ることをお勧めします。 勉強としては良い経験になるでしょう。
>>529 ありがとうございます。
PHP、Perlも見てみたんですがさっぱり…
勉強してみます。
531 :
Now_loading...774KB :04/11/10 12:33:03 ID:PT+jVrLX
外部MP3ファイルをループ再生させたいのですがどうすればいいですか? 後、音ファイルをフォルダにまとめて管理したいので、指定フォルダからのファイルの読み込み法も教えてください。
533 :
Now_loading...774KB :04/11/10 13:26:28 ID:PT+jVrLX
>532 できれば、 パラメータを指定 ってのを詳しく教えていただけないでしょうか
質問です。 this.mainScroll.setScrollContent("subWindow"); this.mainScroll.setHScroll(false); this.mainScroll.setVScroll(auto); var tgtObj = this.mainScroll.getScrollContent(); tgtObj.subScroll.setScrollContent("bodyObj"); tgtObj.subScroll.setHScroll(false); tgtObj.subScroll.setVScroll(auto); tgtObj.noSelectBox.noSelect.removeAll; for(i = 1 ; i <= 50 ; i++){ tgtObj.noSelectBox.noSelect.AddItem(i,i); } /* mainScroll = scrollPane subWindow = MC(リンケージ定義済み) subScroll = scrollPane(MC「subWindow」に含まれる) bodyObj = MC(リンケージ定義済み) noSelectBox = MC(MC「subWindow」に含まれる) noSelect = comboBox(MC「noSelectBox」に含まれる) */ ってコードを書いてるんですが(一部抜粋)、 ネストされているsubScrollがbodyObjを読み込めません。 また、noSelectにも値がセットされません。 パスの確認もしてはいるのですが。。。 scrollPaneを入れ子にしている場合、 値をセット出来ないなんてことはないですよね? くだらない質問ですが、宜しくお願いします。。
質問です。 GIF画像を読み込んで配置しています。 その際、スムージングのチェックを外しているのに 画像にスムージングがかかってしまいます。 ムービープレビューではスムージングがかからずくっきりとしているのですが HTMLに組み込むとスムージングがかかってぼやけてしまいます。 win 2000 , flash mx です。 どうぞ宜しくお願い致します。
>535 ____∧∧ 〜' ____(,,゚Д゚) <画像の配置座標を全て整数値にする UU U U
点Aの位置はx70y60、点Bの位置はx420y120、点Cの位置はx400y20、点Dの位置はx70y320 線分ABと線分CDが交わってるか否かを確かめるにはどうしればいいですか? 交わってる位置を求めるにはどうすればいいですか? 線分ABの角度を調べるにはどうすればいいですか? 線分CDの角度を調べるにはどうすればいいですか? 線分ABと線分CDが平行か否かを調べるにはどうすればいいですか? 線分ABと線分CDの交わってる角度を調べるにはどうすればいいですか? 三角比詳しい神様 つД`) タスケレ !!
>>537 ActionScript以前の問題な希ガス..
点A(Ax,Ay)
点B(Bx,By)
点C(Cx,Cy)
点D(Dx,Dy)
として
点Aと点Bを通る直線(y=mx+n)の式を求める
点Cと点Dを通る(ry
AB、CDの範囲で0になる解が存在する=まじわる
線ABの式の傾き=角度>三角関数で変換
線CDの式の傾き=角度>三角関数で変換
両式の傾きが等しい=平行
交わっている場合x軸(もしくはy軸)を底辺とする三角形ができるので
180度-(角度AB+角度CD)
代入面倒くさいよ。。
接点T!
1 var f:TextFormat = text1.getTextFormat(); 2 f.size += 1; 3 f.color += 64; 4 text1.setTextFormat(f); 5 text1.text = "test"; ↑のようなコードを書きましたが、setTextFormatが機能していません。 5行目のテキスト代入によって、デフォルトのTextFormatに戻っているようなのですが仕様ですか?
>>541 >setTextFormatが機能していません。
正常に機能しています。
先に何か文字列をtext1に入れておいて、5行目を削除すれば、
setTextFormatが正常に機能しているのが確認できると思います。
>デフォルトのTextFormatに戻っているようなのですが仕様ですか?
仕様です。
5行目で文字列に変更を加えているため、デフォルトのTextFormatに戻ります。
従って、おそらくアナタが望んでいるであろう動作をさせるためには、デフォルトのTextFormatを変更する必要があります。
4行目の
text1.setTextFormat(f);
を
text1.setNewTextFormat(f);
に書き換えて下さい。
543 :
541 :04/11/12 04:22:34 ID:iALHFuQo
>>542 解決しました。
同じ関数にしか見えなかった
getTextFormat ・ getNewTextFormat
setTextFormat ・ setNewTextFormat
の機能の違いがわかりました。
ありがとうございました。
544 :
534 :04/11/12 16:41:00 ID:VHY1UqEk
534ですが。。。 もしかしてscrollPaneに読み込むMCが、 まだ読み込み終了していないからとかが原因かも。。。 そうだと仮定して、scrollPaneでMCを読み込むときは、 現在の読み込んでいるサイズとか取得できるんでしょうか?
画像、音声吸出しツールを 無効にするSWF製作方法はあるのでしょうか?
>545 ない
画像を取られたくないならビットマップトレース使うといいよ 画像をワークエリアに貼り付けて、選択して、修正>ビットマップのトレース
質問です! 5コの内容がある配列を11ステップ(2回+1ステップ)ループしたいんです。 roop=new Array(5,8,7,6,2); で、 5,8,7,6,2 5,8,7,6,2 5 というふうに。 roop[0]〜roop[4]まではいいんですが、 5ステップ目でおりかえして処理させるにはどうしたらいいんでしょう? 1---roop[0] 2---roop[1] 3---roop[2] 4---roop[3] 5---roop[4] 6---roop[1] 7---roop[2] 8---roop[3] (以下つづく) お知恵をお借りできませんでしょうか。 @使用ソフト/バージョン: MX AOSのVer:MacOS X
549 :
Now_loading...774KB :04/11/13 21:59:46 ID:jEiKkn90
サウンドをリンケージ化し my_sound=new Sound(); my_sound.attachSound(a); my_sound.start(0,99); で再生したところ、 ムービーの動きがスローになってしまいました。 サウンド管理のASを削除し無音に戻して(最初の状態)も、ムービーの再生がスローのままになってしまいました。 何が原因でしょうか? フレームレートはいじっていません。
>>548 こういうこと?
var roop:Array = new Array(5,8,7,6,2);
for(var i:Number=0; i<11; i++)
{
trace( roop[i%5] );
}
551 :
548 :04/11/13 22:48:55 ID:uV2+Ttu9
>>550 わ!これです!
こんな書き方があったんですね〜できました!
ありがとうです
>>548 var maxStep=11;
var step = 0;
var i = 0;
while( step < maxStep){
trace(roop[i]);//trace(roop[step%5])ならば、下の二行イラネ
i++;
if(i > 4){i = 0;}
step ++;
}
すんげぇシンプルなやり方
>>550 MX環境の人にAS2.0はどうかと。
gpss系サーバがインストールされているレンタルサーバーってないよな。 with2chにインストールしてくれるようにお願いするってのが 昔あったような気がするけど 結局進展なし?ってことで有名な人お願いしてきて
>>548 trace(roop[step%5])のところを
trace(roop[step%roop.length])
とかのが良いきがす
>>554 さらに言うなら、
var array_length = roop.length
で先に取得しておいてから
trace(roop[step%array_length])
がベストかな。
ループ処理のたびにlengthを取得よりもパフォーマンス良。
質問です。 MX2004使用です。 1個目のswfで、 var obj_date:Date = new Date(); var NS:Number = obj_date.getSeconds(); var swf_num:Number = Math.floor(NS/30); _root.photo_mc.loadMovie(swf_num+4+".swf"); _root.onEnterFrame = function():Void { updateAfterEvent(); }; stop(); というacを書いて、photo_mcに外部から2個目のswf、"4.swf"か"5.swf"を 表示させる。という仕様を作ったのですが、 4.swfの方に書いたフレームac(マウスを追従するac)が機能しません。 画像は表示されるので、読み込んでくれているとは思うのですが・・・。 誰か教えてください。 わかりずらかったら、すみません。。。
たびたびすみませぬ、質問よろしいでしょうか。MXです。 配列の要素をすべて足し算したいのですが、どうすればいいでしょう? ary=new Array(0,1,2,3,4); sample=parseInt(ary.join("+")); としたんですが、非数の手前までしか解釈してくれないみたいで trace(sample); で 0がかえってきます。 おねがいいたします。
>>557 myArray = new Array(0,1,2,3,4);
for(i=0;i<myArray.length;i++){
sample += Number(myArray[i]);
}
trace(sample);
>>556 4.swfの方のACがわからないのでなんともいえないけど
_root.photo_mc._x = _root._xmouse
_root.photo_mc._y = _root._ymouse
だと動くはずです。
561 :
556 :04/11/14 22:31:59 ID:sVYXxCPs
>>559 すみません。言葉足らずでした。
4.swfの方のac"マウスを追従するac"は
var obj_array:Array = new Array();
var kern:Number = 24;
var obj_str:String = "abcdefghijklmn";
for (var i:Number= 0; i<=obj_str.length; i++) {
_root.attachMovie("text_mc", "t"+i, i);
obj_array[i] = eval("t"+i);
obj_array[i].mctext = obj_str.charAt(i);
obj_array[i].vx = 0;
obj_array[i].vy = 0;
}
_root.onEnterFrame = function():Void {
obj_array[0]._x = _root._xmouse;
obj_array[0]._y = _root._ymouse;
for (var i:Number= 1; i<=obj_array.length; i++) {
obj_array[i].vx = (obj_array[i].vx+(obj_array[i-1]._x-obj_array[i]._x+kern)/5)*0.6;
obj_array[i].vy = (obj_array[i].vy+(obj_array[i-1]._y-obj_array[i]._y)/5)*0.6;
obj_array[i]._x += obj_array[i].vx;
obj_array[i]._y += obj_array[i].vy;
}
updateAfterEvent();
};
stop();
という感じのよくあるacです。
562 :
Now_loading...774KB :04/11/15 12:21:43 ID:a5kkzqw1
おじゃまします。質問させてください。 月ごとに違う外部swfをmcに読み込むものを作りたいのですが、 //読み込むswfを配列にして img = new Array(); img[0] = "swf/january.swf"; img[1] = "swf/february.swf"; img[2] = "swf/march.swf"; img[3] = "swf/april.swf"; img[4] = "swf/may.swf"; img[5] = "swf/june.swf"; img[6] = "swf/july.swf"; img[7] = "swf/august.swf"; img[8] = "swf/september.swf"; img[9] = "swf/october.swf"; img[10] = "swf/november.swf"; img[11] = "swf/december.swf"; //月を取得して now = NewDate(); nMonth =now.getMonth(); //読み込む this.mc_month.loadMovie(img[nMonth]); といった感じで書いてみたのですが、 nMonthがundefinedになって読み込んでくれません・・・。 何が間違っているのかお分かりになる方よろしくお願いします〜!
>562 ____∧∧ 〜' ____(,,゚Д゚) < now = new Date(); に修正 UU U U
564 :
562 :04/11/15 12:43:33 ID:a5kkzqw1
>>563 様
物凄い勢いでありがとうございます!おかげさまで解決しました!
っていうか自分が非常に情けないです・・・・精進します(つд⊂)エーン
なあ、ACってなんだ?
acと書いていたとしてもasととれ!
>>561 _root.attachMovie("text_mc", "t"+i, i);
_root.onEnterFrame = function():Void {
の_rootをthisに変えると動くと思います
this.attachMovie("text_mc", "t"+i, i);
this.onEnterFrame = function():Void {
>>565 (・∀・)イイ!じゃないか
ASで数値計算して、出た数値でグラフを作りたいんですが、 そういうことってできますか? とりあえずできるかどうかをお聞きしたく存じ候orz
569 :
Now_loading...774KB :04/11/15 20:35:55 ID:gwBllXu8
質問です。 前レス(
>>420-423 ,425)でのオブジェクト管理について
お聞きしたいのですが・・・ズバリ MCのオブジェクト管理というのはどうゆう事
なんでしょうか?
参考URLのソースコードを色々いじくってみましたがイマイチわかりません。
↓こうゆう事ではないんですよね? これだとオブジェクトの名前をdeleteしても
実際のMCは消えません。 どなたかご教授お願いいたしまする。
_objContainer = new Object();
_id = 1;
function teki(){//敵MC追加
_root.attachMovie( "敵MC名", _id, _id );
addObj( _root[ _id ] );
}
function addObj( Obj ){//オブジェクトに登録
_objContainer["o"+_id] = Obj;
}
>>570 まじっすか^^どうゆう風にするのか教えてください。
一応ASの本は一冊持ってますので、めんどくさければ概要だけでも…orz
>>572 moveToとlineToで描きあげるということですか?
ありがとうございます^^
あと計算結果をただ表示したいときって、textboxを沢山作っといて変数に配列を指定しといて、
それに一個ずつ入れていくっていう以外にいい方法ありますか?^^
計算結果の表を表示させたいのです。
いいのアルゼって方いたら教えて候m(__)m
textBoxの変数にインデックス入れた配列を指定することってできないんですか?
this["txt"+i].text=my[i];こんなんなら可
質問です。 当方はアクションゲームの挙動のテストをしています。 そのなかで、プレイヤーが落下するときに 変数HighプレイヤーのY座標に加算して 落とすようにしてるのですが、高いところから落とすと 地面にめり込んでしまってうまくいきません。 解決策があればご教授ください。 できればonClipEvent (enterFrame)ごとに落ちるのではなく、 X秒ごとに1ずつ落としてXを小さくして落下速度を加速させたい のですが、可能でしょうか? 以下、長くなるので 落下の部分だけ抜粋したAS onClipEvent (load) { High = 0; //落下の初速度 } onClipEvent (enterFrame) { //_parent_y=プレイヤーのMCの座標 _parent._y += High; High++; }
577 :
556 :04/11/16 00:34:47 ID:OmxLo4If
ありがとうございました!!動くようになりました。 勉強になります。。
578 :
556 :04/11/16 00:37:28 ID:OmxLo4If
579 :
Now_loading...774KB :04/11/16 01:36:18 ID:kxr+E1J/
質問させてください。 Flash4 or Flash Lite 1.1で、OBJECTタグ内で<〜.swf?AAA=BBB">という形でのswfへの変数の 受け渡しは可能なのでしょうか? もしくは、ファイルやCGIをswfから読み込むのではなく、動的な外部変数をswfが取得する方法は あるのでしょうか?
すみません、 scrollPane に読み込んだMCのオブジェクトに tabIndexって設定できるのかな? もし、出来るならやり方教えてください;;
>>576 for文で自己解決しました。
ごめんなさい。
手とリスの作り方がまったく思い浮かばぬorz
どんな効果がありますか?
585 :
Now_loading...774KB :04/11/18 18:21:22 ID:iWz0kvo0
とりあえず二次元配列でググってみな、それでもわからなきゃ テトリスを作るなんて無理。
突然の質問。 既存の右クリックメニューの項目に自分で作った項目を入れることは可能でしょうか? また、可能であればそのやり方を教えてください。お願いします。
>>582 TETRIS flaでググるといいもの見つかるかも
>>587 MX2004から可能
MXでもswfのバイナリ弄ればできるとかできないとか。
590 :
587 :04/11/19 19:48:50 ID:DUOxE24+
質問の意味わかりにくくてスマソ。 つまりこういうことです。 たとえば、 右クリックメニューで「画質」の項目に、自分で作った「最高」というのを 入れたいのですが。出来るのでしょうか。出来れば、やり方を教えてください。 お願いします
なんでできるって言ってるのに信じてくれないのかな、この人。 そりゃ並びは悪いけどね。
592 :
587 :04/11/19 20:30:10 ID:DUOxE24+
やり方を知らないので教えてください。お願いします。 MX2004です。
二次元配列の使い方わかったけど テトリスつくれない_| ̄|○||||| もうだめぽ
そりゃ簡単に作れちゃったら ゲーム会社が破産するがな。
>>595 さらに凹むことを教えるよ
yossyがテトリス作ったのは13歳のときw
>>597 のリンク見てもだめならもうあきらめたほうがいい。
質問です。 flash中のボタンを押すと内部で計算をおこなって、 計算結果を表示するものを作りたいです。 イメージとしては、flaで作成中、traceを使うと 別ウインドウでtrace結果が出てきますよね。あんな感じです。 というのはたとえば100回くらいの繰り返し計算をしてその中での ある値をすべて出力したいのです。つまり100個の値が出したいです。 もちろん一画面には表示できないので、スクロールバーの付いた textboxか別ウインドウということになるでしょうか… flash中にその結果を表示させたいのですが、別ウインドウでもかまいません。 そんな感じなんですが、どなたかいいやり方知ってますでしょうか。 どんなscriptでやるのか、はたまたActionScriptだけではダメなのか、 その辺から教えていただけますか?m(__)m 私の環境は窓XPでMXを使ってます。
>>601 フラッシュ起動時(結果表示前)に別ウィンドウを出さんとイカンとおもう。
別ウィンドウ内にフラッシュ入れて、ローカルコネクトで
別ウィンのフラ内に結果を表示させるとか。しか思いうかばんので
次の人
>>603 よろしく
つーか、別ウインドウの方がむずい。 Flashの中に、あらかじめテキストフィールドがあって、そこに表示されるだけなら激楽 別ウインドウにしたかったら、ローカルコネクション 君が初心者で、ただ内容を表示したいのだったらダイナミックテキストフィールドに コンポーネントのスクロールバーをつけて、そこへ入力してやればいい。 テキストフィールドの使い方は、検索すればかなり出てくるはず。
今シューティングをつくっています。
敵をattachMovie()でつくって、クラスで行動をいれようとしているのですが、
当たり判定がうまくいきません。
クラスの部分の間違いでなく、単純に当たり判定がうまくいっていないようです。
ファイルをうpしましたので、よろしければ落としてみてください。
http://up.isp.2ch.net/up/7ea3db79240a.zip 環境はFLASH MX を XP で動かしています。
よろしくお願いします。
605 :
604 :04/11/20 23:52:03 ID:BRnegPXJ
誰かお願いします。
丸投げすると大抵やってくんないぜ、 問題を細かくわけで、ここはこうだと思うんですが、こうですか?と 自分なりの推論をするべき。
環境はFLASHMXpro を XP で動かしています。 今ゲームで100秒からカウントダウンする仕組みを作ろうとしています。 サンプルの時計プログラムを改造してやろうとしている のですがどうもうまくいきません。 onClipEvent (load) { cntdown = 100; //開始タイムを表示 } onClipEvent (enterFrame) { time = getTimer(); cntdown -= Math.floor(time/1000%60); } cntdown -=のところを=にすると 0秒から1秒ずつ-になる感じです。
onClipEvent (load){ cntdownstart=100;//開始タイムを表示 } onClipEvent (enterFrame) { time = getTimer(); cntdown = cntdownstart-Math.floor(time/1000); trace(cntdown); }
609 :
Now_loading...774KB :04/11/21 07:58:08 ID:X9Yg1Njs
フラッシュからクッキーを登録したいのですが、サーバへ負荷をかけたくないので CGIは使いたくないのですが、これ以外の方法で登録できますか? できましたら、その方法も教えてください。
できます。 一番簡単なのは、GetURLから、クッキー用のJavascriptを呼び出すこと。 こちらはJavascript専用の質問スレなどで聞くなり調べるなりしてください。 もう1つは、Flash独自のSharedObjectという機能を使うこと。 検索すれば使い方が出てきます。 保存が比較的楽なのでお勧めです。
質問です。(os:Win2000PRO ver:FLASH MX) ステージにオブジェクトを配置時、 プロパティウィンドウの左下に表示される入力項目で、 横幅、縦幅、横座標、縦座標等を入力しているのですが、 テキストツールを配置して、これらの値を設定すると 文字サイズも一緒に拡大・縮小されますよね? 私としてはただ、テキストツールオブジェクトのサイズのみ変更し、 フォントサイズは拡大・縮小して欲しくないのですが、 これを回避する方法ってありますか?
>>608 ありがとうございます!
自分なりにその意味を考えて見ます。
WinXP MX2004 a.textに いやん,あはん,だっふんだ,ぱす b.textに うひひ,あはは,もへへ,うむ,いやん として、a.textとb.textの文字列を比べて重複「この場合なら(いやん)」 している文字列を検索する事って、できるでしょうか?よろしくお願い いたしますm(_ _)m
>>613 できる。
AS半人前のおれでもちょっとヘルプ見ながらやれたらできた。
あなたもガンバレ。
616 :
613 :04/11/21 16:09:18 ID:UkLAbOv9
すみません。ちょっと目的が違いました_| ̄|○ a.textに いやん,あはん,だっふんだ,うひひ,あはん,もへへ,うむ として、a.text内の文字列で重複「この場合だと(あはん)」して いるものを検索・抽出する事ってできるでしょうか?よろしく お願いいたしますm(_ _)m
>>616 文字列を配列に切断する機能
for文の2重構造
これを使う。
>>616 できたー。
変数名つけ間違えてなんでUndefinedがでるのかすげー迷ったが。
まーとりあえずできたから、あなたもできるよ。
ガンバレ。
619 :
613 :04/11/21 17:58:34 ID:UkLAbOv9
theString = "a,b,c,d,e" theArray = theString.split(",") で、theArrayにa,b,c,d,eが入るんですよね? その後、forをどうやって使ったら・・・次の ヒント下さいっ;;
>>619 for文の2重ならこんな感じで
for () {
for () {
}
}
ASを無効にするASってありませんか? 教えてくださいっ!
>>619 forの普通の使い方もダメですかい?
jufuku = [];
for (iを0から配列の最大まで){
for (kをiの次から配列の最大まで){
if (配列のi番目とk番目が同じなら){
jufuku.push(theArray[i]);
}
}
}
trace(jufuku);
日本語のところを頑張って埋めな。
>>621 無効の意味不明。
書かなければいいじゃん。
623 :
609 :04/11/21 18:16:22 ID:X9Yg1Njs
ttp://pc5.2ch.net/test/read.cgi/swf/1101018662/l50からの誘導で来ました 。
質問:
"MyScript.as"というASファイルを作って
includeしたいのですが、どうもうまくいきません。
ちゃんと、ASファイルをflaファイルの同階層において
#include "MyScript.as";と先頭に記しているのに
**エラー** シーン = シーン 1, レイヤー = レイヤー 3, フレーム = 1 :行 1:指示子の書式が間違っています。
#include "MyScript.as";
ActionScript エラー数 :1 報告済みエラー :
とエラーが出てしまいます。
これを解決するにはどうすればいいでしょうか?
625 :
624 :04/11/21 20:22:05 ID:Q21R3r7v
追記です、 環境はMX2004です。
補足しとくと、#で始まる行は コンパイル時の処理なため、「;」がいらないというルールがあるでよ。
628 :
624 :04/11/21 20:32:30 ID:Q21R3r7v
ありがとうございます。 それで、たびたび申し訳ないのですが ;をとってシンタクスチェックをしてみると 次のようなエラーが出てしまいました。 これは何がいけないのでしょうか? ちなみにMyScript.as自体にシンタクスチェックをかけても エラーは見つかりません。 **エラー** C:\Documents and Settings\Administrator\デスクトップ\MyScript.as: 行 1:クラスは、外部 ActionScript 2.0 クラスのスクリプトでのみ定義される必要があります。 class MyScript extends MovieClip ActionScript エラー数 :1 報告済みエラー :1
>>628 パスに2バイト文字を含まない所に移動したらいいんじゃないかな
onClipEvent (keyDown) { if (Key.isDown(Key.ENTER)) { stop(); } } と書いても何故かgotoAndPlay(3);になっていまいます。。。 どうなっているのでしょうか? 教えてください。
あい。
ムービープレビューでやらんで、swfファイル開いてやってみたらどう?
できませんでした。。。
じゃあオカルト板とかじゃないと解決できないわ。
>>630 フレーム数やフレームの状態を事細かに書いてくれないとな。
637 :
Now_loading...774KB :04/11/22 05:25:25 ID:cdz6Melo
perlのcryptがASにないみたいなんだけど ASだけで2chと同じトリップを作ることは可能? CGI通さないと無理?おしえてください、。
638 :
Now_loading...774KB :04/11/22 07:12:32 ID:YuhqijGV
>>602 >>603 回答有難うゴザイマス^^
なるほど〜、とりあえずテキストフィールドを作っていじってみます。
と思ったら…説明しづらいので書きますと、
on (release) {
h = 0.1;
y = 1;
for (x=0; x<1; x += h) {
k1 = h*x*y;
k2 = h*(x+h*0.5)*(y+k1*0.5);
k3 = h*(x+h*0.5)*(y+k2*0.5);
k4 = h*(x+h)*(y+k3);
y = y+(k1+2*k2+2*k3+k4)/6;
}
}
をボタンに書いてます。
テキストフィールドに変数を割り当てておくと(ここで知りたいのはyなのでy)
結局ひょうじされるのは最終結果でのyだけなんですよね。当たり前なんですが。
それをyの値を一つずつしかも改行させて表示させていくにはどうしたらいいでしょうか?><
>>638 yだけじゃなく、sっての用意して
on (release) {
h = 0.1;
y = 1;
s = ""
for (x=0; x<1; x += h) {
k1 = h*x*y;
k2 = h*(x+h*0.5)*(y+k1*0.5);
k3 = h*(x+h*0.5)*(y+k2*0.5);
k4 = h*(x+h)*(y+k3);
y += (k1+2*k2+2*k3+k4)/6;
s += y + "\n";
}
}
補足すると、\nってのは改行な。
ついでに、y = y + 〜って行は
y += 〜って書くとスマートだから
640 :
ajapa :04/11/22 13:58:35 ID:QN7BmFC2
hiTestで衝突判定する対象を object にすると、ちゃんと衝突しないのですが、どうすればよいでしょうか? なぜか、指定したobjectの少し周辺あたりで、衝突してしまいます。 if (this.hitTest(objects[i])) といった感じですが、よろしくお願いします。 あと、物理運動系のActionScriptで、オープンソースがのっているサイトをご存知なら教えてください。
>>640 hitTestはパラメータ設定しないと、四角の判定でぶつかった希ガス
あと、物理運動とかは他のプログラム言語からエッセンスだけ拾ってきて
応用すればよい。
というか、その段階になると、何がしたいのか、何が必要か、何が不要かを
自分で判断して組み合わせなければならない
コピペして楽に完成というわけにはいかないよ。
>>640 objectってのはMovieClipのことかな。
MovieClip同士の判定ではその外形を囲む
長方形で判定が行われます。
理由は簡単、ベクトル図形同士の厳密な判定なんか
無理言うなってくらい大変だから。
たまに、スクリプト書いたムービークリップがどれだったか わかんなくなってしまうんですけど、、どこだかわかる方法って ないんでしょうか?ご面倒でしょうけど、すいません よろしくお願いします。
644 :
Now_loading...774KB :04/11/22 23:15:01 ID:r+fHcpep
AltとF3押すとムービーエクスプローラーが出る このウィンドウの左から2番目と3番目のボタンを押してへこます すると下に全部のムービークリップとスプリクトが出てくるはず
645 :
643 :04/11/23 00:35:01 ID:Z0JXnRsy
> 644 サンクス。使い勝手でいまいちな気もするが、、 助かりました。644さんには大変感謝します。
どこで聞いていいのかわからないのでこちらに失礼します。 duplicateMovieClipで透過gifを複製した時、 10枚ほど重なると透過しているはずの部分が白い四角で表示され、 後ろにあるものが見えなくなってしまいます。 解決方法として、透過gifではなくてビットマップを読み込み、 画像を分解して透過させたい部分を自動選択ツールで選択し、 選択した部分を削除することによって上記の不具合は解消されました。 しかし、画像の枚数が1000枚弱と非常に多いため、 出来れば自動選択ツールで削除ではなく透過gifの読み込みで済ませたいと思うのですが、 上記のような不具合はどのようにして回避したらいいのでしょうか? 環境はMX2004です。
無理です。透過pngでも無理です。それは仕様が無理です。
不具合じゃなくて、計算量が爆発しないよう 一定量で止めてるんだよ。
>>643 自分の場合、全部フレームアクションに記述するようにしてる。
スクリプトの量が多くなったら結局ごちゃごちゃなるけど、
ムービーに記述するよりは分かりやすくなると思う。
>>643 補足で、例えばAってムービークリップに
onClipEvent(EnterFrame){
trace("hoge");
}
と書くのは、タイムラインに1回
A.onEnterFrame = function (){
trace("hoge");
}
と書くのと同じなんだな。
こういう記述は便利なので、ちょっとヘルプとかで調べてみるといいよ。
>>639 大変参考になりました。ありがとうございました。精進します。m(__)m
String変数からMovieClipを操作する機能が欲しいのですが それを可能にする便利なActionScriptはありませんか? (_root.MC._x = 0という風ではなく _root.("ムービークリップの名前")._x = 0みたいな感じで)
↑Flash MX professional2004を使っています
説明不足でした。 従来は _root.MC._x = 0; という風に操作しますが わたしがやりたいのは method(String str) { _root.MC(str)._x = 0; } みたいな感じです
ほいよっ。 これで関数もなんでも文字列から操作できる。 _root["MC" + str]._x = 0;
656 :
646 :04/11/23 13:16:29 ID:VKi5yW38
>>647 >>648 どうもありがとうございます。
仕様でしたか・・・
仕方ないので全ての画像の編集をしていこうと思います。
すいませんまだ一ヶ月ぐらいの初心者です if (_root.a._x+15<_root.b._x-25) { } else if (_root.b._x+25<_root.a._x-15) { } else if (_root.a._y+20<_root.b._y-12) { } else if (_root.b._y+12<_root.a._y-20) { } else { // // ここまできたら重なっている // } コレをやっても動きません・・・ どうしてでしょう?
aとbが実際に動いていないから。
変数の概念がまだ微妙に分かってないんだと思うぞ。 動かしたかったら _root.a._x+=15 こうだ あと、動かす命令はif文の括弧の中に入れたらダメだ
660 :
Now_loading...774KB :04/11/23 20:27:17 ID:d9BZym0w
ダイナミックテキストを参照するには text3 というインスタンス名のテキスト色を変えるとして no=3 _root.eval("text"+ no).textcolor=0xffffff としてもうまくいきません
最近のバージョンではevalじゃなく[]を使おうって ヘルプに書いてあったようなきがする。
丸と丸がぶつかってはじかれるってやつをやりたいんですが どのようなASやればいいんでしょうか?
652さんと同じような質問なんですが、 例えばaaaというMCがあり、その中にbbb1〜bbb20とうMCがあり、 さらにそのそれぞれの中にccc1〜ccc20があるとします。 この時、this["bbb"+i].this["ccc"+j]のように数値を可変にしてアクセスしたいのですが上手くいきません。 []を2つ以上使ってアクセスする事は出来ないのでしょうか?
よいしょっと。 this["bbb"+i]["ccc"+j] ちなみにこうでも可能 _root["bbb"+i]["ccc"+j] 意味は考えて欲しい。
>>663 すいません俺フラクリ使ってるんですよ・・・
参考いただいたのですがすいません
じゃあどうしろと・・・
668 :
664 :04/11/23 21:16:33 ID:VKi5yW38
>>665 どうもありがとうございます。
なるほど、配列としてアクセスしていたんですね。
今まで全く理解せずにthis[]を使ってました。
本当にどうもありがとうございました。
配列としてってのは間違ってるけど 配列と同じ使い方だと思っていいよ。 数字のとこが文字列になったイメージやね。
no=3 _root["text"+no].textcolor=0xffff でうまくいきました。 ありがとうございます。
this["bbb"+i+".ccc"+i] じゃダメなの?
>>671 []の意味から外れるからダメなんじゃなかろうか?
673 :
613 :04/11/24 19:59:16 ID:IpXMl6GI
どうしてもforを使って上手に作れなくて、結局 function intp() { set = setInterval(opc, 50); } function inof() { clearInterval(set); } function opc() { fie = juhuku.a.text.length; juhuku.b.text = juhuku.a.text.split(",")[cnt]; am = juhuku.a.text.indexOf(juhuku.b.text); pm = juhuku.a.text.lastIndexOf(juhuku.b.text); juhuku.c.text = pm; juhuku.d.text = am; if (Number(juhuku.c.text) == Number(juhuku.d.text)) { lis.push(juhuku.b.text); juhuku.e.text = lis; cnt++;
674 :
613 :04/11/24 19:59:46 ID:IpXMl6GI
すみません。途中で送信しちゃいました_| ̄|○ 続き↓ } else { pes.push(juhuku.b.text+'\r'); juhuku.f.text = pes; cnt++; } if (cnt>=fie || juhuku.b.text == '') { juhuku.a.text = ""; juhuku.b.text = ""; juhuku.c.text = ""; juhuku.d.text = ""; cnt = 0; inof(); } } こんな感じでしか作ることができませんでした。でも、これだと確実には 重複してる文を検索でききれないんです。「a.text内で重複した文字列を 検索」について、もっと良いやり方はないでしょうか?どうぞ、この アフォめにご教示下さいませっ;;
a.txtを,で切って(split)で配列Aにしまつ 結果用配列kekkaを用意、値は全部0 for i=0 i<=配列A.length i++ 配列A[i]はa.txt内にありますか(substr)。 あったらkekka[i]に1 区切り文字が検索する文字列に含まれてると当然うまくうごきません。 splitが使えるのはFlashPlayer5以降。 ださすぎでちゃんと書く気になれないので適当に翻訳してください。
↑ 適当に書いてたんで間違えた。 substrじゃなくてIndexOf 回線切って吊ってきます。
>>675 >>676 >>456 をあわせて改良すれば
a.txtを,で切って(split)で配列Aに
jufuku = [];
for (i=0 i<=配列A.length i++){
if (a.txt.indexOf(配列A[i])>-1)
jufuku.push(配列A[i]);
}
}
trace(jufuku);
ここまですれば分かるだろう。
>>673 >>674 が作れて
これで出来ないなら、少しのエラーで困ってすぐやり方を変えてしまうためかと。
swf上に外部XMLファイルから画像を読み込ませたXMLオブジェクトを配置し、 その画像をD&Dで同じswf上にある任意のエリアに 配置できるようなものを制作しています。 そこで、画像を任意のエリアに配置した時にドロップされた位置で その座標値を表示させるようにしているのですが、 その取得した座標値をパラメータとしてサーバ側に返したいと考えています。 このような場合、どのようなASを記述することによって パラメータを生成することができるのでしょうか。。 方法をご存知の方がいらっしゃいましたら、ぜひ教えてくださいm(_ _)m
680 :
613 :04/11/24 21:45:38 ID:By0RXjSv
できましたっm(_ _)m ここまでして頂きまして、ありがとう ございましたっm(_ _)m とてもすっきりしました。
sharedobjectに配列で保存はできたのですが、 読み出しが出来ませんでした。 おそらく何も入っていない状態のsharedobjectは配列化してないので それを配列化している箱に入れようとしたためなようです。 どうすれば、sharedobjectに配列で保存読み出しできるのでしょうか? //SharedObjectインスタンスの生成 SO_instance = SharedObject.getLocal("mydata"); //保存用サンプルデータを作成 var arrayData = new Array(); //保存したデータのよみこみ。 arrayData=SO_instance.data.arrayTest; subsave(){ //データを保存(変数を代入していますが、直接リテラルを入力することも可能です) SO_instance.data.arrayTest = arrayData; }
雪を降らせるようなムービーで 3秒おきにに雪を複製するようなことってできますか?
できる
684 :
682 :04/11/24 22:48:59 ID:I64taDWI
とりあえずムービークリップに onClipEvent (load) { this._x = Math.random()*550; speed = Math.random()*20+1; } onClipEvent (enterFrame) { this._y += speed; } で下に落下するムービーを作ったんですが、こっからどうすればいいんでしょうか(´・ω・`)
雪のMCのenterFrameで画面下まで来たら、 また上に座標戻してやるようにしておく。 あとは雪のMCを画面にいっぱいコピーしておく。
686 :
682 :04/11/24 23:35:05 ID:I64taDWI
ううむ、うまく行きません。 Y軸が420pixで、enterFrameに if ( this._y > 420) { this._y = 0; } だとチカチカして動作しないし。
687 :
Now_loading...774KB :04/11/24 23:59:03 ID:UmZ5pdOA
ちゃんとうごいてるけど
うごくね。
689 :
682 :04/11/25 00:14:49 ID:4Do5rYE6
あれ?動きます? MX2004なんですが、すいませんもう一度やってみます。 ちなみにduplicateMovieClipとか使って出来ますか?
チカチカってことは、 フレーム移動してループしているんじゃないかな。 _rootにthis.stop(); してみれ ぶっちゃけ、雪くらいだったら普通にこまあにめで作った方が早い罠
691 :
682 :04/11/25 00:52:02 ID:4Do5rYE6
_rootにstop();が無かったからでした。(´・ω・`) ありがとうございました。 けどこれってrandomだと再生する時によって右に偏ってたりしちゃいますね。 とりあえずずっと雪を降らせたかったので、スクリプトで動かそうと思うのですが、 onClipEvent (load) { this._x = Math.floor(Math.random()*550)+1; speed = Math.random()*2+0.5; } onClipEvent (enterFrame) { this._y += speed; _x += (Math.random()*0.8)-0.3; if (this._y>420) { this._y = 0; } } 以外で何かいい方法あったら宜しくお願いします。
692 :
607 :04/11/25 01:04:31 ID:s8miwCeJ
>>607 です。
あれから問題があり自分で検索するなり
いろいろやってみたのですが分からなかったのでもう一度質問
させていただきます。
getTimer();の値を0に戻す方法はありますか?
他のフレームでそのムービークリップを読ませないようにしてても
そのフレームに戻ってくると値がそのままで一発で死亡してしまう状態です。
分かる方がおりましたらよろしくお願いします。
onClipEvent (load) {
cntdown = 90;//開始タイムを設定
}
onClipEvent (enterFrame) {
time = getTimer();
hyouji = cntdown - Math.floor(time/1000)
if(hyouji < 0){
_root.gotoAndPlay("GAMEOVER");
}
}
>681 ____∧∧ 〜' ____(,,゚Д゚) UU U U 試しに配列保存してみたが保存読み込みできる。 var so = SharedObject.getLocal( "mydata" ); var arrayData = [ 1, 2, 3 ]; so.data.arrayTest = arrayData; var testData = so.data.arrayTest; trace( testData );
>679 ____∧∧ 〜' ____(,,゚Д゚) UU U U サーバにデータを送信する方法がわからないのですか?
695 :
Now_loading...774KB :04/11/25 01:35:32 ID:yHErfNDd
onClipEvent (load) { cntdown = 90;//開始タイムを設定 startTime = getTimer(); } onClipEvent (enterFrame) { time = getTimer() - startTime; hyouji = cntdown - Math.floor(time/1000) if(hyouji < 0){ _root.gotoAndPlay("GAMEOVER"); } }
保存読み込みは出来るのですが、 読み込み保存が出来ないのです。 こういう感じのを実現したいです↓ var so = SharedObject.getLocal( "mydata" ); もしso.data.arrayTestに何もはいっていないとき{ arrayData[1,2,3] }so.data.arrayTestに何かはいっていたとき{ arrayData=so.data.arrayTest; } //保存 so.data.arrayTest = arrayData;
697 :
↑681 :04/11/25 01:41:27 ID:YfvjQN69
698 :
679 :04/11/25 02:07:47 ID:W5orKj4A
>>694 サーバ側に送信する方法というよりは、
配置した画像に属性値を付加する方法が判らないのです(汗
例えば、現在は画像を配置した場所の座標値を表示することはできるのですが、
その座標値を画像の属性として覚えさせる為に、
どのようなASを記述すれば良いのかが判らなくて困っています。。
環境はMX2004Pro、Win2kです。
>696 ____∧∧ 〜' ____(,,゚Д゚) <さっきと言ってる事ちゃうし UU U U >保存読み込みは出来るのですが、 >読み込み保存が出来ないのです。 よくわからないが こういうことですか?できますよ。 var so = SharedObject.getLocal( "mydata" ); var arrayData = [ 1, 2, 3 ]; so.data.arrayTest = arrayData; //保存 var testData = so.data.arrayTest; //読み込み trace( testData ); //中身確認 so.data.arrayTest = testData; //保存 trace( so.data.arrayTest ); //中身確認
何も入っていないの判定式がダメなんじゃないのか? undefinedを使うんだよ。
>>698 言ってることがわかんないんだけど
もしや_xとかのことじゃないよねと、念を押しておく。
もうちょっと詳しくお願い。
702 :
679 :04/11/25 02:49:31 ID:W5orKj4A
>>701 具体的に言うと、D&Dで表示されている画像を
同じswf内の任意のエリアに配置します。
そのときに、配置された画像の左上端のx, y座標値を
現在は表示するように作っています。
ここで表示させてる座標値などを、画像の属性(この場合は位置情報)
として保存したいのです。
実際には、同時に複数の画像を任意のエリアに配置し、
それぞれの位置情報を属性として持たせることによって、
最終的には1枚の画像として再現できるようにしたいため、
位置情報を保存したいと考えています。
その他にも付け加えたい属性は有るのですが、
とりあえずどうすれば、個々の画像に情報を持たせることができるのかを
教えていただければと思います。。
どうぞ宜しくお願いしますm(_ _)m
長すぎて書き込めなかったので、一応次にソースを。。
703 :
679 :04/11/25 02:50:23 ID:W5orKj4A
ソースはこのような感じです。 function release_me():Void { this.stopDrag(); if(this._droptarget<>"" && _root.drop_mc.hitTest(_root._xmouse,_root._ymouse,false)) { //ドロップエリア内で他の画像が存在しない場合 this.swapDepths(this.depth); this.check = 1; this._alpha = 100; this.nw = 160; this.nh = 120; //x, y座標値の表示 var speed:Number = 15; _root.cbox_mc.startDrag(true); _root.onEnterFrame = function():Void { cbox_mc._rotation += speed; xline_mc._x += (cbox_mc._x-xline_mc._x)/1; xline_mc.xpostext = "x = "+cbox_mc._x; yline_mc._y += (cbox_mc._y-yline_mc._y)/1; yline_mc.ypostext = "y = "+cbox_mc._y; updateAfterEvent(); };
詳しくとは言ったが そりゃ内容を詳しくって意味で 変な言葉を付け加えて難しくすることじゃないべよ。 結局言ってることは >個々の画像に情報を持たせることができるのかを >教えていただければと思います。 これであって、これの意味が不明だからこっちとしても困る。 とりあえずなんだ、画像って何を指してるんだ? ムービークリップか? 属性として持たせるって意味も全然わからん。 _x _yをそのまま使うと何が不満なんだ?
705 :
679 :04/11/25 04:03:50 ID:W5orKj4A
申し訳ないです(汗 画像はムービークリップでつくられたXMLオブジェクトに 外部XMLファイルから読み込んだものです。 その画像を複数枚、同じswf内のdrop_mcというムービークリップに D&Dで配置して、配置された画像ごと drop_mcの範囲を1枚の画像として保存したいのです。 それで、保存する方法としてそれぞれの画像の位置などの値を データとして送り、そのデータによって 新たなXMLオブジェクトを作りたいのですが、 そのためにどのようなASを記述すればよいのかが判らなくて。。 _x _yをそのまま使うことに不満はないです。
loadVars使え
FlashMX 2004使っているんですが MCでアニメーションを繰り返しながら、BGMを途切れないように繰り返しループさせることは可能でしょうか? ボタンでまた次のMCに移り、違うBGMを流す・・・という感じに作りたいです。
ネコAAうざい
>707 ____∧∧ 〜' ____(,,゚Д゚) <可能。スクリプトは必要なし。 UU U U
>707 あ、stopAllSoundsは必要か。
711 :
まちこ :04/11/25 16:03:39 ID:qbmBQRlq
FlashMX を使用しているMacユーザーです。 FlashにQuickTimeムービーを読み込んでswfファイルで再生を考えています。 QuickTimeにもいくつか種類があるようですが、 QuickTime(mov).AVI QuickTime VR QuickTime Plug-in 一番最適なのはどれなのでしょうか? 教えてください。
712 :
Now_loading...774KB :04/11/25 17:28:26 ID:uDFsw6wA
WindowsでFlashMX2004を使っています。 htmlからswfをリンクで呼び出すときに、phpの変数を与えてswfで受け取ることはできますでしょうか? ---index.html--- <a href="hoge.swf?test=test&hoge=hoge">hoge</a> ---------------- ---hoge.swf----- format = loadVarsObject.load(url); ---------------- こんな感じでやってみています(-_-;)
713 :
Now_loading...774KB :04/11/26 00:42:49 ID:u+aJmTmD
win2000、flashMXで質問です。 ボタンを表示させたまま、なおかつ一時的にそのボタンを押せなくするようにしたいです。 上から透明のMCをかぶせてそこにonPressイベントを書くことでマウスはブロックできたのですが、 Tabキーを押すとなんとフォーカスが移ってきて押せてしまいます。 このTabキーをなんとかする方法はないのでしょうか? あきらめてボタンごとにフラグで制御したほうが良いのでしょうか?
確かフォーカスの移動順を制御するスクリプトで可能だったはずです。 フラグ制御がお勧めですけどね。
715 :
607 :04/11/26 00:49:50 ID:A5k7CIUu
>>695 前と同じ方ですか・・・?
本当にありがとうございました!
716 :
712 :04/11/26 01:04:48 ID:u+aJmTmD
>>713 物凄い勢いでありがとうございます!
フラグのほうが使いやすそうなのでそっちで作ることにします!
717 :
713 :04/11/26 01:06:08 ID:u+aJmTmD
もし、クリックして画面内のものを探して進んでいく系のゲームで ボタンの数や場所も悟られたくない場合は いっそ1個の大きなボタンにして、マウスがクリックされた座標で 処理を分けるとかいう方法もあるね。
俺はボタンムービークリップにして、 MC.hitArea = undefined; にしてたなあ。 戻す時は MC.hitArea = MC; で。
キーボードで数字を打って変数に代入するにはどうすればいいですか?
解決しました ありがとうございました
723 :
Now_loading...774KB :04/11/26 22:28:42 ID:IiLiQpYr
cgiにデータを渡す時にウィンドウを消して(出さずに)渡すにはどうすればいいのですか?
ar1 = new Array(); ar2 = new Array(); var code = eval("ar"+1); code[n] = p; code = eval("ar"+2); code[m] = q; これじゃうまく配列に値を代入できないみたいです。 どうしたらいいですか? 教えて!エロいひと!
>>724 なにからつっこんでいいものか・・・
なにがしたいのかわからないと教えようがないぐらいです。
726 :
724 :04/11/27 04:02:22 ID:fPIKcF0F
ar1 = new Array(); var code = eval("ar"+1); code[3] = 15; すみません。上のを ar1[3] = 15; と同じ動きにしたいんです。
>>726 code[3]に15を代入したときar1[3]にも15が代入される処理でいいのかな?
勘違いしてたらごめんなさい。
ar = new Array();
ar[0] = new Array();
ar[1] = new Array();
ar[2] = new Array();
code = new Array();
code[n] = p;
ar[i][n] = code[n];
code[m] = q;
ar[k][m] = code[m];
trace(code[n]); //結果 p
trace(ar[i][n]); //結果 p
trace(code[m]); //結果 q
trace(ar[k][m]); //結果 q
728 :
FLASHER :04/11/27 14:46:27 ID:3tUK+c8C
よくSWFの中で入れ子状態のようにSWFが再生されるのってありますよね?
どういうことなんでしょうか?一つのファイルのタイムライン上に
シンボルでわけているだけなんでしょうか?
で、ボタンをクリックするとそのシンボルに飛ぶって感じなのでしょうか?
例えばココとか
http://www.ingreme.com/start.html
xというMCのx座標が0〜100、yというMCのy座標が0〜100の時にmovieというMCに ○○.swfを読み込むのをmovieというMCに書いたんですけど、これであっているでしょうか? onClipEvent (enterFrame) { if (_root.x._x>=0 && _root.x._x<=100 && _root.y._y>=0 && _root.y._y<=100) { loadMovie("○○.swf", _root.movie); } }
this.loadMovie("○○.swf"); こうじゃないんですか? MCの名前にxとかyとかやめれ
732 :
730 :04/11/27 18:05:22 ID:asN5Hjpe
というよりMC表示されたところで、なんか読み込まれないんですけど、 どうなっているのでしょうか?
733 :
Now_loading...774KB :04/11/28 09:05:42 ID:v25BXqmm
onClipEvent(load){ var ls:Boolean = false var ypos:Number var xpos:Number } onClipEvent(enterFrame){ ypos = _root.y._y xpos = _root.x._x if(ypos>=0&&ypos<=100&&xpos>=0&&xpos<=100&&!ls) ls = true; this.loadMovie("○○.swf"); }
734 :
Now_loading...774KB :04/11/28 12:21:38 ID:+KbkMIKD
「テキスト入力ボックス1」と「テキスト入力ボックス2」、 System.setClipboardコマンドを記述した「ボタン」を1つ配置しました。 テキスト入力ボックス1に入力された文章を、 そのボタンを押すことによりクリップボードにコピーして、 テキスト入力ボックス2で「ctrl + v」を押して貼り付けたいのですが、 実際に貼りつく文章は、内容が改行されないままコピペされてしまいます。 どうすれば、文章の中の改行を保持したまま コピペできるようになるでしょうか? 解決策があれば、教えてください。 ボタンのアクションには on (release) { System.setClipboard (_root.text01); } と記述しました。 テキスト入力ボックスの設定はどちらも「複数行」にしています。 FLASH MX 2004です。 よろしくお願いします。
735 :
730 :04/11/28 16:12:09 ID:A24N62lC
onClipEvent (enterFrame) { loadMovie("○○.swf", _root.movie); } と書いたところでswfが読み込まれないのですが、どうなっているんでしょうか? よろしくお願いします。
なんでenterframe廻してるの? 何度も読みに行っちゃそりゃ読み込まれてないように見える罠。 あと>733は試してみた? lsっていうflagを使って何度も読み込みに行かないようにしなきゃ。
>736 やってみましたが出来ませんでした。。。
どこにどう書いたの? 環境は?MX?MX2004? >1をよく嫁。 出来ませんでした。。。じゃ何も伝わらないです。 ちなみに>733はloadMovieもif内にしなきゃいけません。 書きかえれ。
739 :
730 :04/11/28 17:00:06 ID:A24N62lC
スマソ。 環境は2004で>730のように書きました。 >738 loadMovieもif内ということはこういうことですか? onClipEvent(load){ var ls:Boolean = false var ypos:Number var xpos:Number } onClipEvent(enterFrame){ ypos = _root.y._y xpos = _root.x._x if(ypos>=0&&ypos<=100&&xpos>=0&&xpos<=100&&!ls){ ls = true; this.loadMovie("○○.swf"); } }
格闘ゲームみたいに「押したら動く」みたいなのがやりたいんですが、どうやるのでしょうか? 教えてください。
>>739 それで動かなかったの?
まずさ、変な処理を全部とりはらって
loadMovieだけLoadイベントに書いて試しなよ
それだとロードがちゃんと出来てないのか、if文が変なのか
問題が分散してわかんない
セミコロンとか、別々のMCに書いたとか、x,yが存在しないとかいうオチでしょう 小出しにされるとどこまでカバーしてやればいいのかわかんにゃい
trace使って数値を調べろ
traceをenterFrameで使うときは フレームレートが大きいと大変なことになるので注意
746 :
Now_loading...774KB :04/11/28 22:56:49 ID:JItadrEN
onClipEvent (mouseUp) { _xmouse = x; _ymouse = y; if (x>0 && y<0) { _global.a = y/Math.pow(x, 2); gotoAndStop(2); } } マウスをクリックして離したタイミングに MC中心の座標を取得し それをx、y変数に入れてifで条件分岐したいのですが なりません。 何が悪いんでしょうか。
on(release,releaseOutside){ x = this._xmouse; y = this._ymouse; /* if ( x > 0 && y < 0 ){ 〜〜〜〜〜 } */ }
すみませんが、なりませんでした・・・
そうですか( *^-^)b
onClipEvent (mouseUp) { x = this._xmouse; y = this._ymouse; _parent.xm = x;/座標取得確認のため _parent.ym = y;/座標取得確認のため if (x>0 && y>0) { _global.a = y/Math.pow(x, 2); gotoAndStop(2); } } これで一応座標は取得してくれるのですが 分岐までは行かないようです・・・
C言語でいうとdeta[5]のような空の5個の配列を 定義したいのですが、アクションスクリプトだとlengthなどを つかってもうまく定義できません。 どのように定義すればいいのでしょうか?
>751 これじゃだめかな? test = new Array(5);
>751 環境わからんのでMXで書くと //MX var Ar = new Array(x); >750 traceして確認してください。 xmだのymだの言われてもなんのことやら 値取得できててかつそれが数値であるのなら 分岐はできます、それだけです。
>570 やってみたけれども分岐通るよ? trace文ところどころいれてチェックしてみては。
755 :
751 :04/11/29 00:10:12 ID:FCJsYaex
752,753さんありがとうございます。 環境はMX2004です。 1フレーム目に空の5つ配列(deta = newArray(5);)を定義しておいて、 他のアクションで出来た数値(deta_No)をdetaに格納(deta.push(deta_No);) ということをやりたいのですが、先ほど教えていただいた空の配列の 定義の仕方でやり、trace(deta)をやるとundefineになってしまいました。 どこか考えられる原因はあるでしょうか?
>>755 ・var 宣言した配列を他箇所で使おうとしてる
・newArray と一息に書いている(半角スペースを入れていない? =>new Array)
対策として、その配列宣言した箇所で
trace("data = " + data + "\ndata_No = " + data_No);
を代入前後でやってみてください
757 :
751 :04/11/29 00:50:32 ID:FCJsYaex
756さん ご指摘の通り、new Arrayのスペースでした 初歩的なミスで恥ずかしいです 無事traceで出力できました ありがとうございました
>>750 onClipEvent (mouseUp) {
x1 = this._xmouse;
y1 = this._ymouse;
//分岐できてるかtraceチェック
xy = 0;
if ( x > 0 ){
if ( y > 0 ){
xy = 1;
}else{
xy = 4;
}
}else{
if ( y > 0 ){
xy = 2;
}else{
xy = 3;
}
trace("第"+xy+"象限");
/*
_global.a = y/Math.pow(x, 2);
gotoAndStop(2);
*/
}
質問させて下さい。 _global変数を多用することによる、 レスポンスの低下とかってリスクはあるのでしょうか? 当方、FLASH MX ,win2000pro です。 宜しくお願い致します。
何かにバッティングするのが怖いな。 その変数を全部覚えておいて、どこでも同じ名前で使わないことにしないといけない できれば_rootとかで代用するがいいよ。
数値(suuti)を発生させて、その数値と他にある配列の中の数値(deta[i]) と比べ配列の中に発生させた数値がなければ数値(suuti)を配列(deta)に 格納し、あったら再び数値を発生させ、格納できるまでループさせると いうプログラムを書きたいのです。 一応下記のように書いてみたのですが、うまくいきません。 for(;;){ suuti =数値を発生させるプログラム;←ここはできています if(! suuti==deta[i]){ this.deta.push(suuti); } } 環境MX2004
>761 作ってみた。ActionScript1.0だけど勘弁。 var data = new Array( 5,6,7 ); while( true ){ var num = 数値発生プログラム; if( checkList( num, this.data ) == true ){ this.data.push( num ); break; } } function checkList( num, list ){ for( var i=0 ; i < list.length ; i++ ){ if( num == list[i] ){ return false; } } return true; }
はじめまして。 Flashで正円を描く方法を探しているのですが、 curveToで描画する際のベジェハンドルの座標って 片方しか描画出来ないのでしょうか? だとすると、完全な円をcurveToで描画する事は出来ませんか?
764 :
761 :04/11/29 19:29:11 ID:yIs/TcrI
762さん これができずにずっと悩んでいたので、なるほどと いう感じです。 ありがとうございます。
765 :
Now_loading...774KB :04/11/29 19:40:58 ID:aLQDCZ9a
MX2004、WinXPです。 geturl("index.html#hoge") とやるとページ内リンクの#hogeが無視されてしまいます。 そういうもんなのでしょうか?対処法はありますでしょうか?
getURL
%23
768 :
765 :04/11/29 21:20:21 ID:aLQDCZ9a
>766 失礼しました >767 ありがとうございます!
769 :
759 :04/11/29 22:27:34 ID:093g+Khg
>>760 ご返答ありがとうございます。
参考にさせて頂きます。
そして、さらに質問させて下さい。
var hoge = selection.getFocus();
でhogeに渡されるのは、オブジェクトではなく、
ストリングになっていますよね。
これを、オブジェクトに変換したいのですが、
方法がわかりません。
どなたかご教授お願いします。
770 :
759 :04/11/29 22:35:17 ID:093g+Khg
自己解決しました。 Object(hoge); でした。 ...人間、一度人に頼ると癖になってしまってダメですね。。。
771 :
Now_loading...774KB :04/11/29 23:26:50 ID:shxhZAKM
質問させてください win2000 flashMXです 簡単なゲームを作ってみようとおもい ボールのリフティングゲームを作ろうとしたのですが あたり判定や リアルなボールの軌道とか あって意外に難しかったです どのように作ればいいんでしょうか? ちなみに 地面にボールおいてあり ボールをクリックすると 上方向にバウンド クリックの位置により 方向が決まる 地面に落とさないように何回できるか というゲームなんですが・・
あたり判定やリアルなボールの軌道を作れば良いよ
ん、足か何かがマウスをストーカーするの? ならボールのMCに透明のMC被せて下方向ちょっと伸ばして、 足と重なる時の足のMCのドロップターゲット調べる、とか それかhitTest。 前者はスラッシュシンタックスなのでevalってね
774 :
771 :04/11/30 00:06:44 ID:HcOHCBng
ActionScriptの知識というか、物理法則を関数であらわせるかどうかだ。 まずはボールが弾むアニメーションをスクリプトだけで作ってみるとか。 それも出来なければあたり判定は100年早いゾエ
>ボールが弾むアニメーションをスクリプトだけで作ってみるとか 恐ろしい事言う(w 当たり判定というか、Ball.onPressだけじゃない? 蹴った瞬間光ってごまかしている、のと、 わずかな残像が見える事から考えると 複数のアルファ値低いMC辺りをパパっとやってんじゃないかなぁと思った。 よく見たら蹴った箇所が凹んでるようでもなさそうだし。
>>762 横槍すまそ。
while(true){
って必要なんですか?
処理が勝手に進まないように
一時停止みたいな効果があるんでしょうか
>>777 whileそのものを勉強してください。
恐ろしい事? 弾力と重力を再現するだけじゃん。 上に反発するの力が重力によってだんだん弱くなる。 中学レベルの数式一行だぞ?
一瞬、弾むのは初歩の初歩だから 恐ろしいほど必要ないという意味なのかと思ったよ。
781 :
776 :04/11/30 02:15:20 ID:7j6wEran
>>779 跳ねるの事だったんですね、ごめんなさい。
てっきりボールがぐにゃりと歪むことかと思ってしまったので
エエエっとびっくらこきました。
それはどうやったらできるかな、パーティクルで点を繋いで・・・
783 :
776 :04/11/30 02:31:14 ID:7j6wEran
FlashMX 2004を使っているんですが loadMovieで外部SWFを読み込むさいに、表示位置(真ん中とか)と大きさを指定できるのでしょうか?
>784 出来るよ。
>>784 次から表示位置や大きさを指定する方法を教えてくださいって書こうな。
例えばloadMovieで、A_mcというMCに読み込んで
その後、A_mc._xやA_mc._xscaleの値を変更すればいい。
読み込むところで変更するのではなく、読み込み後に移動させるってわけだな。
ダイナミックテキスト「pw_zahyo」にMC「pw」の中のMC「pw1」の大きさをトゥイーンで 変えても100にしかなりません。 また、MC「pw」の中のMC「pw2」の位置をトゥイーンで変えても0にしかなりません。 何故でしょうか? いずれともタイムラインに「pw_zahyo = pw.pw1._xscale;」「pw_zahyo = pw.pw2._x;」 と書いております。環境はMX2004です。お願いします
>>788 >ダイナミックテキスト「pw_zahyo」にMC「pw」の中のMC「pw1」の大きさをトゥイーンで
>変えても100にしかなりません。
○○に××の大きさを変えても
って日本語おかしいだろ
意味不明。
790 :
788 :04/11/30 17:37:57 ID:7p1fF+GK
>>789 スマソ
「ダイナミックテキスト「pw_zahyo」に、
MC「pw」の中のMC「pw1」の大きさをトゥイーンで変えたものを
代入しても100にしかなりません。」
です。
変えたものを代入したら100以外の値になると思うけどね 代入してから動かしたんじゃ100になるだろうね。
792 :
Now_loading...774KB :04/11/30 20:54:46 ID:pNj2lwFu
>>767 ローカルではうまくいったんですが
サーバーにupると index.html%23hoge
とアドレスバーに出てNotFoundになってしまいます。
解決できません。何故でしょうか
793 :
792 :04/11/30 21:05:39 ID:pNj2lwFu
"index.html#hoge","_hoge","GET" GETをつけたらうまくいきましたがこれでいいのでしょうか・・・
_hoge? それで動けばそれでいいんじゃないの?
795 :
792 :04/11/30 21:12:42 ID:pNj2lwFu
_self のまちがいですた。 でも今度はローカルだと無効になっちゃうんですよね・・・
796 :
784 :04/12/01 00:36:53 ID:WCezjbHI
>>787 返信遅れました…
loadMovie ("xxx.swf", 1);
A_mc._x = xxx;
というふうに記述したのですが、ロードされるSWFは変化ありませんでした、、、
記述する場所が違うのでしょうか?
A_mc.loadMovie ("xxx.swf"); A_mc._x = xxx; こうじゃなかったっけ?
798 :
Now_loading...774KB :04/12/01 19:22:22 ID:T64It9fw
ごめんなさい。自力でやるにも限界だったので質問させてください。 矢印キーでキャラクターAを操作し、ムービークリップBにhitするとA、B共に動き出すというものを作っています。 そこでムービークリップBには onClipEvent(enterFrame){ if(hitTest(_root.A)) { this.play(); } } Bのタイムライン上1フレーム目に this.stop(); 2フレーム目に _root.A.gotoAndPlay("スタート"); と書きました。(Aのムービークリップのタイムライン上"スタート"にはBにhitしたときに再生させたいフレームを作りました) 再生してみると、確かにAがBにhitすると共に再生を始めますが、Bのムービークリップはフレーム再生終了後1フレーム目に戻ってしまい、また再生中はAが離れても再生したままです。 BのムービークリップにAがhitし続けている時は1フレームに戻ることなく再生を繰り返し、またAが離れると再生を止め、1フレーム目に戻るようにしたいのですが、どうしたらよいのでしょうか? FlashMX、Winを使用しています。 アドバイスをよろしくお願いいたします。
>798 >BのムービークリップにAがhitし続けている時は >1フレームに戻ることなく再生を繰り返し、 >またAが離れると再生を止め、1フレーム目に戻る とりあえずこの部分だけ。 試してないけれども多分こんな感じ。 onClipEvent( enterFrame ){ if( this.hitTest( _root.A ) == true ){ play(); } else{ gotoAndStop( 1 ); } }
object.watch() の使い方がわからなくて困ってます。 //_root function foo(hoge){ fuga = hoge; _root.unwatch("bar"); } _root.watch("bar", foo); // buttonオブジェクト on(release){ _root.bar = "test"; } のときに、fugaには"test"の文字列を渡したいのですが、なぜか"bar"が渡されてしまいます。 どなたかアドバイスお願いします。 環境は win flashMX です。
>800 Object.watch()は まず以下のような形にしなくてはきちんと機能しない。 各引数はhelp参照 function sub( i, o, n ){ return n; } よって800の式はこうなる。 function foo( i, o, hoge ){ fuga=hoge; _root.unwatch("bar"); return hoge; }
4つのムービークリップ mc1 mc2 mc3 mc4 が有って そのx座標の値を 60 220 380 540 を それぞれランダムで決めたいのですが、 x座標が重なってしまってうまくいきません どうしたらいいですか?
>>802 シャフルのアルゴリズムを調べると良いかも
すみません、ASの記述方法で良くわからない部分があるのですが、 通常の hoge = hige = hage = 0 のようにまとめてローカル変数で初期化する場合って var hoge:Number = 0 var hige:Number = 0 var hage:Number = 0 とするしかないのでしょうか? var hoge:Number = var hige:Number = var hage:Number = 0 とやったらエラーが出たもので・・・。
805 :
Now_loading...774KB :04/12/02 22:22:46 ID:nHKKcXgC
データグリッドからタブペインにドラッグアンドドロップして、 その際にタブペインを動的に追加し、そのへドロップしたデータ を背セットしたいのですが、 これは可能でしょうか?
当方MX使いです。質問させてください。 外部テキストファイルを読み込むとき、普通はテキストファイルを 変数名=変数内容&変数名=変数内容&… の形にしておきますよね? ところが、あるswfファイルをみたところ 変数内容,変数内容,変数内容, というファイルから変数を読み取っていたんです。 これって一体どうやってるかわかりますでしょうか? 色々検索したんですが、『変数名=変数内容…』の形にするとしか書かれていません。 ちょっと表現が分かりづらいかもしれませんが、よろしくお願いします。
もしt=変数内容,変数内容,変数内容,とかなら可能だけど・・・
>>807 そうなんですよね。
その場合は配列を使ってsplit()で分割して変数に代入出来るんですがどうやらそうではないらしいんです。
何がしたいのかと言うと掲示板や日記などのログをPHPで吐き出して、
FLASHをスキンファイルとして使いたいんです。
そのログが例の
変数内容,変数内容,変数内容,
の形だったもので。PHPの方を書き換えるのかと思ったんですが、
スキンファイルを提供してる他サイトのサンプルをダウンロードしてログ形式を見たらこのままだったんです。
諦めてPHPを書き換えるのが無難なんでしょうか…
そのflaは手に入らないのかな。
>>809 どうなんでしょうか…
ちょっとそのサイトの管理人さんに聞いてみます。
でもなんか最近放置気味らしくって。
やっぱり難しい(というか面倒?)っぽいですね。
>>806 ログを変換するCGIかPHPを使ってるんじゃないの
俺ならそうする。
LoadVars("convert.php")
みたいに
環境 WindowsXP FLASH MX 私はFLASHの初心者です。 基本的な質問です。 loadmovieでjpgなどを読み込んだとき基準点は左上になりますよね これを中心に変更したい場合はどうすればよろしいのでしょうか? アクションスクリプトから基準点を変更する方法が知りたいです。 よろしくお願いします。
>>812 入れ子のmcを用意して中のmcに画像を読みこむとか
>>812 MCの中で直接真中にするとMCの中心と交差するとこが伸びるバグがあるから、
813のいうように入れ子にしたほうが良いよ
>>806 onData(data)とかじゃないですかね
>806 これで読み込めるらしい。まだ試していないけれども。 HTMLとかのテキストデータならそのまま読み込み可能とのこと。 var myLv = new LoadVars(); myLv.onData = function( src ){ trace(src); } myLv.load( "test.csv" );
817 :
Now_loading...774KB :04/12/03 22:05:34 ID:971H8BC/
Flash 2004 Pro ActionScript2.0でアプリ作っています。 Flashの根本的なことを教えてください。 Flashってイベントドリブンで動作していますよね? 内部で、スレッドが並行して動いているのでしょうか? マルチスレッドで動いている場合は、スクリプトの書き方を リエントラントにするか排他を考えなければならないのですが。 webやヘルプを見たのですが、スレッドや同期に関する話題が無かったので。 宜しくお願いします。
>817 ムービークリップひとつが ひとつのスレッドなので マルチスレッドで動作している。
MXですが シーン2に this.gotoAndPlay(1); とかを入れると シーン1の1フレームに飛んでしまうのですが シーン2の1フレームに飛ばすにはどうすればいいでしょう
this.gotoAndPlay(2,1)
サンクスです
822 :
Now_loading...774KB :04/12/04 07:37:59 ID:I3MOdalK
それはASでやらないで、トゥイーンさせたMCの中に テキストフィールド入れた方が スピード調整の柔軟性があって便利だぞ。 止める程度もわからないようなら、トゥイーンのほうがお勧め。
>>822 1字1句変えずにあちこちにマルチポストするなよ。
答えてくれる質問も、答えてくれなくなるぞ。
>>801 うまくいきました。
どうもありがとう。
>>822 そんなピンポイントなScriptなんて無いよ。
移動がわかるって言うのはScriptでの移動のさせ方?
だったら停止位置でifで判定すればいいだろ。
827 :
817 :04/12/04 19:19:47 ID:xhOTdWrW
>>818 レスありがとう。
されに質問です。
ムービークリップ間でfunctionコールしたとき、非同期で動いてしまうって
ことは無いですよね?(通信系以外で)
じゃないと、プログラム組めなくなっちゃうんで。
宜しくお願いします。
非同期じゃないと思うよ。 そこら辺はかなり親切設計だから 気にしないでも大丈夫だと思う。
>827 非同期って例えばどんなことを言っているのでしょうか? Flash上では スレッド(MC)内でフレームをまたぐ時に ( gotoAndStopやonEnterFrameでループさせる等の時 ) 別スレッド(MC)に処理が移ります。 一つのフレーム内で別MCのメソッドを呼び出した場合 その別MCのメソッド内で走る処理は 別MCのスレッドではなく メソッドを呼び出したMCのスレッドです。
830 :
Now_loading...774KB :04/12/05 18:56:40 ID:2R75MF0L
モーショントゥイーンで動かしているMCの色を、 setRGBとかして変更すると、 モーショントゥイーンの動きが止まってしまうのですが、 こういう仕様なのでしょうか?
仕様です。 MCを入れ子にしてください
>>831 おお、物凄い勢いのレスありがとうございます。
-1をかけるのって *-1か*(-1)のどっちかですか?それともどちらでもないですか? どちらでもないのならば、やり方を教えてください。お願いします。
834 :
817 :04/12/05 20:56:46 ID:JRnPXefB
>>828-829 有難う御座います。
>非同期って例えばどんなことを言っているのでしょうか?
ムービークリップのインスタンスa,bがあるとして、
aがfunc1を持ち、bがfunc2を持つとします。
そして、func1の中でbのfunc2を下記のように呼びます。
a.fucn1 = function(){
//前処理
b.func2();
//後処理
}
この場合、func2がリターンしない限り、後処理が実行されないっていう認識で合ってますか?
また、逆に非同期を積極的に使うことは出来ますか?
例えば、思い処理を裏で行うとか。
(通信系はそんな感じなのでそのコードを参考にするのがいいかもしれませんが)
宜しくお願いします。
>>833 両方よし。
慣例的に * -1と、計算記号と数字の間にはスペースを入れる。
>>833 どっちでもいいですよ
*-1の方が短いのでおすすめ
trace(30*-1);
↑を実行すると-30が出力されるので確認してみましょう
837 :
833 :04/12/05 22:21:53 ID:ElF4x1Py
>>835-836 ありがとうございます。
それと(5+9)* -1なんかすると-14になったりするのですか?
(括弧の中が先に計算されるのか)
trace(5+9*-1) とか試してみればわかるでそ
trace((5+9)*-1); だね。 人に聞くのもいいけど、疑問に思ったことはとりあえず試してみるのもオススメ
演算の順番まとめておくよ かっこの中 ↓ *と/ ↓ +と- ↓ 同じ順位が2つ以上あるなら左から右 ↓ 変数に代入 ↓
>834 >この場合、func2がリターンしない限り、後処理が実行されないっていう認識で合ってますか? あってます >また、逆に非同期を積極的に使うことは出来ますか? >例えば、思い処理を裏で行うとか。 これはちょっとわからないですが スレッド作成(MC複製)して裏で処理を行わせればよいのかと。
あまりFLashで重い処理をスレッド管理しようとすると 死ねると思う。 素直な方法でやった方がいい。
MCにパラパラ漫画のようなフレームアニメーションを作って、そのバックでBGMなどの音楽を流してループさせようと思うのですが BGMが終わってMCの最初に戻ると初めの部分で少し止まってしまい、滑らかに再生されないのですがこれは仕方ないのでしょうか? BGMなしで再生すると、滑らかに再生されるのですが( ´・ω・)
再生にパフォーマンス食ってるんだと思う。
あ、っていうかスレ違いじゃないか。 つい答えちゃったよ。
ごめん…(´・ω・`)
847 :
Now_loading...774KB :04/12/06 03:07:34 ID:6U91rinN
flash内部から、swfのURLでなく、 swfを表示しているhtmlのURLを取得することは、 できるでしょうか?
>>847 マルチじゃーないけどいい気はしないなぁ。
JSで受け渡せ
【環境】FlashMX+WinXP 【やりたい事】列挙したMC達をScrollPane枠内でスクロールしてみえるようにしたい。 【現象】列挙したMCだけがScrollPane枠外で見えてしまう。 Flashで掲示板を作ろうと思っています。 そこでScrollPane枠内に記事タイトル(MC)を列挙して、 沢山記事が発生してもスクロールして見えるようにしたいのですが、上手くいきません。 ScrollContentのMCはちゃんとPane枠外に出ると隠れてくれるのですが、 そのMCにattachMovieした記事タイトルMCがPane枠外にはみ出て見えてしまうんです。 ソースはこんな感じです。 var ID=100; var contentMC = _root.scrollPaneInstance.getScrollContent();//ScrollContentのMCを取得 contentMC.attachMovie("title","title"+ID,ID);//ScrollContentのMCに記事タイトルを配置 ちなみにgetDepthで深度を取得してみたのですが、値は以下のようになっていました。 _root:-16384 scrollPaneInstance:-16377 contentMC:3 深度が関係しているのでしょうか? 分かる方がおりましたら、よろしくお願いします。
FLASH5とMXおよびMX2004の差分知識(特にAS)を 最も効率的に知る方法って何でしょうか? 急にAS覚えなきゃならなくなって、 信頼できそうな「macromedia FLASH ActionScriptバイブル」をやってますが、 先に差分知識を大局的に把握しとかないと、ワケ分からなくなりそうです。
>>849 列挙の意味が微妙に不明なんですが
確かScrollPaneには再表示とか表示MCの指定のメソッドがあったような。
うろ覚えですけど、それ探して使って見てください。
深度はあんまり関係ないと思います。
>>850 5とMXでは機能増加程度で目立った差分はありません。
2004のAS2.0だけは大幅に変更があります。
それぞれのバージョンのヘルプには、前回バージョンからの差分が記載されています。
また、2.0だけでよければそれ専用の本も販売されています。
FlashOOPあたりがお勧めでしょう。
852 :
Now_loading...774KB :04/12/06 19:48:57 ID:mgLxPFnB
始めまして、FLASHでキャラクターを操作できるアバターチャットを作っているのですが、 まだまだ知識が至らず、操作の面で解らないことがあります。 動きのイメージとしては、オンラインゲーム(MMORPG)のようなもので、 移動したい位置をクリックすると、キャラクターがその位置に移動する仕組みです。 ムービークリップで作ったキャラクターに下のACを記述することで、移動自体は出来ました。 onClipEvent(mouseDown){ _x = _parent._xmouse; _y = _parent._ymouse; } ですが、このままでは「瞬間移動」になってしまい、 肝心の「指定された位置へ歩行して移動」という動作が出来ません。 winXP、flashMXです。 後々は移動する方向によってキャラの向きが変わるなど、もっと勉強して色々やろうと考えています。 どうか、力を貸してください。
>>852 onClipEvent(Enterframe)を使う
例えば
onClipEvent(load){
xspeed = 3;//xの速さお好みで
yspeed = 3;//これもお好みで
}
onClipEvent(Enterframe){
_x += xspeed;//x座標を毎フレームxspeedだけ移動
_y += yspeed;//上に同じ
}
あとは数値をマイナスにするとか何とかで上下左右いけるはず。
確かこんな感じだった。訂正ヨロ
onClipEvent(load){ r = 0; xspeed = 3;//xの速さお好みで yspeed = 3;//これもお好みで } onClipEvent(Enterframe){ _x += xspeed * Math.cos(r); _y += yspeed * Math.sin(r);; } onClipEvent(mouseDown){ r = Math.atan2(_parent._ymouse - _y, _parent._xmouse - _x); } 角度使ってやるならこうかな?
855 :
Now_loading...774KB :04/12/07 00:39:54 ID:ezK4QHe0
localconnectionを同時に複数たちあげたのですが、うまくいきません 例えばtest1.swfに送信のコネクション, test2.swfに受信のコネクション で、test2.swfの別のフレームに別の送信コネクションを書いて、 test3.swfにtest2からの受信コネクション、、、といった風なものを作っています。 localconnectionにこのへん制限ってあるんでしょうか いろいろなパターンで試したんですけど、二つ目の (test2→test3)のコネクションが動いてないみたい。 詳しい方いますか?
test2>test3だけの通信はうまくいくの?
857 :
855 :04/12/07 00:57:53 ID:ezK4QHe0
>856 2→3 が単体でうまくいってなかったです ありがとうです 助かりました
858 :
855 :04/12/07 00:59:37 ID:ezK4QHe0
複数同時で動きました
859 :
852 :04/12/07 02:28:59 ID:MST9//Ys
>>853-854 お二人ともどうも有り難うございました。
上のアドバイスを参考に、今まで色々やってみましたが、
始まった瞬間にキャラが右に移動していったり、
静止せずにそのままだったり、その方法ではどうもうまくいきませんでした。すみません。
それからさらに調べているうちに、以下のようなASをみつけました。
コイツをキャラクターのMCにぶちこんだところ、見事に望みどおりの動きが再現されました。
今度はここからキャラの向きを導き、方向ごとに、方向にあった歩行モーションのMCに切り替える方法を考えてみます。
本当に有難うございました!
860 :
852 :04/12/07 02:29:26 ID:MST9//Ys
----------------------------------------- onClipEvent (load) { var nDeceleration = 10; var nX = _x; var nY = _y; var bMove = false; } onClipEvent(mouseDown){ nX = _parent._xmouse; nY = _parent._ymouse; bMove = true; } onClipEvent (enterFrame) { if (bMove == true) { var nDistanceX = nX-_x; var nDistanceY = nY-_y; if (Math.abs(nDistanceX)>0.2 && Math.abs(nDistanceY)>0.2) { _x += nDistanceX/nDeceleration; _y += nDistanceY/nDeceleration; } else { _x = nX; _y = nY; bMove = false; } } } -----------------------------------------
861 :
Now_loading...774KB :04/12/07 03:34:54 ID:njUzDDgo
MX2004です。 ムービークリップにon(release)イベントで反応するようにしてるのですが、 カーソルを「手」に変えない方法はありますでしょうか?
Mouse.hide();でハンドカーソル消して、 その座標に通常カーソル描画させるとかじゃいかんかね? ActionScriptほとんど知らんで答えてるけど。
質問です。 function aaa(){} と aaa = function(){} の厳密な違いってなんでしょうか?
使う分に厳密な違いってのは無いんだけど flashではfunctionってのはFunction型っていうオブジェクトでもあるんだな。 それで変数に代入することができると。 ()ってのは、変数を実行しますよーという意味のしるし。なので、 function aaa (){ ○○ } function aaa (){ ×× } こんなことすると、aaa()の中身は、××に上書きされる。 そんで、当然変数に入れることが出来るから bbb = function aaa (){} ってのが可能と。 で、この場合、どうせbbbでアクセスするんだからaaaって名前は使う予定が無い。 そこで匿名と言って、名前の無い関数に省略してしまってもいい。 bbb = function (){} とまあ、こういう経歴があるというわけだ。 別のMCの関数を設定する時はこっちの方法しかないからこうやってるんだな。 普通の宣言ならfunction aaa ()の方がいい。
>>861 MC.useHandCursor = false;
866 :
863 :04/12/07 12:02:06 ID:/xHSQXhJ
>>864 様
ご返信ありがとうございます。
非常に分かり易かったです。
つまり、
function aaa (){}
の記述では同じタイムライン上の関数しか定義できないわけですね。
もう一つ気になることがあるのですが、質問させて下さい。
以前、次のようにscriptを記述したのですが、
this.aaa();
aaa = function (){
trace("test");
}
動きませんでした。そこで、下記のように書き換えたところ、
this.aaa();
function aaa(){
trace("test");
}
動作するようになりました。
記述場所は_rootの1フレーム目です。
環境はFLASH MX,WIN2000proです。
これは何故なんでしょうか?
867 :
Now_loading...774KB :04/12/07 12:24:39 ID:bIFrPBGv
FlashとPHPの連携をしたくて、 Flash側のフレームに、 //送信用のデータの生成 formData = new LoadVars(); formData.data = _root.txt; //受信用のデータの生成 recvData = new LoadVars(); //データの受信処理を設定 recvData.onLoad = function(){ _root.dymtxt = recvData.data; } //PHPへデータ転送 formData.sendAndLoad("test.php", recvData, "get"); PHP echo "data=".$_GET["data"].10; としているのですが、まったく反応がありません。。 WinのMX2004です。 何か根本的に間違っていますか・・?
"get"→"GET"では
>>866 たぶん、パブリッシュの時にfunction宣言は勝手に一番上に移動するのでは?
上の書き方だとaaaはあくまで変数だから、あの状態では何も無いってないことになると思われ。
870 :
Now_loading...774KB :04/12/07 14:00:04 ID:bIFrPBGv
>>868 GETに変更したのですが、だめでした・・
どうもonLoadが動作してないみたいなんで、
PHPから返ってきてないみたいですね・・あ゛ぅ゛
問題を小分けしな。 まずphpとflashのどっちに問題があるかチェックから。 片方を激シンプルにしてやってみなよ。
872 :
861 :04/12/07 14:24:48 ID:F8FejU1U
873 :
Now_loading...774KB :04/12/07 14:26:29 ID:bIFrPBGv
>>871 PHP側は
まんまこれだけです。
echo "data=".$_GET["data"].10;
Flash側・・・
formData = new LoadVars();
formData.data = _root.txt;
//受信用のデータの生成
recvData = new LoadVars();
//データの受信処理を設定
recvData.onLoad = function(){
gotoAndPlay("success");
}
//PHPへデータ転送
formData.sendAndLoad("test.php", recvData, "GET");
↑もうこれだけタイムラインにおいてるだけです・。。
onloadで呼び出されるのをgotoに変えただけでやってみましたがだめぽです・・
あと、PHPはちゃんと動いてます。phpinfoで確認済み
同じドメイン内?
875 :
Now_loading...774KB :04/12/07 14:36:02 ID:bIFrPBGv
>873 onLoadの引数てvoidでも動作するのでしたっけ? ためしにこうしてみては。 recvData.onLoad = function( success ){ trace( success ); }
PHPは本当に動いてる?ブラウザで確認した? 文字コードはUTF-8で統一してる?
878 :
Now_loading...774KB :04/12/07 14:47:30 ID:QzaVf6zP
>>873 formData = new LoadVars();
formData.data = _root.txt;
//
rcvData.mc = this
//
recvData = new LoadVars();
recvData.onLoad = function(){
mc.gotoAndPlay("success");
}
これじゃだめすか?
879 :
Now_loading...774KB :04/12/07 14:48:43 ID:QzaVf6zP
まちごうた formData = new LoadVars(); formData.data = _root.txt; recvData = new LoadVars(); // rcvData.mc = this // recvData.onLoad = function(){ mc.gotoAndPlay("success"); }
880 :
Now_loading...774KB :04/12/07 15:00:50 ID:bIFrPBGv
>>876 一緒でした・・
>>877 phpinfoが見れるので動いるかと・・
文字コードはEUCだったのでUTF-8に変えましたが、一緒でした。。
<?php
echo "data=".$_GET["data"].10;
?>
PHP側はこれだけで本当にいいんでしょうか?(PHPのVerによる変数の割り当ては問題無しです)
原因はPHPとしか思えない。
PHPが動いてるのと、君の作ってるphpが思うような出力をしてるのかどうかはまったく違う問題。 それが分ってないのならPHPをもっと勉強して下さい。 echo "data=".$_GET["data"].10; を print "data=".$_GET["data"].10; に修正して、「ブラウザで」phpのURLを入力して、思うような文字列が出力できてるかを確認してみて。 そこで出てなかったらPHPの質問スレでも探して質問して。
883 :
Now_loading...774KB :04/12/07 16:13:35 ID:bIFrPBGv
884 :
// rcvData.mc = this // :04/12/07 16:20:41 ID:QzaVf6zP
もうFlash側よりも鯖側から探れないのか phpが起動してるかどうかとか
いつもお世話になっております。 質問をさせて下さい。 既にswfファイル化されたムービー上で、 スクリプトを用い、現在表示されているムービーを 静止画として出力ってできますでしょうか? というのは、やりたいことは、 ムービー上で、色・ラベルの変更が可能なボタンの画像を配置し、 クライアントが気に入った配色を選び、画像として出力できる、 といったことなのですが、やはり無理でしょうか?
>>884 あー、たぶんそれですね。
onLoad = function(){trace("取得確認");}
とかで届いてるのを見ればいいですね。あるいは
onData = function(data){trace(data);}
とか。
888 :
Now_loading...774KB :04/12/07 16:32:42 ID:bIFrPBGv
>>884 いえ・・すいません返事できてませんでしたm(_ _)m
試したのですが駄目でした・・
>>885 鯖側でも調べました。あとphpinfo();がはしるということは動いてる事になるので・・動いてるのは間違いないと思いますが・・
念の為、レン鯖にアップしてやってみましたが、結果は一緒でした。
ASの記述する場所が悪いんでしょうか?
今はタイムライン上に書いていますが・・・
>888 蛇足かもしれませんが_root.txtに値は入っていますよね。
890 :
Now_loading...774KB :04/12/07 16:58:01 ID:bIFrPBGv
>>889 それでした・・w NULLが返ってきてたんですね・・
ちなみに、少し省いて
formData = new LoadVars();
formData.data = _root.txt;
recvData = new LoadVars();
recvData.onLoad = function(){
gotoAndPlay("success");
}
formData.sendAndLoad("test.php", recvData, "GET");
これで動作させました
ご指導頂いた方有難う御座いましたm(_ _;)m
891 :
// rcvData.mc = this // :04/12/07 17:03:53 ID:QzaVf6zP
おいおいw
____∧∧ 〜' ____(,,゚Д゚) これぞ盲点と人は呼ぶ UU U U
まじで盲点だなw 動かないんじゃなくて動いてたのか。
896 :
852 :04/12/07 20:45:22 ID:eHcdqpha
昨日の今日で申し訳ないです。
前回の
>>860 を使ってキャラクターを動かしているのですが、
今度はキャラクターの移動範囲の部分で悩んでいます。
ttp://isvalid.jp/actionscriptLab/lesson/gameLesson2.html ↑の講座を参考に、移動できる範囲をMAPの見た目に合わせて「塗り」で作り(movearea)、
それからキャラクターのonClipEvent(enterFrame)に以下のASを記述しました。
if (_root.movearea.hitTest(this.getBounds(_root).xMax, this._y, true)) {
this._x += nDistanceX/nDeceleration;
}
if (_root.movearea.hitTest(this.getBounds(_root).xMin, this._y, true)) {
this._x -= nDistanceX/nDeceleration;
}
if (_root.movearea.hitTest(this._x, this.getBounds(_root).yMax, true)) {
this._y += nDistanceY/nDeceleration;
}
if (_root.movearea.hitTest(this._x, this.getBounds(_root).yMin, true)) {
this._y -= nDistanceY/nDeceleration;
}
このとき、境界にさしかかると一瞬とまったような動きはするのですが、
境界を飛び越えてすぐにキャラクターがマウスの位置に瞬間移動してしまいます。
何か境界からとび出さないようにする良い方法、またはこのような複雑な形の移動範囲をうまく作る方法はないでしょうか?
>> 866 様 返信ありがとうございます。 たしかにfunction宣言の場合、 自動で繰り上がるのならば、この記述で動作しないですね。 やっと理解できました。ありがとうございました。 >> 894 様 そうですか。。。やはり無理ですか。 出来たら色々と便利なんですけどね; ご返信ありがとうございました。
898 :
852 :04/12/08 18:49:07 ID:hmDzmtF+
すみません、
>>896 の問題は
1.キャラとマップがヒット(移動可能領域上にいる)していたら、クリックしたときそこまでキャラはスライドする。マップとヒットしていなかったら動かない。
2.マウスクリックが指定範囲内だったらキャラはクリックした位置までスライド。マウスクリックが範囲外だったら移動しない。
という条件を
>>860 に付けることで解決しました。
ただ、これだと「壁」の当たりは問題ないのですが、「障害物」の判定で悩んでいます。
■が移動可能範囲、□が移動不可能領域だとして、
a■□□b
A■□■B
このような位置関係でキャラがAにいるとき、
a→bは行けないようになっていますが、
A→Bの移動不可能領域を越えての直線移動が成り立ってしまいます。
何か良い方法は無いでしょうか?
アルゴリズムとしては キャラが次進むべき場所を調べる ↓ 壁が無ければ移動 という処理を繰り返して動くことで実現することが出来ます。 それをどうASで書くんですか?という質問はたぶんここじゃ答えない。
900 :
Now_loading...774KB :04/12/11 02:50:38 ID:5yX67KOg
ボタンをクリックしたらそれに対応したいくつかのMCがそれぞれ動作するようにしたいのですが, ボタンをクリックしたときにMCのメソッドをつつきに行くのではなく, クリックされるとボタンが何かイベントを起こして,対応するMCでそのイベントを拾って動作するようにできないでしょうか。 また,それぞれのMCが反応するボタンは動的に変更したいとも思っています。
>>900 ブロードキャストの考え方が良いと思います。
結局はつつきに行くことになりますが、やりたいことが実現できるかと。
概要を説明すると
ボタン側には変数_listenerを用意します。これは配列です。
イベントを受けたいMCはボタンの_listenerに自分を追加します。
ボタンはクリックされるとListenerに入っている物全てに対してメソッドを実行します。
これで、ボタン側に予めメソッドを起こすMCを記述しておく必要が無くなります
詳しくは検索してみてください。
902 :
900 :04/12/11 03:35:03 ID:5yX67KOg
>>901 ありがとうございます。
ただ,これだと
AをクリックしてB, Cのメソッドを実行
→Bのメソッドで状態が変化してDのメソッドを実行
となって欲しいのに,実際にはB, D, Cの順でメソッドが実行されてしまいそうですが,その解釈であっていますか?
もしあっていたら,B, C, Dの順でメソッドが実行されるようにしたいんですがその場合どのようにすればいいんでしょうか?
>>902 必ず繋がっていないといけない処理を、複数のMCに分けるのは良くないと思います。
例えば、何故BからCのメソッドを呼び出さないのでしょうか?
もしくはCの内容もBに書いてしまうことはできないでしょうか?
他に_rootでまとめて処理はできないか?
というより、何がしたいのか不明瞭で困ります。
どのような処理がしたいのでしょうか?
ライブラリに読み込んだswfをattachMovieで再生したいのですが、 読み込んだ時点でシェイプグラフィックに変換されて再生できません。 読み込むswfはスクリプトやタイムライン、MCを多用していますがこれが原因でしょうか?
905 :
Now_loading...774KB :04/12/11 07:16:15 ID:E/nNrBNx
すみません、1週間前ぐらいからFLASH MXを始めた厨房です 現在サイトのメニューボタンを作っていますが クリックすると音が鳴る&マウスのrolloutの処理が欲しくてMCで作りました push.waveという音をライブラリに読み込み識別子を「push」にして ActionScriptに書き出しをチェックして 以下のASを書きましたが、全く音が鳴りません 厨房な質問ですみませんがどうかよろしくお願いします onClipEvent(load) { se = new Sound(); se.attachSound("push"); } on(release) { se.start(); getURL("リンク先URL","_cont"); }
>>905 房ですか。。。私も同じです(藁
そんなことせずにボタンのフレームに読み込んでみてはどうでしょうか。。。
907 :
Now_loading...774KB :04/12/11 15:47:12 ID:TvkTqO8W
質問させて下さい。 外部テキストからsetRGBで取得した色情報を、MCに適用して MCの色を変えれるようにしたいのですが、どのようにActionScriptを書けばよいでしょうか? 外部テキスト内は、BG = 0xFFFFFF と記述して MC(インスタンス名:background)に下記のActionScriptを適用しましたが、 そこで解らなくなっています。 my_color = new Color(background); my_color.setRGB(BG); よろしくお願いします。
908 :
907 :04/12/11 15:51:45 ID:TvkTqO8W
すいません、書き漏れです、 環境はWindows FLASH MX 2004 でした。
>>903 説明が具体的でなく申し訳ありません。
ニューラルネットのモデルシミュレーションみたいなものを考えています。
ニューロン同士の結合や結合重みを動的に変えて実行するようなものを作ってみたいのですが、
902に書いたような状態になってしまうとシミュレーションができなくなってしまうもので…。
自分でイベントを発生させてそれをみて各ニューロンが動作してくれるのが理想かと思って質問していたんです。
このようなことはactionscriptではできないと考えてよろしいのでしょうか。
>909 単純にDはCの処理が実行されるまで待機しておけばいいのでは?
よろしくお願いします。 FlashMXで制作しています。 _global.com[1]="あいうえお"; という変数を作っておき、後でダイナミックテキストの変数の名前を_global.com[1]に しても、内容(あいうえお)が表示されません。 この変数名を配列でなく、 _global.com="あいうえお"; とするとうまくいくのですが…。配列では不可能なのでしょうか?
>911 「変数名を配列にする」という考え方がまずおかしい。 配列がなんなのか、まず頭で整理すること。 >_global.com[1] これがうまくいかない理由は 変数名に使用してはいけない "["と"]" が含まれているため。
>>911 _global.com = new Array();
_global.com[1] = ["あいうえお"];
trace(_global.com[1]);
914 :
Now_loading...774KB :04/12/12 16:31:50 ID:zWloeS4m
配列を自動的に順番に取り出すスクリプトはあるのでしょうか?
for文で代入させてけばいいんじゃネ
>916 1.読み込ませたいMCをフレームに配置 2._framesloadedで読み込んでいるフレーム数を調査し 1で配置したフレーム以上の数値を得た場合、そのフレームへジャンプ
>>916 「しぇあーどおぶじぇくと」でぐぐるといいことあるよ。
本のサンプルにて
var b:Boolean = false;
var xscale:Number = 100;
var yscale:Number = 100;
_root.image_mc.onPress = function():Void {
xscale = Math.round(20+Math.random()*200);
yscale = Math.round(20+Math.random()*200);
b = true;
this._alpha = 50;
};
_root.image_mc.onRelease = function():Void {
this._alpha = 100;
};
_root.image_mc.onEnterFrame = function():Void {
if (b) {
this._xscale += (xscale-this._xscale)/5;
this._yscale += (yscale-this._yscale)/5;
updateAfterEvent();
}
};
stop();
こんなコードがあって、実行すると画像クリック→ランダムに伸縮
みたいな実行結果になるんです。
ところがサンプルに使われているimageムービークリップを自分で
新しく作ったimageムービークリップで置き換えると動作がなされないのは
なんででしょう?
ttp://www.logicalyze.com/handbook3/ のSection3の3-1.flaでつ。
お願いします。
普通に動く。 つまりお前のやり方が悪いとしか言えない。
921 :
Now_loading...774KB :04/12/13 10:56:42 ID:HK8YklSt
>>920 初心者をいつもきびしく煽るあなた、すごい目障りです。
>919 入れ替えたMCに 「image_mc」というムービークリップ名をつけたかどうか確認。 >921 2chだし口悪い人がいても仕方ないさ。正しいことは言っているし。
喧嘩するな。
>>921 に一理あるがここでそんなことを言うべきじゃないし
厳しくするのはここでは勝手だ。
2ちゃんなんだから何言われてもいいつもりで書き込むべき。
答えるほうは無償でやってるんだからな。
FLASH MX2004を使ってます。 空のコンボボックスにXMLのデータをaddItemで追加。 その後、setSelectedIndexで表示位置を設定します。 しかし、コンボボックス内にXMLの値はしっかり入っているものの、 setSelectedIndexで場所を指定できません。 traceで.getLength()を調べたら、値がundefinedになります。 もちろん、コンボボックス内にXMLのデータはちゃんと入ってます。 あらかじめプロパティで値をいれると、ちゃんと.getLength()の値が表示されます。 ActionScriptでデータを格納したコンボボックスの表示位置を指定するにはどのようにすればいいのでしょう? ちなみにXMLを読み込む場所もコンボボックスを指定する場所も1フレーム目です。
>925 コンボボックス配置した次のフレームで getLength()使ってみてもらえますか?
FlashMXを使用して、CGIのパスワード認証システムを作っています。 パスワードやIDはSQLServerを使用して、CGIで認証し、結果をFlashに 返すようにしているのですが、どうしてもうまくいきません。 FlashからCGIへは渡っており、CGIからデータベースのほうもうまく認証できているのですが、 結果をCGIからFlashに渡すときにおかしくなっているのか、Flashのほうでうまく判断できていない状態なのか、よく分かりません。 Flashに打ち込んだスクリプトは下記の通りです。 on (release) { //--パスワード送信用LoadVarsオブジェクトの作成 System.usecodepage = True; myLoadVars = new LoadVars(); mySendVars.id = id; mySendVars.pass = pass; //--受信用LoadVarsオブジェクトの作成 myLoadVars = new LoadVars(); myLoadVars.onLoad = function(success){ $log = myLoadVars.logIN; } if ( $log == 0 ) { this.gotoAndStop ("out"); }else { this.gotoAndStop ("in"); } mySendVars.sendAndLoad("check.cgi",myLoadVars,"POST"); } 何かとても、変な間違いをしてしまっていると思いますので、お教え下さい。 よろしくお願いいします。
928 :
925 :04/12/13 16:11:46 ID:cgVLhnAM
>>926 次フレーム、次マウスイベントの時点では取得できます。
できれば1フレーム目でXMLデータをコンボボックスに格納し、setSelectedIndexしたいのです。
やはり不可能なのでしょうか。
>928 こうしてみてはどうでしょう。 厳密に1フレーム目とはいえませんが。 this.onEnterFrame = function(){ コンボボックス名.getLength(); その他コンボボックスで行いたい もろもろの処理; delete this.onEnterFrame; }
>927 if文はonLoadの中に記述。
932 :
Now_loading...774KB :04/12/14 09:54:57 ID:x+GlDnVz
FlashMX 2004(実際はFlex)。 2つのDataGridのスクロールを同期させたいのですが どのようにすればいいでしょうか? (片方のDataGridがスクロールされたらもう片方も動く) DataGridのScrollイベントでスクロールされたことはひろえるのですが、 そこでどのように処理すればよいでしょうか?
933 :
Now_loading...774KB :04/12/14 10:09:31 ID:QngFQAbm
文章を 円筒上にくるくる回したいのですが どうすればいいのでしょうか?
へぼ質問ですみません。 substring() で文字数指定で文字列を切り取れますよね。 これの、バイト指定の関数ってなんでしょうか? 調べてみたもののなかなか出てこなくて・・・・ 環境はFLASH MXです。
バイト指定は無いかもしれない。 何したいの?
936 :
927 :04/12/14 13:56:47 ID:eaHw2a5r
昨日は、ありがとうございました。 教えていただいたとおりに、if分をonLoadの中に記述したのですが、 そうしましたら、一切動かなくなってしまいました・・・ onLoadから出したら、ボタンを押して次に進めるのですが、進んだ先は間違ってしまっております。 もう一度教えてください。 on (release) { System.usecodepage = true; //-- mySendVars = new LoadVars(); mySendVars.id = id; mySendVars.pass = pass; //-- myLoadVars = new LoadVars(); myLoadVars.onLoad = function(success) { inin = myLoadVars.logIN; if( 0 == inin ){ this.gotoAndStop("in"); }else{ this.gotoAndStop("out"); } } }
>936 gotoAndStopにthisはいらない
938 :
934 :04/12/14 14:30:02 ID:G0XetLAQ
>>935 返信ありがとうございます。
やりたいことは、
固定サイズのダイナミックテキストに、
変数に格納した文字列を挿入するということです。
このとき、このダイナミックテキストに収まらないサイズであれば、
最後に"・・・"を加えて表示するというものなんですが、
文字数でとってしまうと半角も一文字なので上手くいかず、
困っていたところです。
何か良い方法などありますでしょうか
939 :
927 :04/12/14 14:35:39 ID:eaHw2a5r
>>929 ,931,936さま
ありがとうございました!ページが進むようになりました。
しかし・・・同じフレームしか表示されません・・・。
Flashに戻さなければ、正しいページが表示されるので、CGIに間違いはないと思うのですが・・・。
if文の間違いでしょうか?
ちなみに、CGIは下記のように書いております。
940 :
927 :04/12/14 14:36:50 ID:eaHw2a5r
require "****.cgi"; $q = new CGI; $username = $q->param('id'); $password = $q->param('pass'); if(Init() eq -1) { print "初期化エラー"; } if(Login ($username,$password) eq -1) { errPage(); }else{ manePage(); } exit; #=====エラーページ============= sub errPage { $i = 0; print "Content-type: text/plain\n\n"; print "logIN = $i"; } #=====管理ページへ============== sub manePage { $i = 1; print "Content-type: text/plain\n\n"; print "logIN = $i"; } 何度も何度も申し訳ありません、よろしくお願いします。
941 :
925 :04/12/14 14:40:10 ID:7h8c9Eaj
>>930 試したけどダメでした。
XMLを読み込むプロセスが終了していないのか、
コンボボックスにaddItemした場合は、次のフレームまで待たないといけないのか・・・
わかりません。
320x240で作成したSWFファイルを、新規ウィンドウで開いて640x480で表示させたいのですが どうすればいいのでしょうか? Stage.scaleMode = "noScale"; ↑のACだと、100%表示なので200%表示などがあるかなと思って探してみたのですが 見つからないです…
>927,939 その文章だと他の人にまったく意味が伝わりませんよ。 CGIから取得した値を調査したい場合は trace文を使用してください。
>942 パブリッシュ設定のHTMLタグのところで サイズをパーセント指定の100x100にする。 スクリプトは必要なし。
945 :
927 :04/12/14 15:29:11 ID:eaHw2a5r
>>943 分かりにくい書き方で、すいませんでした。
教えていただいた、traceを使用してみたところ、何も表示されませんでした・・・。
CGIから考え直してみます・・・
ACって広めてるやつがいるのか?
>942 勘違いしたので訂正。 パブリッシュ設定のHTMLタブのところで サイズをピクセル指定の640x480にする。
948 :
948 :04/12/14 16:57:23 ID:cDNKjmw6
SWFで書き出したファイルにリンクを貼る(バナーにする)には、どういった手順が 一番良いでしょうか?ちなみに作成ソフトはMX2004です。
>>948 ドキュメントサイズの透明なボタンを上において、
そのボタンに
on (release,releaseOutside) {
getURL(〜);
}
とリンクのスクリプト書いてからパブリッシュ。
くそマルチ野郎かよ。しかも釣られたくせ− orz...
951 :
Now_loading...774KB :04/12/14 17:49:09 ID:6qd1t3Nm
すいません、質問なんですがよろしいでしょうか? 現在、チャットを作ろうとしています。内容としては発言するコメントには赤、青、黒などの色を指定でき、 ログを50コメントまで保存可能で、それ以降は一番古い発言から削除するように作っています。 発言の色付けに TextFormat の color を使用し、ログを削除する際には indexOf で \n を見つけ 削除するようにしていますが、ここで問題が発生しました。TextFormat を使用したテキストに indexOf で \n を 探そうとしても見つからず、-1 が返ってきてしまうのです(T^T) しかし、TextFormat を使用しなければ indexOf は\nを見つけそのNOを返してくれます・・。 以下ソースになります。 どなたかご教授よろしくお願いいたしますm(__)m。
952 :
951 :04/12/14 17:50:35 ID:6qd1t3Nm
/*---- コメント保存 ----*/ var cColor; //色の受け皿 //文字の着色 theTF =new TextFormat(); switch( parseInt(tC) ){ case 0: cColor = 0xA05050; break; case 1: cColor = 0xA07A50; break; case 2: cColor = 0x9CA050; break; case 3: cColor = 0x50A056; break; } theTF.color=cColor; //textA = "チャットログ表示テキスト" Selection.setFocus("textA"); Selection.setSelection( textA.text.length, textA.text.length);//-1 var tmp2 = textA.text.length; //strName = "発言者名" //strComent =”コメント内容” textA.replaceSel( strName +" >> "+ strComent +"\n"); textA.setTextFormat (tmp2, textA.text.length, theTF); /*--- ログ消し ----*/ var strE strE = textA.text.indexOf("\n"); textA.text = textA.text.slice( strE );
953 :
951 :04/12/14 17:52:38 ID:6qd1t3Nm
すいません、環境を書き忘れていました(汗 環境はwin2k、2004MXになります。 わかりにくい説明だと思いますがよろしくお願いいたしますm(__)m。
>>953 先に何をしたいか何を教えて欲しいのか書こうよ
955 :
949 :04/12/14 18:08:00 ID:cDNKjmw6
>948さん
ご返答ありがとうございます。ただこちらのやり方が悪いとは思うのですがうまくいきません。
まずSWFで書き出したものをライブラリに読み込みをしてそれを配置し、その上に透明のボタンを配置
し、教えていただいた
on (release,releaseOutside) {
getURL(〜);
}
で設定したのですが
**エラー** シーン = シーン 1, レイヤー = レイヤー 2, フレーム = 1 :行 2:')' または ',' が必要です。
getURL(
http://www.yahoo.co.jp );
ActionScript エラー数 :1 報告済みエラー :1
がでてしまいます。透明ボタンが悪いのかSWFファイルが悪いのかがわかりません。
956 :
951 :04/12/14 18:12:18 ID:6qd1t3Nm
>954 すいません。やりたいことは、 発言に色付きが可能で、ログを50まで保存可能な一行チャットを作りたいのですが、 色付きで保存したコメントのログを消そうと一番古いログを消そうとすると、今まで発言していた 色付きコメントが全て黒字になってしまうので、それをなんとかしたいのです。 できれば setTextFormat を使用して色を付け、ログを消すときに今まで発言したコメントの色は そのままで処理をしたいです。 う〜ん、説明ヘタで長文になってしまいすいません(^^;
チャットを作りたいだのログを消すだのって部分が不必要なんだよ。顔文字もいらない。 質問したかったら、 テキストフィールドの文字列に場所によって別々の色をつけたとき 文字列を変更すると全て黒色になるようですが、これを回避するためにはどうすればいいですか? とか書くべき。 んで回答は、色が違う部分を別々に保存しておき 毎フレーム、もしくは変更があるたびにそれらをくっつけて表示する仕組みにするべき。 配列と構造体とかを上手く使うといい。
958 :
942 :04/12/14 19:13:02 ID:A4oOqSr6
すいません、書き方が悪かったです。 HTMLに張るのではなく、SWF単体で開いたときにサイズを変更したいです。 分かりにくてすいませんm(_ _)m
>>955 まず「マルチポスト」について説明
ttp://www11.ocn.ne.jp/~dkouta/l003.htm これに目を通しておこう。次から気をつけたほうがいい。
それでそのボタンのASだけど、正しくはこう。
getURL("
http://www.yahoo.co.jp ");
これでやれば動くと思う。
>>958 swf単体をブラウザで開くのか、ファイルで開く(白いfマークのウインドウ)のかによって変わる。
っていうかファイルで開く時は指定できないと思った。
ブラウザではASを使ってなんとかなる。
Stage.scaleMode = "noScale";
_root._xscale = _root._yscale = 200;
とかしてみると変化するかな。
ウインドウそのもののサイズはjavascriptで変えるべき。
これは別の掲示板で聞きな。
960 :
951 :04/12/14 19:44:30 ID:6qd1t3Nm
>957 なるほど、ありがとうございました。 顔文字はこれから気をつけます。
961 :
Now_loading...774KB :04/12/15 00:16:12 ID:wgI8YcM7
すいません、どなたか、 スクリプトに書き出し設定をしたシンボルの中で、 特定のシンボルを優先的に読み込む方法を ご存じの方いらっしゃいませんか? よろしくお願いします。
962 :
607 :04/12/15 00:36:55 ID:TmmC5Qo1
おひさしぶりです。
さっそく質問なのですが今ボタンを押してインスタンスを読み込み
それを自動でリサイズするような仕組みを作っているのですが
on (press) {
//独自にbool型のloadUnCompleteプロパティを追加する
_root.haikei.board.loadUnComplete = true;
// 画像読み込み
_root.haikei.board.loadMovie ("1.jpg");
_root.haikei.onEnterFrame = function(){
if(this.board._framesloaded < 1 || this.board.loadUnComplete){
trace( "loadUnComplete" );
return;
}
this.board._width = _root.haikei._width;
this.board._height = _root.haikei._height; // 外部ファイルロード完了時リサイズ開始
}
どうしても
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
**エラー** シンボル = 背景チェンジ, レイヤー = チェンジボタン, フレーム = 10 :行 18:演算子 '=' は、オペランドの前に来る必要があります。
if(this.board._framesloaded < 1 || this.board.loadUnComplete){
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
というエラーが出てしまいます。
仕組み的には
http://umino.s8.xrea.com/archives/cat_14.html を改造している感じです。
またloadUnCompleteのプロパティの所が
trueからどうやってfalseに変わるのかがあまり分かっていません
解説もしくは解説しているHPが教えてください。
よろしくお願いします。
963 :
607 :04/12/15 00:37:54 ID:TmmC5Qo1
すいませんインスタンスではなく 外部のファイル(jpg)でした。
環境はXPでMX2004です。 zキーをおしたら28フレーム目へ、xキーを押した時に aが1であれば4フレーム目へaが2であれば12フレーム目へ 飛ぶようにASを書いたつもりなのですが、ダメみたいです…。 どなたか分かる方よろしくお願いします… stop(); Key.addListener(a=new Object()); a.onKeyDown = function() { if (Key.isDown(90)) { gotoAndStop(28); Key.removeListener(this); } else if(Key.isDown(88)){ if(a==1){ gotoAndPlay(4); Key.removeListener(this); } else if(a==2){ gotoAndPlay(12); Key.removeListener(this); } Key.removeListener(this);} };
965 :
961 :04/12/15 02:24:30 ID:1JMXH991
>>962 MX2004なら、MovieClipLoaderクラスを使うと
もっと確実なのですが、どうでしょうか?
>>964 a.KeyDownをいれてからaddListenerしたらいいと思います。
ASの質問とちょっとずれるかもしれませんが、 フォントの埋め込みデータのみのMCを用意して、 Flash側から汎用リソースとして読み込んでフォントを使用する、 というのは著作権上問題無いのでしょうか? いちいち埋め込むよりは楽そうなのですが、 考え方次第では二次配布ととられかねないのかなと。
967 :
607 :04/12/15 10:14:44 ID:A7exPwET
>>965 リサイズはできるんですか?
できるんでしたらそちらを使ってみたいのですが
生意気ですがこの問題をちょっと解いてみたいという気持ちも
あります…
968 :
961 :04/12/15 13:06:55 ID:wgI8YcM7
var o:Object = new Object() o.tgtx = 100; o.tgty = 100; o.tgtw = 297; o.tgth = 210; o.onLoadInit = function(mc:MovieClip){ mc._x = tgtx; mc._y = tgty; mc._width = tgtw; mc._height = tgth; } var mcl:MovieClipLoader; mcl.addListener(o) var loader:MovieClip = createEmptyMovieClip("loader",0) mcl.loadClip("***.jpg",loader)
とても単純な質問です。 マニュアルをみたけどわかりませんでした。 環境はFlashmx WinXPです。 hensu = 6; gotoAndPlay(hensu); hensu = "koko": gotoAndPlay(hensu): 変数にフレーム番号を入れてgotoAndPlayは上手くいくのですが。 変数にフレームラベルを入れてgotoAndPlayが上手くいきません。 何が悪いのでしょうか? よろしくお願いします。
hensu = "koko":← gotoAndPlay(hensu):←
:、 ;
974 :
Now_loading...774KB :04/12/15 22:11:05 ID:16Aztwo6
質問させて下さい。 一つオープニングのシーンがあって、 そこからランダムに14のシーンに飛ばしてやりたいんですが 全くやり方が分かりません。 どなたかスクリプト組める方お願いします。
そりゃ質問じゃなくて依頼だがや。 まずは自分でグーグル検索。
シューティングゲームを作っているのですが、敵をに弾を当てたとき 敵となるMCに最終フレームにthis.stop();で止め hitTestで弾が敵にあたった場合このこの敵のMCをplayしたところ 敵が消えたまま戻ってこなくなりました。 敵のMCのx座標が0以下になった場合にこのMCを復活させようと思っているのですが うまくいきません。 現在の敵トシンブルのASがこんな感じです。 onClipEvent(load) { speed = 8; } onClipEvent(enterFrame) { if (_root.tama.hitTest(_root.obj1)) { _root.obj1.play(); } _x -= speed; if (_x < 0) { _x = Stage.width; _y = Math.random() * Stage.height; speed++; } } tamaが自機より生成された弾でobj1が敵シンボルになっています。 hitTestの次の行に if(_x<0){ _root.obj1.gotoAndPlay(1); } としてみたのですがシンボル自体が止まってしまいました。 ご助力をお願いします。
>976 まず一言いいたい。日本語をしっかり書いてください。 次に他人にわかるようにもう少し文章をまとめてください。
>敵となるMCに最終フレームにthis.stop();で止め >hitTestで弾が敵にあたった場合このこの敵のMCをplayしたところ >敵が消えたまま戻ってこなくなりました。 ここらへんが意味不明やね。
アクションで フラッシュを終了させるアクションボタンがわかりません どうすればいいでしょうか? swfで見てるフラッシュをボタンを押してウインドウを消したい。
981 :
976 :04/12/16 01:13:32 ID:y+sc/bFm
失礼しました。 改めて読み返してみるとボロボロでしたね…。(汗 敵となるシンボルは最初のフレームと最後のフレームにstop命令を置いてます。 また、最終フレームはstop命令のみでグラフィックは置いてありません。 2フレームめから最終フレームの一つ前のフレームにはシンボルが霧散するようにトゥイーンを用意しました。 フレーム1:this.stop(); フレーム2〜9 トゥイーン フレーム10:this.stop(); という進行になっています。 説明が下手なのでソースを改変した部分をペーストすることにします。 onClipEvent(enterFrame) { if (_root.tama.hitTest(_root.obj1)) { _root.obj1.play(); } の部分を onClipEvent(enterFrame) { if (_root.tama.hitTest(_root.obj1)) { _root.obj1.play(); if(_x<0){ _root.obj1.play(1); } } (以下省略) というように変更していたのですが・・・ 予定としてはシンボルが枠外に出たら元のシンボルが復活してまた画面に出る予定でした。 何度もお手数をおかけして申し訳ありません。
なんかそもそも括弧の数が違うと思うんだけど。 onClipEvent(enterFrame) { if (_root.tama.hitTest(_root.obj1)) { _root.obj1.play(); } if(_x<0){ _root.obj1.gotoAndPlay(1); } } こうかな。 やりたいことがやっぱいまいちわからん。 多分自分の勝手な推測を説明に入れたりするせいだと思うんだけど。 >シンボル自体が止まってしまいました。 って何のこと?
984 :
976 :04/12/16 01:53:10 ID:y+sc/bFm
>983 まず括弧については省略してしまいました。 やりたい事だけ書きますと、 「敵と弾との衝突判定を行い、Hitした場合敵を破壊、破壊後もまた同じ敵を出現させたい」 という感じなのですが…つくづく説明ヘタで申し訳ないです… 普通のシューティングのように沢山敵を出そうとしているだけなのですが…。
なんかよくわかんないけど枠の外で復活してるんじゃないの?
gotoAndPlayがどうのって言ってたからそれ見てたけど
座標を元に戻すASちゃんとどこかに書いてある?
それと
>>983 はどうだったの?
986 :
976 :04/12/16 02:10:46 ID:y+sc/bFm
>>985 座標を戻すことを忘れていました。
なんとか自分の思うように動きました。
>>983 の
>シンボル自体が止まってしまいました。
という点に関しては敵が予定していた動きをしなくなった(右から左に動いていたものが初期位置から動かなくなった)
ということでした。
これ以上お手数をおかけするわけにもいかないので微調整は自分で考えて見ます。
なんだか頭の悪い書き込みばかり繰り返して申し訳ありませんでした。
987 :
979 :04/12/16 05:59:54 ID:f0s51BbL
getURL ("javascript:window.close();"); かっこの中に何を入れればいいんすか? 終わりたいフラッシュのファイル名なんですか?
>>987 基本的にFlashを終わらせるのはFlashにはできないのです。
そこでjavascriptを使用してウインドウを消すという方法をとります。
その括弧の中にはずばりウインドウの名前を入れることになりますが
その方法ではjavaScriptで開いた時以外スムーズに消すことが出来ませんので
ウインドウを開く側にもJavascript等を使い、ウインドウに名前をつけつつ開くようにしてください。
詳しくはこのスレの分野ではないのでWeb制作板等の質問スレや
Javascriptについて解説しているページを探してみてください。
ただし、勝手に閉じるウインドウを良く思わない人もいます。
そこを含めて、本当に閉じる必要があるのか1度考えてみることをお勧めしますよ。
990 :
989 :04/12/16 12:09:59 ID:YMT1PjND
と、思いましたがなんだがうまく動きません。 シーンの構成は 1.オープニング 2.jump 3.aa 4.bb 5.cc ループさせたいのは3.4.5なので、 1フレームのみのjumpに a = ["aa", "bb", "cc",]; nextLabel = String( a.splice( Math.floor( Math.random()*a.length ), 1 ) ); gotoAndPlay( nextLabel ); を仕込んで、各labelにジャンプするようにしました。 3.4.5の1フレーム目には各々"aa""bb""cc"とlabelを付けて、 最終フレームにgotoAndPlay("jump");として、 jumpフレームに飛ばしています。 これでランダムにジャンプはするのですが、 各シーン、10フレーム位から始まってしまいます。 (1〜9フレームは飛ばしてしまっている) labelは空のレイヤーに付けても オブジェクトのあるレイヤーに付けても同じです。 labelの付け方に問題があるんでしょうか? どなたか解決法分かる方お願いします。
this.gotoAndPlay( nextLabel );としてみたらどう? gotoAndPlayで10フレーム後から始まるんなら ラベルが10フレーム後にあるとしか思えない。 そもそもASを使うムービーではシーンを使っちゃいけないってのが定説なんだけどな。 シーンを使っていたとしてもラベルがしっかりしていれば 絶対にそのラベルへ飛ぶはずです。 ラベルはラベル専用のレイヤーを作って設定しましょう。
992 :
989 :04/12/16 12:44:07 ID:YMT1PjND
早速レスありがとうございます。 this.gotoAndPlay( nextLabel ); でバッチリ解決しました。 理屈はこれから勉強します。 しかしAS使うムービーではシーン使わないのが定説ですか。 その辺も勉強が必要ですね。 ありがとうございました。
すいません、教えてください。 CGIで出された結果をもとに、Flashで表示するフレームを変えるのってどのようにしたらいいのでしょうか? かれこれ、こればっかり一週間以上悩んでるんですが、結局全く分かりません・・・。 お願いします。
1週間悩んでわかんないなら教えても駄目だと思う。
>>993 ヘルプのLoadVarsをよく読むよろし
996 :
Now_loading...774KB :04/12/16 19:29:43 ID:cY/NfTbo
次スレまだですか
とりあえず乙! 1000GET??
おれは999で我慢する。
誰も採らないなら1000もゲッツだ!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。