ActionScript 誰かが物凄い勢いで解答するスレ 16
1 :
Now_loading...774KB :
2007/05/01(火) 21:09:12 ID:EiP+QhSr
乙
var res:String = "0123456789甲乙丙"; trace(res.substr(1,1)); trace(res.substr(10,1));
>5 1甲w
ここ見てる先生方へ AS3の基本解説してるサイトもしくはコーナー作ってくれお 解説してるとこ全然無いからみんな見にいくお≡⊂二二( ^ω^)二⊃
9 :
Now_loading...774KB :2007/05/02(水) 12:56:19 ID:/pGQkhHz
firefox2.xでloadmovieが使用できないバグってまだ治らないのかな。
10 :
Now_loading...774KB :2007/05/02(水) 18:51:55 ID:l9LV062X
flashのソケット通信を使って、サーバとリアルタイム通信をしたいのですが、
接続とセンドはできるのですが、レシーブが帰ってきません。
サーバ側はセンドしてるのですが、Flashが読み取れてないみたいです。
flashはここのやつを使ってます↓("localhost",ポート8080に変更。)
http://dev.dschini.org/socketjs/ サーバ側はJAVAでコードは
import java.net.*;
import java.io.*;
public class XmlSocket
{public static void main(String[] args){
while(true){
try{
ServerSocket sarver = new ServerSocket(8080);
System.out.println("waiting...");
Socket socket = sarver.accept();
PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8"), true);
out.print("!!!!!!!!!!!!!!!!SendTest!!!!!!!!!!!!!!!!!!!!!!" + "\0");
out.flush();
out.close();
socket.close();
sarver.close();
}catch (Exception e){e.printStackTrace();}}}}
です。
見ての通りローカルホスト内でまわして、ソケット通信の実験をしています。
何か問題があるのでしょうか?
どこに問題があるかわかる方いらっしゃいましたらぜひ教えてください。
どうぞよろしく御願いします。
マウスでドラッグできるマップを作りたいんですが マップのMCはFLASHの表示領域より大きくて マウスをクリックした所を中心にしてドラッグさせたいんだけど はて、どうしたものか FGF延期しちゃったから死にそう
12 :
Now_loading...774KB :2007/05/03(木) 11:32:00 ID:SqCVFSpB
スクリプトでムービークリップを湾曲処理させる方法なんてできるのでしょうか
モスカ絵チャ /www.takamin.com/oekakichat/user/oekakichat3.php?userid=262336
14 :
Now_loading...774KB :2007/05/03(木) 18:34:24 ID:G62Hbycz
特定のMCのイベント(onpressとか)を外部から発生させることはできるのでしょうか?
15 :
Now_loading...774KB :2007/05/03(木) 18:42:30 ID:f+ydHrev
初歩的な質問すみません。 FLASHでHPを作っているのですがlinkのスクリプトがよく分かりません。 blankやselfなどがありますが。。。 僕がやりたいのはボタンを押してそのページ自体が変わるヤツです 新しくウィンドウとか作らなくてそのページ自体です。 どなたか教えてください。 ホント、初歩的ですみません。
16 :
15 :2007/05/03(木) 19:45:00 ID:f+ydHrev
すみません。自己解決しました。 ほんとにすみませんでした。
>>14 フレームに記述。
MC.onPress = Hoge;
function Hoge(){
trace("hogehoge")
}
>>14 マウスクリックしていないのに、したのと同等の処理をやりたい
ってことじゃないかと予想。
onPressに割り当てた関数を実行してあげれば良いってことかな?
_root.MC.Hoge();
mc.onPress()
外部っつーんだからswfの外からでしょ javascriptとかで出来ないんかね? おいらは知らないけど
割り当てたすべてのリンケージ識別子を取得できる方法ってあります? ランダムなリンケージ値を出して、それが存在していたらattachMovieで呼び出す… みたいな事をやりたいんだけど上手くいかないorz 自分で配列か何かに割り当てている識別子を手作業で記録する方法しか思い浮かばないorz
>>22 >ランダムなリンケージ値を出して、それが存在していたらattachMovieで呼び出す…
ひでえプログラムだなw
>>22 その場合、普通はリンケージ名にHoge0,Hoge1,…,Hoge9っていう風に連番で名前つける。
25 :
Now_loading...774KB :2007/05/05(土) 15:39:45 ID:5czOWws9
MC(連番)という名前のMCをいくつか作って、それぞれのX座標位置を複雑に制御したいのですが、 一番上のルート上(MC自身には記述したくないので)で、例えば aaa = 1; onEnterFrame = function(){ if ("_root.MC" + aaa + "._x" > 30) {_root.card1._x += -80} と記述しても、MC1が動いてくれません。 どこか文法が間違っているのでしょうか。 aaaの値を変化させる事で、動かすMCを指定したいのです。
26 :
25 :2007/05/05(土) 15:42:03 ID:5czOWws9
あ、すみません。最後の }; が抜けていますね。 でも以下のように付け加えても動きません・・・。 aaa = 1; onEnterFrame = function(){ if ("_root.MC" + aaa + "._x" > 30) {_root.card1._x += -80} };
27 :
25 :2007/05/05(土) 15:49:54 ID:5czOWws9
うわああああ 正しくは、 aaa = 1; onEnterFrame = function(){ if ("_root.MC" + aaa + "._x" > 30) {"_root.MC" + aaa + "._x" += -80} }; です。 何回、間違えてるんだか・・・orz でも、これだと 「代入演算子の左側は、変数またはプロパティでなければなりません。」って怒られます。
文字列とMC参照の違いをしっかり学ぶ
とか言ってevalバリバリ使ってもらっても嫌だしなあ
>>27 if ( _root["MC"+aaa]._x > 30 ) { }
31 :
25 :2007/05/05(土) 16:32:57 ID:5czOWws9
>>30 で・・・でけた・・・。
なるほど、こういう記述をするんですね。
こういうのって、プログラム専門の人なら当然の記述方法なのかもしれませんが、
FLASH本ではなかなかお目にかかれないんで、本当に助かりました。
30さん、最高にクールな回答、ありがとうございました。
>>31 一応
>>28 ,29にも声かけてあげなよ…。
>>29 も答え書いてるんだし。
配列アクセス演算子でググるかヘルプを読む。
この手のことは、まず「演算子」についてヘルプを一通り読めば判るはず。
33 :
初心者です。 :2007/05/05(土) 19:13:26 ID:RGjJyR1K
root上にあるムービークリップ(仮にAとして) Aのタイムライン上に配置してあるボタンをクリックして root上にあるムービークリップ(B)のタイムラインの任意のフレームに移動させたいんですが ASの書き方が分からなくて困ってます。 root上にあるムービークリップの中のタイムラインに移動させるにはどうしたらいいんでしょうか? 初歩的なことで申し訳ないんですが、ご指導よろしくお願いします。
>33 マルチで検索した?なら、どっちか取り下げして
>>33 まず、マルチはやめろ。どっちか取り消すなりフォロー入れる。
AからBを参照することができないのか?
それなら
>>2 のFLASH ActionScript Helperあたりで、ターゲットパスについて読む。
ボタンを押したらという部分がわからないなら、ヘルプでButton クラス、とくに
Button.onReleaseあたりを読む。
36 :
初心者です。 :2007/05/05(土) 19:20:26 ID:RGjJyR1K
>34 :Now_loading...774KBさん マルチで検索した?なら、どっちか取り下げして ?の意味が分からないんですが、どうすればいいんでしょうか?
>36 あっちの板も見ておいで >35で分からんかったらまた来ればいい あと、日付のあとのIDにも気を配れば 君もやっていけるよ
38 :
22 :2007/05/05(土) 19:28:44 ID:tbWk4XR4
>>24 やっぱりそんな感じになりますよね・・・
取得できないようなので少し工夫してやってみます
ありがとうございました
39 :
初心者です。 :2007/05/05(土) 19:39:23 ID:RGjJyR1K
>35 ターゲットパスについて読んでパスを書いたんですが反応ないんです。 ルートに空いてあるムービークリックBのフレームまではいくんですが。。
>>39 どういうASを書いてダメなのかをいわんと誰もわからん
41 :
初心者です。 :2007/05/05(土) 20:43:34 ID:RGjJyR1K
>40 そうでした…すみません。 本を見ながら、ボタンにon (release) { this._parent.car_mc.gotoAndPlay("car2"); } と書いたんですが反応ないんです。
>41 ・_parentを増やしたり減らしたり ・_root.car_mc.gotoAndPlay("car2"); に書き換えて動く?
>>41 ボタンから見ると
_root ← this._parent
├ car_mc
└ A ← this
└ ボタン
になるからそれであってる。動かないなら、
car2っていうフレームが無いかcar_mcのインスタンス名が付いていないかじゃないかな。
44 :
初心者です。 :2007/05/05(土) 21:04:14 ID:RGjJyR1K
_root においてあるMC Aの10フレーム後にMC Bを配置してあるんですが Aと同じフレームにおいておかないとMC間のタイムラインへの移動って無理なんでしょうか? root.car_mc.gotoAndPlay("car2"); にしても反応なかったんです。
>44 BがあるときにAS(アクションスクリプト)を書くこと
>45 補足 Bが出てるときに、Aを押すなら大丈夫
>>47 「Flash 横スクロール」とかで出てくんのかね・・・・?
単純にMovieClipの_x値を、_xmouseの位置によって変えればいいだけじゃ。
Flashのチュートリアルって、ちゃんとまとまってて使えそうなところは少ない希ガス。
本を数冊買う方が手っ取り早いような。
>>44 rootじゃなくて_rootだよ。そこらへん大丈夫?
インスタンス名はついている?trace(_root.car_mc)でundefinedならついてない。
フレーム名使わずに_root.gotoAndPlay(2)とかも試してみる。
HTML-JavaScriptでflv動画のアドレスを FLASHオブジェクトのMovieプロパティに入れても 再生できないみたいです。 HTML/JavaScriptでflv動画のURL指定、再生開始や停止 を行う事は無理なのでしょうか?
>>50 htmlやjavaスクリプトはweb板あたりで。ここはASのスレだよ。
>>50 無理だと思う。
あまり詳しくないんだけど、
別にswf用意して読み込むか、swfに最初から埋め込むかぐらいしか知らない
53 :
Now_loading...774KB :2007/05/06(日) 20:09:08 ID:LOM2MyI+
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player8) SWFとプロジェクタ(EXE)の違いについて質問です。 EXE形式で相手に渡そうと、あるSWFをFlash8-Proで掃き出したところ、 SWFでは100msecも経たずに終わる処理がEXEで10秒(だいたい)以上かか る上に、ついには「ムービー内のスクリプトが原因で実行速度が・・・・」 という警告が出ます。 この原因は何によるものでしょうか? 目的の処理は、ボタンアクションとフレームアクションでで外部文書を読み 込むもので、下のようになっています。 on (release) { my_xml1.load(output1+".out"); //output1+".out"というOUTファイルを指定&読み込み } my_xml1.onData = function(s) { tmp1 = s.split("\n").join(""); outData1 = tmp1; trace("outData1= "+outData1.length); }
54 :
Now_loading...774KB :2007/05/06(日) 20:20:28 ID:pJMkFlUE
ActionScript2.0で、「15」とかの数字がなんの数字の2乗なのか、というのを求めるのに使える関数とかってありますか? 関数じゃなくて数学的な計算をしなければ求められないものでしょうか? よろしくお願いします。
>>53 10秒かかって正しく動いたのか?そこが重要
>>54 ヘルプでMathクラスを検索
57 :
54 :2007/05/06(日) 23:30:10 ID:pJMkFlUE
>>53 ファイルの置いてある場所が、日本語名のフォルダを含んでいませんか?
59 :
53 :2007/05/07(月) 02:58:14 ID:urroiuO6
>>56 , 58
さんきゅうです。
原因はEXEファイルを含むフォルダ名に日本語が入っていたためのようです。
最初、\デスクトップ\Flash内で不可でしたが、CドラのProgram Files内に
英語のフォルダを作ったところ上手くイキました。
便乗ですがクライアントからの要求で、 どうしても日本語を含むパスでもファイルの読み込みを行いたいのですが、 色々なブラウザで試すと成功する時とそうでない時があります。 良い方法等あればご教示ください。
1,2,3,4,5,6の6つの数字を1度ずつ使っている数であるかどうか確認するには どのような式でやればいいでしょうか。
>>62 具体的にどういう事をやりたいのかを書く
1つの数値の中にその数が含まれているのか、文字列に含まれているのか
どういうシュチュエーションかわからん
64 :
Now_loading...774KB :2007/05/07(月) 17:28:02 ID:iqBRum0i
67 :
1/2 :2007/05/07(月) 21:28:11 ID:dX1iOz7r
配列アクセス演算子とeval()関数についての質問よろしいでしょうか。使用ソフトはMXです。 今、_root上に適切に存在する10個のMCにプロパティやイベントハンドラを付与させようとしています。 なお、それらのMCには0_mc〜9_mcの名前が割り当てられています。 ここで、お聞きしたいのは以下の3通りの方法のうち、 どれが最も適切なものか、ということです。 いずれも、問題なく動作し、結果も同様です。
68 :
2/2 :2007/05/07(月) 21:29:34 ID:dX1iOz7r
◆その1 for (var j = 0; j<10; j++) { mcName = eval(j+"_mc"); mcName._x = j; mcName.onMouseDown = function() { trace(this._x); }; } ◆その2 for (var j = 0; j<10; j++) { eval(j+"_mc")._x = j; eval(j+"_mc").onMouseDown = function() { trace(this._x); }; } ◆その3 for (var j = 0; j<10; j++) { this[j+"_mc"]._x = j; this[j+"_mc"].onMouseDown = function() { trace(this._x); }; } 「eval()関数の多用は避けるべき」なんてことを小耳に挟んだものですから、 そのあたりのこと(特にCPUやメモリへの負担という観点から)についてご意見いただけたらと思います。
とりあえず、その2は禁止だったはず。
>>68 俺だったら3。
evalってスゲー昔使ったけど最近全然使ってない…。
あと、配列アクセス演算子だと問題なくアクセス出来るんだけど
基本的には、変数名とインスタンス名が、数字から始まるのは禁止されてる。
71 :
67 :2007/05/07(月) 22:38:29 ID:dX1iOz7r
やっぱりeval()関数は使わない方が吉なんですね。
ありがとうございます。
>>70 >基本的には、変数名とインスタンス名が、数字から始まるのは禁止されてる。
そういえば昔、それに気づかず数時間を無駄にした記憶が…
同じミスを繰り返してれば世話ないですな
>>71 一概にevalを使っちゃいけないわけじゃないけど、
evalは文字をいったん解析して、コードとして解釈した結果を返すので
文字を直接足すよりも重くなる。
その反面
eval( "function(){for(var i=0; i<10; i++){ trace(i)};return 3}" )
みたいなことをすれば、文字列を式として実行できるので
複雑なことをするときに地味に役立つ。
evalは非推奨とヘルプにも謳われてるよ
>>72 えうっそ、ActionScriptのevalって確かムービークリップの参照だけじゃなかったっけ
すみませんご教授ください。 バナーを作成したのですが ムービーが、終了してから、10〜20(任意)秒間最後のフレームで停止して、また最初からムービーを繰り返す というのを作りたいのですが、どのようなActionScriptを使えばいいのでしょうか よろしくお願いいたします。
>>76 スクリプト使うより、最後のフレームをFPS×10フレーム伸ばせば簡単だと思うが
すみません 補足させてください バナーFLASHは シーンを4つに分けて制作しています いまのところ シーン4の最後のフレームでstop()を入れているのですが、一回で動きが 終了してしまうのは、寂しいので、最後の画面(フレーム)で、10秒くらい停止して、また最初から繰り返すを ループにしてほしいと言われました。
そうですね・・・ スクリプトなら、数字の調整でタイミングとかはかれそうだったんですが 最終フレームを伸ばすことにします。
うん。それがいい。 シーンを分けているということは、スクリプト制御を放棄しているわけだからね。
>>76 AS用のレイヤーを用意して、
1)あるフレームでカウンタ用変数を0に設定
2)次のフレームで、
・カウンタ用変数を+1,
・希望のフレーム数になっていなければ前のフレームにジャンプ
と書けばオケ
>>79 俺がたま〜に使うのは、
100フレーム目でムービーが終わって、ある一定の時間止まってからまたムービーの一番最初に戻るっていう時
101フレーム目:
wait = (フレームレート)*(ムービーを止めておきたい秒数);
102フレーム目:
wait--;
103フレーム目:
if(wait != 0) {
gotoAndPlay(_currentFrame-1);
}
とかってやるよ。ムービーによっては使えない場合が多いけどね。
>>81 ごめん、全く同じような事を書いてしまった…orz
84 :
Now_loading...774KB :2007/05/09(水) 13:50:36 ID:dQUszu0I
環境) ActionScript3 flash9 publicAlpha addEventListenerに関して質問です contentLoaderInfo.addEventListener(Event.COMPLETE, loadComp); リスナー関数の部分に引数を持たせることは出来ないのでしょうか? 下記のように書きたいのですが出来なくて困ってます。 contentLoaderInfo.addEventListener(Event.COMPLETE, loadComp(Argument)); よろしくお願いします。
85 :
Now_loading...774KB :2007/05/09(水) 19:04:18 ID:jJzsfvRX
MovieClipLoaderを使って、1フレーム目でstop();させてある外部swfを読み込み、 ローディングが終了した時に外部swfをgotoAndPlay(2);とフレーム移動させたいのですが 外部ファイルに命令or変数渡しをするにはどうすればよいのでしょうか? FLASH8です
>>85 何のためにMovieClipLoaderを使ってるんだ!
MovieClipLoader.onLoadInitを使いなされ。
82さん 詳しく書いていただいてありがとうございます。 仕事で、グループ会社の商材のバナーを まだまだ作るので、使わせていただきます。ありがとうございました。
仕事だったんだ・・・ その程度の知識で大丈夫か(w いや、ガンバレよ
>>84 それはちょっと無理。
やるとしたら、Loaderをextendsして、argumentsプロパティを作るのがいいかと。
で、event.targetのcontentLoaderInfoからloaderにはっつけたargumentsにアクセスする感じ。
90 :
85 :2007/05/10(木) 00:06:11 ID:nc2jp3ms
>>86 レスありがとうございました、変数渡しはなんとかできましたが
やはり上手く動いてくれません;
ttp://www.project-nya.jp/modules/weblog/details.php?blog_id=300 ↑こちらのスクリプトを参考にさせてもらったのですが
実際swfを読み込んでみた所、プログレスバーが消えswfが表示される間に
setIntervalで指定された一秒分程、swfの再生が先に始まってしまいます
読み込むswfは最初にトゥイーン等指定しているので、なんとか最初から再生されるようにしたいのです
プログレスバーのフェードイン効果も気に入ってるのでできればsetIntervalの設定も残しつつ・・・
なんとかプログレスバーが消えてから読み込んだswfを再生スタートするようにしたいのですが
アドバイスなどあればよろしくお願いします
91 :
84 :2007/05/10(木) 00:20:42 ID:lQohU+OP
>>89 わかりました
その方法でやってみます
どうもありがとうございます
読み込まれる側の1フレーム目でstop()をかける。 onLoadInitして、フェードイン終わったタイミングで読み込まれたswfをplay()して再生する。 でどうよ?
93 :
85 :2007/05/10(木) 10:03:39 ID:nc2jp3ms
>>92 レスありがとうございます。
参考先のonLoadInit内の if (this._alpha < 0) の所の処理で
グローバル変数(_global.myNum = 2)を送り、
読み込んだswf側の1フレーム目にthis.stop(); と gotoAndPlay(_global.myNum);
としましたが既に再生された後になってしまいます
やり方が間違っているのでしょうか・・・
初めて書き込みします。 Flashで携帯サイトを作っています。 CGIも組み込んでいます。 HTMLからswfにリンクして、戻りたいときに、 普通ならHTMLのアドレスへリンクさせますが、 CGIが入っているので表示されません(ログイン前の画面になる)。 Javascriptの履歴で戻る「history.back()」のような記述は Flashでも使えますか? また、他の記述方法があれば教えてください。 よろしくお願いします。
>>94 getURL("javascript:history.back()")
>>95 携帯でJavaScriptって使えたっけ?
環境依存
au携帯でFlashLite2.0を利用しているのですが上下左右キーを押す場合のASはどう書けば良いのでしょうか? on(keyPress"<Left>") { 処理 } のように書いて携帯で左キーを押しても反応しませんでした。
100 :
94 :2007/05/10(木) 23:33:12 ID:3Yd8YZA4
>>95 ありがとうございます!
明日会社で試してみます。
AS3.0のaddEventListenerがさっぱり分かりません>< AS2.0でmc_hogeの1フレームと10フレームにthis.stop(); って書いてあった場合、AS3.0のメインタイムラインにはどう書いたらいいんでしょう?
102 :
94 :2007/05/11(金) 09:39:21 ID:74hvWLAC
携帯でのJavascriptはフルブラウザでしか機能しないんですね…。 普通の携帯ではダメみたいです。(ドコモSH902is/au W21SA) 普通の携帯でもSWFから履歴で戻れる方法はないでしょうか?
ない
105 :
Now_loading...774KB :2007/05/12(土) 16:16:44 ID:WIup9fmQ
メインのswfAに色々ボタンや仕掛けのついたswfBをloadMovieで読み込んでいるのですが、 swfBのボタンが押せずクリックしても何の反応もありません。swfBだけを再生するとちゃんと動作するのですが どうすれば読み込んだswfBを正常に動作させることができるでしょうか?
_lockroot
ありがとうございます!
108 :
Now_loading...774KB :2007/05/13(日) 02:07:05 ID:a2Spa/ws
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player8) onRollOverアクションの常時監視で質問です。 attachMovieで_root上のMC(stage1)に12個のオブジェクト(barA0〜barA11) を出現させ、この内の1つにポインタを重ねたとき別のMCを表示させるASを 書いています。 つまり、barA2に重ねたら『2』と表示させる感じです。どれか1つにonRollOver した時の反応ですので、onEnterFrameで常にfor文を繰り返し処理(重なりの 監視)をするという意味で this.onEnterFrame = function() { for (id=0; id<12; id++) { this.stage1["barA"+id].onRollOver= function() { trace("Barは: "+id); //番号の確認 }; } }; と書きましたが、これではBarの番号(id)が常に12のままです。 何か良い案はありますでしょうか?
>>108 //this.onEnterFrame = function() {
for (id=0; id<12; id++) {
this.stage1["barA"+id].onRollOver= function() {
trace("Barは: "+id); //番号の確認
};
}
//};
これでどないだ
>>108 attach元のMCに↓でも書いてやってみ。
メインのフレームにはattachするのみで。
this.onRollOver= function() {
trace(this._name);
}
横からスマン。
>>84 を見て少し疑問に思ったのでいくつか質問させてほしい。
AS3で、例えば
addEventListener(Event.ENTER_FRAME, myEnterFrame);
addEventListener(Event.COMPLETE, myEnterFrame);
function myEnterFrame(eventObject:Event):void {
}
って記述されたスクリプトを実行したら、
EnterFrameは上書きされてCompleteだけが残る(同じ型指定されているもの(ここではEvent型)は併用不可)ってこと?
それとバカな漏れに
>>89 の内容が分かるように教えてほしい。
リスナーに引数を持たせることができないから、正規コントールのLoaderを継承して
引数受け取りメンバ(arguments)を追加。【ここから分からない】で、イベントメソッドが走った際に、
メソッド側からargsメンバを呼び出し・・・?じゃなくて、リスナーからそのままメンバを呼び出し?
・・・「引数を渡す」って処理をどうやってクリアしてるのか教えてほしい
112 :
108 :2007/05/13(日) 11:33:33 ID:lO2wZZV5
>>109 ,110
さんきゅうです。
109さんの場合は何処に書けば良いのか分からなかったので、110さんの案
を採用しました。
結果、目的の表示が出来ました。
as2で配列オブジェクトのソートを教えてつかぁさい! var sample:Object = {aaa:10, bbb:30, ccc:20}; 値のほうでソートして、bbb,ccc,aaaと並んだ配列を得たいんです。
>>113 sampleをfor..inで[["aaa",10],["bbb",30],["ccc",20]]みたいな二次元配列作る。
その2次元目の[1]の値でクイックソート
[0]だけ配列にする
>114 グラシアス!上手く出来ました。
116 :
Now_loading...774KB :2007/05/14(月) 01:06:32 ID:Xc/muPjb
menu1ボタンを押したら他のボタン(menu2〜4)を押すまでmenu1は反応が無くなるようにして 他のボタンを押したら押したボタン自体の反応が無くなり、押した以外のmenuボタンの反応が復活といった事をやりたいのですが 自分のスクリプトでは他ボタンを押しても反応が復活しませんでした アドバイスお願いします、もっと良い考え方もあったらご教授下さい、flash8です for(i=1;i<5;i++) { myName = "btnV" + i; this[myName] = true; } menu1_btn.onPress = function() { if(btnV1) { for(i=1;i<5;i++) { btnV[i] = true; } btnV1 = false; _parent.btnPre(); } }; menu2_btn.onPress = function() { if(btnV2) { for(i=1;i<5;i++) { btnV[i] = true; } btnV2 = false; _parent.btnPre(); } };
>>116 for(i=1;i<5;i++) {
this["menu"+i+"_btn"].onPress = function() {
for(i=1;i<5;i++) {
_parent["menu"+i+"_btn"].enabled = true;
this.enabled = false;
}
}
}
タイムラインにこれを記述すれば多分やりたい通りになるかも
118 :
Now_loading...774KB :2007/05/14(月) 10:56:24 ID:Xc/muPjb
117さんレスありがとうございます でもやはりボタンmenu1を押してからmenu2を押してもmenu1の反応は戻りませんでした、逆も同じでした btnName = ["menu1_btn","menu2_btn"]; menu1_btn.onPress = function() { this.enabled = false; for(i=1;i<3;i++) { if(i==1) continue; btnName[i].enabled = true; } }; menu2_btn.onPress = function() { this.enabled = false; for(i=1;i<3;i++) { if(i==2) continue; btnName[i].enabled = true; } }; 自分でこんなのも打ってみましたがやはり挙動は全く変わりません 押したボタンのenabledをfalse指定するタイミングが悪いんでしょうかね。。。
var focusedBtn = null; for(var i = 1; i <= 4; ++i) { _root["menu" + i + "_btn"].onPress = function() { this.enabled = false; _root.focusedBtn.enabled = true; _root.focusedBtn = this; } }
AS3.0でloadMovie的なことをしようと var ldr:Loader = new Loader(); var url:String = "hoge.swf"; var urlReq:URLRequest = new URLRequest(url); ldr.load(urlReq); addChild(ldr); と書いてstage.frameRateを変化させているのですが FPSが変化してるのは土台の方だけで読み込んだswfの方は全く変わってくれません・・・ ASのverが違うとfps固定されてしまうのでしょうか?
>>120 AS3からAS1、2の変数を拾うのは無理ぽ
AS3でcolorMatrixFilterってどうやって使うんでしょうか('A`) ビットマップエフェクトで残像やりたいのに上手く行かないorz
寝ぼけてました 自己解決です スペルミス吹いた
RTMPを喋れる軽量な実装無いかな?Red5はでか過ぎ複雑すぎ・・・
Flashのスクリーンショットを保存したいのですが、SharedObjectを使ってBitmapDataって保存できますか? やってみたのですが、うまく保存されなかったもので……。
>>125 ローカルにSSのbmpを保存したいとかなら無理じゃね
一旦画像に変換してくれる物を挟まないとダメ
>>126 ,127
そうですか。環境選びそうなので今回はこの方法は断念するとします
ありがとうございました。
129 :
Now_loading...774KB :2007/05/19(土) 15:03:17 ID:RR15l0uW
131 :
Now_loading...774KB :2007/05/19(土) 16:04:26 ID:UhResxzH
MovieClipLoaderについて質問でつ(MX2004) 読み込み先ターゲットがたくさんある(100〜200個)場合以下のASをどう改造すればいいのでつか もしくはリスナー登録しないMovieClipLoaderの使い方を教えて先生! var tg=_root.gamen1_mc;//読み込み先ターゲット var myMC:MovieClipLoader = new MovieClipLoader(); var myLis:Object = new Object(); myLis.onLoadStart = function( tg:MovieClip ){ trace("読み込み開始"); }; myLis.onLoadProgress = function( tg:MovieClip, bytesLoaded:Number, bytesTotal:Number) { trace("読み込み:"+bytesLoaded+" 合計:"+bytesTotal ); }; myLis.onLoadComplete = function( tg:MovieClip ) { trace("読み込み終了"); }; myLis.onLoadInit = function( tg:MovieClip ) { trace("先頭フレームのアクションが実行"); }; myLis.onLoadError = function( target_mc:MovieClip, errorCode:String) { trace("エラー発生"); }; myMC.addListener( myLis );//登録
質問です。これは、どういうものなのか?どう回避するのか教えて頂きたいです。 よろしくお願いします。 function serailck(serial) { id = serial.substr(0, 4); pw = serial.substr(4, 4); if (pw == pwa[id]) { name = namea[id]; return (true); } else { return (false); } // end else if } // End of the function getURL("FSCommand:fullscreen", true); x = 0; y = 0; err.stop(); enter = ""; var so = SharedObject.getLocal("ju"); if (so.data.serial == undefined) { serial = ""; } else { serial = so.data.serial; } // end else if id = serial.substr(0, 4); stop (); pwa = new Array(); namea = new Array(); pwa["1919"] = "moko"; namea["1919"] = "ソクラテス";
>>131 どう改造って、、、しかも使い方って、、、まずはヘルプ読んで1個ロードするところから始める。
>>132 どう回避って、、、拾ってきたソースを適当にうpするなよ。
自分でどこまでわかって、どこがわからないのかを書け。
●WinXP, Flash CS3 pro(体験版) on (release, releaseOutside) { this.stopDrag(); } というMC「aaa」の命令をrootの1フレーム目に書きたいのですが、 ↓ではないですよね。 _root.aaa.onRelease, _root.aaa.onReleaseOutside = function():Void { this.stopDrag(); } まとめて書くにはどうしたらよいのでしょうか?
135 :
131 :2007/05/20(日) 17:32:14 ID:BVmW0LFD
>>133 1個のロードはできますお
複数(かなりたくさん)のロード先ターゲットがある場合はみんなどうしてるんでつか?
>>135 ループしてインスタンスを配列に格納する。
137 :
Now_loading...774KB :2007/05/20(日) 22:43:17 ID:aZbeWtRa
>>134 var p = _root.aaa;
p.onRelease = p.onReleaseOutside = function():Void {
this.stopDrag();
}
138 :
134 :2007/05/20(日) 22:47:48 ID:ZVh7lUMa
>137 レスありがとうございます! 助かりました。
139 :
Now_loading...774KB :2007/05/21(月) 07:17:10 ID:+akStjSl
Flex2でActionScript3.0はじめました。
書いてある通りやってるのにできなくて、
「糞がヵぁぁぁぁぁぁっぁぁぁぁsぁぁぁっぁ」っていう状況です。
ググっても見つかりません。助けてください。
ちなみにJavaはそれなりに詳しいので、基本はわかっているつもりです。
(1)コマンドプロンプトのショートカットがおかしい件
PATHは確かに通ってます。
コマンドプロンプトを直接起動し、mxmlcと入力するとちゃんと表示されます。
ディレクトリを変更しても問題なしです。
でも、コマンドプロンプトのショートカットを作成し、作業ファイルに任意の場所を指定し起動すると
なぜか mxmlc でPATHが通らなくなります。わけわかめです。
(2)コンパイルエラー
http://www.saturn.dti.ne.jp/~npaka/flash/as30/VideoEx/index.html ↑動画再生をしてみたいと思い、上のサンプルをそのままコピペし、
コンパイルしようとすると、コンパイルエラーになりました。
エラーメッセージは以下の通りです
-------------------------------------------------------------------
C:\AS3\VideoEX\VideoEX.as: エラー:
source-path 'VideoEX' 内のファイルは、ファイル "VideoEx" 内のクラス定義と
同じ名前でなければなりません。
------------------------------------------------------------------
robo.flvというファイルは、同じフォルダにいれてるんですが、どういうことでしょうか
>>139 普通にコンパイルできたけど?
F:\as3> mxmlc VideoEx.as
設定ファイル "C:\FLEX2SDK\frameworks\flex-config.xml" をロードしています
F:\as3\VideoEx.swf (1207 bytes)
なんか C:\AS3 から mxmlc を実行してる気がする...
cd C:\AS3\VideoEx\
mxmlc VideoEx.as
でどうよ?
>>mxmlc でPATHが通らなくなります。わけわかめ
その問題のプロンプトで
echo %PATH%
してちゃんと入っていなければ set PATH=%PATH%;C:\FLEX2SDK\bin とかやった?
システムプロパティーから環境変数書き換えるか、batを用意しないとだめだぞ。
Java詳しいなら、UNIX系の人かな?.rcにsetenv/exportを書くのと同じ。
それとFlashPlayerのセキュリティーを解除しないと、ローカルファイルは再生できんよ。
http://www.macromedia.com/support/documentation/jp/flashplayer/help/settings_manager04.html ここにいってコンパイルできた物のパスを追加する事。
141 :
Now_loading...774KB :2007/05/21(月) 15:27:00 ID:GRxml1jf
1フレームに絵を描いてそれをシンボルに変換する。 それを後はフレームは追加せずにActionScriptで動かすにはどんな風に書けばいいですかね? 例えば人の絵を1フレーム目に書いてトゥイーンなどを使わずに歩かしたりするにはどうすればいいのでしょうか? 実際に簡単に記述して誰か教えてください
歩かせるには人の絵が複数必要です よって不可能
143 :
Now_loading...774KB :2007/05/21(月) 19:07:13 ID:bfBvxM9p
for分を使ってについてなのですが ダイナミックテキストのpain1_txt〜pain5_txtに 変数date1〜date5(中身は文字列)の中身を渡すといった作業はどのようにするのでしょうか・・・?
配列使うと楽だと思うよ。ヘルプにわかりやすく乗ってるからまずは調べてみよう
>>143 for (var i = 1; i<=5; i++) this["pain"+i+"_txt"].text = this["date"+i];
どうでもいいけど1スタートか。
ダイナミックテキストの参照も配列に入れてしまえ。
146 :
Now_loading...774KB :2007/05/21(月) 20:33:19 ID:z3tpCLOx
147 :
Now_loading...774KB :2007/05/21(月) 21:40:04 ID:GRxml1jf
一定時間たったら何か行うってイベントってないですか
148 :
139 :2007/05/21(月) 23:20:08 ID:+akStjSl
>>140 source-pathのエラーは use-network=false したらOKだたお
pathの件は以前にFlexBuilder2をインスコしてたから、そこでなんか変になてたぽい
>>147 setIntervalで回すのが定番かな?
0〜10をランダムで表示するのは Math.floor(Math.random()*10) って分かったんですが、重複無しでhoge[0]〜hoge[9]に値を入れるのってどうしたらいいんでしょう? if文長々と書けば出来そうな気もするんですけどスマートに書ける方法あればお教えください。
>>150 hoge[0] = 0;
hoge[1] = 1;
hoge[2] = 2;(略
ってしてから、hoge配列をシャッフルすればいい。
シャッフルの仕方はググれ「ActionScript 配列 シャッフル」
ActionScriptので解りやすいの見つからなかったらJavaScriptでも流用可。
152 :
Now_loading...774KB :2007/05/23(水) 01:40:04 ID:yiVPF0Qa
ActionScriptでシンボルの基準点を変更するにはどうすればよいのでしょうか? 基準点を左上から真ん中に変えたり、右上から左上に変えたりするにはどうすれば? 例を挙げて説明してくださいお願いします
>152 無理 動きに合わせて計算で補う
>>152 中にあるものを動かすのじゃだめなの?
シンボルの中にものをムービークリップにして
左上
MC._x = 0;
MC._y = 0;
右上
MC._x = -MC._width;
MC._y = 0;
左下
MC._x = 0;
MC._y = -MC._height;
右下
MC._x = -MC._width;
MC._y = -MC._height;
真ん中
MC._x = -MC._width / 2;
MC._y = -MC._height / 2;
こんな感じで
155 :
Now_loading...774KB :2007/05/23(水) 02:08:18 ID:yiVPF0Qa
例えば斜線を書いてそれをシンボル化し 最初は左上を基準にsyasen._rocation+=30;で回転していたとして 何秒かたったら今度は右下を基準にし同じ命令syasen._rocation+=30;で 違う動きが出来るみたいなようにするのはどうすればいいのでしょうか ヘルプで調べたところMatrix オブジェクトというのが出てきましたが これでは出来ないのでしょうか? どなたか教えてください。
>>155 まずはレスしてもらったのに返答しろよ。
答えても反応がないんじゃレスする気にならん。
157 :
Now_loading...774KB :2007/05/23(水) 13:42:05 ID:yiVPF0Qa
すいません
でも本当にActionScriptを勉強したいのです
どなたか教えてください
>>154 のようなやり方でなくあくまで基準点を変更するという事
がやりたいのです
無理だと答えてるし対応策としての別案も提示されてる
だから、
>>153 の通りASじゃ基準点の変更は出来ないんだって。
だから似たような動きを作る(
>>154 )しか方法は無いの。
>>157 スクリプトでシンボルの基準点の変更は無理。
行列は自由に移動、回転、拡大縮小するだけ。
シンボルの基準点は変更されない。
その程度のことなら行列よりも
>>154 の方法が楽。
質問すみません。 RPGのようなものを作っていて次のレベルになる経験値(数値)を表示させたいのですが、if文だとどうしても長くなるので簡略化させたく思ってます。 現在記述している方法は以下の通りです。(変数levelは現在のレベル、変数nextは次レベルの経験値を表してます) if(level == 1) { next = 5; } else if(level == 2) { next = 12; } else if(level == 3) { next = 18; } else if(level == 4) { next = 25; } else if(level == 5) { next = 36; ・ ・ ・ } else if(level == 80) { next = 12000; } と、長々となってしまいます。 変数levelは+1ずつですが、変数nextには規則性はありません。 使用しているバージョンは7です。 良ければ返答お願いします。
>>162 nextexp:Array=[0,5,12,18....]みたいな経験値の配列でも作って、
nextexp[level]みたいに表示する。
たいていは対数の規則性を作る。
>>163-164 返答ありがとうございます。
配列は使ったことが無かったので早速、説明サイトを見ながら挑戦してみましたが、出来ませんでしたorz(というより仕組みが分かりませんでした)
>>163 の通り
nextexp:Array = [0,5,12,18];
でやってみましたが構文エラーが出てしまいました。
>>164 対数の規則性・・・とは何のことでしょうか?
「orz」とか書けば何でも許されて優しく教えてもらえると思ってる奴が居るな。
varぐらいつけろ!
>>166 すみません。
そうは思っていませんが、初歩的な質問でも良いとあったので。
何か許されないような事書いたでしょうか?
>>167 確かにver付けてなかったですね。
ありがとうございます。
後は自分で調べてみようと思います。
urlから変数の取得はas3.0はどのようにおこなうんでしょう? hoge.swf?val=hogehoge みたいなやつ。 as2.0のときは data = _level0.val というように_level0で取得していたんですが、 as3.0は_level廃止ですよね?
170 :
Now_loading...774KB :2007/05/23(水) 23:42:47 ID:vVVQzi33
教えて下さい。
http://www.minami-akina.net/ の「work」にあるような、「テキスト枠の左側にスクロールバーを付ける」にはどうしたらいいのでしょうか?
。。。アデランスのCMを見ていて「この子かわいいかも」と思ってサイトを見に行ったときにみつけたものなので、イタめのサイトで申し訳ないです。
普通に左側に付けるのはできるのですが、「み、右にっ!」と驚いたので、ぜひ教えていただきたいと思い、質問させていただきました。
例としてとりあげたサイトはイタめですが、質問自体は真面目なつもりですので、よろしくお願いいたします。
171 :
Now_loading...774KB :2007/05/23(水) 23:45:09 ID:vVVQzi33
うっ。。。 書き込みに破綻が。。。 正しくは「テキスト枠の"左側"にスクロールバーを付ける方法」です。 すみません。 えっと。。。 お茶碗が左で、お箸が右。。。 よしっ!汗
>>171 右につけてるスクロールバーを左にもって行けばいい。
173 :
Now_loading...774KB :2007/05/24(木) 00:03:45 ID:IRQ9i7wi
>172さん 後出しですみません。 正しくは「コンポーネントのscrollPane」を使って作っているので、できればそれでできれば嬉しいのですが。 scrollPane.changeLeftFromRight = true; みたいな書き方ができないものかと思いまして。。。
MovieClipが停止中か再生中かを返すbool変数って無い? if(mc.???) { mc.play(); } みたいなソースを書きたい
176 :
Now_loading...774KB :2007/05/24(木) 12:18:49 ID:AzST38Qd
質問させて下さい 今月一ヶ月の日数を調べて ダイナミックテキストに1 2 3 4・・・31と並べて表示させたいのですが どのようにすればよいのでしょうか getDayとは違いますよね・・・
>169 root.loaderInfo.parameters >175 ない >176 自分で計算するとか
178 :
176 :2007/05/24(木) 14:35:59 ID:AzST38Qd
自分なりに考えて何とか日数表示は解決しました、すみませんでした ただ、表示した日数の今日の日付の数字の色を変えたいのですがどうしても上手くいきません todayRedという変数に代入してcolorプロパティを・・・などとやってみましたが駄目でした どうかアドバイスお願いします・・・ lastDay = [0,31,28,31,30,31,30,31,31,30,31,30,31]; cDate = new Date; y = cDate.getFullYear(); m = cDate.getMonth() + 1; d = cDate.getDate(); todayRed = d; todayRed.color = 0xFF3300; for(i=1; i<lastDay[m] + 1; i++) { if( i == d ) { cle_txt.text += todayRed + " "; continue; } cle_txt.text += i + " "; }
どっからcolorプロパティとか沸いてきたんだい? todayRedはどういう型でつか? 特定文字だけ色変えたいなら、HTML表示をONにしてHTMLのfont colroタグでかこってあげなされ
180 :
Now_loading...774KB :2007/05/24(木) 16:01:00 ID:H92ZkYZM
調べてもASにはC言語のsprintfのような、引数の数値を書式指定して 文字列変換してくれるような関数が用意されてなさそうなんですが、 例えば日付なんかを2ケタ表示させたい時、日付の値が9以下だったら "0"を先頭に連結してやるとかしか方法はないんですかね?
>>179 レスありがとうございました
html変換して手動でタグ指定した方がいいんでしょうかね
そもそもダイナミックテキストに表示した一部の文字の色変更、他改変自体が無理なのでしょうか?
colorプロパティは手持ちのリファレンスにあったTextFormatのプロパティの例文をよく読まずに
付けてしまった物でした・・・
>>180 そう。ひと桁判断するのがめんどな場合は常に「0」つけて右から2文字取る
trace(("0" + new Date().getDate()).substr(-2))
183 :
180 :2007/05/24(木) 16:58:11 ID:H92ZkYZM
184 :
169 :2007/05/24(木) 19:57:14 ID:8xLXKIR9
>>181 cle_txtってインスタンス名のダイナミックテキストを配置
cle_txt.html = true;
//
var cDate:Date = new Date();
y = cDate.getFullYear();
m = cDate.getMonth()+1;
d = cDate.getDate();
var cLastDate:Date = new Date(y, m, 0);
// 2006年6月0日 = 2006年5月31日 となる
lastdate = cLastDate.getDate();
//表示
cle_txt.htmlText = "";
for (i=0; i<lastdate; i++) {
if (i+1 == d) {
cle_txt.htmlText += "<font color=\"#009900\""+">"+(i+1)+"</font>"+" ";
} else {
cle_txt.htmlText += (i+1)+" ";
}
}
186 :
Now_loading...774KB :2007/05/25(金) 11:59:59 ID:gxw3b7MK
質問があるんですが、 Flashを埋め込んだHTMLを開き、ブラウザにフォーカスがあるときはJavaScriptでF5キーを無効にできたんですが、 FlashにフォーカスがあるとJavaScriptでF5キー押下のイベントが拾えず、更新されてしまいます。 F5キーで更新させたくないんですが、FlashにフォーカスがあってもF5キーを無効にする方法はあるのでしょうか? 環境はWinXPSP2,IE6,Flash8,AS2です。宜しくお願いします。
>>186 ブラウザに依存するので完全には無理だと思う。
Firefoxとかだとその方法でもうまくいくみたいだけど。
そんなのユーザーに迷惑。どうしてもショートカットキーとしてF5を使いたいのなら別のキーにすべき
189 :
Now_loading...774KB :2007/05/25(金) 13:04:53 ID:gxw3b7MK
>>187 なるほど・・・ブラウザに依存するんですね。
ちょっと狐さんで試してみます。
有り難う御座いました!
連カキすいません(;´Д`)
>>188 試験を行うFlashなので更新されると困るんですよ・・・
なので無効にしたいんです。F5に別機能をつけたい訳ではないです。
>>190 F5以外の方法なら更新されても問題無いの?
LoadVarsと同じ処理を文字列に対して行うのはどうしたらいいんでしょう? hoge1="12345"&hoge2="23456"&hoge3="34567" こんな1つの文字列があったとして、hoge1、hoge2、hoge3にデータ入れていきたいんですが LoadVarsでtxt読む時みたいにやる方法ありますか?
>>191 そこも悩みどころなんですよね・・・
更新ボタン押されたり、マウスジェスチャとかは防げないですもんね・・・
そう考えるとF5を無効化するというよりかは
更新されたら、何かをするっていうほうがよさそうですね。
もうちょっと色々考えてみます!
>>192 var str:String = "hoge1=12345&hoge2=23456&hoge3=34567";
//方法1:そのままLoadVarsでパース
var lv:LoadVars = new LoadVars();
lv.decode(str);
trace(lv.hoge1);
//方法2:forループでパース
var obj:Object = new Object();
var _s:String, _a:Array, _s2:Array;
_a = str.split("&");
for (_s in _a) {
_s2 = _a[_s].split("=");
obj[_s2[0]] = _s2[1];
}
trace(obj.hoge2);
初めまして 初の書き込みです。 さっそくなんですが、 on (release) { for (var i in eval(root.doodoo)) { if (!root.doodoo[i]._get) { root.sendGetDoodoo(i); root.doodoo[i]._get = true; root.doodoo[i].gotoAndPlay(3); } // end if } // end of for...in } の実行文を自動で行わせる方法が知りたいんです。 誰か回答ください><
196 :
Now_loading...774KB :2007/05/26(土) 03:06:14 ID:hOFpAS01
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player8) attachMovieを使ったテキスト表示で質問です。 rootのステージ上に、内部にテキスト欄を持ったMC(numAtmM)を5個(numAtmM0 〜numAtmM4)縦に表示し、それぞれのテキスト欄に試しに10を表示させるボタンア クションのASを書いています。 for文を使ってMC自体(この背景は青)を5個表示させることは出来たのですが、内部 のテキスト欄(文字色は白)に10を表示させることが出来ません。ASは下の通りです。 for (id=0; id<5; id++) { prop = {_x:50, _y:id*50+50}; //縦方向に newMark = "numAtmM"+id; //新しい名前 newMark.numAtmM_ins.text = 10; //10を代入 this.attachMovie("numAtmM", newMark, id, prop); //表示 } どうしたら良いでしょうか?
>>196 テキストフィールドが存在する前に文字を表示させようとしてないか?
198 :
196 :2007/05/26(土) 03:48:13 ID:hOFpAS01
>>197 あっ、ホントだ・・・・
newMark.numAtmM_ins.text = 10;を消して、this.attachMovieの後に
this["numAtmM"+id].numAtmM_ins.text = 10;
としたら成功しました。
有り難うございます。
コンテキストメニューを完全に非表示にする方法って無い?
もう一つ IME機能を完全にオフにする方法って無い?
>>199 コンテキストメニューを出さなくするのは無理
>>200 ↓詳しくはヘルプ見て自分でカスタマイズ汁
this.onMouseUp = function(){
System.IME.setEnabled( System.IME.getEnabled() ? false : true );
};
MCをattachMovieで作成したものの、その下層MCを絶対パスで指定したいのですが、 うまくいきません。 どうすれば処理できますか?
>>202 自分でどのようなソースを書いてうまくいかないのかを書く。
また、なんでうまくいかないと判断したのかも書く。
phpでの処理でエラーを起こすswfファイルがあったので調べてみたらヘッダにCWSと書いてあった 知人にきいたらアクションスクリプトを使っているswfファイルはヘッダに「CWS」と記述され、 コンポーネントデータが埋め込まれるっぽいという話だったんだがこれはあってるのかい?
CWSは圧縮swfじゃなかった?
>>205 そういえば圧縮swfはサポートしてないとか先輩から聞いたような……
Flash使いじゃないんで圧縮swfで出力するパターンとかは分からないけど「無理ぽ」って結論は出た
dクス
Mac版Flash MX Mac版Flash CS3 RETURNキーを押すと単純に次のフレームに進むというスクリプトを スクリーンに貼り付けました。 パブリッシュプレビューではちゃんと機能します。 でも、実際にパブリッシュしたファイルでは、RETURNキーを押して も何も起こりません。 何が間違っているのでしょうか? stop(); if(Key.isDown(13)){ nextframe(); }
208 :
Now_loading...774KB :2007/05/27(日) 17:47:30 ID:z7fyb7K1 BE:70478382-2BP(123)
>>206 zlib圧縮されてるって意味。Flash5以下のプレイヤーでは読めない。
ヘッダ飛ばして残りのバイナリ解凍すれば「FWS」フォーマットに変換できる
>>208 詳しい説明ありがとう
作業工数と相談して実装するかどうか決めることにします
ユーザビリティ的にやれっていわれるんだろうなぁ……
>>207 swfを一回クリックしてからやってみるとか
環境:Flash8 ビルドインメニューの拡大、縮小の動作をフックすることって出来るかな? 別に機能を殺したいわけではなく、拡大時にテキストはサイズを維持したいって事なんだが。 拡大を捕まえられれば、フォントサイズの調整でいけるかと思うんだが。 他の方法でも何かあれば教えて欲しい。 #それ拡大じゃなくなる、ってのは勘弁
できねーから自分で新しい拡大ボタン作れ
>>213 まあそうだよな。
やるべきことは大体わかるがそれなりに時間は掛かるから次期対応にしよう。
215 :
Now_loading...774KB :2007/05/28(月) 04:41:07 ID:IcMQp8yo
ttp://www.ultrashock.com/ ここのサンプルで、
Mouse Toys > Candy Curtain
マウス追従のflaファイルをダウンロードしたのですが
import flash.display.*;
これが邪魔して、rootに置いたオブジェクトが
見えなくなってしまいます。
追従するmcだけに適応させるには
どうしたらいいんでしょうか。
>>215 import flash.display.*; は必要なクラスを読み込んでるだけ。
つーか、それがないと動かないから。
んで、_rootに「clip」と「holder」っていうMovieClip作ってんじゃん。
それの深度の問題でしょ。
Ctr;+F8で適当に新規MovieClip作って0,0に配置して
ソース全部コピペすりゃいいじゃん。
217 :
215 :2007/05/28(月) 16:50:05 ID:IcMQp8yo
>>216 レスありがとうございます。
>>216 の件は、もう試してみたのですが(loadmovieも)
import flash.display.*; があると
残像が全てのMCに適用されてしまい
上手く表示できませんので
atacchされるmcにだけ、適応させたいのです。
後だし情報になってしまい、申し訳ありません。
>>217 ああ、そういうことか・・・。
Line43の第一引数の問題じゃない?
buff1.draw(_root, 〜〜
_rootを、thisとかにしてみたら?
219 :
215 :2007/05/28(月) 17:29:14 ID:IcMQp8yo
>>218 ほぼ希望通りに出来ました。
ただ、追従の動きが若干スムーズではなくなってしまった感があります。
ちょっと悩んでみますです。
ありがとうございました。
>210,211 ありがとう。 でも、stop();残しておかないと次のフレームに勝手に進ので、 削れないんです。
MovieClipのenterFrameにキーイベントだけ書いてみたりしたらどうだい?
>>220 それフレームアクションに書いても、フレームに入った一瞬しか判定しないから
うまく動作しないんじゃなかったっけ?
>>221 の書いた通り、onEnterFrame使うかKeyリスナー使うのがいい。
それから大文字と小文字は間違ってないよね?
そこで聞け
>>223 SWF File Format Specification とかにFLVの仕様が載ってるからそれ見ながら
バイナリ弄ればいいんじゃね?
俺、バイナリとかになるとわかんないけど... orz
win版Flash8 ActionScript2.0 Papervision3Dのasファイルをimportできるようにするためには orgフォルダを置く場所をどこにすればいいんでしょうか
229 :
178 :2007/05/29(火) 23:09:43 ID:FD8jP0p8
>>185 見に来るのが遅くなりました;AS例ありがとうございます
これから参考にさせていただきます。
文字列のみ含むMovieClipに対してonRollOverをセットすると 文字と重なった時にしかイベントが発生しないんだが、 これをMovieClip全体と重なった時に発生させるにはどうしたらいい?
>>231 こんなにあっさりできるなんて…(´Д`)
便乗で質問 俺、普段>230みたいなときはMovieClipの形した図形をα=0にして強引に当たり 判定付けてたんだけど、ダイナミックテキストでやった方がいいんかね?
>>233 楽かどうかは別だが、MovieClip.hitAreaを使うのが正しいと思う
>234 調べた感じではやり方自体はそんなに変わらないのかな? 何はともあれthx、次から取り入れてみることにするわ。
236 :
202 :2007/05/30(水) 22:19:14 ID:bznFmQLZ
>>203 すみません。事故解決しました。
hitTestの判定で、別の判定が優先されて識別してないように感じていたみたいです。
XML.load(url)が発生するたびにswfの描画が止るんだけど、 これを回避する方法とかありますか?
前もって読み出した値を変数にでもいれといたらどうだろう。外部ファイルをオープンするのはその都度読みにいくから多少時間かかるよ
239 :
Now_loading...774KB :2007/05/31(木) 22:47:56 ID:ERgDRfhK
ステージサイズの大きさを取得するにはどうすればいいのでしょうか? 自分で決めたステージサイズのx,yの大きさをActionScriptで変数に読み込むにはどうすれば いいのでしょうか?
>>239 プロパティくらいはヘルプですぐ見つかると思うので次からは自力でね
Stage.width
Stage.height
241 :
Now_loading...774KB :2007/06/01(金) 00:08:49 ID:Tr56W6Xw
ありがとうございます すいません次から気をつけます
242 :
Now_loading...774KB :2007/06/01(金) 02:16:47 ID:Syvp89sX
AS(Flash8)で、以下のことをやろうとしています。 1. ActionScriptでデータを送信する 2. ActionScriptでデータを受信する 3. 受信した内容がある条件を満たす時に、次の画面に遷移させる。 1.と2.の部分は実装できたのですが、3.のASの中で受信データをif文判定した後に、 現在の画面から次の画面に遷移させる方法が分かりません。 すみませんが、教えていただけないでしょうか?
>>242 getUrlだけど、1,2をどうやってるのか謎
244 :
Now_loading...774KB :2007/06/01(金) 07:07:34 ID:Syvp89sX
>>243 ありがとうございます。確か、昔使ったことが有る関数でした。
これで、前の進めそうです。ありがとうございました。
245 :
Now_loading...774KB :2007/06/01(金) 12:20:44 ID:hzVX6vD9
htmlタグを使ったテキストファイルを読み込んで、それをhtmlレンダリングして表示させてます その表示した文章の行間を詰めたい(可能なら<p>タグで出来た段落と段落の間隔を狭めたい)のですが myFormat = new TextFormat(); myFormat.leading = 1; aaa_mc.bbb_txt.setTextFormat(myFormat); こういったスクリプトを打っても行間を変えられませんでした どのようにすればよいのでしょうか・・・ そしてcssを読み込んで使用するという方法も見たのですが 上下マージンのプロパティは使用できないようだし、行間詰めは無理ですよね?
setNewTextFormat
>>246 ありがとうございます
setTextFormat(myFormat)→setNewTextFormat(myFormat)
としましたが変化はありませんでした・・・
>245 myFormat = aaa_mc.bbb_txt.getTextFormat(); trace(myFormat.leading); スクリプト以外に原因がある気がするな俺は。 あとcssで行間は無理なはず。
249 :
Now_loading...774KB :2007/06/02(土) 01:10:09 ID:zTQ6Hd/T
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) MCのフォーカスについて質問です。 あるMCを押している間、これにフォーカス枠が出るように on (press) { this._focusrect = true; } on (release) { this._focusrect = false; } と書いたのですが、何も現れません。またフレームアクションとして this.onEnterFrame = function() { trace("Focus= "+Selection.getFocus()); }; を書いたのですが、MCを押しても null しか表れません。ヘルプを見ましたが 原因が分かりません。どうすべきでしょうか?
>249 そもそもフォーカスの意味を取り違えてる >どうすべきでしょうか? 原因が知りたい:フォーカスについてググル 実装したい:_downの画像を差し替える
swfファイルをhtmlを経由せずにフルスクリーンで開く方法ってありますか?
Fscommand使えば昔からできるけどdisplayState使ってやろうとしてるなら多分無理
>252 ありがとうございました。 Fscommandでやってみます。
テキスト入力のコントールを含むSWFをブラウザで表示させてるとき、 テキストエリアにフォーカスを当てて文字を入力中してる最中に、 マウスカーソルがテキストエリアから離れると、再度フォーカスを受け取るまで バックスペースや矢印キーが無反応になるんですけど、これの回避方法ってありますか? 周りのオブジェクトに対してfocusEnabled = falseしてみたり 標準コンポーネントからテキスト入力のラベル?に変えたりしてみたけどだめでした。 コンポーネントの自作や、キーボード入力と現在フォーカスのあるテキストエリアを監視する関数でも作れば できそうな気がするんですけど、もっとスマートな方法はないでしょうか?
仕様
256 :
Now_loading...774KB :2007/06/04(月) 11:59:38 ID:UNHpyhJs
flash8を使用しています
http://www.geocities.jp/flashiroha/script/as24.html こちらのような波紋効果を使用したいのですが、どうも動いてくれません
ムービープレビューではエラーなどは出ませんが、波紋の効果も出ずそのままです
ASレイヤー:1、6、11、33にキーフレームを指定して、それぞれにvar hamon:makeRipple・・・と書く
ムービークリップのhamonと背景画像を置いたレイヤー:1から33フレームまでフレーム挿入
表示側のtext.flaの構成は上の通りです,flaとmakeRipple.asは同じフォルダに置いてあります
ステージの設定・及び準備の
>(6)ステージから波紋を削除する。
というのがどうも仕方が分からず、書いてある内容で実際に行ったのは(5)までです
間違いなどご指摘お願いします・・・
>256 (5)までやってステージに波紋があるだろ これは用無しだから hamonをクリック→deleteキー
>>257 ありがとうございます
やはりこの時点でムービープレビューをしても、パブリッシュしたswfを開いても波紋は浮かんできません
hamonを削除しても背景シェイプが表示されるだけでした・・・
検証してないので何とも言えないけれど、 "hamon"シンボルは同名でリンゲージしていますか?
>>259 リンゲージ設定で動きました!ありがとうございました!
261 :
254 :2007/06/04(月) 13:57:48 ID:HfUehn9v
>>255 何とかして直せないでしょうか・・・?
常にBACKSPACEのキーイベントをとってFocusを当てなおすとか色々してみたんですけど
キーリスナーすら無反応でした。
ムービープレビューでは正常に動作するのでブラウザにキーイベントをとられてる感じなんでしょうか
それとCtrl+VやCtrl+Cをテキストエリア内で行うと高確率で文字化けしたり(しないときも)もします。
既知のバグ・仕様なのは分かるのですが、もし対策法があればご教授お願いします。
>>261 ちなみにBackSpaceはプレビューでは [制御]-[キーボードショートカットを無効]にチェックが入っている必要があります。
それでKey.BACKSPACEで拾えるはずです。
で、記録している入力テキストフィールドのtextを操作すれば、一応は目的の動作ができると思います。
ただしフォーカスが元に戻るっていう感じではないので、そのようにしたい場合は入力から全部作ることになりそうですが。
var stateStr:String=this.testBox.text;
var keyObj:Object=new Object();
keyObj.onKeyDown=function(){
//Selection.setFocus("testBox");
if (Key.isDown(Key.BACKSPACE)) {
stateStr=stateStr.substring(0,stateStr.length-1);
_root.testBox.text=stateStr;
}
}
Key.addListener( keyObj);
プレビューでキーが取れないと勘違いしていますね。 お恥ずかしい。。。 SWF自体にフォーカスが行っていないと、キー関係は無理だと思います。 どうしてもやるならJsとの連携になるのかな? お役に立てませんで申し訳ない。
>>261 マウスカーソルが離れた時点でって、そういうイベントでなにか起こしてるんじゃないの?
普通はマウス座標とフォーカスは全く別だし普通に動作する。
ロールアウトするとなんとかみたいなことしてないか?
265 :
254 :2007/06/04(月) 15:33:49 ID:HfUehn9v
>>263 いえ、助かります。
フォーカス自体はFLASHにあります。テキストエリアにフォーカスがあるにもかかわらず、
マウスカーソルをテキストエリア外に出すと、BACKSPACEと矢印キーが無反応になり、
SPACEやENTERなどのキーは動作します。
BACKSPACEと矢印キーがブラウザを動作させるキーなので、
FLASHのテキストエリアにフォーカスがあっても、ブラウザにイベントを奪われてるのではないかと思いました。
>>264 スクリプトを一切書かずに、TextArea,TextInput,テキスト入力をおいた場合でも同じ挙動になってしまいます。
MoneyKitやナイキ、ニコニコなどのサイトのFLASH内にあるテキスト入力も
マウスカーソルが離れただけでこれらのキーが無反応になっているのですが、
これはもうActionScriptや外部スクリプトでどうこうできる問題ではないのでしょうか?
>>265 ブラウザとか環境の問題なんじゃないかな。
何も提示されてないから何ともだけど。
267 :
Now_loading...774KB :2007/06/04(月) 20:25:51 ID:EQPI/P32
MovieClip.attachAudio() で割り当てた音声を解除するクラスはありませんか?
普通にSoundオブジェクト使えよw
269 :
267 :2007/06/04(月) 21:53:49 ID:EQPI/P32
NetStream.attachAudio() の間違いです、すいません。 Microphone.setSilenceLevel(100) としてもハウリングおこしてる状態では 音声配信と停止することができません それで割り当て解除てきないものかと・・・ これってバグでしょうか?
270 :
267 :2007/06/04(月) 22:11:49 ID:EQPI/P32
失礼しました。自己解決しました theMic.setGain(0); を追加して回避できました。
271 :
249 :2007/06/05(火) 01:30:16 ID:JEz5ZV8l
>>250 レス有り難うございます(返事が遅くなりすみません)。
MCに
on (press) {
Selection.setFocus(this);
}
が無かったことが原因で、これでちゃんとフォーカス枠が出ます。また、
this.onEnterFrame = function() {
trace("Focus= "+Selection.getFocus());
};
にてフォーカスのパスを得ることが出来ます。
272 :
Now_loading...774KB :2007/06/05(火) 10:43:35 ID:yU5jo2uR
ランダムで1から100までを発生させて if文でその数が4の倍数かを比較してそうだったら処理、違ったらelseへという処理をしたいのですが if文の判定式の部分が恐ろしく長くなってしまいます ran_su = Math.floor(Math.random()*100+1); if(ran_su == 4 || ran_su == 8 || ran_su == 12 || ran_su == 16 … ran_su == 100) { このように考えてしまいます、もっと効率の良い書き方があれば教えて下さい
ヒント:4で割ったあまりが0
VBで作るようなアプリをフラッシュで作るための勉強をしています。 ボタン押すとフラッシュ内に入力ボックスが表示されるようにしたいんですが、 どの様な方法があるんでしょうか? あと、そういったアプリを作るのに参考になるサイトがあったら是非教えて下さい。
フレームとgotoAndStopとかを使ってくださいとしか言えない 適当なゲーム製作講座でも見て、あとは勘で作ろう
277 :
Now_loading...774KB :2007/06/05(火) 16:31:02 ID:SkCdHlbE
先生方質問です! AS3のSocketオブジェクトは低レベル通信が出来ると聞いたんですが、 UDP通信は使えますか?
Fscommandのフルスクリーンと Stage.displayState = "fullScreen";でのフルスクリーンでは 違いはあるのですか?
279 :
Now_loading...774KB :2007/06/05(火) 22:15:15 ID:UuzxC9M3
VIPPERのバカ騒ぎ
282 :
Now_loading...774KB :2007/06/06(水) 13:04:21 ID:O5JBX+xz
256で質問させてもらった者ですが、また宜しくお願いします; 256の効果を使用したムービークリップを、メニューなどがあるmain_mcからMovieClipLoaderで 読み込んだのですが、波紋の効果だけが表示されませんでした 波紋を使用したflaファイルを個別でプレビューすると正常に動作しています 訂正が必要な箇所等があればご指示をお願いします
>>282 >256の効果を使用したムービークリップ
256の効果を使用したfla(swf)ファイルでした、すみません
>>282 詳しくは読んでないけど、_lockrootあたりをヘルプで見てみそ
ボタンのクリックをムービークリップから検知したいと考えています。 コンポーネントから選んだボタン(btn_2)ではうまくいったのですが、 自作のボタン(btn_1)からがNGです。 ムービークリップには以下の様に記述しています。 onClipEvent (load) { //btn_1(自作) var listenBtn1 = new Object(); listenBtn1.click = function() { trace("btn_1 OK"); }; this._parent.btn_1.addEventListener("click", listenBtn1); //btn_2(コンポーネントから) var listenBtn2 = new Object(); listenBtn2.click = function() { trace("btn_2 OK"); }; this._parent.btn_2.addEventListener("click", listenBtn2); } クリックしたとき、btn_2は「btn_2 OK」と表示されますが、btn_1は何も反応がありません。 btn_1では"click"ではないのかと思い、"release"にしてみたけど駄目でした。 なお、btn_1、btn_2の方には何も記述していません。 どう書けば良いか、どなたか教えて頂けないでしょうか?
286 :
Now_loading...774KB :2007/06/06(水) 16:14:38 ID:iWV6SO21
XP、MXです。 複数MCにおける同じ処理をできるだけ簡略な文で処理したくて 以下のようにしました。 push_buttonに入れた変数名の中に変数を入れることはできませんか? ☆の部分を簡略化したいのですが… MC1.onRelease = function() { push_button="_root.a_1"; if (eval(push_button) == 0) { this.gotoAndStop(2); _root.a_1 = 1; //☆ } else if (eval(push_button) == 1) { this.gotoAndStop(3); _root.a_1 = 2; //☆ } else if (eval(push_button) == 2) { this.gotoAndStop(1); _root.a_1 = 0; //☆ } }; よろしくお願いします。
>>286 マジレス
evalはMCの参照だけだし、遅いし、4つも昔の版のやり方だから使わないこと。
本題、仕様としてはonRelease発生で任意の変数の値が0か1なら1足して2なら0を一定の変数に代入し、
それに1足したフレームにgotoAndStopってことでよかったか?
MC1.onRelease = function() {
this.gotoAndStop((_root.a_1 = (_root[push_button = "a_1"]+1)%3)+1);
};
>>286 ありがとうございます!!!
evalは遅いのですか・・・
複数の同処理時に1つの変数に
複数の変数名を入れることで処理が楽だったので
よく使ってたのですが・・・これからは使わないようにします。
実際は変数処理がメインでgotoAndStopは見かけの効果です。
MC1では_root.a_1の変数をMC2では_root.a_2の変数を変えて
正否判定で使用します。
なので、教えて頂いたASを少し変えて
MC1.onRelease = function() {
push_button = "a_1"
this.gotoAndStop(_root[push_button] = (_root[push_button]+1)%3)+1);
};
MC2.onRelease = function() {
push_button = "a_2"
this.gotoAndStop(_root[push_button] = (_root[push_button]+1)%3)+1);
};
としました。これでMC名と変数の2箇所変更だけで動かせました。
これで900個のMC処理が楽になった・・・
本当にありがとうございました!
ところで『[ ]』は配列を1個だけの変数を入れる場所として使用しているということですか?
理解するために教えていただければうれしいです・・・
理解力無くてすいません・・・
290 :
287 :2007/06/06(水) 18:57:13 ID:KALZA2lN
>>288 この時点でpush_buttonに代入しなきゃいけない理由があってその実装を兼ねたのと、
push_buttonがどこか別の場所で書き換わるのを受け取って処理するんだと予想してそうしたんだけど、
別にそうじゃないのならpush_buttonは不要。そのまま_root.a_2とかでいい。
this.gotoAndStop((_root.a_2 = (_root.a_2+1)%3)+1);
それから関数内だけで使う変数ならvar付けろ。後悔する。
あと、それだと開き括弧1個足りなくないか
>>290 何度もありがとうございます。
そして、書いたASは(が足りないです・・・orz
他の複数の処理があるわけでなく、
ほぼこの同じ大量処理なので、必要ないかと・・・
というか独学なのでvarとか使ったことない。
覚えて次回に活かします。
まだまだ理解が足り無すぎですね。
勉強になりました。
ありがとうございました。
292 :
Now_loading...774KB :2007/06/06(水) 21:49:46 ID:ujTbA/jY
>>286 >"click"ではないのかと思い、"release"にしてみたけど駄目でした。
これをやるならonReleaseじゃないの?
>>293-294 レスありがとう御座います。
違いが良く分からずもreleaseではなくonReleaseにしてもみたのですが
たしか駄目だったと思います。
今は確認できないので、明日また294さんの示してくれたやり方でやってみます。
ちなみに、普通にbtn_1の方に↓を書けばキチンと動いていました。 on (release) { trace("btn_1 OK"); }
>>296 自作ボタンってMC?(コンポーネントだったら on (release){} で動かなかったと思はず)
自作ボタンがMCでbtn_1がインスタンス名なら、
btn_1.onRelease = function(){
trace("btn_1 OK")
}
リスナーを使いたいんじゃない?
XP、MX2004で質問です。 ストリーミング再生する曲に対してsetVolume()を使ってボリューム変更をしたい と思っているのですが、再生中に変更する分には問題なく動作しているメソッドが 読み込み直後には正常に動作せずに困っています。 もう少し正確に言うと、メソッド自体は問題なく動いていて bgm_sound = new Sound(this); trace("volA="+bgm_sound.getVolume()); bgm_sound.setVolume(player_mc.returnVol()); trace("volB="+bgm_sound.getVolume()); とした場合数値上はボリューム変更が反映されているのですが、実際はボリューム 値Maxの音量で再生されてしまいます。 どなたが原因が分かる方いらっしゃいましたら教えてください。 ※setVolume()では、player_mcから「bgm_soundを初期化する前のボリューム値」を 受け取っています。 ストリーミング再生の場合、別のmp3ファイルを読み込んでもpositionが継続して カウントされ続けた(0にならない)ので、bgm_sound自体を初期化し直しています。
300 :
299 :2007/06/08(金) 04:51:26 ID:Vm8TpUkT
ってすみません、自己解決しました。 loadSound()の前にsetVolume()したって(ry
質問があります。 Circle1.onRelease = function(){ number1=2; Circle1.gotoAndPlay(2); } Circle2.onRelease = function(){ number2=2; Circle2.gotoAndPlay(2); } というようなものをCircle10までまとめて記述したいのですが、 どのようにすればよいでしょうか? for (var i = 1; i<=10; i++) { this["Circle"+i].onRelease = function() { this["number"+i]=2; this.gotoAndPlay(2); } } としてみたのですが、これだとCircle1〜10ではなく、 Circle11だけについての記述になってしまうようです。
>>301 thisが何を指しているのかtrace(this);で確認しる
>>302 .303
アドバイスありがとうございます。
for (var i = 1; i<=10; i++) {
this["Circle"+i].onRelease = function() {
this["number"+i]=2;
this.gotoAndPlay(2);
trace("this"+this);
trace("i→"+i);
}
}
としたところ、
thisのほうは思ったとおりに動く(Circle2をクリックすればCircle2がgotoAndPlay(2)される)のですが、
iのほうがCircle1〜10のどれを押しても「11」という答えが返ってきます。
(「number11=2」という処理をしていて、「number1〜10=2」という処理をしない)
for文が終わったあとの数値が出てきてしまっていると思うのですが、位置がおかしいのでしょうか?
>>304 位置がおかしいというかfor文を抜けた時点で i は11になるしょ。
Release時にその i の値を表示させているんだから当然 i = 11 となる。
number1〜10=2としたいならCircle1〜10それぞれに i の値を保持させておく。
for (var i = 1; i<=10; i++) {
this["Circle"+i].num = i; //保持
this["Circle"+i].onRelease = function() {
this["number"+this.num] = 2;
trace(this+".number"+this.num+"=2");
};
}
これでmcをクリックしたときに Circle[1〜10].number[1〜10] に 2が代入される。でも
number1〜10に2を割り当てる意味がわからない。単にnumberだけでいいと思うけど。(上のASだとnumの部分)
onRelease=function(){ } 内で使ってる this は Circle1〜10 のことだよ。勘違いしてない?
>>305 夜分遅くにわざわざありがとうございます。
this["Circle"+i].num = i; //保持
こういう風にするとiの値を保持できるのですね。
number1〜10に2を割り当てるのは、他のスクリプトの判定のためだったのですが、
今聞いてもうちょっと違う方法で出来そうな気がしてきたのでもう一度考えてみます。
答えてくれた皆さんありがとうございました。
質問です。 フルFlashサイトを作っていて、 TOPというswfにcontentsというswfを読み込ませています。 contents.swfのある地点を通過するとTOP.swfの中で表示されていたボタンを消す。 といったことをActionScriptでできるのでしょうか? わかりにくいかも知れませんがよろしくお願いします。
>>307 できるか?というのなら出来る。
単純な方法なら、ある地点とやらのフレームに
ボタンのターゲットパス._visible=false;
とでも書けばオケ。
ターゲットパスの書き方がわからない時は
>>2 のサイトで学習。
少し興味があるだけなんだけど、 ニコニコってどんな技術つかってるのかな? FLASH起動→FCSからFLV読み込み→コメントとか投稿時間が格納されているCSV読み込んで保持→ インターバルを稼動→CSVから取得したデータの投稿時間が一致したときに該当するコメントを流す→ コメント投稿がされたらCSV書き出しPHPを呼び出す(LoadVars?)→成功後コメントリストを更新 みたいな感じかな? ストーリミングしてるしFCS使ってるのは確かだと思うんだけど Remoteとか使ってるのかな?Remote使ったことないから、何が飛躍的に変わるのか分かんないけど、どう思う?
大体そんな感じだとおもう
質問させてください。ループするアニーメーションのFPSをスライダーではやくしたり、おそくしたりというのは可能でしょうか?
可能です
313 :
Now_loading...774KB :2007/06/09(土) 22:10:58 ID:AtHV3ovC
312 その方法はおおもとのFLASHじたいのFPSを変えることもできるのでしょうか?
無理です
314 簡潔に答えていただきありがとうございました。 ではfpsの変化の下限と上限を固定できないでくるしんでいます。どこかに外注するとしたらいくらくらいかかるものなのでしょうか?
>>315 それは知らないけど擬似的にはアイデアしだいでいろんな方法使って出来る
例えば
100コマ、200コマ、……、10000コマで同じアニメーションを作る
10fpsで再生するとそれぞれ10秒、20秒、……、1000秒のものができる
あとはそれぞれの最初のコマをスライドに連携させる
とか
setIntervalってのもあった気がするけど詳しくは知らない
>>315 1.SetIntervalを使ってスライダーを変化させた時にループ速度を変える
2.onEnterFrameのイベントで歯車を作る
60FPSのFLASHでアニメーションを30FPSで動かしたいなら
2フレームに1回イベント内を処理する感じ
316さん317さんありがとうございました。 たいへんASに詳しいかたとお見受けしました。もしよろしければASを組むお手伝いをしていただけないでしょうか?素材はそろっています 謝礼も何万かお支払いできます。
>>318 ちょっとASかじってる人ならそんなに難しい問題じゃないと思います。
お仕事でしょうか。
作業量が多いのなら正式にどこかに外注するなりした方がいいんじゃないかと。
少なくとも2chスレで仕事を依頼するのはちょっと違う気がします。
319 作業量は多くありません。サンプルを一つ作ってもらうだけです。 外注を検討してみたいと思います。ありがとうございました。
>>308 回答ありがとうございます。
>>2 のサイトでターゲットパスについて勉強したのですが、
別のswfへのターゲットパスの記述がわかりませんでした。
できればそのやり方の載っているページを教えてもらえないでしょうか?
>>321 読み込み方とかよく分からんけど
「level0」とかそのへんじゃないだろうか
323 :
Now_loading...774KB :2007/06/10(日) 10:57:17 ID:XjDw+lta
this.stop(); と記述していてもENTERキーを押すとフレームがすすんでいってしまいます。 これって仕様なのですか? フレームを進まないようにするにはどうすればよいですか?
324 :
Now_loading...774KB :2007/06/10(日) 13:26:43 ID:ay7ACGFB
325 :
Now_loading...774KB :2007/06/10(日) 15:58:10 ID:kfkNkzdi
>>323 > と記述していてもENTERキーを押すと...
プレビュー見るならCTRL+ENTER(or Return)じゃね?
※ Macなら?+Return
ENTERキー(or Return)は単なる再生では!
FLASH5です。 1,2フレーム目にローダーを作って3フレーム目で呼び出す外部SWFをプリロード。 ロードが終わったら3フレーム目に外部SWFを_rootで流しメインフレームはstop。 その外部SWFが再生し終わったらメインの4フレーム目に飛ばす、 要約すると 1-2フレーム目 3フレーム目で呼出す外部SWFを先に読み込んでおきたい 3フレーム目 読み込んだ外部SWFを再生させ、再生し終わったら4フレーム目に飛ばしたい と言うのをしたいのですが具体的にどうすれば良いのでしょうか?
327 :
Now_loading...774KB :2007/06/11(月) 04:47:08 ID:LZxiAJ46
テキストフィールドにて入力された文字列から¥nの改行を抜き出すよい方法はありませんか?
328 :
Now_loading...774KB :2007/06/11(月) 06:05:05 ID:ltj9Yi4W
function setComma(number_str:String):String { if (number_str.length>3) { trace("1_"+number_str); number_str = arguments.callee(number_str.substr(0, -3))+","+number_str.substr(-3); trace("2_"+number_str); } return number_str; } trace(setComma("1234567890")); だれかこの関数を俺でもわかるように説明してください! どういう流れでコンマがついていくのかよくわからない・・・
>>326 具体的にというか flash ローダー でぐぐればいくらでもサンプル出てくる
>>327 var inStr:String = "東京都\n千代田区\n1−1−1";
trace(inStr);
trace(inStr.split("\n").join(""));
>>328 arguments.calleeは自分自身の関数を指す
つまりsetCommaを再帰呼び出ししてる
330 :
Now_loading...774KB :2007/06/11(月) 06:45:51 ID:ltj9Yi4W
ありがとう
331 :
326 :2007/06/11(月) 10:02:58 ID:HCe72QqF
>>329 すいません表現がおかしかったかも知れません。えっと普通の1個のSWFでプリロードって話ではなく、
BのSWFを呼び出すAのSWFでBのSWFごとプリロードし、尚且つBのタイムラインが再生し終わったら(Bが最終フレームまでいったら)
Aのフレームを一つ進ませる(4フレーム目に飛ばす)。と言うのがしたいのです。
例えば現在こういう構成でAS書いてます。
_root
└loadmovieするターゲットシンボル(load_window)※1-3フレーム目までステージにいます
A.swf-loadmovie(オブジェクトアクション)
onClipEvent(enterFrame){
if (_root.load_window.getBytesTotal = _root.load_window.getBytesLoaded){
gotoAndStop (3);
//3フレーム目でB.swfが呼出されるASが実行されます。
}else if(_root.load_window.getBytesTotal > _root.load_window.getBytesLoaded){
gotoAndPlay (1);
//B.swfが完全に読込まれるまで1,2フレーム目を表示します。
}else if(_root.load_window._framesLoaded = _root.load_window._totalframes){
gotoAndPlay (4);
//B.swfが最終フレームまで再生されたら呼出し元の
//A.swfを4フレーム目に飛ばし、load_windowはステージ上から消す
}
}
A.swf フレームアクション(3フレーム目)
_root.load_window.loadMovie ("B.swf");
stop();
とりあえずこれで試した所、
3フレーム目でB.swfは呼出されるのですがB.swfが再生し終わったら
B.swfの1フレーム目から再度再生されてしまいます。
(A.swfのメインタイムラインは3フレーム目のままで、本来は最終フレームまで
いったらメインタイムラインを4フレーム目に飛ばしたい)
こんなんしたらどう?とかあったらお願いします。。
>>331 B.swfの最終フレームにはthis.stop()が書かれているのか?
それならB.swfはループ再生しないはずだ。
ついでにそこに_root.gotoAndStop(4)とでも書いておけば
_rootは4フレーム目にいくだろ。
AS3なんですが Spriteの中にTextFieldがあるClassを呼び出してaddChildした時、 適当なキーを押したら上記のTextFieldへフォーカスを移したいんですが この場合どうすればいいでしょうか? 自分でstage.focusを設定するとSpriteにフォーカスが移るんですが Tabによるフォーカス移動ではちゃんとTextFieldになるんですよね・・・
>>333 よくわからんがfocus先をSpriteにしてるASを書いてるのではないかな
>>332 それは盲点だった。うまくいったよありがとう
>BのSWFを呼び出すAのSWFでBのSWFごとプリロード
あとはこの部分なんだけうまくいきません。。
とりあえずストリーミングでみると0フレーム目で全部読んじゃってる感じで
1フレーム目が表示されないのですが、良い方法ありませんか?
要は外部から読込むムービーをステージに出る前から
予めロードしておきたいって話です
336 :
Now_loading...774KB :2007/06/12(火) 09:42:48 ID:uKqoRlEC
ボタンが4つあって、それぞれのロールオーバー&ロールアウト処理が長々しくなってたので 纏めたいのですがどうも動いてくれません、FLASH8を使用です for(i=1; i<5; i++) { this["menuBtn" + i + "_mc"].onRollOver = function() { this["topBack" + i + "_mc"].playNum = 1; }; this["menuBtn" + i + "_mc"].onRollOut = function() { this["topBack" + i + "_mc"].playNum = -1; }; } 処理したい概要はmenuBtn1,2,3,4にロールオーバー&ロールアウトした時 それぞれの数と同じムービークリップtopBackにある変数playNumに数字を代入するといった処理です よろしくお願いします
>>336 function内のthisが何を指しているか考える
>>337 レスありがとうございます
カッコ前のthisや_parent省略もできないし・・・
this["topBack" + i + "_mc"].["topBack" + i + "_mc"].playNum = 1;
こんな事をやってみましたがやはり無理でした
一応menuBtnとtopBackは同じ階層においてますが
やはりわかりません・・・
>>338 いや、だからまずはfunctionのなかで使うthisが何を指してるか確認しろって
>>337 が書いてるじゃん。
そういうときは、trace(this)とかしてみる。
あてずっぽうに、適当な書き方を試すってことじゃない。
そうすると、パスの書き方の何が間違ってるかわかってくるはずだ。
>>338 menubtn1_mcにロールオーバーでtrace(this);した所
上層ムービークリップ..menuBtn1_mc と出ました
現在の場所がmenuBtn_mcという事で、menuBtnとtopBackが並ぶ一つ上の階層に戻そうと思い
_parent["topBack" + i + "_mc"].nMove = 1;
としてみたのですが・・・駄目です、考え方がおかしいのでしょうか・・・
>>340 変数名でなく
テキストフィールドのインスタンス名.text="なんちゃら";
でやってみそ
>>341 その方法はテキストフィールドを新たに用意して使用するのでしょうか?
336のスクリプトをあれこれと試行してみましたがやはり動かず、テキストフィールドの方法は全く検討がつきません
処理先が悪いのかと思い一応確認にと
menuBtn1_mc.onRollOver = function() {
topBack1_mc.nMove = 1;
};
をやってみてもtopBack1は正常に動作しました
どうかお答えお願いします・・・
テキストフィールドに変数名ってプロパティがあるはずだ。 そこに任意の変数名をセットして、あとはコード上で_root.変数名++;とかしてあげなさい。
>>343 ありがとうございました、なんとか試してみます
336のようなthis[]を使った方式は無理があったんですね
あ、すまん。別スレの質問と混同した。
>>343 は忘れてくれ。
単純に差している階層が違うんだと思うぞ。thisはそのオブジェクト自身を指す。
オブジェクトを差すには相対パスといって自分を基準にした_parentで指定する方法と、
絶対パスという一番上の階層から指す方法の_rootを使う方法がある。
仮に_parentを使った例を書こう。
mc1の下にbtn1とbtn2があったとして、btn1がbtn2のaという変数にアクセスする場合は
this._parent["btn2"].a++;
mc1と同じ階層にあるbtn3にアクセスしたい場合は
this._parent._parent["btn3"].a++;
となる。
あとは出力ウィンドウになにかエラーが出てないか確認しよう。
_parentとか_root、ActionScriptとかいう単語でぐぐれば説明のページひっかかってくると思うから、
あとはそこを参考にしてみてくれ。
346 :
Now_loading...774KB :2007/06/12(火) 19:31:43 ID:6lciLeyr
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) attachMovie()で出現したMCのstartDrag()/stopDrag()で質問です。 _root上に置いたstage1というMC内にmc0〜mc4という5個の球型MCを出現 させて、これらをマウスドラッグによるstartDrag()/stopDrag()で移動させるAS を書きました。 目的の動作自体は出来たのですが、startDrag()/stopDrag()の応答が遅く、 困っています 具体的には、 1)ドラッグしようと目的のMC上にマウスポインタを重ねても、すぐには指マーク にならず、0.5〜1秒ほどテキスト入力のカーソルの形『|』になる。 2)ドラッグ出来たとしても、今度はstopDrag()が機能しない場合が多く(つまり 『乳離れ』ならぬ『ポインタ離れ』が出来ず)、目的の場所に置くことができない。 フレームレートは12fpsで、PCスペックに対して別段速過ぎるとは思われません。 考えられる原因は何でしょうか?
>>346 フレームレートが遅すぎるとかじゃなくて?
updateAfterEvent();
とか試した?
乳離れワロスwww
349 :
346 :2007/06/12(火) 23:19:55 ID:6hvYvFTd
>>347 レスさんきゅうです。ヘルプを参考に、stage1のイベントハンドラとして
this.onMouseDown = function() {
updateAfterEvent();
};
this.onMouseUp = function() {
updateAfterEvent();
};
を書きました。指マークはすぐに出るようになりましたが、『ポインタ離れ』は
まだ解決してません。
念のため、フレーム速度を 12fps → 20fps にしましたが駄目でした。
引き続き、アドバイスを願います。
>>349 どういうAS書いてるの?
mc0.onRelease=function(){
this.stopDrag();
}
だと思うけど。
>>370 どうも。
updateAfterEvent()はstage1に書くのではない、ということでしょうか?
それを踏まえて、リンケージされた各MCのイベントハンドラとして、最初
this.onPress = function() {
this.startDrag();
};
this.onRollOut = function() {
this.stopDrag();
};
を書いていましたが、これに加えて
this.onMouseDown = function() {
updateAfterEvent();
};
this.onMouseUp = function() {
updateAfterEvent();
};
を書いてみましたが駄目でした。
アンカー間違えた。 誤)370 → 正)350 だった
>>351 あぁ、onRollOutってのはonPressした後でマウスがmcの外に行った時に発生する。
onPressでドラッグしてるんだからmcの外に行くわけない。
×onRollOut
○onRelease - onPress後にマウスを放したとき。
>>350 で言いたかったのは、
attachMovieした後にforで回してイベント設定してると思い込んでて(俺が勝手に)
それが変なんじゃないかなーって思ったから書いてみた。
結果的に関係なかったけど。
as2でフラッシュのゲームを作ってるんですけど、 途中状態をそのフラッシュに保存したりdatに書き出したりできるんですか?
>>353 レスありがとうございます。
よくよく考えたら、凡ミスでした。
>>350 念のためonReleaseOutsideも
>>351 updateAfterEventつけるなら、onMouseMoveにつけるんじゃねーのか
359 :
Now_loading...774KB :2007/06/14(木) 12:03:35 ID:EQ4kUKsH
少しは努力してください
361 :
Now_loading...774KB :2007/06/14(木) 18:46:31 ID:O+X9VzGu
ムービークリップA.onEnterFrame = function() { Aのenterframe処理 } ムービークリップB.onEnterFrame = function() { Aのenterframe処理 } こういったムービークリップのenterframe処理で別のムービークリップへの処理をしても問題はないのでしょうか? Aの前から指定していたenterframe処理に別の処理を追加したくて Aのenterframeに追記したら想定通りに動いてくれなかったので
>361 出来ません。仕事を増やしたいのなら、Bは関係ない ・AではなくCにやらせる D.onPress = function() { C.onEnterFrame = moveC; }; function moveC() {trace("ぬるぽ");} ・フラグを用意してtrueなら実行 flgA=false; A.onEnterFrame=function(){ if(flgA){trace("ぬるぽ");}} D.onPress=function(){_root.flgA=true;}
外部テキストに text=1,1,1,1 と書いたものを 配列として読み込むことは出来るでしょうか? myLoad.load("test.txt"); trace(myLoad.text); これだとただの文字列ですよね("1,1,1,1") それとも、for,splitを使って、入れなおさないと駄目?
ダメ。普通そう。
>>362 ありがとうございました、なんとかできそうです!
文字列の"010"を10進数の数字にするには どうすればいいのでしょうか? Number(),parseIntじゃ、8進数になってしまいます よろしくお願いします
>>366 Number(Number("010").toString(10));
parseInt("010", 10);
>>366 数値は数値なので何進数という区別はない
>>368 >>366 は、"010"を10進数で10と変換して欲しいのに、8進数と認識されて8に変換されて困る。
って言っているのさ。
370 :
366 :2007/06/15(金) 11:29:59 ID:hJjEgm9G
>367 parseIntで、なんとかいけそうです。ありがとう。
371 :
Now_loading...774KB :2007/06/15(金) 23:14:35 ID:sQ21hLov
質問です。 ActionScript2.0でJavaでいうThred.sleepみたいなのが見当たらないんですが ないんでしょうか?
うん
CUIじゃないから
XP、flash 8 を使用しています。 一つのムービークリップ内に数十個のボタンを置いて、 それぞれクリックすると値を代入するスクリプトを書いてます。 test_0001.onRelease = function() { testVar = 0001; }; test_0002.onRelease = function() { testVar = 0002; }; 〜 test_0050.onRelease = function() { testVar = 0050; }; 現状はこんな感じでボタンの数だけonReleaseさせているのですが、 これをもう少しコンパクトにまとめる方法はないでしょうか。
>>375 よろしければ、ヒントで良いので教えていただけないでしょうか('A`)
>>376 forループと配列アクセス演算子
それから、どうしてもという理由がないなら
連番にするときは、1,2,3,....10,11,12...
と頭に0をつけない方が、扱いは楽ですぜ
378 :
Now_loading...774KB :2007/06/16(土) 13:26:09 ID:e3KquHmZ
頭に0を入れないなら、 for( num = 1; num <= 50; num++){ paernt_mc["test_"+num].onRelease = function() { testVar = num;}; } でいいと思い込んでる俺ガイル。
>>378 それじゃダメだ クロージャ使う
for(num = 1; num <= 50; num++){
this["test_"+num].onRelease = (function(x) {return function() {testVar = x;}})(num);
}
>>377-379 有難うございます。頭に0をつけないでやってみました。
二つの方法を試してみたのですが、どうも上手くいかないです。
テスト用に代入ではなく文字列を表示させているのですが、
for (num= 1; num <= 50; num++) {
this["test_"+num].onRelease = (function(x) {return function() { _root.debug_text.text = x;}})(num);
}
→文字列に変化がない
for( num = 1; num <= 50; num++) {
this["test_"+num].onRelease = function() { _root.debug_text.text = num; }
}
→どのボタンを押しても50と表示されます。
すみません、引き続き試行錯誤してみます。
うーんダメだったか。ActionScriptじゃ使えないのかな。多分こっちなら大丈夫だ。 for( num = 1; num <= 50; num++) { this["test_"+num].num = num; this["test_"+num].onRelease = function() { _root.debug_text.text = this.num; }; }
それだと 全部の関数から num が共有されちゃうんじゃないかな? パッと思いつきで書くと、こんな感じか? これで一応は動くと思うが。。。 function makeFunction(my_no:Number):Function { var my_func:Function = function() { // ここに処理を書く trace(my_no); } return my_func; } for( num = 1; num <= 50; num++) { this["bt_"+num].onRelease = makeFunction(num); }
384 :
Now_loading...774KB :2007/06/16(土) 22:27:04 ID:1a/kgX2K
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) 入れ子のMCに対するフォーカスについて質問です。 _root上に置いたstage1というMC内にattachMovie()で球型MCmc0,mc1を出現 させました。これをマウスクリックによりフォーカス枠が出るように、それぞれの イベントハンドラとして下を書きました(_root.atmFocusFは、true/falseの値を持つ) this.onRelease = function() { this.onEnterFrame = function() { if (_root.atmFocusF == true) { Selection.setFocus(this); } }; }; これによりフォーカス枠は表示/非表示が出来るのですが、表示された場合は 点滅の状態で、マウスポインタの位置(動き)によっては消える時間が多くなります。 常時フォーカス枠を出すにはどうすれば良いでしょうか?
>>384 フォーカスというか、MCのframe2にでも選択された時の画像を作って
gotoAndStopすればいいのでは?
388 :
384 :2007/06/18(月) 02:02:40 ID:yhxhfGwO
>>385 有り難うございます。
MCの2フレ目に『なんちゃってフォーカス枠』を追加描画し、gotoAndStop
で移動することにより解決しました。
389 :
Now_loading...774KB :2007/06/18(月) 08:23:49 ID:B1tQBw9e
外部から読み込んだテキストをテキストフィールドにいれて表示させていてるのですが、 フレームを1→2→3 3→2と戻すと表示がクリアされてしまいます。 よい対策はありませんでしょうか?
>>389 どういう風な処理で読み込んでるのか分からないと助言のしようがない。
391 :
Now_loading...774KB :2007/06/18(月) 16:21:01 ID:0v4GHoQg
シンボルをActionScriptで左右反転させるにはどうすればいいのでしょうか?
>>391 MovieClip._xscale = -100;
functionにon命令入れる事って出来ないんでしょうか 最初にon命令がズラッと並ぶのかっこ悪くって
>>393 普通こうやる
this.onEnterFrame = function() {
〜〜
};
this.onMouseDown = function() {
〜〜
};
this.onMouseUp = function() {
〜〜
};
395 :
393 :2007/06/18(月) 23:54:14 ID:91Fy32gF
言ってる意味が分からないんだぜ
>>395 パラフラのスレでどぞ。
ちなみにonでなく、フレームアクションを使う。
initMcEvent();
function initMcEvent(){
>>394 のサンプルコード
}
のようにするとか、#includeで外部asから読み込むとか
398 :
Now_loading...774KB :2007/06/19(火) 15:04:48 ID:eNeZx3pC
1から20までの整数から一つランダムに取得したい場合は var answer = getRandomNum(1, 20); function getRandomNum(min:Number, max:Number):Number { var num:Number = Math.floor(Math.random()*(max-min+1))+min; return num; } のようにすると思いますが、 ではその中で、11から15が出る確率を それ以外の数字が出る確率の半分にしたい場合は どうしたらよいでしょうか?
>>398 単純に11から15が出たらもう1回抽選するとかw
>>398 1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,12,13,14,15,16,16,17,17,18,18,19,19,20,20
からのテーブル参照とか。
answer = new Array(); answer[0] = getRandomNum(1, 5); answer[1] = getRandomNum(1, 5); answer[2] = getRandomNum(6, 10); answer[3] = getRandomNum(6, 10); answer[4] = getRandomNum(11, 15); answer[5] = getRandomNum(16, 20); answer[6] = getRandomNum(16, 20); answer[7] = answer[getRandomNum(0, 6)]; answer[7] に結果が入る。かなり非効率…
var answer:Number = getRandomNum(1, 35); if(answer > 31) answer -= 15; else(answer > 20) answer -= 20; trace(answer);
> else(answer > 20) answer -= 20; 間違えた else if(answer > 20) answer -= 20; だね
alert.showで表示したアラートダイアログをActionScriptで閉じるにはどうしたらいいんでしょう。
406 :
Now_loading...774KB :2007/06/19(火) 22:26:33 ID:Vrv2Ke9n
読み込んだテキストを.splitで分けているのですが、例えば、 おはようございます,こんにちは というテキストの中から『は』だけを無視して表示しない、というような場合、処理の方法はあるでしょうか。 表示結果を、 おようございます こんにち みたいな感じにしたいのです。
今フラッシュでアクションゲームを作ってるのですが 横スクロールアクションにしたいのですが足場に関する処理とジャンプの処理が全くわかりません(;´д⊂) それと向いてる方向で攻撃する方向を変えたいのですが、変数を入れてif文をつかっても再生されなかったりして困ってます 誰かお助けをorz
411 :
Now_loading...774KB :2007/06/21(木) 22:48:07 ID:ZehioQAm
外部FLVに対してローダーを付けたいんですが、 ロード完了後再生っていうだけで、ロード%の表示などはいらないんですが、 何かうまい方法ないしょうか。
>>411 全体のファイルサイズと読み込み済みバイト数が等しくなったら再生開始
413 :
Now_loading...774KB :2007/06/21(木) 23:56:24 ID:ZehioQAm
411です。 FLVPlaybackで外部FLV読んでます。 その場合も>412さんの方法でOKなんですか?
414 :
Now_loading...774KB :2007/06/22(金) 00:17:16 ID:s88+Be0X
携帯の待ちうけを作っていて、 7,8月の夜7〜9時までの間花火をあげようと思っているんですが、 なかなかうまくASが利きません。 花火のムービークリップは正常に動いていて、インスタンス名をhana と名づけています。 以下のASでどんな月でも花火が上がらなくなってしまいます。 どうしたらよいのでしょうか? mn = fscommand2("GetDateMonth"); if (mn == 6 && mn == 7) { if (hr >= 19 && hr <=20){ //hrにはすでに時間取得済み hana._visible = true; } else { hana._visible = false; } } else { hana._visible = false; }
if (mn == 6 && mn == 7) { … 6月かつ7月 if (mn == 6 || mn == 7) { … 6月または7月
416 :
Now_loading...774KB :2007/06/22(金) 00:42:04 ID:s88+Be0X
>>415 ありがとうございます。
かつ と または ではかなりの差ですね。
しかも 6月と7月いっしょになる日なんてどこにもないですもんね。
だから表示されなかったのか。
ホントにありがとうございました。
おかげで眠れます。
ふむ、理解力の良い。期待できる。
>>413 そう。
でも読み込み済みバイト数が全体のファイルサイズ"以上"になったら。
の方がいいかも。
>>416 しかし最初の
> 7,8月の
は満たしてないのを気付いていることを祈る。
420 :
Now_loading...774KB :2007/06/22(金) 12:45:04 ID:JHS2Vur1
このビデオの再生時間は何分何秒というように、 flashに読み込んで再生する外部FLVの長さを 再生する前に取得して表示するにはどうしたら良いですか?
ttp://www.mabinogi.jp/ このサイトのFlashで出来た、タブ・・・これどうやって作ってるの?
マウスオーバーすると、本来HTMLのフィールドに項目内容書いたFlashが生成されてるんだけど、
マウスオーバーで、タブ内容だけが記述されたSWFを、javascriptがその位置にレイヤーとして呼び出す感じでしょうか?
FLVの質問するときはプレイヤーはFLVPlayback使用するのか、 MediaPlayback使用するのかどちらか書いてくれ。 あと、FLVのエンコードはなにかも書いてくれ。
Flash / JavaScript Integration Kit について質問です Win2k FlashPro8 asからjsの関数を呼んだ際、戻り値はどこに行くのでしょうか? jsのソース -------------------------------------------- function test(){ alert(); return( 'foo' ); } -------------------------------------------- asのソース -------------------------------------------- import com.macromedia.javascript.JavaScriptProxy; var proxy:JavaScriptProxy = new JavaScriptProxy(_root.lcId, this); var hoge = proxy.call( "test", "arg1", new Object() ); -------------------------------------------- アラートは出るのですが、戻り値の取り出し方が解りません。 よろしくお願いします。
424 :
409 :2007/06/22(金) 22:27:28 ID:oA50DmTE
MCに外部SWF(A.swf)を読み込んで表示させる際についてなのですが、 A.swfが読み込んでいる外部テキストの読み込みが出来なくなってしまいます。 A.swf単体の時は問題なく外部テキストを読み込みできるのですが、何か特別な処理方法があるのでしょうか。 外部テキストの読み込み以外は正常に動作しています。
>>425 入れ子のMCの状態ってこと?
パスは確認した?
>>426-427 レスありがとうございます。
パスも問題なく、_lockrootも入れてましたが、問題は別にあったようで表示に関しては先ほど解決しました。
split("\r\n")を
split("\n")に変更したら解決しました。
どうやら\r\nは8以降では使えないみたいなのですが、皆さんは\r\nの代用ってどう記述されてますか?
バックスラッシュが勝手に\に変わるのはやめてほしいんですが。。
改行コードとバックスラッシュ=\なのは関係ないと思うが、 基本的に\nの改行だけ使うように設計してる
パブリッシュプレビュー(CTRL+ENTER)でストリーミングのテストをしたいのですが loadMovieで呼出される外部SWFがストリーミングされない様ですぐ表示されてしまいます。 外部呼出しごとストリーミングテストする方法はありませんか? (呼出す外部SWF自体での動作は出来ない書き方になっているので単独でのプレビューは不可)
質問させていただきます。 スペック:WInMX FlashMX使用 揺れる花に様々な蝶が止まるというFLASHを作ろうとしています。 作成したムービークリップ ・揺れる花 ・モンシロチョウ(羽を動かして移動し(花の位置まで来て静止して)飛び立つ) ・アゲハチョウ(同上)他、数種類の蝶を作りました。 メインフレームに花を置きました。そこへランダムに蝶のムービークリップを配置したいのです。 1)蝶は画面に1匹だけしか出さない 2)ランダムとはいえ、連続して蝶を出さない(花だけが揺れる状態も欲しい。出来ることなら8秒位の花だけの映像にしたい。) 3)同じ蝶が連続して出ても構わない 4)蝶のムービークリップは、きちんとフレームの頭から最後まで再生させたい。(フレームインからフレームアウトまで) この際には、どこに、どういったアクションスクリプトが必要なのでしょうか? (多数のサイトでも様々なサンプル作品を見させていただきましたが、見当たりませんでした・・・)
432 :
Now_loading...774KB :2007/06/24(日) 12:01:41 ID:ZWnhtY3q
>>430 ストリーミングってすぐ再生されるんじゃなかったっけ。swf単体で動かないなら
デバッグ用に動くように作ればいいじゃん。
>>431 setIntervalで定期的に実行中フラグをチェック。
実行中でなければ、何分の1かの確率でランダムに蝶の種類を選択して実行。
>>432 呼出し先での絶対パスとかあってパスとか全部書き換えるのめんどくさいから
鯖にうpして様子みる事にするよ
ダウンロードのシュミレート機能使えばいいだけじゃねーの?
435 :
Now_loading...774KB :2007/06/24(日) 14:30:52 ID:jszozWYz
http://planetmeteos.com/ このURLの先にあるキャラクターが自由に動き回ったり
突然何かにぶつかって昇天してしまったり
ポインタに躓いたりポインタを持っていったり
ほかのキャラクタにぶつかったり
しているFlashなんですけど
これはどういうスクリプトで動いているのでしょうか?
まったく見当も付かないので何もわかりません。
Windows XP FlashMX2004を使っています。
よろしければわかる範囲でお教えいただけませんか?
>>435 超基本的からそのままこっちに移動されてもな…。
ASにある主にMCクラスについて一通り把握すればできるだろ。
まったく見当もつかないほどわからない人に、それぞれの要素について
具体的なスクリプトの解説をしたら長くなるし面倒だと思わないか?
問題を絞るとか、実際にどこまでわかってるのかとか言わないと、
そういう漠然とした質問には漠然としたレスしかつかないことが多い。
421の概略を私も知りたいです。
hogeっていう空MCに画像を読み込ませてMCのサイズを取得したいのですが this.createEmptyMovieClip("hoge",0) mcLoader = new MovieClipLoader() mcLoader.addListener(hoge) mcLoader.loadClip("gazo.jpg",hoge) mcLoader.onLoadComplete = function(){ trace(hoge._height) } こうやると出力で0が出てしまってサイズが取得できません なんかいい方法ありませんか><
>>438 そういうときは『onLoadComplete』じゃなくて『onLoadInit』を使うんだ
>>437 つ436
>>439 すみません。
>>421 のflashナビ
サブメニューを出す動きと、サブメニューの背景のリサイズは
分かるんだけれども
htmlのフィールドに、カブってだす方法が分かりません。
>>440 背景透過にして、上のレイヤーに乗せてるんじゃないかな
つまり、IEでしか動かないと思われ
>>441 wmode=transparentの存在を知りませんでした;
position:absoluteで位置を指定してswfを配置して
なんとかなりそうですね。
ま・・・間違ってますでしょうか?
>>439 できました!!
ありがとございます!!
>>442 うん。多分そんな感じだとおも
試しにやってみて、上手くいったら教えて
どこにFLASH使われてるんだと思ったらブラウザFFで見てた IE限定仕様か
446 :
Now_loading...774KB :2007/06/25(月) 10:18:45 ID:7ZrT6uyI
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) マスクついて質問です。 _root上に置いたstage1というMC内にattachMovie()でmc0〜mc4という5個の 球型MCを出現させて、stage1の領域以外に球型MCが現れないように(見え ないように)stage1に下のASを書きました。 onClipEvent (load) { this.setMask(_root.maskM); //maskMがマスクMC } これでstage1に対するマスク自体は出来たのですが、実際に球型MCが出現する 際には、元となる座標データ次第でこれらにマスクがかかりません(stage1外の領 域に現れます)。 どうしたら良いでしょうか? なお球型MCの深度は座標データに依存し、大体 -100〜+100 の範囲です。
助詞が抜けていた × マスクついて質問です。 ○ マスクについて質問です。
maskMの深度
451 :
Now_loading...774KB :2007/06/25(月) 15:18:34 ID:J3kMs83R
質問です。
Flex2でサーバーからのレスポンスヘッダの中身を参照するテストをしています。
http://www.abdulqabiz.com/blog/archives/flash_and_actionscript/http_authentica.php ↑のような感じでやったみたのですが
socket.connect()の段階でSecurityErrorがでてしまいます。この人はなぜか成功したようですが。
1024未満のポートに接続してソケットをやり取りする正しい方法をご存知の方いらっしゃいますでしょうか?
いろいろ探し回った結果、
1024未満だとXMLSocketを無理やり使わないといけないとか、自分でXMLサーバーを立てなきゃいけないとか
Flex3なら解決されてるとかいろいろ情報が混ざってて正直良くわかりません。(っていうかそもそもXMLサーバーって?)
自分で何をしたかと言いますと…
レンタルサーバーにcrossdomain.xmlと、参照したい適当なファイルをおく
ローカルもしくは同サーバーから
// XXX = レンタルサーバーのドメイン
Security.loadPolicyFile("
http://XXX ");
socket.connect("XXX",80) のswfを実行
です。ちなみにURLLoaderを使用した場合と、アパッチにswfとファイルを置いてのSocketは成功しました。
あとスニッファしてみたところ "GET crossdomain.xml"→"Http OK ...crossdomain.xmlのボディ"
と一応crossdomain.xmlのやり取りはされているようです。
どうもリアルネットワークを使ったSocketの取り扱いは特殊なようで…。
長文で失礼。
こんばんは、質問させていただきます。 現座AS3.0を勉強し始めましてクラスを配列に格納する所を学習しています。 教本によると Array[0] = new Class1(); Array[1] = new Class2(); というようにクラスのインスタンスを配列に格納しているのですが これを関数の一つにして function Add(ii, クラスを引数?){ Array[ii] = 引数のクラス } という処理にしたいのですが検索語彙が上手く思いつかず 自分の調査では分かりませんでした。 このようにクラスを関数の引数にしたい場合どのように記述すればいいのでしょうか ご教授お願いします。
>>451 xmlテキスト参照するだけなのにsoket通信しないといかんの?
>>452 引数にそのクラスのオブジェクトでいんじゃねーの
>>453 マルチではなかったんですが、参考URLありがとうございます。
そして連続ですいません。
URL先での内容を踏まえてHello1というクラスを作り
コンストラクタとhelloというメソッドのみ記述しました。
そして以下のような内容を同一プロジェクト内のTEST01というクラスのコンストラクタに記述しました。
// リフレクション
var ClassReference:Class = flash.utils.getDefinitionByName("Hello1");
var instance:Object = new ClassReference();
instance.hello();
これを実行しようとすると以下のようなエラーが出まして
1118: 静的型 Object の値が、関連しない可能性が高い型 Class に暗黙で型変換されています。
エラー内容で検索すると「1行目で参照している内容の型が違う」という事まで分かったのですが
右辺がクラスへの参照(Object型)を取得してそれを左辺のクラスの型に入れている。
つまり「getDefinitionByName」で「Object型」が返されるからおかしいのかな、と左辺をObject型にすると
ページ表示後「HelloWorld は定義されていません。」と出ます。
どこに不具合があるのか、ご教授していただきたいです。
>>454 型Objectで引数に指定すれば良かったんですねorz
クラスへの理解が浅いと痛感しました、精進して同じミスをしないよう気をつけます。
ありがとうございました。
>>455 に関してはスルーしてください。
>>456 はAddメソッド外でインスタンス化されたものを、
配列に入れるためだけにAddメソッドに渡したかったの?
>>452 を見て「もしかしてこの人Addメソッド内でインスタンス化したいんだろうか」と思ったのは俺だけ?w
無理だな〜とは思うんだけど、雛形を送って関数内でその雛形のインスタンス生成とか出来るのかな
ちょっと疑問に思ったんで質問します。
>>452 みたいに違うクラスを配列する利点って何?
459 :
446 :2007/06/25(月) 22:49:39 ID:+ZlNFQx3
>>448 maskMの深度
Thx。解決しました。
>>456 です
>>457 別のクラスにprivate配列で管理させたかったので
そうすると一度関数経由しないといけなかなと思って上記のような試行をしました。
「こうすればいいじゃない」って案もあると思いますが思いついたのがそれくらいだったんで。
>>458 ステータスや関数内の処理に微差があるクラスをまとめてどこかで管理したい場合に使うと
便利なのかもしれないと個人的には思ってます。
461 :
Now_loading...774KB :2007/06/26(火) 01:35:55 ID:iQDHm4fm
>>451 です
>>454 xmlテキスト参照といいますか、最終目的がレスポンスヘッダの
参照なものでFlex2だと、どうしてもSocketを使わなければいけないようでして…
462 :
458 :2007/06/26(火) 02:15:36 ID:MW9oGL14
>>460 同じクラスをいれるならまだわかるんだけど、違うクラスいれたら
インデックス0がClass1で、
インデックス1がClass2で、
って使うときにわかりにくくならない?
クラスのprivateで配列使ってプロパティとしてちゃんとした名前つけるならまだわかるけど。
こんな感じのがいいんじゃない。動かしてないから動くか知らんけど コード省略しまくってるから注意 class ObjAry{ public var ary = new Object(); public function Add( name:String , obj:Object ){ ary[name] = obj; } } 入れるとき「ObjAryインスタンス.Add( "人" , 入れたいobject )」 取り出すとき「ObjAryインスタンス.ary["人"].取り出したいオブジェクトのプロパティなど」 ASのArrayやObjectってArrayListの機能も兼ねてるんだな。ちょっとスゴイとオモタ
>>462 イメージとしてはシューティングゲームの弾です。
普通に進む弾、加速する弾、円を描き進む弾等。
どれもMoveって関数を持っているとしてforでを回して全部のMoveを実行。
それぞれを別の配列に入れていたら弾の種類だけforで回さないといけないかなと。
添え字0が○○添え字1が▲▲という認識は不要なロジックになってます。
まずいもう時間が・・・
>>463 の内容は帰宅後に見させてもらいます
465 :
Now_loading...774KB :2007/06/26(火) 15:00:18 ID:aEL5wDL1
Adobe Flex2 リファレンスガイドを見ていて疑問に思ったのですが flash.xmlパッケージとmx.binding.utilsパッケージみたいに 頭にflashが付くパッケージとmxが付くパッケージは何か違いがあるのですか?
466 :
Now_loading...774KB :2007/06/26(火) 15:13:05 ID:3mQ4Omb7
>>465 え?ちゃんと調べれば自分で解決できるでしょ?
まずは調べて覚えようという気構えからがんばろう^^
明確な答えだけが答えじゃないだろ
_root.createTextField ("インスタンス名", 深度, x, y, 幅, 高さ); インスタンス名.variable = "変数"; インスタンス名.html = true; インスタンス名d.multiline = true; インスタンス名.wordWrap = true; 変数 = "<img src='参照画像' width='画像幅' height='画像高さ' align='配置指定 left or right' hspace='左右マージン' vspace='上下マージン'>";
>>463 >ArrayListの機能も兼ねてる
[ ] って配列アクセス演算子だから
ary["人"] は ary.人 と同じになると思う。
>>464 なるほどそういう使い方か。勉強になりました。thx
PC上にあるSWFからWEB上にあるFLVを再生する事ってできます?
>>472 試してないけど、Http://www〜*.flv って指定すれば出来ると思うよ。
>>469 です。
>>470 ありがとうございます。variableプロパティ、勉強になりました。
実はimg要素をコントロールしたいと思ったのは、それで呼び出すswfへFlashVarsみたいに引数を渡したかったからです。
最初、<img src="hoge.swf?arg=AAA">とやってみたのですが、_root.argはundefinedでした。
それでid属性を使いたい、となった次第ですが、勘違いさせてしまったようですみませんでした。
今は_lockrootプロパティも関係するのかなと思い、いろいろ試している最中です。
>>472 >>473 呼び出し元と同じドメインにあれば大丈夫なはずです。
別ドメインの場合は、ポリシーファイルを置くとかCGI等を噛ませたりすることになるでしょうか。
ttp://livedocs.adobe.com/flash/8_jp/main/00001602.html
476 :
別スレ487 :2007/06/27(水) 20:14:12 ID:PJ3dHIKY
Flash製作初心者の質問スレッド レイヤー36
http://pc11.2ch.net/test/read.cgi/swf/1173006099/l50 からこちらに誘導されました。よろしくお願いします。
自分ひとりではどうしても躓いてしまったので、ご助言いただければ幸いです。
【やりたい事】キーボードでキャラクターのMCを操作させたいです
【 質問内容 】
「kyara」という名前のMCを
1フレーム目:前を向いて待機するアニメのMC
2フレーム目:左を向いて移動するアニメのMC
3フレーム目:右を向いて移動するアニメのMC
4フレーム目:左に攻撃するアニメのMC
5フレーム目:右に攻撃するアニメのMC
という構造にして
ステージに配置した「kyara」MCに Key.isDown と Key.getCode を使って
スクリプトを記述し、キャラクターをキーボードで操作できるように製作中です。
移動操作については、キーを押しっぱなしの間アニメが再生されて移動するという処理で
Key.isDown を使って問題なく動作しました。
攻撃動作は、一度キーを押す事で、攻撃するアニメを一度再生して戻るという処理を
させたいと思い、 Key.getCode を使ったのですが、 Key.isDown と同じ動きを
してしまいます = 押しっぱなしにしていないと、アニメを再生してくれません。
キーを一度押せば攻撃するアニメを最後まで再生してくれるようにしたいのです。
現在MC「kyara」に記述しているスクリプトは以下です。
//Zキーを押した時、MC「kyara」の5フレーム目を再生する。
onClipEvent(keyDown) {
if(Key.getCode() == 90) {
this.gotoAndStop("5");
}
}
【 使用環境 】WinXP / FLASH MX
>>476 Zキーを一回押したらthis.gotoAndStop("5");で5フレームに行く。
5フレーム目に攻撃MCがあるんだから押しっぱなしにしてなくても再生されると思うけど。
onClipEvent (keyUp) { } に何か書いてんじゃない?
5フレーム目とは数字の5であってラベル名の"5"ではないぞ
479 :
Now_loading...774KB :2007/06/27(水) 23:51:20 ID:gYRKnJM7
getLocalの仕組みと動作は正常に行われたのですがgetRemoteが上手くいきません。 部分部分はしょりますが下記のような感じにすると… 【getRemote初期設定】 var myNC:NetConnection = new NetConnection(); myNC.connect("rtmp://[yourDomain].com/applicationName"); var myRemoteSO:SharedObject = SharedObject.getRemote("mo", myNC.uri, true); myRemoteSO.connect(myNC); 【書き込み】 myRemoteSO.data.text = textField.text; 【読み込み】 textField.text = myRemoteSo.data.text; リロードすると読み込みのデータが消えてしまうのですが、getRemoteで保存したものは 実際どこに保存されるのでしょうか?getLocalはパスで示されているのですが分かりません。
480 :
別スレ487 :2007/06/28(木) 00:47:57 ID:TR+wJ7ef
477さん> そうか・・・ごめんなさい・・・orz 左右キーを押して移動した後、前向き待機に戻す為に keyUp を設定していたのでした そうですよね・・気付かなかった自分があほすぎ;; 移動MCの最後に待機MCを設定するという手もあったのでしょうが、結局変数を設定して keyUp + 変数の数値条件 で前向き待機に戻す、という設定で問題なく動作しました。 MCの再生に問題があるのだとばかり思っていて、申し訳ありませんでした。 ありがとうございます! 続き頑張ります
【 使用環境 】WinXP / FLASH 8 現在表示されているFlashの画面をFlashボタンを押すと、その場面が画像として書き出す という事は可能ですか? ご教授お願いいたします。
>>482 cgiということはPerlやPHPを使用してということですよね??
もし詳しい方法をご存知でしたら、教えていただきたいです。
BitmapDataを使ってビットマップ化しエンコーダーかましてCGIへデータ送信
485 :
Now_loading...774KB :2007/06/29(金) 00:19:09 ID:nGSkdx6q
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) Webへのリンクについて質問です。 スタンドアローンのSWFを実行している状態で(つまり、ブラウザ内にSWF 表示をしていない状態)、あるボタンを押してブラウザを起動させ、指定した URLのHPを開かせるにはどうしら良いでしょうか? 例えば、ボタン → 押す → YahooのHPを開く という感じです。
on (press){ getURL("URL", "_blank"); }
488 :
485 :2007/06/29(金) 00:42:41 ID:nGSkdx6q
すみません何て言ったらいいか分からないのですが test_0_0みたいな変数があって0の部分を動的に変化させて式に使う事って出来ますか? 例えばこんな感じです test_0_0 = 0; test_1_5 = "abc"; x = 1; y = 5; aaa = "test_" +x+ "_" +y; trace(aaa) //abcを得たいのにエラーか"test_1_5"の文字列になってしまう
>>489 aaa = this["test_"+x+"_"+y];
>>490 おお、即レス感謝します
さっそくやってみます!
aaa = test[ x ][ y ]; じゃだめ?
ローディング後のフレームにでもloadMovieで外部swf指定
>>495 ありがごうございます
loading後に読み込むフレームに loadMovie("***.swf",this.stage):
とかいて、loading用swfと***.swfを同じディレクトリに置いてみたん
ですけど、上手くいきません。なにか記述が足らないですか?
onClipEvent(load) { loadMovie( "***.swf", this ); } みたいな感じ
498 :
Now_loading...774KB :2007/06/29(金) 19:05:04 ID:Ax9IOFBW
いまflvを再生しており 最後まで再生がいき終了すると、 flvをアンロードしたのですが、可能なのでしょうか? pauseやclear等で指定してもアンロードされません。 ストップするだけです。そもそもそのような関数は 存在するのでしょうか? 宜しくお願いします。 ○ソース stream_ns.onStatus = function(infoObject) { if (infoObject.code == "NetStream.Play.Start") { trace("再生開始"); } else if (infoObject.code == "NetStream.Play.Stop") { stream_ns.pause(); stream_ns.seek(0); } };
deleteでオブジェクト消すのじゃだめなの
500 :
Now_loading...774KB :2007/06/29(金) 22:45:17 ID:Ax9IOFBW
deleteですか? stream_ns.delete(); こんなかんじですか? よろしくおねがいします。
delete stream_ns; オブジェクトごと消えるけどね
マウスカーソルの代わりにMCを使うのですが MCが遅れてついてきます ピッタリ同じ位置にすることは出来るでしょうか? this.attachMovie("cursor","myCursor",999); var myMouse:Object = new Object(); myMouse.onMouseMove = function() { myCursor._x = _xmouse; myCursor._y = _ymouse; }; updateAfterEvent(); Mouse.addListener(myMouse); 新規ファイルでMCは一枚絵です よろしくお願いします
>>502 updateAfterEvent();
をonMouseMove = function...の中に移動
>503 実際には中です、書き込むときに間違いです しつれいしました
>>502 FPSが遅いとどうしても遅れてついてくるような感じになる。
Mouse.hide()でマウスを消して「遅れてる違和感を消す」か
FPSを30〜60くらいにして「遅れてると感じさせない速度で描画する」
これくらいしか対策は思いつかない。
506 :
502 :2007/06/30(土) 12:40:45 ID:/PJ+tED3
FPS60ですが気になっちゃいます Flashの性能なんですね、他の表現で工夫してみます ありがとうございました
>>506 そもそも高負荷Flashってことはない?
マシン側の描画処理が間に合わなければ、いくらfpsを高くしてもそのfpsは出ないよ
508 :
Now_loading...774KB :2007/06/30(土) 14:25:39 ID:l516kTzK
ActionScriptでフレームレートを変更する事や フレームレートの値を取得することは出来るのでしょうか?
>>508 できない。
処理速度の調整は
onEnterFrame = function(){
if(Count % Interval == 0){
MainScript();
}
Count++;
}
みたいにして処理を実行する間隔を調整する。
510 :
Now_loading...774KB :2007/06/30(土) 18:28:17 ID:vYG+ZwwO
16進数じゃないかな。くわしくはぐぐって。 a=10 b=11 … f=15
512 :
Now_loading...774KB :2007/06/30(土) 18:45:30 ID:ds36XqE6
>>508 setIntervalで擬似的に出来ない事もないけどおすすめしない
515 :
Now_loading...774KB :2007/06/30(土) 22:01:39 ID:vYG+ZwwO
>511さん 回答有難うございます。 >513さん すいません。マルチです。申し訳ありません。
516 :
Now_loading...774KB :2007/07/01(日) 01:47:18 ID:AWgW8Q6A
他スレからきました。 初心者なんですが、よろしくお願いいたします。 【やりたい事】 コンポーネントのチェックボックスを使った適正診断の作成。 質問内容にA/B/C/Dが3つずつあって、Aの選択が一番多ければAの結果ページに飛ぶ。 【 質問内容 】 とりあえず、色々考えてみて、 決定ボタンに以下のスクリプトを書いてみました。 on (release) { chkCount = 0; for (i=1; i<=2; i++) { cname = "a"+i; if (this[cname].selected == true) { chkCount++; } } chkCount = 0; for (i=1; i<=2; i++) { cname = "b"+i; if (this[cname].selected == true) { chkCount++; } } //--というようにCとD用に同じものが2つ続く trace(chkCount); if (cntA>cntB && cntA > cntC ){ gotoAndStop(2); } if (cntB>cntC && cntB > cntA ){ gotoAndStop(3); } if (cntC>cntA && cntC > cntB ){ gotoAndStop(4); } } 【 使用環境 】 FLASH 8 OS:Windows XP 使用です。 ややこしい質問で申し訳ありませんが、ヒントだけでもよいのでお答えいただけると助かります。 お願いします。
>>516 ボタンを押すたびにchkCountを0にしている。
3つずつあるのに2回しかループしてない。
cntAとかを加算しているところが無い。
何が出来なくて質問したのかわからない。
>>518 _xscaleを-100から100で変化させる
>>519 それだけだとサンプルのような台形型には変形しないんですよ
擬似的に奥行きを出したいのでサンプルのようにMCを変形させたいのです。。
>>520 となると、簡単な描画メソッドをつかってやるとかかな
>>518 レベル的には簡単だから一回組んでみたら?
組んでからテンプレ見て質問しなおしってところかな
簡単、か MCの台形変形はできないと思ったけど DisplacementMap使うか二つに分けてうまくやらなきゃ
トゥーインで作るなら簡単なんじゃない スクリプト化してクラスにしようとかなら正直俺としてはしんどい
526 :
518 :2007/07/02(月) 07:02:51 ID:wLxK/e3A
皆さんご意見ありがとうございました。 描画メソッドは対象MCの仕様上回避したかったのですが、結局妙案浮かばずMCをビットマップ化してテクスチャとして台形化変形させました ですがラスタ化する分どうしても荒くなりますね。。
300個くらいあるmcシンボルにstop();書いていかなきゃいけないんですが まとめて一括で書く方法はないでしょうか・・・
>>527 for (i=0; i<300; i++) {
MC[i].stop();
}
529 :
516 :2007/07/03(火) 00:49:27 ID:/mtqLINR
>>517 迅速なアドバイスありがとうございました。
自分でも何ができてないのか、どこがおかしいところなのかがいまいちわかりません。
書き換えてみたのですが下記でもうまくいきません。 おかしいところがあればご指摘ねがいます。
on (release) {
//--Aチェックを数える
for (i=1; i<=4; i++) { cname = "A"+i;
if (this[cname].selected == true) { chkA++; }
}
//--A結果を表示する
trace(A);
if (cntA>cntB && cntA>cntC && cntA>cntD) { gotoAndStop(2); }
//--Bチェックを数える
for (i=1; i<=4; i++) { cname = "B"+i;
if (this[cname].selected == true) { chkB++; }
}
//--B結果を表示する
trace(B);
if (cntB>cntA && cntB>cntC && cntB>cntD) { gotoAndStop(3); }
}
書き込み制御の関係でAとBのパターンのみです。
シューティングのFLASHゲー作ってるけどライフポイントの設定がワカラン
テキストフィールドの文字をニコニコ動画のコメントみたいに縁取りさせるにはどうしたらよいのでしょうか? Flash8つかってます。
>>528 心からありがとう
朝までに帰れそうです
ふと、疑問に思ったのだけれど、
>>527 の言うMCのインスタンス名が、もし統一されていない別々のものだったとしたら
どうすればいいの?
・インスタンス名をひとつひとつ手動で統一されたものに変える
・インスタンスをひとつひとつオブジェクト型に突っ込んでいって、for〜inで回す
どちらもあんま変わらないけど・・・何かもっと良い方法ってあったりする?
>>529 前と同じ様な回答になるけど、
Aに値を入れているところが無いのにtrace(A)してる
chkA++してるけどここでしか使ってない (cntAの間違い?)
cntAとかを加算しているところが無い。
思ったように動かないならtrace()して値が入ってるか確認する。
>おかしいところがあればご指摘ねがいます。
ASを貼ってそう言うと自分で直す気ないと思われるよ。
○○まではうまく言ってるけど、△△のとこでif文の中に入ってくれないとか、
具体的に質問した方がいい。
>>533 インスタンス名をつけ直したほうがいいと思う。
>>533 stop();と書いてあるMCを継承した300個にする。
出来るかどうかわからんが。
物凄い勢いですいませんが charAt substr indexOf はjavascriptと全く同じ仕様ですか?
FLASH8を利用しております。 現在の構成では ■ベースswfファイル └▲コンテンツをloadMovieNumで配置 └●コンテンツ内部に動画をloadMovieNumで配置 という状況です。 この●の部分の動画を削除するとunloadMovieNumで削除すると 映像は消えるのですが、動画の音声だけが再生され続ける状況となっています。 これを音声も消えるようにしたいのですが、良い方法はありませんでしょうか?
MXをWin2000で使っています。初心者です。 学校の課題でローディングムービーを作っているのですが、 1.読み込みが25%のときフレーム1を表示、以下50%→2、75%→3と続く 2.100%読み込みが終わったら、4フレーム目以降を再生 ※この間、ダイナミックテキストでパーセント表示も出ている 上記のようなものにしたいのですが、 どこにどのASをを置いたらいいか分かりません。 ダイナミックテキストは全フレームに配置してあり、 インスタンス名をloadingとしています。 if文を使うらしい、というのは理解したんですが □%に達したらフレームxxに移動せよ、というのをスクリプトで どう描けばいいのかが分からず、つまずいています。 大変抽象的な質問内容で申し訳ないのですが、ご教授お願いいたします。
>>538 loadMovieNumってAS1.0の頃のだぞ
>>539 制御構造がわかるなら「flash ローダー」でググればサンプル出てくる
myArray=[1,2,4,20,100,150];→myArray=[1,2,4,20,150];//100を削った のようにn番目の1要素だけ削るにはどうすればいいのでしょう? よろしくお願いします
>>541 「ActionScript 配列」でググると、一件目に配列操作一覧載ってるから見ると良いよ。
一応言っておくと、splice()
>>541 spliceメソッドで削ればいいよ
myArray.splice(4,1) //4番目の要素だけ削除
544 :
541 :2007/07/04(水) 12:07:57 ID:vtznbWGB
>542、543 ありがとう、出来ました
545 :
539 :2007/07/04(水) 18:47:19 ID:WPN/bhwD
ググった結果、サンプルはたくさん出てきたのですが どれも表記が違って、どれを使えばいいのか分からないのです。 1.ダイナミックテキストに現在読み込み済みのパーセンテージが 吐き出されていません 2.パーセンテージごとにフレームを移動させるASの書き方が分かりません 全くのド素人です、すみません…
>>545 まず、ローディングの仕組みを理解した方がいいよ。
_root.stop();
total = _root.getBytesTotal();
_root.onEnterFrame = function() {
loaded = _root.getBytesLoaded();
if (loaded>=total) {
trace("読み込み完了");
delete _root.onEnterFrame;
}
trace(loaded/total*100);
};
>>545 scriptレイヤー
1,2,3フレームぶっこ抜き script用
表示用フレーム
1,2,3フレームがそれぞれキーフレーム
を作る。
scriptレイヤーで
_root.onEnterFrame = function() {
var total = _root.getBytesTotal();
var loaded = _root.getBytesLoaded();
var loadedPercent = Math.round(loaded / total * 100);
switch (true) {
case loadedPercent >= 50: _root.gotoAndStop(2); break;
case loadedPercent >= 75: _root.gotoAndStop(3); break;
}
// ダイナミックテキストでパーセント表示
_root.percentText.text = loadedPercent;
if (loadedPercent >= 100) _root.onEnterFrame = null;
}
なかんじかね?
switch は if(){} else if () {} else if() {} else {}
にでも置き換えて
動かしてないからどっか間違えてるかもしれんけど。
質問させてください。AS3.0です。 既に表示したスプライトの見た目を変更するにはどうしたらいいんでしょうか。 単純に下記のようにやってもダメなのは分かるんですけど・・・ package { import flash.display.*; //絵やアニメーションを表示する public class EmbedEx extends Sprite { //リソース [Embed(source='0.swf')] private var Anime0:Class; [Embed(source='1.swf')] private var Anime1:Class; //コンストラクタ public function EmbedEx() { //アニメーションの表示 var anime0:Sprite=new Anime0(); anime0.x=120; anime0.y=120; addChild(anime0); //アニメーションの変更 anime0 = new Anime1(); } } }
mp3のループ再生を途切れなく行うアプローチって何かな
>>548 見た目変更って、何をどう変更をしたいのかわからん
Spriteはコンテナ(入れ物みたいな感じ)なので、そこにMCなりBitmapなりの
表示オブジェクトをaddChildすれば表示されるしremoveChildすれば消える
>>549 とぎれていないmp3を再生回数999とか
>>549 最後まで行ったら1に戻るMCに音楽入れて
レイヤーに置いとけばいいんじゃないの?
質問です。WinXPのAS3.0です。swfからjsの呼び出しを行いたいのですが、 以下のコードでうまく動作しません。どうすればいいでしょうか? package { import flash.display.*; import flash.text.*; import flash.external.*; public class JavaScriptCallTest extends Sprite { public function JavaScriptCallTest() { var textHoge:String = ExternalInterface.call("function() { return 'test' }").toString(); var textField:TextField = new TextField(); textField.text = textHoge; addChild(textField); } } }
>>553 うまく動作しないの判断はどうやってるの?
どういうふうに動作するのを目的としてるのかをまず書く。
>>550 removeChild(anime0);
anime0 = new Anime1();
addChild(anime0);
で無事変更できました。ありがとうございます。
もうひとつ質問させてください。AC3.0
<test> string </test>
というXMLを得て、
trace( "["+xml..test[0].text()+"]" );
としたとき、
[ string ]という表示を期待してるのに
[string]と表示されてしまいます。
タグに隣接する空白は削除される仕様なのでしょうか。
556 :
553 :2007/07/05(木) 10:30:28 ID:Pjte+JDl
>554 すいません。大切なところを書きおとしていました。 これをコンパイルしたswfファイルをhtmlで読みこみブラウザで表示していたのですが、 うまくjsコードのcallができていないようなのです。 ExternalInterface.call("function() { return 'test' }").toString() の部分を、"test"などと決め打ちで入れればtestと表示されるのですが、 上記のように、jsコードをExternalInterfaceで呼び出し値を表示しようとすると、 文字列がなにも表示されません。 それでなにか必要なコードがあるのかなと質問させてもらった次第です。
>>555 XMLの仕様
空白とか入れたいなら、データ部を![CDATA使え
CryptString = CryptString.substr(-CryptString.length +1); これってなんか意味あるんですか?
559 :
553 :2007/07/05(木) 23:19:40 ID:Eh8yRqfD
gotoAndPlay(_currentframe - 1);とするとやたらとCPUを食うんですがどうしたらいいんですか? ベクターのアニメーションなんですけど、 フレーム数が小さいところ(数十フレーム)ではあまりCPUを食わず、 フレーム数が大きいところ(数千フレーム)ではやたら食う感じなんですが。
>>560 逆再生をやりたいの?逆再生だったら
this.onEnterFrame = function(){
this.prevFrame() ;
} ;
停止したいフレームに
delete this.onEnterFrame ;
で十分じゃないかな。
やりたい事が逆再生なのかは分からないけど、仮に逆再生だったとしたら
その処理じゃ特定フレームにハマり込むんじゃないかなぁ。
いや、自分が知りたいのはあくまで処理速度の点なんだ。 自分はアクションゲームを作っていて、 例えばジャンプして落下しているときに服がなびいているモーションがあるとき、 地面に到達するまでその部分のモーションをgotoAndPlay(_currentframe - 6); などとしてループ再生しているんだが、それがフレーム数が大きい場所ではCPU負荷が多くなるってことだ。 ちょっと調べたら、gotoAndPlay()で前のフレームに戻るとき、1フレーム目からたどっているらしいから、 負荷がかかるみたいなんだが、どうにかできないんだろうか。
落ちてる描写の6コマループのMCをキャラに当てればいいだけでは
その時ポーズかけた場合どうやってそのループモーションのMCを止めたりすればいいの? 全部のループモーションのMCにインスタンス名をつけてそれを一個一個制御するしかないの?
>>564 for...in使えばできる。
でもゲームなら設計の仕方でよりスマートにできるんじゃないかな。
そもそもgotoAndPlay(_currentframe - 1)そのものがCPUを食ってるのではなく
フレーム遷移の度に無駄な再描画をさせられているからだと推測。
無駄な描画更新を求める設計をやめるとか、ベクターの描画は負荷かかりやすいから、
ビットマップキャッシュかビットマップ画像に切り替えるとかで改善されるかもよ。
キャッシュなり何なりいろいろやったんですけど、 フレーム数が小さいときはgotoAndPlay(_currentframe - 1)でも全然処理を食わないのに、 数千とか行っているときでは同じベクターでもすごく重くなるってとこなんですよ。 まあそんなにフレーム数が多くなるような設計をしているのがおかしいんでしょうけどね。
ループ再生したい部分だけ部品化して、フレーム軍をレイヤー1に配置 レイヤー2にフレーム全体にまたがりstopと現在地記憶と再生を行うメソッド加えれば良いじゃん
>>564 各MCが ポーズ中かどうかのグローバル変数 を常に監視して
止まるか動くかを判断する方が楽だと思う。
描画メソッドで描いたものに名前付けるにはどうすれば良いでしょうか
>>569 MCに名前付けてそのMCで描画でいんじゃない
画像として保存したいならパブリッシュでjpgとかpngとか
>>570 無事できました。
ありがとうございます
572 :
539 :2007/07/06(金) 18:43:34 ID:51FuKU+l
>>539 ですが、やっぱり上手くいきません…
1フレーム目のMC(引数→「unm」)に、
onClipEvent (load) {
_root.stop();}
onClipEvent (enterFrame) {
_root.num = Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100);
if (100 == Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100)) {
_root.gotoAndPlay(5);
} else if (99 >= Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100)) {
_root.gotoAndPlay(4);
} else if (75 >= Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100)) {
_root.gotoAndPlay(3);
} else if (50 >= Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100)) {
_root.gotoAndPlay(2);
} else if (25 >= Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100)) {
_root.gotoAndPlay(1);}
}
と書いています。
パブリッシュすると、ロード数ごとのフレーム表示は上手く順番どおりになってるんですが
ダイナミックテキストには何も吐き出されずそのまま、ロード完了時に表示させているフレームに飛びます。
「_root.num = Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100);
」の
表記あるいは入れる場所が間違っているのでしょうか…
訂正: ASを書いているMCと、ダイナミックテキスト(引数”num”)は別のものです。 いま、↑の状態で全く何の数字も吐き出されなかったダイナミックテキストを ASを書いたMCとグループ化したら「0」という数字は出たんですが ゼロから動きません・・・
連投すみません。
>>572 の
「_root.num = Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100); 」
の部分を以下のように書き換えましたが、変わりません。
this.TotalData=_parent.getBytesTotal();
this.LoadedData=_parent.getBytesLoaded();
this.Parcent=Math.floor((this.LoadedData/this.TotalData)*100);
_parent.num=this.Parcent;
スクリプトって難しいですね…完成が果てしなく遠く感じます。
>>574 自分でいろいろと実験していくのは良いけど、それをここに書いても困る。
みんなそうやって出来るようになっていくわけだから。
>>572 引数って言ってるのはもしかして、インスタンス名?
ダイナミックテキストにつけたインスタンス名がnumなら
_root.num.text = って書く。
とりあえずパスがあってるか trace( _root.num ) で確認する。
質問です。 swfに、外部jpgと外部テキストを読み込ませているのですが swf自身が配置されるページ(html)ごとに 読み込ませる内容を変える事は可能でしょうか。 swfファイルは1つだけで、複数のページに配置させるイメージです。 flash8、win使用です。 どなたかご教示くださいませんでしょうか。
htmlからswfへ変数を渡せばいいんでないかな。 <param name="movie" value="sample.swf?flag=0001"> <embed src="sample.swf?flag=0001" ...> で、あとはifでも何でも使ってflagの数字ごとに読み込むファイルをかえればおk
>>577 外部テキストも違うのかな
テキストファイルかxmlにjpgのファイル名を書いておいて、
それを読み込んで表示するようにすればいい
できました!! 画像の方は、 pic=0001.jpg みたいな感じにしました。 テキストは、そのままvalueの所に書きました。 物凄く感謝しますです。 eval() とか使ったんですが、そんなのはじめてです。 ちなみに、変数をググって Flashvarsでもやってみました。 自分で努力してas書いたのはじめてなので すげー嬉しいです。 578さん、579さんのおかげです。 本当にありがとう! as勉強の1歩になってたらいいなー。 朝からテンション高くてスンマソン。
581 :
Now_loading...774KB :2007/07/07(土) 18:20:55 ID:CcxLJyal
ActionScriptは内部コードがUTF-8だからそれは無理だと思う。 なので、 var asciiArray:Array = new Array("", "", "", ... "!", "\"", "#" ...); って感じで配列作って 以下略。
584 :
Now_loading...774KB :2007/07/08(日) 02:26:23 ID:oDg60V8n
---+--- | | | MC | | | ---*--- +が基準点のムービークリップMCがあるとして +の座標はMC._x,MC._yで取得できますよね *の座標を取得したいときにはどうすればよいのでしょうか?
585 :
Now_loading...774KB :2007/07/08(日) 02:27:50 ID:oDg60V8n
すいません 上の図は四角を描こうとして失敗してました。 どなたかわかるかた教えてください。
AAが崩れてるからあってるかわからないけど、 MC._y + MC._height とか?
587 :
Now_loading...774KB :2007/07/08(日) 13:05:35 ID:dTzb3EME
MC._heightというのはどこからどこまでの値なのでしょうか? やってみたのですがMCを回転させるとMC._henightの値が変わってしまいました。
588 :
Now_loading...774KB :2007/07/08(日) 14:04:49 ID:hwpSUOgZ
プログラム上で、ボタン クリックを実行するにはどうしたら良いですか?
589 :
Now_loading...774KB :2007/07/08(日) 14:07:44 ID:ZBTwibl1
590 :
Now_loading...774KB :2007/07/08(日) 14:12:39 ID:7zBzq3TE
>>587 回転したMCの高さかと
なんて言うか
__ _
| | |
| |.._| 元はこんな感じで
 ̄ ̄
_
/\ |
< > |
\/ _| 回転するとこんな感じ
592 :
Now_loading...774KB :2007/07/08(日) 15:25:04 ID:hwpSUOgZ
>>590 WindowsXP PRO
Flash 8 PRO
ActionScript 2
593 :
Now_loading...774KB :2007/07/08(日) 15:28:03 ID:dTzb3EME
>>591 なるほど。では
>>584 で斜めのときに*の座標をとる場合にはどうすればいいのでしょうか?
>>588 function Release(){ } でイベントを書いて
this.myButton.onRelease=Release; でボタンに割り当てて
Release()でボタンクリックを実行する。
またはon(release){ } の中身を関数にしてそれを呼ぶ。
>>593 *の部分にmcを置いてその座標をMovieClip.localToGlobal()で取得する。
というかMCをその場で回転させているなら+の座標もかわんないよ。
該当座標に入れ子のMCを入れておく
>>593 中学・高校でちゃんと数学をやっておけば・・・!と思う瞬間だよね。
597 :
Now_loading...774KB :2007/07/08(日) 20:05:12 ID:dTzb3EME
>>595 入れ子のMCを入れておく以外に方法はないのでしょうか?
ActionScriptだけで指定して座標を取得したいのですが
変形前の座表をpointに入れておいて 変形処理をmatrixで管理すればいいよ 変敬語の座表はpointにmatrixを適用すれば求められる
>>597 何をやりたいの?
MCのシェイプとのあたり判定とか?
シェイプが矩形の場合で、単に座標値を求めたいなら、
rotationからx,y座標は三角関数で算出できるでしょ。
600 :
Now_loading...774KB :2007/07/08(日) 21:31:45 ID:dTzb3EME
僕がやりたいのはフレームを1枚だけ使用してそこに関節ごとに分けた
人間の絵を描きそれをActionScriptで連動させて動かすという研究をしてるんです。
ようは肩の関節が動いたときにそれに連動して腕も動かしたいのです。
わかりずらい説明ですいません。
>>598 ありがとうございます
matrixは使ったことないので出来るかわかりませんが必死でチャレンジしてみます。
>>600 FlashならそれはMCの入れ子で実現できるわけで、座標計算は必要ない。
のちのち逆運動計算とかなんとかやりたいんちゃう
Flex2.0です。 var hoge
すみません。上の書き込みはミスです。 foo = new Tween ( this , from , to , 300 , 24 ); を実行するメソッドがありまして、これを1回呼び出したのち、 トゥイーンが最後まで行き着かないうちにtoの値を変えて再度呼びなおします。 理想的には途中で進路を変えて動いてほしいのですが、 実際には最初に設定したtoがゴールのままです。 「トゥイーンの上書き」の方法をどなたかご教示ください。
質問がありまして、投稿させてもらいます。 連想配列を設定する際、 入れ子にする場合は、 NameArray["aaa"]["bbb"] = aaa; という様に設定する事は出来るのですが、 ["aaa"]["bbb"]の入れ子の部分の深さを、 決め打ではなく、ユニークに設定したいと思っています。 どうしてこういう事をしたいかと言うと、 xmlのタグ構成を連想配列に置き換えるスクリプトを作ろうとしてしまして、 タグの階層を配列に取っておいて、["aaa"]["bbb"]の部分に入れ込みたいと思っています。 ちなみに、 NameArray[tagArray] = aaa という様な指定では当然だめでした・・・。 ご存じの方がいらっしゃいましたら、どうぞご教授の程、 よろしくお願いいたします。
>>604 再度newすればいんじゃねーの
>>605 xml自体そういう構成なのになんのために使うのかわからん
>>606 でも、xmlを変数に読み込んだままだと、
node名でアクセス出来無いですよね?
説明が足り無くって申し訳ないのですが、
node名を使ってアクセスしたいんです・・
>607 firstChild とか nextSibling 辺りを調べるとよいよ
>>607 node名でアクセスしたいなら
mx.xpath.XPathAPI.selectSingleNode(node, path)
使えばいいよ
610 :
Now_loading...774KB :2007/07/10(火) 12:03:25 ID:+/H/UCyi
605です。
>>609 XPathAPI!
そんな方法が合ったんですね!!
早速導入してみたんですが、これで目的が達成出来そうです。
606,608の方も合わせまして、どうもありがとうございます!
611 :
Now_loading...774KB :2007/07/10(火) 12:57:21 ID:GT8X50d5
var Array:Array = new Array(); Array=Zahyou(1,2,6,45); trace(Array[0]); trace(Array[1]); function Zahyou(x,y,z,r) {//Zahyou(x座標,y座標,斜辺の長さ,角度) a = Math.tan((r)* Math.PI/180)); b=y-(a*x); Y=(a*X)+b; (X*X)+(Y*Y)=(r*r); (X*X)+((a*X)+b)*((a*X)+b)=r*r; var Array:Array = new Array(X,Y); return Array; } 斜辺の長さと傾きからX座標Y座標を求める関数を作りたいのですが 上手く作れません。どなたか修正していただけませんか
612 :
Now_loading...774KB :2007/07/10(火) 13:36:24 ID:VyqpO2MQ
>>611 x,y,z,r,X,Yがそれぞれ何を表して、角度の単位は何なのを書いた方がいいと思いますけど
> (X*X)+(Y*Y)=(r*r); こういう書き方したこと無いんだけど、左辺はどう評価されるのだろう。 単なる数値になる?
どう考えても左辺がおかしいとかになるだろ
よーし、エスパーになってみる。 (x,y)が始点、(X,Y)が終点、rがラジアンじゃないなら X = x + Math.cos(r * Math.PI / 180) * z; Y = y + Math.sin(r * Math.PI / 180) * z;
616 :
Now_loading...774KB :2007/07/10(火) 14:04:39 ID:GT8X50d5
x,yがわかっている点でそこから斜辺の長さz、角度r(度) の位置にある点(X,Y)を求めるようにしたいのです。 間違っているのはわかっているのですがどう表現していいのかわからずに 上のように書きました。
xとyの2点間の長さはいいとして、 角度rの位置にある点(X,Y)ってなに? 2点間の距離を求める関数とは別に、角度と距離から座標を求めたいってこと?
618 :
Now_loading...774KB :2007/07/10(火) 15:14:07 ID:GT8X50d5
そういうことです。 <<615さんので出来たっぽいんですが その座標を返り値としてreturnさせるには どうすればいいのでしょうか?
>>618 汎用オブジェクトでもつかえばいんじゃね
var pA:Object = rfunc();
trace(pA.px +":"+pA.py);
function rfunc(){
var ro:Object = new Object();
ro.px =120;
ro.py = 34;
return ro;
}
>>619 汎用じゃなくてもflash.geom.Pointってのがあるからそれでいいのでは?
622 :
Now_loading...774KB :2007/07/10(火) 16:10:52 ID:GT8X50d5
ありがとうございます。これで求められた座標にムービークリップを
移動させようと思ってるんですが
>>598 さんの
変形前の座表をpointに入れておいて
変形処理をmatrixで管理すればいいよ
変形後の座表はpointにmatrixを適用すれば求められる
というのが上手く作れません
ムービークリップを指定した座標に移動させるにはmatrixを
使ってどうすればいいのでしょうか?
import flash.geom.Matrix; import flash.geom.Point; var before:Point = new Point( 10, 20 ); //移動前の座標 var matrix:Matrix = new Matrix(); matrix.translate( 100, 200 ); //x方向へ100、y方向へ200移動 var after:Point = matrix.transformPoint( before ); //移動後の座標
>>621 Pointオブジェクト重たいから、
それの機能使いたいとかじゃなければ普通のObject使え
625 :
Now_loading...774KB :2007/07/11(水) 21:39:07 ID:Aay4lqym
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0) ブラウザ:IE6.0 ブラウザ上での開始操作について質問です。 ボタンまたはキーで操作するSWFをブラウザに表示した場合、ボタン(キー) 操作を有効にするには毎回SWF全体を一回クリックする必要があり面倒です。 ※ブラウザのSWF上にマウスポインタを移動させると、「このコントロールを アクティブ化して使用するにはクリックしてい下さい」という表示が出ます 表示後すぐにボタン(キー)操作が出来るようにするには、どうしたら良いで しょうか?
クイズを作りたいと思っているんですが 入力テキストに入力した答えを「回答」ボタンを押したら それが合ってるか間違っているか判断してシーンに飛ばせる …というスクリプトを組もうとしているんですが 「回答」ボタンのアクションスクリプトがうまく動作しません。 エラーは出ていないのにどこが違うか分からないので教えてください。 よろしくおねがいしますm(_ _)m アクションスクリプトは on(press){ if(入力テキストの変数 == "答えとなる文"){ nextScene(); } } 8pro WinXP
三角関数でball:mcを移動したいのですが point:関数から上手く座標を取り出せません よろしくお願いします var posi = new Array(); posi = point(100, 100, -45, 50); ball._y = posi[0]; ball._y = posi[1]; function point(X, Y, deg, R) {//X,Y:基準座標,deg:角度,R:半径 var ans = new Array(); ans[0] = X+Math.cos(Math.PI/180*deg)*R; ans[1] = Y+Math.sin(Math.PI/180*deg)*R; return ans; }
>>627 ボタンとは、MCのボタン動作かな? MCなら、入力テキストの変数との
パス関係をチェック。
あと動作確認はtrace()を活用。
>>628 画面のY座標と実座標は縦方向に逆なのは考慮してる?
>>627 あー、書き忘れていた。似たような課題なら、
「Flash MX ActionScript 実践技&ウラ技大全」(C&R研究所・ナツメ社)のp115に
あったぞ。
631 :
625 :2007/07/12(木) 11:16:11 ID:4Us8/WY+
>>628 ball._y = posi[0];
ball._y = posi[1];
なんでy座標だけいれてんだよ
>>630 冷たい返答したかと思って見にきたです。
adobeのAC_RunActiveContent.jsとか
swfobjectとかの解説ページも勉強になりますよ。
ググってみてください。
634 :
Now_loading...774KB :2007/07/12(木) 19:14:08 ID:THEDhW9F
MCっていうムービークリップがあるとしてそれをActionScriptで横反転 させるにはどう表記すればいいのですか?
636 :
Now_loading...774KB :2007/07/12(木) 22:17:56 ID:THEDhW9F
>>392 なんかこのやり方でやると反転はするんですが太くなって反転されるんですが・・
違う方法はないのでしょうか?
>>636 もともと_xscaleを変えてたりしないか?
あるいはMCの位置が整数じゃないとかかなあ
-1かければいいよ
639 :
Now_loading...774KB :2007/07/12(木) 23:30:02 ID:THEDhW9F
>>638 なにに-1かければよいのでしょうか?
MC._xscale = -1;
とやると線みたいになっちゃいますよ
基準点が真ん中のMCならうまく反転できるのですが基準点が上の場合はうまく反転できないみたいです
自分は基準点上のMCを反転させたいのですが何か方法はないのでしょうか?
キーボード(テンキー)を押した時と離した時で別々のscriptを組みたいのですが、 どうすればできますか? 本を買って調べてみたんですが、どうもわかりません。
644 :
642 :2007/07/13(金) 04:33:53 ID:G6HZcjwY
>>643 特定のキーのみに反応させるにはどうすればいいですか?
MCのドラッグでShiftドラッグ時に別動作をさせるために以下のようにしてんですが FlashPlayer8でエラーが出ます(9だと問題ない) このやり方では何か問題があるんでしょうか? onPress()でドラッグ中フラグをONにする。 onMouseMove()でドラッグ中フラグがONならドラッグ中処理をする。 その際にKey.isDown(Key.SHIFT)でShift動作を分ける。 どうもこのKey.isDown()があると落ちてしまうようです。
647 :
625 :2007/07/13(金) 10:03:24 ID:PM8svYN/
ブラウザ上での開始操作について(javascript)
コントロールをアクティブ化してSWFをクリックせずにこれを操作しよう
としていますが上手く出来ません。 参考HPとして
ttp://www5a.biglobe.ne.jp/~mifuru/20060901.html ttp://allabout.co.jp/internet/javascript/closeup/CU20060415A/index.htm を見て、 SWF(banana.swf) → JSファイル(mifuru.js) → HTMLファイル(fromJS.html)
の流れでSWFはブラウザ上に表示されたのですが、やはりブラウザ内のSWFを
1回クリックしないと操作できません(クリックすると矢印キーで操作できます)。
HTMLには、
<CENTER>
<script type="text/JavaScript" src="mifuru.js"></script>
</CENTER>
JSファイルには、
document.open();
document.writeln('<embed src="banana.swf" width="400" height="300" type="application/x-shockwave-flash"/>');
document.close();
を書いています。どう修正すべきでしょうか?(長文ですいません)
648 :
Now_loading...774KB :2007/07/13(金) 14:57:05 ID:EVvmUUfi
>>641 どうやればいいのでしょうか
MCW=MC._width;
で幅をとって
MC._xscale = -MCW;
とやっても細くなって反転され
MC._xscale -= MCW;
とやっても細くなって反転されてしまいます.
649 :
Now_loading...774KB :2007/07/13(金) 15:05:13 ID:HC7RfQ0Z
_xscale*=-1
650 :
Now_loading...774KB :2007/07/13(金) 16:30:33 ID:EVvmUUfi
>>650 ちなみにMC.widthって取ってるけどそれピクセル幅な
_xscaleはパーセント
>>647 上の参考HPのやり方で出来たけど。
キャッシュ残ってて更新されてないとかじゃないの?
>>653 ちゃんと動いてるけどなぁ、Win IE6.0で確認。
>>654 う〜ん。。。
マシンを変えて、手持ちのBIBLO-LOOX(WinXP-HE,IE6.0)でやってみましたが
反応しません(中古のVAIO:Win98SE,IE5.0では表示自体が不可)。
もしかして、IEのセキュリティ保護の情報バーに関係があるとか?
656 :
654 :2007/07/14(土) 19:00:06 ID:NTPhdI6A
>IEのセキュリティ保護の情報バー xp sp2でアドオンが無効になってるだけじゃないの?
>>656 , 657
ありがとうございます。
やってみます。
Flash Playerのclassid番号は D27CDB6E-AE6D-11cf-96B8-444553540000 です。 てか、そのあたりの内容は、FLASHでパブリッシュすると 勝手に作られるHTMLからコピるか、 ネットでFLASH使ってるサイトからコピればOK。
AS2.0でのカスタムクラスの作成について 詳しく解説しているサイトなどありましたら教えてください。
フラッシュから掲示板に書き込みとか可能? できるんならどなたかkwsk
>663 書き込むBBSのHTMLを見る cgiのアドレスと送っている変数を全部調べる flashでフォームを作る
>664 フォームを作って、送るにはどうすればよい? sendとか?
ここで質問するのもあれなんだけど、知ってる人が一番いそうだから。 AS2.0→AS3.0の移行っていうか クラスがどこに移動したのか一覧で見れるページがあったと思うんだけど ブックマークし忘れてどこだったか完全に失念してしまった。 多分公式関係なんだと思うけど見つからない。 知ってる人いたら教えてください。
>>667 ちょwこんな早いのかここw
マジでありがとう。
670 :
Now_loading...774KB :2007/07/16(月) 16:07:15 ID:+vwh4cdn
actionscriptエディタって何がいいですか?
お世話になります。
目標:
ブラウザ内のSWFをクリックすることなく、キー操作のみでSWF内の絵柄を動かしたい。
普通にSWFを置くと
http://swfup.info/view.php/7328.swf のようになり、単に
矢印キーを押すと(HP自体が長い場合)上下にHP自体がスクロールしてしまいます。
しかしその前に、マウスでSWFのどこかをクリックすれば目的の絵柄(バナナ)のみが
動きます。今まで調べたところ、
1) SWF(banana.swf) → JSファイル(mifuru.js) → HTMLファイル(fromJS.html)
と、間にJSファイルを入れる
2) HTMLの中に、<BODY ・・・ onLoad="window.document.banana.focus();"> のonLoad
の記述を入れる(フォーカスの移動)
をやってみましたが、駄目でした。ちなみに、両方を混ぜてやってみましたが、これも
駄目でした。
引き続き、助言を願います。
>助言を願います。 何この上から目線
単にものの言い方を知らないだけかも。
>>671 実現できてるサイトがあるなら、そこを参考にしたら?
実現できてるサイトがどこにもないなら、無理だと諦める。
>>661 の引用サイトの話が正しいなら、無理な可能性は高いのでは?
自分の環境でだけ実現できないのなら、現状では第三者にはそちらの環境がわからないので
どうしようもない。
>>671 普通はスタートボタンとかクリックさせて対応する。
>>647 &
>>656 を参考にすりゃこうなるだろ
[HTMLファイル]
<!-- saved from url=(0013)about:internet -->
<HTML>
<HEAD>
</HEAD>
<BODY bgcolor="#FFFFFF" onLoad="window.document.banaSWF.focus();">
<script type="text/JavaScript" src="mifuru.js"></script>
</BODY>
</HTML>
[mifuru.js]
document.write("<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000'")
document.write(" codebase='
http://download.macromedia.com/pub/shockwave/cabs/ ")
document.write("flash/swflash.cab'")
document.write("width=400 height=300 name='banaSWF'>")
document.write("<param name=movie value='7328.swf'>")
document.write("<param name=quality value=high>")
document.write("<embed src='7328.swf' quality=high ")
document.write(" width=400 height=300")
document.write(" type='application/x-shockwave-flash' ")
document.write("pluginspage='
http://www.macromedia.com/go/getflashplayer '>")
document.write("</embed>")
document.write("</object>")
WindowsのIE6で確認したけど動くじゃん、ただ働きさせんなよ。
もちろん、focus()はIEのみだから(とMacromediaのサイトにも書いてある)
FireFoxとかじゃ効果無い。
>>672-675 有り難うございます。試してみます。
現段階では、クリックなしで(マウス無しで)動かすことが目標です。
>>助言を願います。
すいません。以後、気をつけます。
if文を入れ子にしながら関数を順番に呼び出しています 最下層の関数からif文を止めることは出来るでしょうか? if (a>0) { hit1(); hit2(); hit3(); } function hit1() { num = b+c+f+g; chk(num); } function chk(num) { if (num>0) { trace(num); //ここでif文全部を終了させたい }} 簡単に書いています hit1()を実行した後に、hit2()以降を無視する流れです よろしくお願いします
>>677 変数使ってスキップするのもあるけど、関数のreturnを使うとか↓ガード節ね
foo();
function foo():Boolean {
if (fo1() == false) {
return false;
}
trace("fo1 ");
if (fo2() == false) {
return false;
}
trace("fo2 ");
if (fo3() == false) {
return false;
}
trace("fo3 ");
return true;
}
function fo1() :Boolean {
return true;
}
function fo2() :Boolean {
return true;
}
function fo3() :Boolean {
return false;
}
ActionScriptを始めるならばとFlash8の参考書を貰ったけど、 これからは3.0だよと言われトライしたが、 マウスイベントなんかが全く違っていてとまどってます。 これからは3.0じゃないとだめなのでしょうか?
だめと言うわけではないが、時代に乗り遅れないようにしよう。 コンピュータは変革がはやいよ。
今後継続する仕事としてなら必修 趣味なら好きにすれば良い
仕事としても来年ぐらいまでは要らない子
デザイナがいじる程度なら書けなくても 読めたり改造できる程度でOK cgiとかphpもそんな感じだろ?
684 :
677 :2007/07/17(火) 16:22:23 ID:3/mXtWCr
>678 なるほど。ちょっと複雑になりますね 組み立てから考えて見ます ありがと
ランダムでシーンを移動させるスクリプトはあるでしょうか? あったらどのように組めばいいのか教えて欲しいのですが…
Math.random
>685 書いたAS晒すか、Flashの超基本的な質問はここでしろ!行け this.stop(); list = ["scene1", "scene2", "scene3"]; btn.onPress = function() { var tar = list[Math.floor(Math.random()*list.length)]; _root.gotoAndStop(tar); }; シーン移動は、変数使えないから面倒 各シーンの頭にフレームラベルを書く
cDownに11.7なんとかが入っている状態で、 a = Math.ceil(cDown); b = a-1; cc = a%8; dd = b%8; ここまでだとccに4、ddに3が代入されるんだけど、 if (cc=0) { sp1 = "フェスタ"; } else if (cc=1) { sp1 = "何も無し"; } else if (cc=2) { sp1 = "フェスタ"; } else if (cc=3) { sp1 = "何も無し"; } else if (cc=4) { sp1 = "フェスタ"; } else if (cc=5) { sp1 = "何も無し"; } else if (cc=6) { sp1 = "フェスタ"; } else { sp1 = "何も無し"; } このif文加えるとccもddも1になって帰ってきます。 if文のおかしな点があればご指摘ください><
>>688 ddは知らんが、ccは、=で代入してるから当然。
比較なら==を使う。
>>688 sp1を得たいだけなのであれば一文で可かと
sp1 = Math.ceil(cDown)%2 ? "何も無し" : "フェスタ";
インスタンス名の違うコンポーネントをループで判定しているのですが、 もっとコンパクトに記述する方法はないでしょうか? わざわざ配列に登録しなくても回す方法などがあればお願いします。 //テキストコンポーネントに値を入力 name_txt.text = "名無しさん"; age_txt.text = "ふめい"; salary_txt.text = ""; //コンポーネントインスタンスの属性とインスタンス名をハッシュ表に登録 var CmpAry:Array = new Array (); CmpAry["名前"] = "name_txt"; CmpAry["年齢"] = "age_txt"; CmpAry["給料"] = "salary_txt"; //ひとつでも未入力のテキストコンポーネントがあればフラグをあげて何が入力されていないかを出力 var ChkFlg:Boolean = false; for (var CmpID in CmpAry) { if (this[CmpAry[CmpID]].text == "") { trace (CmpID + "が入力されていません。"); ChkFlg = true; } } //すべて入力されている場合は次へ進む (ChkFlg == false)?trace ("次の画面へ進みます。"):false それとVBのMsgBox()と同じような機能はないのでしょうか…? テキスト付きのモーダルウィンドウひとつ出すのにすごく苦労します(;´Д`) もし簡単なコードがあれば是非教えていただきたいと思います。長文になりすみませんでした。
>>691 インスタンス名の違うコンポーネントがその3つしかないなら、一個ずつ記述かな。
複数あるなら種類ごとに命名するとか。 name0_txt, name1_txt, ... age0_txt, age1_txt みたいに。
複数あって種類もまとめられないならその方法がベストだと思う。
MsgBoxのかわりにあたるのはWindowコンポーネント。モーダルでも表示できる。
あと気になったから言うけど、CmpAry["名前"] = "xx" っていうやり方は
配列アクセスであってハッシュ表とか連想配列ではないよ。
CmpAry.名前 = "xx" ってやってるのと同じ。
>>692 ありがとうございます。Arrayクラスに関しては、ずっとHashTableだと思ってました。
使い方自体はJavaなどのHashtableと似た感じだと思うのですが、内部的に何か違うんでしょうか
それと、ウィンドウコンポーネントやアラートコンポーネントなのですが、
デザインをステージで簡単に変えることはできないんでしょうか?
A.asをコンパイルすると、 B.asのthis.c=10が「未定義である可能性が高いプロパティ c に静的型 B の参照を使用してアクセスしています」とエラーになります。 何が間違っているのでしょうか。 /*A.as*/ package{ public class A { public function A() { private var b = new B(); } } } /*B.as*/ package{ public class B extends C { public function B() { this.c = 10; } } } /*C.as*/ package{ public class C { private var c : int; } }
>>694 private var c : int;
↑プライベートってやってるじゃん。しっかり隠蔽されてるわけさ。
696 :
Now_loading...774KB :2007/07/18(水) 07:12:50 ID:TXwU4CBD
2.0を少々カジッた程度の者ですが、 3.0を見てガラリと変わっているのに戸惑っています。 やはり、これからは3.0でしょうか? どこか役立つサイトはないでしょうか? 本屋に行っても3.0についての参考書はありませんでした。
>>695 ありがとうございます。
publicにしたらコンパイルを通りました。
けれど、ここはprotectedにするのが一般的ですか?
>689 ありがとうございました!上手くいきました >690もありがとうございました!
699 :
Now_loading...774KB :2007/07/18(水) 20:17:01 ID:jtmP68V5
環境)OS:WinXP-Pro,ソフト:FlashCS3(Player9)ActionScript3
>>84 と似たような質問です。 ActionScript1では
button1----------
on(press) {
test(1);
}
button2----------
on(press) {
test(2);
}
メインタイムライン----------
function test(value) {
trace(value);
}
と書いていたものはActionScript3では
メインタイムライン----------
button1.addEventListener(MouseEvent.MOUSE_DOWN, test1);
button2.addEventListener(MouseEvent.MOUSE_DOWN, test2);
function test1(e:Event):void {
trace(1);
}
function test2(e:Event):void {
trace(2);
}
となるようですが、ボタンの数だけfunction testXXが増えていくのは非常に不便な気がします。
>>89 を見て、Loaderをextendsするといった方法もわかったのですが
ActionScript1の用に気軽に使えないものでしょうか・・・
仕様だから仕方ないのか、それとも他にスマートな記述方法があるようなら教えていただけないでしょうか?
よろしくお願いします。
>>699 AS3見た事無いけど適当に答えてみてもいい?
無名関数を使う
button1.addEventListener(MouseEvent.MOUSE_DOWN, function(e:Event):void {
trace(1);
});
button2.addEventListener(MouseEvent.MOUSE_DOWN, function(e:Event):void {
trace(2);
});
>>699 同じfunctionを使いたいなら同じのを呼べるし、イベント元のインスタンスによって
動作を変えたいなら引数のevent.targetで分岐するとか
手元にFlashないから適当だけど、こんな感じ イベントメソッドに自前の引数おくるのは無理だった希ガス 出来たらごめ function test(e:Event):void { trace(e.target.val) } button1.val = 1 button2.val = 2 button1.addEventListener(MouseEvent.MOUSE_DOWN, test) button2.addEventListener(MouseEvent.MOUSE_DOWN, test)
buttonはDynamicじゃないからプロパティの動的追加は無理かと。MCならできるよ。 buttonの場合はnameプロパティで判断するとか。 function test(e:Event):void { trace(e.target.name); }
704 :
699 :2007/07/19(木) 09:44:46 ID:A105xMP4
>>700 なるほどー無名関数使えば、多少長くなりますがスッキリ書けますね。
ありがとうございます。
button1.addEventListener(MouseEvent.MOUSE_DOWN, function(e:Event):void { test(e,1); });
button2.addEventListener(MouseEvent.MOUSE_DOWN, function(e:Event):void { test(e,2); });
function test (e:Event,value:int):void {
trace(value);
}
>>701-703 やっぱりevent.targetを使って処理するのが普通なんですかね。
今まで自分もそうやっていたのですが、
どうも ...MOUSE_DOWN, test(1));の用に引数使えないことに拒否反応が出てしまって・・・
それで色々と検索してみたのですが自分と同じような不満を持った人の記事等は見つからなかったので
『なんでこんなに不便になったのに誰も文句を言ってないんだ??
自分の考え方がおかしくて普通はこんな書き方しないのか??』
と思ってここに書かせていただきました。
つか、それって処理まとまってないじゃんw 1つの関数呼び出しでってことじゃなかったわけか。
>>704 リテラルだとthisが使えなくなるから、必要な場合は参照をどこかに格納する必要が出てくる。
引数に拘る理由が分からないけど、個人的にはevent.targetの方がスマートになった気がする。
function test( e:Event ):void {
switch ( e.target ) {
case button1 : trace( "1" ); break;
case button2 : trace( "2" ); break;
}
}
button1.addEventListener( MouseEvent.MOUSE_DOWN, test );
button2.addEventListener( MouseEvent.MOUSE_DOWN, test );
どうしても引数使いたければこっちかな。
function test( id:int ):Function {
return function( e:Event ):void {
trace( id );
}
}
button1.addEventListener( MouseEvent.MOUSE_DOWN, test( 1 ) );
button2.addEventListener( MouseEvent.MOUSE_DOWN, test( 2 ) );
707 :
699 :2007/07/19(木) 11:24:48 ID:A105xMP4
やはりaddEventListenerに関してはevent.targetを使用するのがスマートな方法なんですね。 皆さんの意見を聞けて助かりました。 これからは、素直にevent.targetを使います。 ありがとうございました。
(ブラウザ内のSWFをクリックすることなく、キー操作のみで
SWF内の絵柄を動かしたい)
レスが遅くなり申し訳ございません。お教え頂いた通り、HTMLとJSファイルを
書き換えたところ、希望の動作が確認できました。 まとめとして、全体をZip化
しました。
http://www.uploda.org/uporg912147.zip.html uporg912147.zipをDL後解凍し、『fromJS-3.html』を開くと実行できると思います。
色々と有り難うございました。
709 :
Now_loading...774KB :2007/07/20(金) 02:04:28 ID:yp5z/ewa
プリローダーがうまく作れません。 ★1フレーム目★ onClipEvent (load) { %9_root.stop();%9//タイムラインの1フレーム目で止めておく } onClipEvent (enterFrame) { %9// すべて読み込んだら3フレーム目へ %9if (_root._framesloaded==_root._totalframes) { %9%9_root.gotoAndStop(3); %9} } ★2フレーム目★ _root.gotoAndPlay(1); ★3フレーム目★ サムネイルアルバムみたいなやつ。3M程。 どうやってもいきなり『_root._framesloaded==3』となり、3フレーム目にすっとんでしまいます。 誰か助けてください。 環境は、MX、XPSP2です。
>>709 うろ覚えだが
if(_root._framesloaded==_root._totalframes)
最初に一瞬だけここがどちらも0になるんじゃなかったっけ
&& _root._framesloaded != 0とか加えてみれ
いかん、ぼけてた。読み込みサイズの話だった
1フレ目の最初にonClipEvent(load)って書くのはダメなんじゃなかったっけ? まぁそれが原因ではないと思うけど。
713 :
709 :2007/07/20(金) 02:40:49 ID:yp5z/ewa
>サムネイルアルバムみたいなやつ。3M程。 まさか別ファイルってことは無いよね? 710の方法はやってみた? 俺も同じように記憶してるよ。>一瞬だけ0になる
ドラッグ中の処理で困ってます。 function onMouseDown():Void { if (this.hitTest(_root._xmouse, _root._ymouse, false)) { って感じで処理を行っているんですが 右クリックでContextMenuを出したまま他の場所をクリックすると onMouseDown時の_xmouse、_ymouseが右クリック時点の座標が来てしまいます。 FlashPro8ですが、これって仕様制約とかですか? 当初はonPressで処理してたんですが こっちはShift押しながらで連打されるんで変更したんですが、こちらでも問題出てしまって。 何かご存知の方居りましたらよろしくお願いします。
var rest:Number = 1; var mc = "rest"+rest+1; trace(mc); //rest11 出力をrest2にしたいのですが、rest11になってしまいます なぜrestや+1が文字列になってしまうんでしょうか?
+演算子の仕様 var mc = "rest"+(rest+1);
>>716 式が最初から順に評価されるんじゃない?
"rest" [文字列] に 変数restの内容[数値] を文字列として連結 → "rest1"
"rest1" [文字列] に 1[数値] を文字列として連結 → "rest11"
>717 なるほど、仕様じゃしy ありがとうございす
720 :
Now_loading...774KB :2007/07/20(金) 12:20:40 ID:FOSlrYeV
NetConnectionのconnectで外部のサーバーに接続して、flvをストリーミングってできますか? プロトコルはhttpで。 connectが接続すらしてくれなくて困っています。 オーサリング環境はWindows Flash8です。
721 :
709 :2007/07/20(金) 13:52:02 ID:Gy9TQzwz
>>714 別ファイルじゃないです。ライブラリに全部入ってます。
>>710 の方法もやってみたけどダメですた。
>>721 > 別ファイルじゃないです。ライブラリに全部入ってます。
ライブラリで「最初のフレームに書き出し」にチェックしてるのでは?
それにチェックすると、ライブラリにあるそれらのシンボルが読み込まれるまで
第一フレームの描画が開始されないので、ローディングが意味をなさない。
チェックを外して、適当はフレームに配置しとくか、いっそ別ファイルにする。
723 :
709 :2007/07/20(金) 15:04:17 ID:Gy9TQzwz
>>722 レスどうもです。チェックはずしてみました。
しかし、どうもうまくいきません。
すいません、どなたかお教えください ボタンを押して、変数countを一つずつ足していき 変数countが5になったら、それ以上ボタンを押しても足さないようにしたいのですが 今のところ5<1000という風にしています。 問題なく動いているのですが、もっとスマートに5以上はカウントしないという コードがあればお教え頂きたいです。 環境はwinXP Flash8 です よろしくお願いたします。
>>723 > しかし、どうもうまくいきません。
これでは、第三者には状況がさっぱりわからないので、
どううまくいってないのかをもっと具体的に!
>>724 5<1000ってのがよくわからんけど
ボタンに
on (release) {
if (count<5) {
count++;
}
}
じゃだめ?
727 :
709 :2007/07/20(金) 15:19:07 ID:Gy9TQzwz
>>727 なんでサンプルとスクリプト違うの?
それはいいとして、ローカルで試してるから一瞬で読み込まれるとかそういうことでもない?
>>709 だと、3フレーム目に飛んでしまうとあるが、飛んでも3フレーム目の内容が表示されないと
いいたいのかな?
そのアルバムとかいうののチェックを外した後、どこに配置したの?
その辺を具体的に細かく!
3フレーム目をいったん空にして、そこに適当な文字か図形を配置しただけの場合はどう?
729 :
709 :2007/07/20(金) 15:41:45 ID:Gy9TQzwz
>>727 709を実際に作ってみたがちゃんと動いた、
スペルミスとか不注意が無いかチェックしてくれ。
動作確認はウェbでやってるんだよね?ローカルでしかやってないってことは無いよね?
731 :
709 :2007/07/20(金) 15:53:27 ID:Gy9TQzwz
なんでサンプルとスクリプト違うの?>
サンプルでうまく動かなかったからです。
それはいいとして、ローカルで試してるから一瞬で読み込まれるとかそういうことでもない?>
その可能性はあると思います。
>>709 だと、3フレーム目に飛んでしまうとあるが、飛んでも3フレーム目の内容が表示されないと
いいたいのかな?>
違います。Now Loading が表示されなくて、いきなり3フレーム目が表示されるんです。
そのアルバムとかいうののチェックを外した後、どこに配置したの?>
3フレーム目です。
3フレーム目をいったん空にして、そこに適当な文字か図形を配置しただけの場合はどう?>
同じです。
ちょっと病院行って来ます。
732 :
709 :2007/07/20(金) 15:59:53 ID:Gy9TQzwz
> その可能性はあると思います。 そ、そうなの?! それなら、うまく動いてるってことじゃん…
>>726 ボタンを離した時に
変数countが5以下なら変数countを一つづつ足していく
って感じでしょうか?
ちょっとやってみます
>>734 言い方だけどw
>ボタンを離した時に
=クリックしたときに
一般的にはreleaseを使う。
>変数countが5以下なら変数countを一つづつ足していく
5より大きくなったら足さない。かな
>>734 5以下じゃなくて、5未満が正しいす。
以下は5も含むってこと。
737 :
724 :2007/07/20(金) 16:33:12 ID:nREzrcAH
無事出来ました マイナスボタンの方も if (変数count>0) { 変数count -= 1; } } で上手く動きました ありがとうございました
738 :
709 :2007/07/20(金) 16:59:20 ID:Gy9TQzwz
病院から帰ってまいりました。
>>733 そうなんでしょうか?
サーバーにうpしてみたんですけど、Now Loading が見えません。
回線が光なので速くて見えないのでしょうか?
>>738 >>732 のファイルでダウンロードのシュミレーションしてみると
0フレームでファイルの読み込みが行われてる。
Now Loading が見えないのはそのせい
最初のフレームに書き出しのチェックをはずせば
うまくいくと思う。
ダウンロードのシュミレーション機能ってMXについてるよな?
プリローダーの動作確認はそれ使うかウエブに上げて見る。
ローカルじゃ無意味
740 :
739 :2007/07/20(金) 18:09:35 ID:sv/mzWcZ
どうでもいい自己レス Xシュミレーション ○シミュレーションな、 どうもくせでw >ウエブに上げて見る。 ってのも光回線じゃ今やほとんど無意味だな うちも今じゃ光回線だけどISDNが長かったもんでw
741 :
709 :2007/07/20(金) 18:16:44 ID:Gy9TQzwz
できやした! とりあえず全部の「最初のフレームに書き出し」のチェックをはずせば動きました! 皆さん有難う御座いました!本当に有難う御座いました! しかし、サムネのをクリックしても、拡大画像が表示されなくなってしまったのですが...。
>>741 全部のチェック外してなかったのかよ…
>>722 にも書いたが、最初のフレームに〜のチェックを外したものはすべて、
タイムライン上のどこかに配置しとく。
配置してあるか?
743 :
709 :2007/07/20(金) 18:35:27 ID:Gy9TQzwz
>>743 別に、問題なく動くみたいだけど?
間違ったキャッシュが邪魔してたりはしない?
これは「最初のフレームに書き出し」チェック外れてないけど、いいの?
745 :
709 :2007/07/20(金) 19:47:48 ID:1tRRhrXL
>>744 済みません、外してないのをうpしてました。改めてチェックを外したのをうpしました。
しかし、サムネボタンを押しても、メインのMCに画像が表示されなくなりました。
746 :
Now_loading...774KB :2007/07/20(金) 19:51:54 ID:lM3Elfia
すいません、質問なんですが、 今時計作ってます。 そして、ダイナミックテキスト作って、 dateオブジェクト作って、 時計ができあがったのですが、 ダイナミックテキスト部分をアンチエイリアスにしていたはずが、 パブリッシュした後のフラッシュではただのフォントになって萎えています。 何が悪いんでしょうか?
ダイナミックテキスト
748 :
739 :2007/07/20(金) 20:32:15 ID:sv/mzWcZ
>>745 attachMovie使ってるのか、
じゃチェック入れとかなきゃだめかな。
まあプリローダーは正常だと思うよ、ほとんど機能して無いけどw
しかしこれattachMovieじゃないとだめかな?
まあ作ってる人の自由だけど、、、
749 :
709 :2007/07/20(金) 20:42:55 ID:1tRRhrXL
>>748 なんかいい方法ないですか?
画像を5枚重ねておいて、それを見せたり消したりするとか?
2フレーム目と3フレーム目の間に新しくキーフレーム作って、 そこにattachMovieする可能性のあるシンボルを全部置いておけばチェックは不要 『最初のフレームに書き出し』ってのは要するに1フレーム目に シンボルを全部配置しておくのと同じことで、 ステージに配置されたシンボルだけが.flaから.swfに書き出されるから .flaに余計なシンボルが入ってても.swfの容量は増えないぜという話。 ステージに置くシンボルが一瞬見えるのが困るなら画面外でも全然おk
>>748 チェックしてみたが、リンケージしてある画像はすべてオーサリング時に
配置済みだから、書き出しは不要のはず。
>>749 普通に動いてるよ。
752 :
746 :2007/07/20(金) 21:11:19 ID:lM3Elfia
>>747 レスありがとうございます。
けど、ダイナミックテキストなしで時計って作れるんですか?
>>752 そうじゃなくて、フォントの指定がどうなってるのかをチェックする。
フォントを埋め込んでいるか、デバイスフォントかで違う。
>>750 >>751 あれおかしいなあ?画像表示されない
試しに2フレーム目に置いたけど。。。
どうなってんの?
755 :
709 :2007/07/20(金) 21:16:13 ID:1tRRhrXL
>>753 レスありがとうございます。
今のフォントは埋め込んでいると思います。
というのは、「アンチエイリアス(読みやすさ優先)」を選択しているからです。
ちなみに「デバイスフォント」や「ビットマップ」にしても結果は同じです。
あ、すみません、バージョンは8のbasic版です。
>>756 それ埋め込んでるって言わないぞ。ちゃんとヘルプで調べろ。
758 :
746 :2007/07/20(金) 21:48:15 ID:lM3Elfia
>>757 ,753
あれこれしているうちに解決しました。
「デバイスフォント」以外はてっきり埋め込みと思っていました。
本当にありがとうございました。
(;´Д`)なんとか出来ました。
>>750 氏の言うように、シンボルを配置したらいけました。
しかし、グラフィックを一度ムービークリップに変換しないとダメでした。
全体の流れは。
1フレーム プレローダー
2フレーム プレローダーのループ
3フレーム シンボル置き場
4フレーム サムネアルバム
です。
なんせフラッシュ初心者だったもんで、数週間かかりましたw
みなさん本当に有り難う御座いました(^^)
760 :
709 :2007/07/20(金) 23:11:06 ID:1tRRhrXL
↑あ、名前入れ忘れた。
>>706 にある、
function test( id:int ):Function {
return function( e:Event ):void {
trace( id );
}
}
これって一体どういう処理をしてるの?
idを受け取る関数が呼ばれたときに、Eventを受け取る関数を代入してるのはわかるんだけど、
呼ばれる関数側でEventを受け取るのは絶対なのに、Eventが呼ばれる前にひとつ処理を通してる・・・
そもそもtestはEventを受け取ってないのに、なんでEventを返せるの???
しかもidは上書きされてるのに何故消されないのか・・・・
出来れば内部的な動きを詳しく教えて欲しいです。
あとこれってActionScript独特のもの?
>>761 実行してみてないから解らんが、関数参照をtestの戻り値として渡しているんじゃないかな。
出来るとしてもおれは絶対やらないけどね。
763 :
Now_loading...774KB :2007/07/21(土) 10:51:46 ID:1MS4o6C2
AS3で外部画像を読み込みさせようと思ってます。 var mc : MovieClip = new viewer(); //ライブラリからmc作成 var img_bmp : BitmapData = new BitmapData( 100 , 100 , true , 0xFFFFFFFF); //ロード中bmp var load_obj : Bitmap = new Bitmap( img_bmp ); //ロード中bmpオブジェクト作成 mc.addChild(load_obj); var new_obj:Loader = new Loader(); new_obj.contentLoaderInfo.addEventListener( Event.COMPLETE, function (event){ mc.removeChild(load_obj); mc.addChild(new_obj);}); //ロード中排除、外部画像追加 new_obj.load(new URLRequest(url)); これでロード中の画像(load_obj)から 読み完了ときに外部画像(new_obj)に切り替わるんですが、 これを外部リストから読み込んだ数だけ実行させようと forで繰り返そうとすると、「どのmcかわかんないYO」と怒られます。。。 mc作成の時点でユニークな名前をつければ上手く行くと思うんですが なんかいい方法ないでしょうか?
765 :
763 :2007/07/21(土) 17:02:19 ID:1MS4o6C2
自己解決しますた。 addEventListenerでmcとload_objとnew_objを引数にして 他のファンクションに渡せばよかったんですね。。。
すみません、誰か教えてください。 AS2です。 TextFieldを動的に生成することには成功したのですが、 embedFontsをtrueにすると 表示されていた文字が表示されなくなりました。 他のプロパティは問題なさそうです。 何が原因でしょうか? ----ソース---- ◆表示される this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 160, 120); this.my_txt.text = "HELLO"; ◆表示されない this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 160, 120); this.my_txt.embedFonts = true; this.my_txt.text = "HELLO";
768 :
Now_loading...774KB :2007/07/22(日) 20:05:35 ID:U+7eMnFK
>>766 ようするにフォントを埋め込みなさいって事
769 :
Now_loading...774KB :2007/07/22(日) 23:05:00 ID:QyYGlGS7
Adobeのフォーラムにも書き込んだのですが、レスが付かなかったのでこちらで質問させてください。 Flash CS3 WinXP SP2 IE6 FlashPlayer9 actionscript3 一度読み込んだ外部swfファイルはunloadで消すことによって、 外部swfが消費していたメモリも解放してくれないのでしょうか? 私の勘違いかもしれませんが、もしスクリプトが間違っているなら どなたか教えていただけないでしょうか? よろしくお願いします。 タスクマネージャ→プロセスタブでメモリを監視していますが flashplayer9r45_win_standalone_debug.exeの消費量はずっと51Mから変わりません。 img1.swfの中身はjpeg画像が1枚配置してあるのみでscript等はありません。 var imgLoader:Loader = new Loader(); imgLoader.load(new URLRequest("img1.swf")); addChild(imgLoader); imgLoader.addEventListener(MouseEvent.CLICK, doClick); function doClick (ent:Event):void { ent.target.removeEventListener(MouseEvent.CLICK, doClick); ent.target.unload(); }
>>769 メモリ解放はGCが行う。いつ行われるかはわかりません。
771 :
769 :2007/07/23(月) 01:33:09 ID:Nh3Soih8
質問させてください os winXP Flash 8 です。 ムービークリップに on (press) { this.startDrag(false, -100, 200, 300, -200); } on (release, releaseOutside) { this.stopDrag(); } と書いて、ドラッグさせるようにしたのはいいんですが ネストにした、ボタンなどが効かなくて困っています。 mcを入れ替えたり、Asをキャンセルして動作確認してみたところ このAsの影響とわかりました mcをドラッグし。その位置からまた動かすことができ、ネストにした ボタン、mcを動作させるためにはどうしたらいいのでしょうか? ぜひ、お教えください 構造は 01_mc ←ここに上のAsを書いています ↓ 02_mc ↓ 01_btn となっております。よろしくお願い致します
>772 ドラッグする範囲とボタン範囲を分ける windowsのエクスプローラーが淵しかドラッグできないのと同じですね 移動できるメニューボックスと予想してるんだけど何作るの?
すみません、質問があります。 アクションゲームを作ろうとしているのですが、ジャンプ中に上に壁があったり、下に地面がなかったりするときはhitTestを使って当たり判定をするのでしょうか?
>>774 それでもできる。xy軸で位置判定しても出来る。
ありがとうございます。 言いわすれてましたが、SWF4でパブリッシュするため、hitTestは使えませんでした・・・。 そこでxy軸判定についてお聞きしたいのですが、例えば動かすキャラをjibun(10*10)とします。 そして地面をjimenとすると下のようになると思うのですが、わざわざ障害物(足場や地面など)があるたび書かなければいけないのでしょうか? //ジャンプ後の落下 if(jibun.y - 5 > jimen.y) { //キャラのすぐ下に地面があれば stop(); //止まる処理 } else { jibun.y += 5; //落下処理 }
>>772 ひょっとして地図のひと?
01_mcの親MCを作りその配下に01_mcと同じ大きさの透明MCを下のレイヤーに作成(シェイプでもいいし地図だったら地図でもいいし、
アルファを0にして01_mcにぴったり重ねる。)
親MC.01_mc 親MC.透明mc 、
01._mcに書いていたon (press) 〜を透明mc に移す。
01_mcに以下を記述
onClipEvent (enterFrame) {
this._x = _parent.透明mc._x;
this._y = _parent.透明mc._y;
}
以下同様だが、02_mcと01_btn はドラッグするわけじゃないので
親MC.01_mc.01_btn
親MC.01_mc.02_mc
のように01_mc直下に並列させればOK
透明mcはアルファを0にする必要ないかな(笑)、
まあ、作ってるものによる。
わかってると思うが数字から始まる名前と漢字の名前は便宜上。
779 :
778 :2007/07/23(月) 14:33:09 ID:05fMi0je
よく考えたら親MC作る必要ないな(^_^;) 単に下のレイヤーに作るだけでいい。 onが重ならないように作ればいいってだけのはなし。
>>778 レスどうもありがとうございます
透明mcを新しく作って、それをドラッグさせ
移動した分の_x、_yを01_mcに反映させるって考え方でいいのでしょうか?
ちょっとやってみます
>>778 無事動かし、ボタンも完動させることができました
迷路に入っていたので、けっこう完動しました
本当にありがとうございます。
_root.MC1._x = 50; _root.MC2._x = _root.MC1._x + _root.MC1._width + 10; _root.MC3._x = _root.MC2._x + _root.MC2._width + 10; . . . ↑こういう感じの連番MCを手前のMCの座標を元に配置するようまとめて指定する方法はありませんか
>>777 基本はそんな感じですが、そのあたりの説明をちゃんと
するとかなり複雑なことになり始めます。
左右に移動しつつであれば、右下、左下の位置を調べないとだめとか。
本屋にいくとアクションゲームの作り方、みたいな本が並んでいるので
そういったものを参考にするとよいかと。
>>782 手前ってよくわからんが、
MC最大のx位置から減算して配置すればいいのでは?
>>782 for (var i=2; i<=3; i++) {
var PrevTarget = _root["MC"+(i-1)];
_root["MC"+i]._x = PrevTarget._x + PrevTarget._width + 10;
}
教えて下さい。BGMとキャラクターの声が入ったゲームを作ってます。 BGMはずっと鳴りっぱなしでいいんですが、キャラの声にstopをかけると 何故かBGMまで止まってしまいます。どこが悪いのでしょうか? //入れ物を作って、 _global.bgm = new Sound(this); _global.voice = new Sound(this); //BGMを鳴らして、 _global.bgm.attachSound("bgm1"); _global.bgm.start(2, 999); //マウスをクリックしてる間だけ声を出し続けます。 on (press) { _global.voice.attachSound("aegi1"); _global.voice.start(0, 999); } //マウスを離すと声をストップ。 on (release, dragOut) { _global.voice.stop(); } ↑ここで何故かBGMまで止まってしまうんです…。
>>786 Soundクラスについて読めば書いてある。
サウンドの管理はMCごとなんで、同じタイムラインに適用したサウンドは
どれかを操作すれば他のすべてにその結果が及ぶ。
この場合は、どっちもthisにわりあててるから、別々の操作ができない。
BGMとVOICEは別々のMCにわりあてればよい。
788 :
786 :2007/07/24(火) 01:08:24 ID:B1/myDIX
>>787 わかりました。どうもありがとうございます!!
AS3.0でもそうなのかな。なんかmixerとかあるけど自由に出来るようになったのかな。
Webページで使うflvPlayerを作っていて、タイムラインのマウスイベント操作でわからなくなりました。 Action script3でタイムバーの時間調整つまみをドラッグして、flash領域外に持っていったとき mouseEventが取れなくなります。 当然といえば当然なのですが。 Youtubeのplayerはflash領域外にドラッグ状態のマウスを持って行って マウスを放すと、マウスを放したというイベントを取得しているようです。 Flash領域外でもマウスを放した事がわかるようにするにはどうすればいいのでしょうか? もしかしてJavascriptと連携してイベントを取る必要があるのでしょうか? ご存じの型がいましたらreturnお願いします。
>> 790 onReleaseOutside
うほっ、アンカーミス。 onPressで座標保持して、onReleaseOutsideで戻してあげればいいはず。
>>783 そうですね、書籍を探して参考にするのも手ですね。
わざわざありがとうございました。
結構重いswfに、プリロードするスクリプトを入れたいと思い、 いろいろなスクリプトをためしているのですが、 読み込むとまず、空白表示で ちょっと時間が経過してプリローダが一瞬しか表示されず、 すぐ後のムービーが始まってしまいます。 素人発言で申し訳ありませんが、解決方法などあれば 教えていただきたいと思います。 よろしくお願いいたします。
>>794 シンボルのリンケージ設定で「最初のフレームに書き出し」がついてるからだと推測。
>>794 プリローダはダウンロードのシュミレーション機能でチェックする。
>>709 からの質問とレスも参照してくれ。
797 :
794 :2007/07/24(火) 18:45:46 ID:UPeo9FEc
うわっ解消しました! ちょっと前のログも確認してない自分は、あほですた。 シンボルのリンケージでした! いつ自分でつけたのかも不明orz ご丁寧に回答いただきありがとうございました。感謝感謝でございます。
教えて欲しいんですが ボタンをon (release)して、ボタン横に"窓_MC"を出したい時に attachMovie で出す場合と"窓_MC”のタイムラインに visible、falseの2フレーム作り、表示、非表示させている場合では 処理的な負荷はかなり変わるものでしょうか?
>>792 onReleaseOutsideで検索してみたらas2のやり方だったようで、onReleaseOutsideをas3で実装する方法を探した結果
stageに対してイベントリスナーを登録したら画面全体からマウスイベントを取得できるようになりました。
stage.addEventListener(MouseEvent.MOUSE_UP,mouseUpHandler);
as自体経験不足だったので大変助かりました。ありがとうございます!
>798 2000個のMCをattachする時間と それをfalseした状態にしておいて trueにした時間を計ると 断然visibleのが早い
ttp://www.geocities.jp/hirameki_07/participants.html ここの参加者紹介のFLASH部分に関して質問です。
この参加者の紹介枠ってDBかテキストからの自動生成だと勝手に思っているのですが、
もとから縦のサイズが決まっていれば、限界値の計算してこのように動的に配置することも可能だと思います。
ですけど、FLASHでラベル(コメントの部分)の文字が伸びればそのまま背景も伸び、
MC全体が伸びるというような、HTMLのボックスみたいなものを作ることって簡単に出来るものなんですか?
文字数の計算とかして手動でMCの長さ変えてるのかな〜とか思ってるんですが、
もっと簡単にできるものであるなら教えてもらえないでしょうか
>>801 heightでテキストフィールドの高さが取得できる
背景は9スライスにしとけばおk
803 :
Now_loading...774KB :2007/07/26(木) 11:44:59 ID:BpsQvjmF
actionscript3を使用してブラウザ上に表示されているflash player(自分自身)を終了または初期化することは出来ないでしょうか? flash playerでのメモリの解放はガベージコレクションが行うとのことですが、 いっそのことflash playerが終了してしまってもかまわない(ブラウザを閉じることなく)ので メモリの解放をしたいのですが出来なくて悩んでいます。 よろしくお願いします。
805 :
803 :2007/07/26(木) 12:14:18 ID:BpsQvjmF
>>804 一時的にメモリを500M(時間差で100Mを5つ)ほど使用するswfを読み込ませたいのですが、
そのswfをunloadしてもメモリが解放されないと環境によっては非常に動作が重くなってしまうので困っています。
申し訳ありませんがswfのメモリ使用量を見直す方向は無しでお願いします。
>>805 swfが終了されれば当然メモリは解放されるわけで、
それはOSの処理で、SWFでどうこうできる問題ではないのでは?
swf実行中なら、確実に参照を外してGC対象にするとか。
swfのメモリ使用量の見直しというか設計から見直した方が良い。
807 :
803 :2007/07/26(木) 12:43:07 ID:BpsQvjmF
>>806 やはり、ブラウザを閉じる等の動作をさせないと無理なんですね。
ご指摘通り設計から見直してみたいと思います。
ありがとうございました。
ていうか、勝手にplayerが終了したりブラウザ閉じたりされたら、 一般人はウイルスかと思ってびびるし、激しく不愉快と思われる。
別々のHTMLでSWFを埋め込んどいて、 getURLで、次へ遷移すればいいんでは?
スクリプト使わなくても済む垂れ流しコンテンツだったら 帯域制限調整したflvにまとめてたれ流せるよ。
811 :
803 :2007/07/26(木) 14:15:52 ID:BpsQvjmF
>>808 解決策が見つからないので迷走してます・・・
出来るだけ不快感を与えないような設計にしたいと思います。
>>809 メイン用のswfを張るhtmlと一時的に読み込むswfを張るhtmlの
2つのhtmlを用意する方法でメモリの解放を当初考えていたのですが
scriptを使って綺麗に解決する方法はないかとこちらで質問させてもらいました。
最後の手段として確保してある状態です。
>>810 flvのことはよくわからないのですが、垂れ流しコンテンツではないです。
ASファイルの中身を外部プログラムから動的に書き換えることって可能でしょうか?
>813 ASファイルってただのテキストだからCGIでも出来るっしょ ASファイルいじるって事は、サーバでリクエストに応じて swf吐き出すんかな? 詳しい方どうぞw
>>813 動的と言うことはswfを書き換えることなので無理
変数をxmlやtxtで読み込むswfなら どうにでもなるけどね ファイル名とかMCのプロパティ値とか
サーバースクリプトでswf作成するってことだろ? PHPでMing使えばいいよ
>>818 それはスタティックを新たに作成するわけで、動的にではないのでは?
>817 txt書き換えてるだろ!swfとAS(テキスト)勘違い乙
>>820 いや、動的って普通swf起動してる状態でなんだと思ってたよ。すまんすまん。
ああ、ちなみに読み込むテキスト書き換えてもプログラムは書き換わってないからなw
別に読み込むテキスト書き換えてプログラムを動的に書き変えることも出来るよ Flexだけどね
どこまで動的とやらに期待してるかだが 何がしたいんだろう?
テキスト変えただけでなんでプログラムが書き換わるんだ?
flexサーバーでswfをコンパイル出来る やべ、ここ馬鹿ばっかりだわwwwww 大人しくしてます
>>827 だからさ、コンパイルじゃなくて動的にっていってるのがわからんのかw
動的ってなに?
id判別してスクロールもできねーのかよw
結論。
>>813 が、適当に「動的」とか書くのが悪い。
ダイナミックに って書けば良い。
>828 ASを動的に生成して、flexでコンパイルして表示するのは 動的って言わないの?具体的にどうやるかしらないけどね
>833 flexサーバな
何らかのアプリでテキストファイルを編集するって意味だろ それにしても動的って何だ?
AS2のときにあったクエリストリング(test.swf?id=8みたいなの)を取得するのを 3.0でしたいんだけどヘルプ見ても見つからない・・・ _root.id とか stage.id とか var rootMC:MovieClip = this.root as MovieClip; txt.text = rootMC.id みたいなのを試してみたんだけどエラーがorz おしえてもらえないでしょうか
FLASH8を使ってます。 yahoo financeなどのページから、株価の数値だけを取り込むにはどのようにすれば良いのでしょうか。
お邪魔いたします 1フレーム目に var nMaxScale = 240; var nMinScale = 100; function xZoom(nZoomVal) { nNextZoom = 01_mc._xscale+nZoomVal; 01_mc._xscale = 01_mc._yscale=Math.max(Math.min(nNextZoom, nMaxScale), nMinScale); } 拡大ボタンに _root.xZoom(50); というコードで拡大対象を01.mcと02.mcにする場合 どのように書き加えればいいのでしょうか?
>838 _root.xZoom(01_mc,50); function xZoom(mc,nZoomVal) { nNextZoom = mc._xscale+nZoomVal;
>>836 flash.display.LoaderInfoのparameters
詳しくは読んでない
質問させてください、先生方。 Macromedia flash8 BASICを使用しています。 ActionScriptでダイナミックテキスト内の文字を縦書き表示 にしたいのですが、無理でしょうか? 静止テキストだと「テキストの方向を変更」でできるのですが。 ダイナミックテキストの方向を90°倒して、「@MS ゴシック」の ように先頭に@付けたらいけないかな・・・と試しても無理っぽく て困っています。 (´;ω;`)助けて・・・
西洋の製品や規格は東洋に優しくないからな。
843 :
Now_loading...774KB :2007/07/28(土) 00:02:00 ID:6WowSmrC
AS2.0でloadMovieなどで、別ドメインのswf読込みは可能ですか? 共有動画を読み込みたいのですが・・・
どなたかご存知の方ご教授願います。 仮にA.swfとB.swfがあるとして、 A.swfにB.swfをloadClip等で外部読み込みしたあと、 A.swf上で、B.swf内でリンケージしたデータにアクセスするにはどうしたらよいでしょう。 外部読み込み先のリンケージデータへのパスがうまくいっていないようでundefinedになってしまいます。
>>844 具体的にどうかいてるの?
B.swfで_root〜って書き方してたら_lockrootする。
846 :
844 :2007/07/28(土) 01:11:12 ID:03uI+748
すみません、自己解決しました。参考までに。 【A.swf】 [B.swfまでのパス].bgm_sound.stop(); 【B.swf】 this.createEmptyMovieClip("mc",1); ←適当なmc作成 var bgm:Sound = new Sound(mc); ←mcに割り当て bgm_sound.attachSound("bgm.mp3"); bgm.start();
847 :
Now_loading...774KB :2007/07/28(土) 02:10:30 ID:jR6P7T04
n X Y 1 814 175 2 725 262 3 676 86 4 629 75 5 643 361 6 720 233 7 733 89 : : といった感じで,座標(X,Y)があるときに, a. 1からnまで順に点が移動して, b. かつ,点の移動の軌跡が線で残る ようにするためには,どのような関数を組み合わせるのがベストでしょうか? ベクトル関数でよいでしょうか? (Flash 8使用)
>>847 ベクトル関数ってよくわからんが、描画メソッドのlineToとかでいんじゃないかな。
Flexで、埋め込みでないフォントを回転させても消えないようにしたくて ビットマップに転写するコンポーネントを自作したんですが (お世辞にも綺麗ではない) ・・・これって、フォントの著作権とかにはひっかかりませんよね?
著作権って言葉の意味は脇に置いておくとして、 加工したから権利には引っかからないというものではない。 そのフォントをどのように扱っていいのかによる。 例えば、 たぶん。
>>849 ライセンス次第。
埋め込みどころかデジタルコンテンツへの利用からして制限しているフォントもある。
自分自身が置かれているurlを知ることはできますか? Javaでいう、getCodeBase()のような。
↑ _root._urlがAC3.0で使えないので困っています。
trace(loaderInfo.loaderURL);
オールフラッシュのページ等でメニューボタンを押すと、コンテンツの場所への移動が 始まりイーズイン・終わりイーズアウトのような動きをするタイプはどのように作られているのでしょうか? random程度しか使った事ありませんが、やはりMathを使っての計算式ですか?
>>855 あなたのコンテンツは解らないので、多分そうだろとしか答えられん。
>>855 インタラクティブなアクションをコンテンツにインクルードしたいのなら
ミニマムなインテリジェンスとマキシマムなアクションで対処するしか無いだろうがこの・・・ええと
冗談はさておいて、要はヌルっとした動きを再現したいんだよな?
じゃあ pi とか sin とかでフレーム毎に円を描く感じの奴つくって
その x だか y だかのみを使えばいいんじゃね?
あてずっぽうだからあってるか分かんないけど。
何かあるたびに作り手の見せたい演出があり、 それが終わるまで待たされる閲覧者がイラつくというありがちなFlashコンテンツを作ろうとしていますか?
読み込み待ちの演出はかまわないけど いまじゃ演出のために読み込みまちだからなw
860 :
Now_loading...774KB :2007/07/28(土) 11:55:34 ID:aE3VBp2d
先日からFlash始めたばかりで、ものすごく基本的なことで悩んでいます。 画像を表示するFlashを制作し、更新時にFlashを使わなくても更新できる ように、画像の呼び出しは同ディレクトリに設置したテキストファイル から変数として画像名を取り出しています。 filename.txtの中身 photo=p0001.jpg&info=画像の説明 これをloadVariablesで読み出し、 img.loadMovie(photo); として呼び出しをやってみても呼び込まれません。 img.loadMovie("p0001.jpg"); だと読み込まれます。 テキストファイルから取得したinfo変数の中身はダイナミックテキストで 所定の位置に表示されています。photo変数も同様にダイナミックテキスト で表示できています。 loadMovieで変数を読み出すにはどうすればいいんでしょうか? ちなみにphotoをtraceすると、中身は_level0.で型はObjectになっています。
861 :
860 :2007/07/28(土) 11:56:54 ID:aE3VBp2d
書き忘れてました。 環境はFlashMX2004です。 用意したjpgファイルはプログレッシブではありません。
862 :
855 :2007/07/28(土) 12:06:03 ID:9n8pL51I
>>856-857 レスありがとうございます、857さんのpi、sinについてまた調べてみます
理想的な動きはauのLISMO!の以前のキャンペーンページみたいのだったのですが
もうflashがリニューアルされてて見れなくなってますね;
モーショントゥイーンで簡単なの作ってみました、moveボタンで横に動きます
ttp://swfup.info/view.php/7409.swf わかりずらいかもしれませんが、こうした_xの移動の動きをスクリプトで動かしたいのです
>>861 URLエンコードって.(ドット)使えたっけ
>>862 モーショントゥイーンでできるのならそれでいいのではないかな。
ASだとMatrixクラスのグラデーションとか使わないとだし。
865 :
860 :2007/07/28(土) 12:14:19 ID:aE3VBp2d
>>863 テキストデータにp0001を入れてloadMovie(photo+".jpg");は試しましたが
ダメでした。
866 :
855 :2007/07/28(土) 12:17:52 ID:9n8pL51I
>>862 一応グラデーションは動く見た目を分かり易くする為なので特に関係ありません;
実際動かすのは、テキストや画像を内包した横長のムービークリップですね
>>865 たぶん読み込まれる前にとかいう話だと思うが、loadMovieする直前にphotoの内容を
traceしてみれば?
Flashのバージョンがわからんが、LoadVarsを使えればそっちを使った方が良いよ
>>866 動かすだけならonEnterFrameでMC._x ++;とかやればいいのでは?
単純な矩形を作ってonEnterFrameでの処理を試してみるとよく解るよ。
869 :
860 :2007/07/28(土) 13:03:44 ID:aE3VBp2d
>>867 LoadVarsは試しましたが同じ結果でした。
traceはloadMovieの前後に入れてあります。返す値は同じものでした。
バージョンはFlashMX2004(AS2.0)です。
昨日からFlashを始めて、シンボルとか基本的なことを覚えながらASに着手
しましたが、Perlなどとはずいぶん勝手が違うので戸惑っています…。
週明けにまた会社で苦悩するのかと思うと、なんとかして休日中に解決策を
見つけたいと思います。
ちなみobject.toStringで無理やり型を文字列にしたところ、中に入っていた
文字列は Object でした。しかし、ダイナミックテキストで中身を表示さ
せるとファイル名が出てきます。
>>869 やりたいことは、テキストファイルからjpgのファイル名と説明のURLエンコード型式の
テキストを読み込み、そのjpgをMCに表示し、テキストとして説明を表示する。で、いいのかな。
Flashのヘルプにはサンプルがあると思うけどそれを試してみた?
871 :
860 :2007/07/28(土) 13:19:42 ID:aE3VBp2d
>>870 やりたいことはまさにその通りです。
Flashのヘルプはあまりにも読みづらかった(探しづらい)のでGoogle検索
しかやっていませんでした。
インストールしてあるマシンが会社なので、いまヘルプを参照することが
できません…。AS辞典などの書籍は3冊読み漁りましたが、サンプルには
ファイル名が直のものしかありませんでした。
>>871 サンプルは"flash loadvars"などとしてググればいくらでもありますから参考にしましょう。
873 :
名無しさん@そうだ選挙に行こう :2007/07/29(日) 02:02:17 ID:Ck7Pf/HG
flash使って外部データ(DB)とやりとりするコンテンツを作っていて、 そのDBを参照する際はXMLベースにデータを落としてから、ASからロードしている形式なのですが、 そのXMLが、当たり前ですがWebから丸見えなんです。 なんかこういうサーバサイド的なデータをやりとりするflashを作る際は、 元データのxmlとかtxtの扱いってどうやって丸見えを防止してるんでしょうか? httpサーバからのアクセス制御ぐらいしか思いつかないんですが・・・。 (といってもrefere元見るとかぐらいですが)
>>873 スレ違いな気もするが。。。
Flash がどっからでも見れる必要があるなら、それは防止できない
するとしたら、書いてるとおりサーバ側で遮断するしかない
リファラで切るってのもひとつだけど
DB 見てるってことは、サーバ側にもプログラムがあるはずだから
flash 内にパスワードを投げるようにしといて
(LoadVars とかで POST に設定しとく)
プログラムでチェックして出し分けするとか
通信内容見れば一発だし、完全に隠すことは出来ないけど
アドレス直打ちで表示されることはなくなる
>>873 xmlテキストでなくFlashからphpを呼んでDBアクセスすればいんじゃね
876 :
回胴人 :2007/07/29(日) 07:48:36 ID:KlCb3iE6
携帯の待ち受け用のアナログ時計をつくりたいのですが、色々なサイトに載ってるスクリプトでやってみたんですがうまくいきません。 どなたか教えていただけないでしょうか。 FLASH Pro 8 使用しております。 レイヤー1 背景 レイヤー2 針(長針、短針、秒針) インスタンス名 long,short,second レイヤー3 ダイナミックテキストボックス(日付) 変数today レーヤー4 フレーム1 fscommand2("FullScreen", true); fscommand2( "SetQuality", "high" ) d = fscommand2("GetDateDay"); day = fscommand2("GetDateWeekday"); hr = fscommand2("GetTimeHours"); mn = fscommand2("GetTimeMinutes"); sc = fscommand2("GetTimeSeconds"); short._rotation = hr*30+mn*0.5; long._rotation = mn*6+sc*0.1; second._rotation = sc*6; today=d; レイヤー4 フレーム2 gotoAndPlay(1); これでやってみたのですが、うまくいきません。 よろしくお願いします。
>>876 どううまくいかないかを書かないと解らん。
fscommand2の所をdateオブジェクトにしてswfでは動くのか?
パブリッシュはその携帯が対応してるバージョンにしてるのか?
878 :
873 :2007/07/29(日) 10:44:54 ID:Ck7Pf/HG
>>874 なるほど、パスの発行も一つの手ですね。
ただ、毎回入れるのも大変になりそうです(cookieで回避?)
>>875 なるほど、cgi直のリクエストでその中で認証させてやるのも手ですね。
いずれにせよそういう方法くらいになるんですかね。
なんかflashってビジュアル的は抜群なんだけど、
DBとの直の呼び出しとかできなく、関数も乏しく、
AS的駆使して動的コンテンツ作ろうと思ったらかなり不便というか、
まだちゃんと確立された技術じゃないって感じですね・・・。
答えてくださった方ありがとうございました。
板違いかもなので、解決しなければflashのスレ?でも聞いてみたいと思います。
(マルチになるかもですみません)
>>878 つか、確立されてて、あなたが知らないだけなのだが。
全画面表示を、マウスでボタンをクリックしたときに終了させたいと思います。 Escキーを押せば全画面表示が終了するので、マウスでボタンをクリックしたらEscキーを押したことにするようにしたいのですが Escキーを押したことにする部分のやり方がわかりません。 調べてもキーイベントの事ばっかり出てきてショボン どなたか教えてください。お願いします。
881 :
回胴人 :2007/07/30(月) 10:28:30 ID:xhifxSIX
mcのActionScriptから、rootにあるmcを指定する場合、 AS2.0だと _root.mc名 で指定できましたが、 AS3.0では何と記述すればよいんでしょう??? 当方WinXP FlashCS3です。 どなたかお願いします。
>>882 場所にもよるけど
(root as MovieClip).mc名
かな?
今までのに慣れてるんだったら最初に
var _root:MovieClip = root as MovieClip
と書いといて、あとは_root.mc名でもいいんじゃね?
flash8ってobjectDumperってimportできますか? ググったらmx2004とかの文献ばかりでわかりませんでした。 あとimport宣言してもきちんと取り込まれているか、 確認する方法ってありますか? プレビューで確認しても何のメッセージも表示されないから困っています。
>>884 flash8のヘルプでobjectDumperを検索してhitしなければ無いのでしょう。
importされているかはnewすればすぐ解るのでは?
>>862 もう見てないかもだが、Easingに関しては結構ソース浮いてるはず。
デフォルトでもパッケージあった気がする。
『ActionScript TweenかEasing』でぐぐってみれ。
で、クラス自作したいとかなら話は別。
ざっと考えると、
1.上で誰か言ってたsinのx値やらy値やら。
2.対数グラフでの近似。最後は丸める。
3.二次曲線。
4.現在地から目的の座標までの3分の1までの距離ずつ進ませる。もちろん分母を引数として渡せるようにしておく。最後は丸める。
とかまぁアイディア次第でやりようはいくらでもあるし、それぞれ挙動も違いがある。
他人のソース使うなら、中身読んでどういう計算してるか理解するしてから使う癖つけとくと上達早いし、身にもなりやすいと思うぞ。
ただ、他人の書いたソース読むのは苦痛だってことだけは肝に銘じて、がんがれ。
禿げそうになったら翌日に回すんだぜ?
AS2.0から1.0に移行しようと思っているのですが、 その際に1.0で使いやすい書籍はありますでしょうか?
ttp://www.finalfantasyxii.com/ こちらにありますメニューバーのようにマウスが触れると拡大縮小するようなASは
どのように組んだらよいでしょうか?
一つのステージを作り、ASで処理するという事はなんとなく分かるのですが、
今までボタンは単体でしか作った事しかないので混乱しております。
環境はXP、MX2004です。よろしくお願いします。
AS2.0ですが、 BtnTestクラスを定義するとして、 そのクラスのコンストラクタでBtnMCというMCのonReleaseイベントに 同クラス内に定義してあるPressFuncという関数の参照を設定したとします。 PressFunc関数での処理は、BtnTestのメンバ変数を変更しようとするのですが、 実際動かしてみるとPressFunc内でのthisは自分の関数を指すようで、 BtnTestクラスにアクセスできません。 PressFuncからBtnTestにアクセスする方法としては onRelease = function(){〜みたいな匿名関数や、 _root.cBtnTest.TestVar = 1;みたいにタイムライン上のインスタンス変数へ直接指定、 またグローバル変数にクラスの参照を設定してそれを使う、 など方法は色々あるでしょうが、他に簡単な、 できるだけクラス定義内で解決できる方法はないでしょうか? こういう場合は大抵こうする、みたいなセオリー的なものでもいいのですが。 class BtnTest{ public var TestVar:Number = 0; public var BtnMC:MovieClip; 〜略 function BtnTest{ BtnMC.onRelease = PressFunc; }; function PressFunc(){ this.TestVar = 1; //←このthisはPressFuncを指す trace(this.TestVar);//undefinedが返る }; }
>>889 mxパッケージが使える環境なら、
mx.utils.Delegateクラス使って委譲しちゃえば?
>>890 おお、以下のように変えただけで、無事PressFunc関数内のthisが
呼び出し元クラスを指すようになりました。
ソース的にも変更箇所が少なくて良いですね。
ありがとうございました。
import mx.utils.Delegate;//←新規インポート
class BtnTest{
〜略
function BtnTest{
BtnMC.onRelease = Delegate.create(this, PressFunc);//←変えた場所
};
function PressFunc(){
this.TestVar = 1; //←このthisはBtnTestを指すように
trace(this.TestVar);//1を表示
};
}
>>888 拡大縮小は_xscale , _yscale を使う。
その後に拡大または縮小された分だけ左右の文字位置をずらす
壁にぶち当たっています。。。。 mcをズームイン、ズームアウトさせるAsを組んだのはいいんですが mcの端でズームアウトさせるとmcの中心点で縮小するせいで mcが画面外になってしまいます。 例えると、鬼のキャラのつま先をズームしていって、最大のところから ズームアウトすると、鬼のキャラが画面外で小さくなっている状態です これを画面内でズームアウトしていく方法はありますでしょうか var nMaxScale = 300; var nMinScale = 10; function xZoom(nZoomVal) { nNextZoom = キャラ_mc._xscale+nZoomVal; キャラ_mc._xscale = キャラ_mc._yscale=Math.max(Math.min(nNextZoom, nMaxScale), nMinScale); } ズームイン_btnに on (release) { _root.xZoom(50); } ズームイン_btnに on (release) { _root.xZoom(-50); } となっております。よろしくお願い致します 環境はwinXP、FLASH8です。
>>892 892さんには簡単な事だとは思うのですが、私はただただ納得してしまいました。
明日早速試してみます。ありがとうございました!
>>893 例えが例えになってないよ。
質問の意味が良くわからないんだけど、
足とか、体とかパーツごとに拡大縮小してるなら、入れ子にして基準点でくっつけとけばいいよ。
例えば棒人間がいるとして
○ 1 2 3
| 4 5 6
/\ 7 8 9 ←基準点の場所
胴体[|]の基準点はど真ん中の2番
頭[○]の基準点は8番
右足[ / ]の基準点は3番、左足[\]の基準点は1番みたいに。
階層は胴体のなかに頭と左右の足を入れる。
>888 FuseKitというライブラリーを使って見なさい!
ActionScript3でメインのタイムラインのcurrentframe調べるにはどうすりゃ良いんだ? なんか_currentframeを書いたら怒られて、ヘルプを検索しみたら ムービークリップの_currentframeプロパティしか見つからなかったんだが・・・・・・
currentFrame
AS3から、"_"の付くプロパティ名が廃止になったんだよね
loadMovie("image/photo_img.jpg", this.photo_albam_mc.board); これでローカルでは画像をよみこめているんですが サーバーにうpすると読み込めなくなってしまいます。 誰かお教えください・・・<(_)>
>>900 this.photo_albam_mc.board.loadMovie("image/photo_img.jpg"); は?
サーバーに上げるとダウンロードの時間がかかるから
読み込み完了してから再生とかしないとだめかもね。
画像をアップしてないのでは
//スクロールスピード nSpeed = 5; // targetX_array = new Array(); targetX_array = [0]; //目的地となる、X座標の初期値 nTargetX = 0; // function xMove() { var nDest = nTargetX-this._x; if (Math.abs(nDest)<0.3) { this._x = nTargetX; delete cont_mc.onEnterFrame; } else { this._x += nDest/nSpeed; } } //移動の設定用(ボタンから呼ばれる) function xSetMove(nNewTargetX) { nTargetX = targetX_array[nNewTargetX]; cont_mc.onEnterFrame = xMove; } //ボタンのスクリプト btn1.onRelease = function() { xSetMove(0); } このスクリプトで_x方向には動かせるようになったのですが に_y方向にも同じような動きをさせたい場合は どのように書き加えればよろしいのでしょうか? よろしくお願いします
904 :
Now_loading...774KB :2007/08/03(金) 19:38:20 ID:souxDv+A
this.onEnterFrame = function ():Void { for(var i:Number = 0; i < octaves; i++){ offset[i].x += speed[i].x; offset[i].y += speed[i].y; } // マウス位置によって変化量を調整 var scalex:Number = (this._xmouse-w/2)/5; var scaley:Number = (this._ymouse-h/2)/5; bmp.perlinNoise(w/30, h/30, octaves, rdm, false, true, 1, true, offset); var dmf:DisplacementMapFilter = new DisplacementMapFilter(bmp, mappoint, 1, 1, scalex, scaley); image.filters = [dmf]; }
>>903 どっかから持ってきたソースなのか・・・
普通にXの部分をYに置き換えりゃいいだけだと思うが
906 :
Now_loading...774KB :2007/08/06(月) 09:14:09 ID:gDeSoxdI
Tweenクラスを使用した場合、 Flash Player 6 で再生したときに不具合は出ますか?
on (press) { this.loadMovie("img/1.jpg"); } 上のような記述でクリックして外部jpgの表示することは出来たのですが、クリックせずにロード時に外部jpgを表示したい場合はどのように記述すれば良いでしょうか
>>907 クリックした時のアクション内容を、フレームアクションにでもする。
flashのコーディングの話で悪いんだが も前らの使ってる入力支援のソフトを教えてください 登録した文字列orクリップボードをアクションウィンドウに貼り付けたい CLCL:2回呼び出さないと貼り付けてくれない clipNote:貼り付けられない などと不具合があるお
910 :
909 :2007/08/06(月) 14:31:44 ID:3qmXTMnn
やはり、どう見てもスレ違いです ありがとうございました
>>909 ActionScript専用エディタにクリップボード機能がついてる物もある。調べてみ
ローカル変数を作りたいんだけど、まとめて作るのはどうするの? var tempZ = var tempX = var tempC = 0; これだとvarで怒られた
913 :
909 :2007/08/06(月) 18:44:50 ID:3qmXTMnn
>911 専用エディタですか。ちょっと後回しかな。ありがと
>>912 変数定義は1行1定義が無難。
1行1定義だとあとでコメントアウトとか簡単にできるし。
何がなんでもやりたいなら、
var a = 0, b = 0, c = 0;
とか、無理やり
var a, b, c = b = a = 0;
とか。
>>909 Eclipse + ASDT 使ってる。
シームレスに HTML や CGI も書けていい感じ。
>907 俺もASを始めたばっかりなんだが、「board」という適当な大きさのmcをつくって onClipEvent (load) { loadMovie("image.jpg", this.board); } と書いて読み込ませてる。 続きまして・・・・ 俺も教えて欲しいことがあるんですけど mc内の座標を取得して、_rootステージと座標との差分を 出すにはどうしたらいいんでしょうか? 今 TargetX = 01_mc._xmouse; TargetY = 01_mc._ymouse; // ZeroX = _root._x; ZeroY = _root._y; function Click_Move() { //目的地と現在地の差分 var DestX = TargetX-ZeroX; var DestY = TargetY-ZeroY; と書いてみましたが、どうも違うようです よろしくおねがいいたします
>>915 どことどこの差分なのかよくわかんないんだけど、
TargetX = 01_mc._xmouse
ZeroX = 01_mc._x
じゃない?
_root._xmouseじゃない?
918 :
Now_loading...774KB :2007/08/07(火) 02:04:57 ID:m9lgr7pu
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) 上下キーによるスクロールで質問です。 valueMというMC内に、txt1_insというインスタンスのテキストフィールドを 配置し、ここに複数行の文字列を表示させて上下にスクロールさせたい のですが出来ません。ASは下のようにしています。 this.onEnterFrame = function() { if (Key.isDown(Key.UP)) { this.valueM.txt1_ins.scroll -= 2; trace("Key.UP");//確認用 } else if (Key.isDown(Key.DOWN)) { this.valueM.txt1_ins.scroll += 2; trace("Key.Down");//確認用 } }; 確認用のtraceも出ません。問題点をご指摘願います。
919 :
918 :2007/08/07(火) 03:24:42 ID:m9lgr7pu
自己解決しました。 原因は、他のアクション(ボタンアクション)でもthis.onEnterFrame = function() { } の部分があり、動作が衝突していたためのようです。
920 :
Now_loading...774KB :2007/08/07(火) 20:33:14 ID:/N4iyxRs
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) ボタンによるthis.onEnterFrameとフレームでのthis.onEnterFrameについて 質問です。 あるボタンに下のASを書き、 on (press) { this.onEnterFrame = function() { //動作@ 押している間は動作 }; } on (release) { this.onEnterFrame = undefined; //動作@の停止 } フレームアクションとして下を書きました this.onEnterFrame = function() { trace("継続") //動作A }; ボタン操作が無い場合は、常に最初から『継続』が表示されるのですが、 一旦ボタンを押すと表示が止まり、Aが全く動作していません。 動作Aを回復するにはどうしたら良いでしょうか。
>>920 thisの参照先のムービークリップが同じだからでしょう。
MCを変えればいいと。
>>920 フラグを使う。
フレームアクションに
if(BtnPress == 1){
// 動作1
}else{
trace("継続");
// 動作2
}
on(press){
_root.BtnPress = 1;
}
on(release){
_root.BtnPress = 0;
}
こんな感じ
>920 flashplayer9だと問題なく動作するんだが。 v7に拘るなら on (press) { _root.ボタンのインスタンス名.onEnterFrame = function() { }} みたいなー
924 :
920 :2007/08/07(火) 21:36:56 ID:/N4iyxRs
925 :
920 :2007/08/08(水) 00:56:04 ID:alOzvLRd
(連投失礼します) 検討し、試した結果、上記以外の方法を取りました。 on (release)で関数を呼び出す方法で、 function kansuA(){ this.onEnterFrame = function() { trace("継続") //動作A }; } と、定義し、 on (release) { this.onEnterFrame = undefined; //動作@の停止 // kansuA(); } と書きました。これで、ボタンを押す度にthis.onEnterFrameが 再開するようにしました。
質問です 大雑把ですが Flash MX 2004において 画像をタイル状に分割して 分割したそれぞれに名前を付けるにはどうすればいいのでしょうか?
>>926 どうすればって、、、分割したそれぞれにインスタンス名つければいいのでは?
名前の付け方を教えてってこと?
928 :
926 :2007/08/08(水) 07:24:27 ID:DLSULC95
わかりにくくてすいません Flash内で指定した画像を 閲覧者の指定通りのサイズの長方形に分割して それぞれを個別に制御できるように名前をつけたいのです
>>928 つまり、分割するにはどうすればいいのってこと?
たとえば1つの画像を左右2つに分割して、それぞれ移動ってのは出来るの?
930 :
928 :2007/08/08(水) 08:03:07 ID:DLSULC95
できませんです 2004ではActionScriptで分割・制御ができると言う話を聞いただけで そのための命令を全く知らないです 最近2004を導入したばかりなもので
>>930 ASでならヘルプでbitmapあたりを読むとか。
効果だけならイージングとかトランシジョンで検索して調べるといんじゃないかな。
932 :
930 :2007/08/08(水) 08:15:34 ID:DLSULC95
ありがとうございます 調べてみますです
MX2004はBitmapData使えないんじゃなかったかな? あれはFlash8からだと思ったけど。 MX2004だと恐らく、10分割なら画像を10個のMCに10回それぞれ読み込んで それぞれの画像の表示部分をsetMaskで制限する方法かな。
AS2でボタンの基本動作クラスを作ってます 関数をまとめて書くにはどうすればいいでしょうか? function onRelease() { gotoAndStop("stop"); } function onReleaseOutside() { gotoAndStop("stop"); } ↓ function onRelease()=function onReleaseOutside(){ gotoAndStop("stop"); } 怒られました
>>934 mc.onReleaseOutside = function () {
gotoAndStop("stop");
}
mc.onRelease = mc.onReleaseOutside;
936 :
934 :2007/08/08(水) 13:20:22 ID:ytNhbam7
>935 リンケージにMovieClipクラスの拡張として設定するんで 変数(mc)使うのはちょいと違うようです class btnDo extends MovieClip { function onRelease() { gotoAndStop("stop"); } function onReleaseOutside() { gotoAndStop("stop"); }}
>>936 そもそも、ムービークリップボタンとして作れば、そんな関数いらないんじゃ?
>>926 できる。
画像をmc内に読み込んでそれを分割して、それぞれにmc化する
詳しくは、ジグソーパズルの作り方とかが載ってる本を見た方が良い
ここで説明することは不可能
>>934 /** 抽象ボタン。継承して使う。 */
class AbstructButton extends MovieClip {
private var onLoad = offButton; // ロード直後 → ランプ消灯
private var onPress = onButton; // 押したとき → ランプ点灯
private var onRollOver = onButton; // カーソルが乗ったとき → ランプ点灯
private var onRollOut = offButton; // カーソルが離れたとき → ランプ消灯
// その他各種マウスの動作に対するイベントを設定
private var onRelease():Void {
onButton();
execute();
}
private function onButton():Void { gotoAndStop("on"); } // この中はお好きなように。
private function offButton():Void { gotoAndStop("off"); } // ここも。
// 継承先で実装。
private function execute():Void {}
}
で、
/** スタートボタン。AbstructButton を継承。 */
class StartButton extends AbstructButton {
private function execute():Void {
// このボタンの動きを実装。
trace("Push Button.");
}
}
でどうよ。
>>939 >9行目 private var onRelease():Void {
private function onRelease():Void {
だった。すまん。
質問させて下さい。 携帯ゲーム機のポケモンで戦闘画面になると自分のHPの数値の上に、HPに応じて長さが変わる横に伸びるバー(?)みたいなのがありますが、どうすればできるでしょうか? 試しにサイズ(100,10)の細長い画像を用意して、HPのMAXを100とします。 それでHPの数値=xscaleで画像の横幅を変えることはできるのですが、MAXHPが100以上になってしまうと元の画像より横幅が長くなってしまいます。 どう記述すれば良いのでしょうか? 分かりずらくてすみません。
>>941 if(HP > 100){
HP = 100;
}
って入れればいいんじゃ?
>>941 HPの量をそのままバーの長さにするのではなく、
HPMaxを100%とした時、現在のHPが何%にあたるのかを表示する。
で、この計算はできますか?
>>941 HPの値そのものじゃなくて何%の値かを考えれば良い。サイズ(100,0)の画像はそのままで、
最大HPが400で現在のHPが200なら 200/400 で横棒の画像の長さは全体(100)の1/2。
_xscale = 200 / 400 * 100;
教えてください Os WinXP Flash8 image(200,200)というMCを(400,400)の大きさのステージ上に置いて MCの任意の点でクリックすると、その点をステージの中心に 持っていきたいのですが、どのようにすればいいのでしょうか? MCにthis._xmouse; this._ymouse;と書き、座標を獲得してから ステージ上の中心に移動させる場合の差分をどうすればいいのかわかりません Asに取り組みはじめて、最近ようやく関数の使い方を憶えた程度で classなどはまだ理解できませんので、お手柔らかにお願いします
>>946 ヒント: グローバル座標(ステージの座標) ←[変換]→ ローカル座標(MC内部の座標)
参考文献: 「Flash ActionScript 逆引き大全550」 秀和システム p127-128
_rootにインスタンス名imageのMC配置。基準点は中心 image.onPress = function() { x = this._x+this._xmouse; y = this._y+this._ymouse; this._x += ((Stage.width/2)-x); this._y += ((Stage.height/2)-y); }; うまく説明できないけどコンナ感じ。 要はクリックされた位置と中心位置がどんだけ〜ずれてるかを取得して 今の座標に加算してやればいい。 ☆:クリック位置 ■:image □:ステージ ┌────────────┐ |←────→□□□□□□| |□■■■■□□□□□□□| |⇔■☆■■□□□□□□□| |□■■■■□□□□□□□| |□□□□□□□□□□□□| |← → □□□□□□□□□| └────────────┘ ⇔:this._x ← →:this._xmouse ←────→:(Stage.width/2)
949 :
941 :2007/08/09(木) 23:12:17 ID:mUxg8+Nf
皆さんたくさんの返答ありがとうございます。 お陰でHPのバーを作ることが出来ました。 詳しく説明してくださった方、大変勉強になりました。 本当にありがとうございました。
質問です 現在、ランダムに配置したリンゴの絵のムービークリップと「Apple」と 書かれたムービークリップなどがあって リンゴの絵をクリックするとappleの文字が近づいてきて重なるような 子供用のフラッシュを作っています。 リンゴの絵.mcの中心とapple文字.mcの中心を減速させながら 重ねるようにする場合どのようすればいいのでしょうか リンゴの絵.mcの中心点は リンゴの絵X = (ringo_mc._width)/2; リンゴの絵Y = (ringo_mc._height)/2; 文字の方も同じようにしています ぜひお教えください よろしくお願い致します
>>950 apple_mc._x += (ringo_mc._x - apple_mc._x) / 30
apple_mc._y += (ringo_mc._y - apple_mc._y) / 30
上の処理を毎フレーム行なえば文字がりんごに重なる。
「30」の値を大きくすればゆっくり近づき、小さくすれば早く近づく。
文字のMCの中心座標とかは分からないから、そんへんは自分で調整よろ。
952 :
Now_loading...774KB :2007/08/14(火) 22:14:17 ID:eSnxRSOP
2コマのムービークリップをシーンないで繰り返し再生したいんですけど(カクカク動いてるみたいに) ムービークリップの2コマ目にgotoAndPlay(1);と記述したんですが、 動きません、なぜですか?
>>952 this.gotoAndPlay(this._currentframe-1)
>>953 2コマ目に書かれたgotoAndPlay(1);が実行されるのは
2コマ目が表示される直前。
アクションレイヤーのフレームを一つ伸ばしてそこに書けば
2コマ目も表示されるようになる。
ていうかスクリプト何も書かなければ普通にループするはずじゃないか?
アンカーミスった954は952宛ね
this.gotoAndPlay ( ト───‐' l::l ̄ ̄l / ̄ ̄ ̄\
(this._currentframe-1)( | l::|二二l | ハ |
( h , '´ ̄ ̄ ̄`ヽ | ハ |
⌒⌒⌒ヽ(⌒⌒⌒⌒⌒ l.l ,' r──―‐tl. | ハ
>>953 |
',
>>953 fllJ. { r' ー-、ノ ,r‐l | ! め │
ヾ ル'ノ |ll ,-l l ´~~ ‐ l~`ト,. l |
〉vw'レハノ l.lll ヽl l ', ,_ ! ,'ノ ヽ ____/
l_,,, =====、_ !'lll .ハ. l r'"__゙,,`l| )ノ
_,,ノ※※※※※`ー,,, / lヽノ ´'ー'´ハ
-‐'"´ ヽ※※※※※_,, -''"`''ー-、 _,へ,_', ヽ,,二,,/ .l
__.__
(:::} l l l ,}
l::l ̄ ̄l
l::|二二l
, '´ ̄ ̄ ̄`ヽ
.,' r──―‐tl.
{ r' ー-、ノ ,r‐l
,-l l ´~~ ‐ l~`ト,.
ヽl l ', ,_ ! ,'ノ
_,,, =====、_ .ハ. l r'" ゙,,`l|
_,,ノ※※※※※`ー,,, / lヽノ ´' ̄ ´ハ
-‐'"´ ヽ※※※※※_,, -''"`''ー-、 _,へ,_', ヽ,,_,,/ .l
インスタンス名を変更するようなASはありますか? あったら簡単にでいいので教えてください。
>>957 MovieClip._name = "名前";
インスタンス名を設定するならわかるが、 インスタンス名を途中で変更するような組み方が 必要な場合ってあるか? そんなプログラム絶対触りたくねぇ〜〜
>>958-959 すばやい回答ありがとうございます。
どうにも上手く動かないもんでしたので見直してみたら、
他の場所のASに影響されていたようでした。
もうだめぽ\(^o^)/
ActionScript3.0で、いくつか質問させてください。箇条書きで失礼します。 ・.NETのControlsのように、ステージ全てのコンポーネントを取得するメソッドはありますか? ・var TEST = function(e)とfunction TEST(e)の違いって何なんでしょうか?前者だとたまにエラーがでます。 ・イベントメソッド内でroot参照できる位置にオブジェクトを使いしたいときはどうすればいいのですか? 下のようにしてもできませんでした。 var root:MovieClip = this.root as MovieClip; root.addChild(TESTObject) ・下のような状態で、2.0の時のように配列アクセス演算子(ここでは"CTRL")を取得するにはどうすればよいのでしょうか? var Ary:Array = new Array(); Ary["CTRL"] = this.Control for each (var ??? in Ary) { trace(???) } 質問ばかりですみません。よろしくお願いします。
表示リストを使う 関数を実行して返値を代入することと関数定義の違い as演算子が参照を返すことを利用して別名定義する var rootas:MovieClip = this.root as MovieClip; プロパティも取得したいならfor inを使う
急な質問ですみません。 とある計算式で出した数を、全角に変えるASはあるでしょうか? 例えば a = 10 + 5; ならaには15という数字が代入されますが、「15」のように全角に変えるにはどうすれば良いでしょうか。 分かりづらくてすみませんが、お答え頂ければ嬉しいです。
>>964 function Change( num ) {
switch ( num ) {
case 1:
ret = "1"
break;
}
return ret
}
みたいな関数作る。
>>965 お早い解答ありがとうございます。
言い忘れていたのですが、ParaFla!を使っています。
上のように記述しましたが、結果は構文エラーとなりできませんでした。
本家でしか使えないのでしょうか?
>>966 ParaFla!は知らんが、各行の末尾に;入れて駄目ならやっぱり知らん。
#お早い→素早い
>>967 セミコロン入れると構文エラーはなくなりましたが、できませんでした。(半角のままでした)
やはりParaFla!では無理なのでしょうか。
誤字すみませんでした・・・。
>>968 ParaFla!ってAS使えるのかな?
どうやったのかわからないのでエスパー回答だけど
a = 10 + 5
x = Change( a )
とかやってもcaseに引っかからないから無理だよ。
一つの変数に数字がたくさん入ってるときは置換する
a.split("1").join("5"); //←これを0〜9まで書いて関数にする
>>970 返答ありがとうございます。
ParaFla!でもASは使えます。
試しに
text = 1;
function Change(text) {
switch (text) {
case 1:
ret = "1";
break;
}
return ret;
}
で挑戦してみましたが、変化ありませんでした。
>>970 関数呼ぶならChange(1);とかChange(text);だろ。
上に加えてtrace(Change(1));書いてみ。
そもそも
>>971 はASの基本の仕組みすら分かっていないのに
ASを教えろとは如何なものか。
974 :
Now_loading...774KB :2007/08/17(金) 03:02:07 ID:4KUMZ1Yo
質問です。 MC.onPress = function()のような感じで、 とあるMCを右クリックしたということを感知することはできないでしょうか? コンテキストメニューを選択する前に、ただ右クリックが行われた段階で感知したいのですが・・・ FLASH8pro使用で、Playerのバージョンは8です。
>>974 Flashでは右クリックはコンテキストメニュー以外使えません
MACを考えるとよくわかる
>>975 いえ、コンテキストメニューしか使えないのは分かってますが、
どのMCを右クリックしてコンテキストメニューを出したかというアクションを
させたかったので。
で、すいません自己解決しました。
独自コンテキストメニューを割当てる前にmenu_cm.onSelect = function(obj) を
記述することでWindowsではできました。
Macでは微妙にできてないんですが、Windowsで動けばいいと言われてるので
これでやります。
スレ汚し失礼しました。
教えてください 間違い探しゲームのようなFLASHを作っています。 ステージよりも大きい絵を上下左右に動かして、怪しい部分をWクリックすることで クリックした部分をステージ中心に移動させて探す。 という内容にしようと思っています。 そこでお教え頂きたいのは Wクリックした点を中央に移動させ、拡大する方法と 左端などで拡大した後で縮小したさいに絵がステージ上を外れるの(mcの基準が センターなので・・・)を 防ぐ良い方法があればお教え頂きたいです。 構造は _root →絵_mc→拡大縮小用空_mc→ドラッグ用空ボタン となっております。 よろしくお願いします。
>>977 で、どういうASを書いてどこが解らないの?
それではただの制作依頼だ
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0) MCの消去で質問です。 あるMC(stageM)にrollOverすることで出現し、rollOutで消えるようにしたいのですが 消すことが出来ません。 on (rollOver) { nameA=enMark; nameB = nameA+"_"; //新しい名前は nameA_ prop = {_xscale:50, _yscale:50}; //大きさの指定 _root.stageM.attachMovie(nameA, nameB, 100, prop);//深度は100 } これはOKなのですが、 on (rollOut) { _root.stageM.nameB.removeMovieClip(); trace("MC= "+_root.stageM[nameA+"_"]); } では、traceで enMark_ という名前が確認出来るものの消えません。 どうしたら良いでしょうか?
980です。自己解決しました。 _root.stageM.nameB.removeMovieClip(); → _root.stageM[nameA+"_"].removeMovieClip(); でOKでした。名前の指定に問題があったようです。
982 :
Now_loading...774KB :2007/08/18(土) 01:25:40 ID:3Mdfaxlj
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0) キーリスナーとキーコードで質問です。 Backspaceキー操作を確認するため、メインフレーム(_root)に以下のASを 書きましたがtraceが現れません。 myKey = new Object(); myKey.onKeyDown = function() { if (Key.getCode() == 8) { trace("Back"); } }; Key.addListener(myKey); Key.getCode() == 16 などとすると問題なく動作します。 原因は何でしょうか?
>>982 ロジックに問題はなさそうだけど・・・。
SHIFTには反応しているようだし、
trace(Key.getCode())でBS押下時の値を調べてみたら?
反応無かったらブラウザとかに原因があるかも。
985 :
982 :2007/08/18(土) 02:12:20 ID:3Mdfaxlj
>>984 早速のレス有り難うございます。
trace("KeyCode= "+Key.getCode()); を書いたところ、Shiftやマイナスキーは
表示しますが、BSはやっぱり不可です。
ちなみにブラウザ表示ではなく、その前のプレビューでやっています。
BSがどうしても不可なら、マイナスキーで代用したいと思います。
>>985 Key.BACKSPACEっていう定数があるくらいだから使えると思うんだけど。
「キーボードショートカットを無効」にチェック入れてる?
プレビューじゃなくてswfでテキストフィールドとか使って確かめてみたら?
987 :
Now_loading...774KB :2007/08/18(土) 03:18:52 ID:6cz4VZDJ
環境)Mac OS X Flash 8Basic 外部txtファイル読み込みに関する質問です。 書籍を参考に以下のような感じで ロゴが表示されるようなものを作っているのですが フラッシュのバージョンの違いからか 「ur」の二文字が先頭に追加されてしまいます。 パブリッシュ設定をPlayer8のまま回避する方法は無いでしょうか? _x = 20; _y = 80; a = 0; function Logo() { if (a%32 == 0) { Y += 15; X = 0; } else { X++; } this.loadVariables("logo.txt"); this.attachMovie("logo00", "logoG"+a, a); this["logoG"+a].logoMc.logotext = txt.charAt(a); this["logoG"+a]._x = X*11; this["logoG"+a]._y = Y; a++; }
>>987 txt.charAt(a)のtxtはどっから現れた?
テキストの中身は?
logo.txtの中に「ur」とか入ってるんじゃない?
以上の点を見直して。
>>987 logoMcの内部にa番目の文字を表示するということ?
990 :
987 :2007/08/18(土) 04:37:24 ID:6cz4VZDJ
テキストはflaやswfと同じフォルダに入れています 内容は txt=ABCD と、これだけです。 スクリプトは他に 2フレーム目にthis.Logo(); 3フレーム目にthis.gotoAndPlay(2) テキストの中身を空にしたり、aに別の値をいれてもURの二文字がでてきます
991 :
987 :2007/08/18(土) 04:41:45 ID:6cz4VZDJ
>>989 はい、その通りです。
順に文字が表示されるようなものを作ったのですが・・・。
992 :
Now_loading...774KB :2007/08/18(土) 04:45:05 ID:/ETRbTPo
FLASH CS3を使っているのですが ボタンにActionScriptを付けようとすると 「現在の選択範囲にアクションを割り当てることはできません」と出てきます。 学校で使っているFLASH MX2004ではそういう事がなかったのですが CS3からはフレームにしかアクションを割当できなくなったのでしょうか?
>>992 AS2(MX2004,Flash8)とAS3(CS3)ではだいぶ違うから、以前のコーディングは無理。
でも、パブリッシュ設定でAS2にすればそのままAS2コーディングで出来るよ。
994 :
Now_loading...774KB :2007/08/18(土) 04:55:30 ID:/ETRbTPo
>>993 CS3でイチから作成したファイルなんですが
やはりボタンにアクションを設定できません。
AS1.0&2.0に変更してみても同じでした。ナゼ?
新規作成でAS2ってなかった?
996 :
Now_loading...774KB :2007/08/18(土) 05:11:12 ID:/ETRbTPo
ほんとだ!AS2で新規で作ったらできましした! ありがとうございます!!!
埋めとく?
埋めましょうか
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。