ActionScript 誰かが物凄い勢いで解答するスレ 4
952 :
951:04/12/14 17:50:35 ID:6qd1t3Nm
/*---- コメント保存 ----*/
var cColor; //色の受け皿
//文字の着色
theTF =new TextFormat();
switch( parseInt(tC) ){
case 0: cColor = 0xA05050; break;
case 1: cColor = 0xA07A50; break;
case 2: cColor = 0x9CA050; break;
case 3: cColor = 0x50A056; break;
}
theTF.color=cColor;
//textA = "チャットログ表示テキスト"
Selection.setFocus("textA");
Selection.setSelection( textA.text.length, textA.text.length);//-1
var tmp2 = textA.text.length;
//strName = "発言者名"
//strComent =”コメント内容”
textA.replaceSel( strName +" >> "+ strComent +"\n");
textA.setTextFormat (tmp2, textA.text.length, theTF);
/*--- ログ消し ----*/
var strE
strE = textA.text.indexOf("\n");
textA.text = textA.text.slice( strE );
953 :
951:04/12/14 17:52:38 ID:6qd1t3Nm
すいません、環境を書き忘れていました(汗
環境はwin2k、2004MXになります。
わかりにくい説明だと思いますがよろしくお願いいたしますm(__)m。
>>953 先に何をしたいか何を教えて欲しいのか書こうよ
955 :
949:04/12/14 18:08:00 ID:cDNKjmw6
>948さん
ご返答ありがとうございます。ただこちらのやり方が悪いとは思うのですがうまくいきません。
まずSWFで書き出したものをライブラリに読み込みをしてそれを配置し、その上に透明のボタンを配置
し、教えていただいた
on (release,releaseOutside) {
getURL(〜);
}
で設定したのですが
**エラー** シーン = シーン 1, レイヤー = レイヤー 2, フレーム = 1 :行 2:')' または ',' が必要です。
getURL(
http://www.yahoo.co.jp);
ActionScript エラー数 :1 報告済みエラー :1
がでてしまいます。透明ボタンが悪いのかSWFファイルが悪いのかがわかりません。
956 :
951:04/12/14 18:12:18 ID:6qd1t3Nm
>954
すいません。やりたいことは、
発言に色付きが可能で、ログを50まで保存可能な一行チャットを作りたいのですが、
色付きで保存したコメントのログを消そうと一番古いログを消そうとすると、今まで発言していた
色付きコメントが全て黒字になってしまうので、それをなんとかしたいのです。
できれば setTextFormat を使用して色を付け、ログを消すときに今まで発言したコメントの色は
そのままで処理をしたいです。
う〜ん、説明ヘタで長文になってしまいすいません(^^;
チャットを作りたいだのログを消すだのって部分が不必要なんだよ。顔文字もいらない。
質問したかったら、
テキストフィールドの文字列に場所によって別々の色をつけたとき
文字列を変更すると全て黒色になるようですが、これを回避するためにはどうすればいいですか?
とか書くべき。
んで回答は、色が違う部分を別々に保存しておき
毎フレーム、もしくは変更があるたびにそれらをくっつけて表示する仕組みにするべき。
配列と構造体とかを上手く使うといい。
958 :
942:04/12/14 19:13:02 ID:A4oOqSr6
すいません、書き方が悪かったです。
HTMLに張るのではなく、SWF単体で開いたときにサイズを変更したいです。
分かりにくてすいませんm(_ _)m
>>955 まず「マルチポスト」について説明
ttp://www11.ocn.ne.jp/~dkouta/l003.htm これに目を通しておこう。次から気をつけたほうがいい。
それでそのボタンのASだけど、正しくはこう。
getURL("
http://www.yahoo.co.jp");
これでやれば動くと思う。
>>958 swf単体をブラウザで開くのか、ファイルで開く(白いfマークのウインドウ)のかによって変わる。
っていうかファイルで開く時は指定できないと思った。
ブラウザではASを使ってなんとかなる。
Stage.scaleMode = "noScale";
_root._xscale = _root._yscale = 200;
とかしてみると変化するかな。
ウインドウそのもののサイズはjavascriptで変えるべき。
これは別の掲示板で聞きな。
960 :
951:04/12/14 19:44:30 ID:6qd1t3Nm
>957
なるほど、ありがとうございました。
顔文字はこれから気をつけます。
961 :
Now_loading...774KB:04/12/15 00:16:12 ID:wgI8YcM7
すいません、どなたか、
スクリプトに書き出し設定をしたシンボルの中で、
特定のシンボルを優先的に読み込む方法を
ご存じの方いらっしゃいませんか?
よろしくお願いします。
962 :
607:04/12/15 00:36:55 ID:TmmC5Qo1
おひさしぶりです。
さっそく質問なのですが今ボタンを押してインスタンスを読み込み
それを自動でリサイズするような仕組みを作っているのですが
on (press) {
//独自にbool型のloadUnCompleteプロパティを追加する
_root.haikei.board.loadUnComplete = true;
// 画像読み込み
_root.haikei.board.loadMovie ("1.jpg");
_root.haikei.onEnterFrame = function(){
if(this.board._framesloaded < 1 || this.board.loadUnComplete){
trace( "loadUnComplete" );
return;
}
this.board._width = _root.haikei._width;
this.board._height = _root.haikei._height; // 外部ファイルロード完了時リサイズ開始
}
どうしても
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
**エラー** シンボル = 背景チェンジ, レイヤー = チェンジボタン, フレーム = 10 :行 18:演算子 '=' は、オペランドの前に来る必要があります。
if(this.board._framesloaded < 1 || this.board.loadUnComplete){
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
というエラーが出てしまいます。
仕組み的には
http://umino.s8.xrea.com/archives/cat_14.html を改造している感じです。
またloadUnCompleteのプロパティの所が
trueからどうやってfalseに変わるのかがあまり分かっていません
解説もしくは解説しているHPが教えてください。
よろしくお願いします。
963 :
607:04/12/15 00:37:54 ID:TmmC5Qo1
すいませんインスタンスではなく
外部のファイル(jpg)でした。
環境はXPでMX2004です。
zキーをおしたら28フレーム目へ、xキーを押した時に
aが1であれば4フレーム目へaが2であれば12フレーム目へ
飛ぶようにASを書いたつもりなのですが、ダメみたいです…。
どなたか分かる方よろしくお願いします…
stop();
Key.addListener(a=new Object());
a.onKeyDown = function() {
if (Key.isDown(90)) {
gotoAndStop(28);
Key.removeListener(this);
}
else if(Key.isDown(88)){
if(a==1){
gotoAndPlay(4);
Key.removeListener(this);
}
else if(a==2){
gotoAndPlay(12);
Key.removeListener(this);
}
Key.removeListener(this);}
};
965 :
961:04/12/15 02:24:30 ID:1JMXH991
>>962 MX2004なら、MovieClipLoaderクラスを使うと
もっと確実なのですが、どうでしょうか?
>>964 a.KeyDownをいれてからaddListenerしたらいいと思います。
ASの質問とちょっとずれるかもしれませんが、
フォントの埋め込みデータのみのMCを用意して、
Flash側から汎用リソースとして読み込んでフォントを使用する、
というのは著作権上問題無いのでしょうか?
いちいち埋め込むよりは楽そうなのですが、
考え方次第では二次配布ととられかねないのかなと。
967 :
607:04/12/15 10:14:44 ID:A7exPwET
>>965 リサイズはできるんですか?
できるんでしたらそちらを使ってみたいのですが
生意気ですがこの問題をちょっと解いてみたいという気持ちも
あります…
968 :
961:04/12/15 13:06:55 ID:wgI8YcM7
var o:Object = new Object()
o.tgtx = 100;
o.tgty = 100;
o.tgtw = 297;
o.tgth = 210;
o.onLoadInit = function(mc:MovieClip){
mc._x = tgtx;
mc._y = tgty;
mc._width = tgtw;
mc._height = tgth;
}
var mcl:MovieClipLoader;
mcl.addListener(o)
var loader:MovieClip = createEmptyMovieClip("loader",0)
mcl.loadClip("***.jpg",loader)
とても単純な質問です。
マニュアルをみたけどわかりませんでした。
環境はFlashmx WinXPです。
hensu = 6;
gotoAndPlay(hensu);
hensu = "koko":
gotoAndPlay(hensu):
変数にフレーム番号を入れてgotoAndPlayは上手くいくのですが。
変数にフレームラベルを入れてgotoAndPlayが上手くいきません。
何が悪いのでしょうか?
よろしくお願いします。
hensu = "koko":←
gotoAndPlay(hensu):←
:、 ;
974 :
Now_loading...774KB:04/12/15 22:11:05 ID:16Aztwo6
質問させて下さい。
一つオープニングのシーンがあって、
そこからランダムに14のシーンに飛ばしてやりたいんですが
全くやり方が分かりません。
どなたかスクリプト組める方お願いします。
そりゃ質問じゃなくて依頼だがや。
まずは自分でグーグル検索。
シューティングゲームを作っているのですが、敵をに弾を当てたとき
敵となるMCに最終フレームにthis.stop();で止め
hitTestで弾が敵にあたった場合このこの敵のMCをplayしたところ
敵が消えたまま戻ってこなくなりました。
敵のMCのx座標が0以下になった場合にこのMCを復活させようと思っているのですが
うまくいきません。
現在の敵トシンブルのASがこんな感じです。
onClipEvent(load) {
speed = 8;
}
onClipEvent(enterFrame) {
if (_root.tama.hitTest(_root.obj1)) {
_root.obj1.play();
}
_x -= speed;
if (_x < 0) {
_x = Stage.width;
_y = Math.random() * Stage.height;
speed++;
}
}
tamaが自機より生成された弾でobj1が敵シンボルになっています。
hitTestの次の行に
if(_x<0){
_root.obj1.gotoAndPlay(1);
}
としてみたのですがシンボル自体が止まってしまいました。
ご助力をお願いします。
>976
まず一言いいたい。日本語をしっかり書いてください。
次に他人にわかるようにもう少し文章をまとめてください。
>敵となるMCに最終フレームにthis.stop();で止め
>hitTestで弾が敵にあたった場合このこの敵のMCをplayしたところ
>敵が消えたまま戻ってこなくなりました。
ここらへんが意味不明やね。
アクションで
フラッシュを終了させるアクションボタンがわかりません
どうすればいいでしょうか?
swfで見てるフラッシュをボタンを押してウインドウを消したい。
981 :
976:04/12/16 01:13:32 ID:y+sc/bFm
失礼しました。
改めて読み返してみるとボロボロでしたね…。(汗
敵となるシンボルは最初のフレームと最後のフレームにstop命令を置いてます。
また、最終フレームはstop命令のみでグラフィックは置いてありません。
2フレームめから最終フレームの一つ前のフレームにはシンボルが霧散するようにトゥイーンを用意しました。
フレーム1:this.stop();
フレーム2〜9 トゥイーン
フレーム10:this.stop();
という進行になっています。
説明が下手なのでソースを改変した部分をペーストすることにします。
onClipEvent(enterFrame) {
if (_root.tama.hitTest(_root.obj1)) {
_root.obj1.play();
}
の部分を
onClipEvent(enterFrame) {
if (_root.tama.hitTest(_root.obj1)) {
_root.obj1.play();
if(_x<0){
_root.obj1.play(1);
}
}
(以下省略)
というように変更していたのですが・・・
予定としてはシンボルが枠外に出たら元のシンボルが復活してまた画面に出る予定でした。
何度もお手数をおかけして申し訳ありません。
なんかそもそも括弧の数が違うと思うんだけど。
onClipEvent(enterFrame) {
if (_root.tama.hitTest(_root.obj1)) {
_root.obj1.play();
}
if(_x<0){
_root.obj1.gotoAndPlay(1);
}
}
こうかな。
やりたいことがやっぱいまいちわからん。
多分自分の勝手な推測を説明に入れたりするせいだと思うんだけど。
>シンボル自体が止まってしまいました。
って何のこと?
984 :
976:04/12/16 01:53:10 ID:y+sc/bFm
>983
まず括弧については省略してしまいました。
やりたい事だけ書きますと、
「敵と弾との衝突判定を行い、Hitした場合敵を破壊、破壊後もまた同じ敵を出現させたい」
という感じなのですが…つくづく説明ヘタで申し訳ないです…
普通のシューティングのように沢山敵を出そうとしているだけなのですが…。
なんかよくわかんないけど枠の外で復活してるんじゃないの?
gotoAndPlayがどうのって言ってたからそれ見てたけど
座標を元に戻すASちゃんとどこかに書いてある?
それと
>>983はどうだったの?
986 :
976:04/12/16 02:10:46 ID:y+sc/bFm
>>985 座標を戻すことを忘れていました。
なんとか自分の思うように動きました。
>>983の
>シンボル自体が止まってしまいました。
という点に関しては敵が予定していた動きをしなくなった(右から左に動いていたものが初期位置から動かなくなった)
ということでした。
これ以上お手数をおかけするわけにもいかないので微調整は自分で考えて見ます。
なんだか頭の悪い書き込みばかり繰り返して申し訳ありませんでした。
987 :
979:04/12/16 05:59:54 ID:f0s51BbL
getURL ("javascript:window.close();");
かっこの中に何を入れればいいんすか?
終わりたいフラッシュのファイル名なんですか?
>>987 基本的にFlashを終わらせるのはFlashにはできないのです。
そこでjavascriptを使用してウインドウを消すという方法をとります。
その括弧の中にはずばりウインドウの名前を入れることになりますが
その方法ではjavaScriptで開いた時以外スムーズに消すことが出来ませんので
ウインドウを開く側にもJavascript等を使い、ウインドウに名前をつけつつ開くようにしてください。
詳しくはこのスレの分野ではないのでWeb制作板等の質問スレや
Javascriptについて解説しているページを探してみてください。
ただし、勝手に閉じるウインドウを良く思わない人もいます。
そこを含めて、本当に閉じる必要があるのか1度考えてみることをお勧めしますよ。
990 :
989:04/12/16 12:09:59 ID:YMT1PjND
と、思いましたがなんだがうまく動きません。
シーンの構成は
1.オープニング
2.jump
3.aa
4.bb
5.cc
ループさせたいのは3.4.5なので、
1フレームのみのjumpに
a = ["aa", "bb", "cc",];
nextLabel = String( a.splice( Math.floor( Math.random()*a.length ), 1 ) );
gotoAndPlay( nextLabel );
を仕込んで、各labelにジャンプするようにしました。
3.4.5の1フレーム目には各々"aa""bb""cc"とlabelを付けて、
最終フレームにgotoAndPlay("jump");として、
jumpフレームに飛ばしています。
これでランダムにジャンプはするのですが、
各シーン、10フレーム位から始まってしまいます。
(1〜9フレームは飛ばしてしまっている)
labelは空のレイヤーに付けても
オブジェクトのあるレイヤーに付けても同じです。
labelの付け方に問題があるんでしょうか?
どなたか解決法分かる方お願いします。
this.gotoAndPlay( nextLabel );としてみたらどう?
gotoAndPlayで10フレーム後から始まるんなら
ラベルが10フレーム後にあるとしか思えない。
そもそもASを使うムービーではシーンを使っちゃいけないってのが定説なんだけどな。
シーンを使っていたとしてもラベルがしっかりしていれば
絶対にそのラベルへ飛ぶはずです。
ラベルはラベル専用のレイヤーを作って設定しましょう。
992 :
989:04/12/16 12:44:07 ID:YMT1PjND
早速レスありがとうございます。
this.gotoAndPlay( nextLabel );
でバッチリ解決しました。
理屈はこれから勉強します。
しかしAS使うムービーではシーン使わないのが定説ですか。
その辺も勉強が必要ですね。
ありがとうございました。
すいません、教えてください。
CGIで出された結果をもとに、Flashで表示するフレームを変えるのってどのようにしたらいいのでしょうか?
かれこれ、こればっかり一週間以上悩んでるんですが、結局全く分かりません・・・。
お願いします。
1週間悩んでわかんないなら教えても駄目だと思う。
>>993 ヘルプのLoadVarsをよく読むよろし
996 :
Now_loading...774KB:04/12/16 19:29:43 ID:cY/NfTbo
次スレまだですか
とりあえず乙!
1000GET??
おれは999で我慢する。
誰も採らないなら1000もゲッツだ!
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。