ActionScript 誰かが物凄い勢いで解答するスレ 15
1 :
Now_loading...774KB :
2007/01/20(土) 16:23:13 ID:8gfBlSxX
MX2004でベクター絵からモザイクを作るサンプルってありませんでしたっけ? ググッても見つからなかった。 誰か教えてくだせえ。
5 :
Now_loading...774KB :2007/01/22(月) 13:37:28 ID:Wb7fC2ce
モザの1こ1このマスはsetRGBで色を変えられるけどピクセル単位で色を取得するのは無理
6 :
Now_loading...774KB :2007/01/22(月) 16:24:51 ID:j2HK4/VU
FLASH内のボタンでブラウザウインドウを閉じる方法を教えて下さい。 _root.getURL("javascript:window.close()"); と書いたところ、Sleipnirでは大丈夫なのですが、 IEでは動作しません。 WindowsXP Flash8Basicです。
7 :
Now_loading...774KB :2007/01/22(月) 17:40:53 ID:BAY/d3Nt
FlashMX2004でサウンドノベルを作っています 画面をクリックする度に以下の処理をしていきたいのですが、巧くいきません 1)背景画像が変化するか否かをチェック、変化するならば画面暗転し背景を立ち絵共に変更し更に画面のテキストを空っぽにし4へジャンプ 2)背景が変化しなかった場合に人物の立ち絵の変化をチェック 3)文章量をチェック、テキストフィールドを空っぽにするか 4)文章を読み込む 以下のasで関数のread_data(データ読み込み)、bgload(画面暗転、背景読み込み)、picload(立ち絵を読み込みしなおす)、txtload(テキストデータを読み込む)は単体で動くのは確認してます bgload終了時にtxt_flugを3に、picloadは2に変更するようにしてます 質問の仕方も悪いと思いますがご教授お願いします 問題の全画面のボタンに以下のasを仕込みました 一番の問題は、画面暗転に時間を要するためにテキスト読み込みが同時に行われてはならないことです・・・ on(press){ _root.step ++; //文章を何回読み込んだか onEnterFrame = function(){ if(_root.txt_flug==0){ if(!(read_data(step,0)==read_data(step-1,0))){bgload();}else{_root.txt_flug ++;} } if(_root.txt_flug==1){ if(!(read_data(step,1)==read_data(step-1,1))){picload()}else{_root.txt_flug ++;} } if(_root.txt_flug==2){ if(read_data(step,4)==1){_root.txt="";}else {_root.txt_flug ++;} } if(_root.txt_flug==3){ txtload(); } else if(_root.txt_flug==4){ _root.txt_flug =0; delete this.onEnterFrame; } } }
8 :
Now_loading...774KB :2007/01/22(月) 17:41:29 ID:BAY/d3Nt
ちなみにデータ読み込みは以下の関数です function read_data(read,item){ k=0; switch(read){ /* 背景、人物、音楽、効果音、文量、エフェクト、テキスト*/ case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら1。\n"]; break; case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら1。\n"]; break; case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら2。\n"]; break; case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら3。\n"]; break; case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら4。\n"]; break; case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら1。\n"]; break; case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら2。\n"]; break; case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら3。\n"]; break; case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら4。\n"]; break; } return _root.txtdata[item]; }
9 :
Now_loading...774KB :2007/01/22(月) 17:46:29 ID:BAY/d3Nt
一応・・・、一連の関数もへったくそで見苦しいですけど・・・ function bgload(){ onEnterFrame = function(){ if(_root.ef_flug==0){_root.ef.gotoAndStop(read_data(step,5));_root.ef._alpha += 4;_root.ef_counter += 4;} if(_root.ef_counter ==100){_root.ef_flug=1;_root.bg.gotoAndStop(read_data(step,0));_root.pic.gotoAndStop( read_data(step,1));_root.txt="";} if(_root.ef_flug==1){_root.ef._alpha -= 4;_root.ef_counter -=4;} if(_root.ef_counter ==0){_root.ef_flug=0;delete this.onEnterFrame;} } _root.txt_flug = 3;} function picload(){ onEnterFrame = function(){ if(_root.pic_flug==0){_root.pic._alpha -= 4;_root.pic_counter += 4;} if(_root.pic_counter ==100){_root.pic_flug=1;_root.pic.gotoAndStop(2);} if(_root.pic_flug==1){_root.pic._alpha += 4;_root.pic_counter -=4;} if(_root.pic_counter ==0){_root.pic_flug=0;delete this.onEnterFrame;} } _root.txt_flug =2;} function txtload(){ counter = 0; _root.moji=read_data(_root.step,6); this.onEnterFrame = function() { _root.txt += _root.moji.charAt(counter++); if (counter>moji.length) { counter = 0; _root.txt_flug =4; delete this.onEnterFrame; }}}
簡単なものを作ってみればいいんじゃないかな 分岐がおおいと凡雑になって作業しにくいし スクリプト丸写しされても見る人は少ないですよ
スマンが ・マジックナンバーの使用 ・上による条件分岐の不透明性 ・flug->flag ・caseの謎な使用法(多次元配列使えよ) etc.. で読む気がうせる。致命的なのは状態の流れがめっさ分かりにくい事。 多分書いた本人もわかってないんじゃないかね。 で、肝心の何が上手くいかないのか書かれてないんだけど、このコードで問題になってるのは何の点? >一番の問題は、画面暗転に時間を要するためにテキスト読み込みが同時に行われてはならないことです・・・ これ?意味が取れないから、スマンが分かりやすい表現でたのむ。
追記。自分も簡易ノベルエンジンを作ったことがあるから言うんだけど、データ形式は一般に流通してる ノベルエンジンのような形式にしたほうがいい。例えば、 [ [ "load_bg", 0 ], [ "load_image", 3 ] [ "message", "テストだお" ], ] 例えばこんな二次元配列にして、switch ( data[nowPoint][0] )で分岐したほうがプログラム組むのも楽だし データ書くほうも楽。 自分が作ったエンジンは200行程度の簡単なものだけどね。
>>12 オブジェクトの方が「それ」っぽい気がするんだが
{
load_bg:0,
load_image:3,
message:"テストだお"
}
取るときはfor..in
>>13 オブジェクトにすると、トランジションみたいな時間が必要な処理や、messageみたいなクリック待ちの
処理が面倒になるよ。まぁ配列に変換すればいいんだけどさ。
あと複数の引数をとるときちょっと冗長になるかな、
message: [ 0, "てすとだお" ]
みたいにしないといけない。
でもアイデアとしては面白いと思う。フォローありがとう。
15 :
Now_loading...774KB :2007/01/22(月) 21:01:26 ID:HPlY4UBz
※※ キューポイントアクション処理 function cuePoint(e) { if (e.cuePointTime == 2) { my_FLVPlybk.pause(); _root.terop1.gotoAndPlay(2); timer_ID = setInterval(function () { my_FLVPlybk.play(); _root.terop1.gotoAndPlay(21); clearInterval(timer_ID); }, 3000); trace(e.cuePointTime); } else if (e.cuePointTime == 3) { my_FLVPlybk.pause(); _root.terop2_01.gotoAndPlay(2); _root.terop2_02.gotoAndPlay(2); timer_ID = setInterval(function () { my_FLVPlybk.play(); _root.terop2_01.gotoAndPlay(21); _root.terop2_02.gotoAndPlay(21); clearInterval(timer_ID); }, 6000); trace(e.cuePointTime); my_FLVPlybk.addEventListener("cuePoint", this);
16 :
Now_loading...774KB :2007/01/22(月) 21:02:59 ID:HPlY4UBz
続きです。 ※※ムービーのループ再生 _root.onEnterFrame = function() { if (my_FLVPlybk.playheadTime>=my_FLVPlybk.totalTime) { //今の再生時間がFLV最後の時間だったら my_FLVPlybk.stop(); //停止する my_FLVPlybk.play(); //再生する } };
17 :
天安門事件 :2007/01/22(月) 22:31:08 ID:mMzeDlwG
って・・
どこの誤爆だか、、、他のサイトかな
以下のASが最新の環境(フラッシュプレイヤー9)で動作してくれません。 どこか記述が間違っているのでしょうか。7や8では問題なく動作します。 gallery = new MovieClipLoader (); Listener = new Object (); gallery.addListener (Listener); Listener.onLoadStart = function (target_mc) { this.stop(); }; Listener.onLoadComplete = function (target_mc) { _root.gotoAndPlay(2); }; Listener.onLoadInit = function (target_mc) { }; gallery.loadClip (_root.img, _root.board); 入れ子imgは on (release) { _root.img="15.jpg"; } のように書かれたボタンで画像を挿入して読み込ませています。 何故画像を読み込んでくれなくなったのでしょうか。
>>19 7,8で動くというのでちとわからんが、特に理由がなければ
onLoadInitの方に初期コーディングするけど。
22 :
19 :2007/01/26(金) 16:50:00 ID:vmJucEAn
playerのバージョンに関わらず、エクスプローラーのswfをIEにいれると問題なく読み込む… アップ先のさくらサーバが問題なのか?さっぱりだ
23 :
19 :2007/01/26(金) 17:28:51 ID:vmJucEAn
ごちゃごちゃやっていたら一応解決しました スレ汚しすいませんでした
26 :
Now_loading...774KB :2007/01/27(土) 22:01:31 ID:BO2hcxVC
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) 文字列を読み取り、それに応じたド・レ・ミの音を出したく思っています。 つまり、Aをド,Bをレ,Cをミ,Dをファ,Eをソとして ABDE・・・・ = ドレファソ・・・・ という感じです。去年の今頃に同じ質問をした時には、確か(その時点 では)将来的には可能という返事を頂きました。 現段階では可能でしょうか? 可能な場合は手順をお教え下さい。
>>26 1. ActionScriptの基本を一通り習得する
>26 文字コードを一文字ずつ調べて対応する文字を出す sentence = "BBCAC"; list = ["たこ", "なす", "いちご"]; for (i=0; i<sentence.length; i++) { for (ii=65; ii<=90; ii++) { if (sentence.charCodeAt(i) == ii) { trace(list[ii-65]); break; }}}
>>26 ドレファソ・・・・の音をsoundクラスに割り当て
function S(n){ //n文字目の文字に対応する音を出す
target = "ABBE";
moji = moji.charAt(n); //n文字目の文字を取得
switch(moji){
case "A": DO_sound.start();
}
}
id = setInterval(n,1000); //一秒ごとに呼び出す。
試してないけどこういうやり方でいけると思う。for使ったら一瞬で終わるのでsetIntervalね。
ABCとか一文字ではなく固定長で音階、音符や休符の情報を持たせれば
その文字列を渡しただけで自動的に演奏してくれるってことも可能(っていうかそういうサイトがあった気がする)。
これなら去年の時点で出来たと思うけど…。
31 :
26 :2007/01/28(日) 09:53:27 ID:6mlDGhmI
>>27-30 レスありがとうございます。
前回の回答がうろ覚えだったため、質問が言葉足らずになりました。当時は、
『その動作はAS3.0で可能』という回答をもらった記憶があります。
DO_sound.start(); でドの音が出せるのですね。勉強になりました。
分かってないような気がする・・・ 「DO_sound.start(); がエラーになります。ドの音が出ません」とか 言いそうな・・・・
長短をいじれないからな・・・。 MIDIコントロール出来るようにならないかね・・・。
>>31 そんな回答あったかな。あれば、激しくつっこんでると思うが。
35 :
26&31 :2007/01/29(月) 07:20:44 ID:KGmpKNFJ
レスありがとうございます。29さんのASを使いましたが実行できないため、
改変して一応音を鳴らすことが出来ました。
SWFは
http://swfup.info/view.php/6077.swf で、S12ボタンで鳴ります。
文字の読み取りと音の発生部分は、ボタンアクションで
on (press) {
n = 0;
}
on (release) {
function seqSound() {
//n文字目の文字に対応する音を出す。交互に音を出す。
target = "ABABAB";
moji = target.charAt(n);
//n文字目の文字を取得
switch (moji) {
case "A" : s1_sound.start();
case "B" : s2_sound.start();
}
n++;
}
id = setInterval(seqSound, 1500);//1.5秒ごとに呼び出す
}
これだと、音は1.5秒間隔で音は鳴りますが、最初に1.5秒ほどの無音時間が
あり、次にs1_soundとs2_soundが同時に鳴り、そしてs2_soundが単独で鳴ります。
個別の音は右側のボタン列で鳴らせます。
考えられる原因は何でしょうか?
>>35 ソースはよく見ていないが、setIntervalはカウント開始時にはその関数は呼ばない。
つまりカウント0は無しで、1.5秒経過ごとに何度も呼ばれる。
とりあえずcaseとbreakはセットで覚えなさいね
38 :
26&31 :2007/01/29(月) 19:02:30 ID:Ef8DOHCm
>>36 ,37
さんきゅうです。イントロの無音部分の問題はsetIntervalとの兼ね合いで
解消していませんが、個別に交互に音を鳴らすことは出来ました。以下は
そのASです。
on (press) {
n = 0;
target = "ABABAB";
}
on (release) {
function seqSound() {
//n文字目の文字に対応する音を出す
trace("n= "+n);
moji = target.charAt(n);
//n文字目の文字を取得
switch (moji) {
case "A" :
s1_sound.start();
break;
case "B" :
s2_sound.start();
break;
}
n++;
if (n>target.length) {
clearInterval(id);//文字列以上ではIDを破棄
}
}
id = setInterval(seqSound, 1500);
}
つかインデントしてから晒せよハゲ
>>38 無音部分解消したければ、seqSound()をon(release)内で一回だけ呼べばいいよ
41 :
Now_loading...774KB :2007/01/30(火) 18:22:19 ID:jwHZxKlh
flash mx 2004 入力テキストフィールドを10行に制限して 10行以上の入力があった場合注意を促す表示をする物を作りたいのですが var pass=テキストフィールドの変数へのパス textfield.onChanged=function(){ if(this.bottomScroll>=10){ pass=pass.substr(0,pass.length-1); error_mc._visible=true; エラーメッセージ表示 } } 普通にテキスト入力して行って11行目に入ったと同時に最後の文字を消して 10行目にとどまらせる様にしてあるのですが 11行以上ある文章とペーストした場合は10行以内に収まりません。 アドバイスお願いします。
>>41 textfieldがインスタンス名ならコピペでもなるけど?
43 :
42 :2007/01/31(水) 01:18:58 ID:pQ8BQppe
>>41 ごめん勘違いしてた。
10行ぎりぎりまでの文字数を数えてその部分までsubstringするか、
this.bottomScroll<10の条件を満たすまで一文字ずつ削っていけばいい。
44 :
Now_loading...774KB :2007/01/31(水) 18:37:49 ID:u/Lx8dHp
>>43 サンクスです。一応解決しました。
10行ぎりぎりの文字数は文字によって例えば"あ"と"i"では一行に収まる
文字数が倍くらい違ってしまい、一定ではないため
後者の方法でやってみました
var pass=テキストフィールドの変数へのパス
var maxline=10; 最大行数
textfield.onChanged = function(){
//一度の消去する文字数
var delchar=100;
while(this.bottomScroll>maxline){
//消去しすぎた場合の為に保存しておく
var tmp=pass2;
//delchar分消去
pass=pass.substr(0,pass.length-delchar);
//消去しすぎた場合の処理 delcharを1/2にして消去前のtmpを代入
if(this.bottomScroll<maxline){
delchar=Math.floor(delchar/2);
pass=tmp;
}
}
}
↑10行をはるかに超える量をペーストした場合一文字ずつ消去したのでは時間がかかりすぎるため
上記のように100文字ずつ消去して調整していくような形にしてみました。
一応うまくいったのですが、連続でペーストすると二回目以降のペーストではうまくいかず
10行を超えてしまうのですが、原因が掴めません。
わかる方いたらよろしくお願いします。
45 :
44 :2007/01/31(水) 18:45:12 ID:u/Lx8dHp
すいません今試したら 連続でペーストしてもうまくいきました。 お騒がせしました。ありがとうございました。
あるボタンを押したらAAAというムービーを1階層に呼び出すという ASはどうすればいいのでしょうか? 参考書を見てon(press){loadMovie("AAA.swf",1);} というようにやってみたのですがうまくいきません。
>>46 MCに読み込んでそのMCインスタンスの深度を指定する
>>47 やってみたのですが、
MCが消えるだけで読み込みができません。
URLの指定の仕方がおかしいんでしょうか・・?
>>48 できないという場合は、どうやったのか書きましょう。
何かがが間違っているかどうかすら、他の人にはできません。
間違っていてもどこが間違っているのかわかりません。
ところで
>>46 はfla4とか携帯用swfを作ってるのか?
そうでないなら、使ってる参考書とやらが古すぎる。
http://www.saturn.dti.ne.jp/~npaka/flash/as30/index.html 上のページ通りにFlex 2 SDKをインストールし、HelloWorld.asを
コンパイルしたところ、下記のような表示が出て上手く行きません。
なぜでしょうか。ソースはunicodeで保存しました。
C:\as3\HelloWorld>mxmlc -default-size 240 240 -default-frame-rate=30 -default-background-color=0xFFFFFF HelloWorld.as
設定ファイル "C:\flex_sdk_2\frameworks\flex-config.xml" をロードしています
C:\as3\HelloWorld\HelloWorld.as: エラー: source-path のファイルには、外部から可視的な定義が必要です。ファイル内の定義が外部から可視的であることを意図している場合は、パッケージ内に定義を配置してください。
質問お願いします オブジェクトのコピーってどうやるのでしょう? var o1:Object = {c1:'aaa', c2:'bbb'}; var o2:Object = o1; とやると参照が渡ってしまいますよね。 for (var idx:String in o1) o2[idx] = o1[idx]; これならコピーができそうですが o2 &= o1; みたいな感じで値をコピーする 便利なステートメントはないでしょうか?
52 :
50 :2007/02/01(木) 17:05:41 ID:vjlEisiK
自己解決しました。MXの時のプレイヤーとコンフリクトしていたようです。失礼しました。
>>51 ないよ。for..inで正解。
自分も深いコピーなんざ言語にあってしかるべき機能だと思うんだけどね…
>>49 on (release) {BBB.loadMovie("AAA",1);}
BBBというMCにAAAを読み込むって感じです。
読み込むswfとかjpgファイルって決まった場所に置いて
おかないといけないものなんでしょうか?
デスクトップとかフラッシュと全く関係ない場所に
あるとやっぱりダメなんですかね。
55 :
51 :2007/02/01(木) 18:42:23 ID:19Swiozq
>>53 やっぱりないんですね
ありがとうございました
>>54 BBB.loadMovie("AAA.swf")
じゃないの?
絶対パスや相対パスで指定できるのでどこにおいてあってもいい。
ただ、パスに日本語が入っている場合はどうかはわからない。
>>51 関数作っちゃえばいいんじゃない?
var o1:Object = {c1:'aaa', c2:'bbb'};
var o2:Object = new Object();
ObjCopy(o1, o2);
trace("o2.c1="+o2.c1); // aaa
o2.c1 = "henkou";
trace("o2.c1変更後="+o2.c1); // henkou
trace("o1.c1="+o1.c1); // aaa
function ObjCopy(moto:Object, saki:Object) {
for (var obj in moto) {
saki[obj] = moto[obj];
}
return saki;
}
>>56 何度もすみません。
そのフラッシュに配置してない画像やswfファイルを
フラッシュ内の操作で読み込むことができるようにしたいんですが、
それらをパスで指定するのはファイル名を書くだけではダメってことですよね?
いろいろ試してるんですが、全くうまくいきません。
59 :
Now_loading...774KB :2007/02/02(金) 06:26:23 ID:PSZYOH5u
行き詰った・・・・ 弾幕系STGを作っているんだが、どんなに頑張っても重い。 なんとかして、60FPSで200程度のMCを同時に動かしたいんだが、 やはりCeleronとかの旧世代CPUだとかなり重くなってしまう。 たのむ、なんかアイデアか参考資料をくれええええええええええええええええええええ!
AS3+flashplayer9だ! 俺はしらんがw
無理 選ぶ言語を間違ってる
>>59 MCの大きさを小さくする。グラデーションは使わない。背景を単純にする。
基本的に画面描画にコストがかかるので、実行したときの再描画領域を
出来るだけ小さくする。
まあ、新しいパソ買うのがいいかと。
やっぱ無理かな。
>>62 なるほど。
既に、ほぼ白と黒だけでかなりシブい製作になってるw
メインPCはかなり良いスペックで結構サクサク動くんだけど、
FLASHゲーで遊ぶ人は、それほど良いPC持っていないんじゃないかな。
その辺りを想定して作っておきたいぜ!
> FLASHゲーで遊ぶ人は、それほど良いPC持っていないんじゃないかな。 > その辺りを想定して作っておきたいぜ! これ大事だよな。 大抵作る奴は一般よりいいマシンもってたりするから、自機でサクサクでも安心できないんだよ。
普通のPCとラップトップと携帯は処理能力が全然違うから、 それぞれ別に考えた方が良いかと。 最新のPC、ブロードバンド環境で動くというのでいいと思うけどな。
OS=WinXP Flash=mx2004(pro) TextFiled の 選択範囲の文字をActionScriptから消す方法をおしえてください。 FlashのHelpに、replaceSel()で、"テキストを挿入および削除できます" とあるので、 --- //テキストフィールドのインスタンス名:i_txt Selection.setFocus("i_txt"); Selection.setSelection(lstart, lend); i_txt.replaceSel(""); --- としても、lstart~lend の範囲のテキストが選択されるだけで、削除までされません。 replaceSel(viod(0))、replaceSel(null)等もためしてみましたがだめでした。 よろしくお願いします。
>>59 まずはプロファイリングをしてコード部か描画部かどちらがボトルネックになってるか診断。
描画がボトルネックになってる場合、MCをBitmapに変換してBitmapDataに直書きしたら速度は向上するよ。
描画が重い場合はベクタデータ扱わないのが重要。
コード部が重い場合はアルゴリムの見直しや、コーディングが適正かどうかを調べる。
適切にコーディングしてたらJava並の速度はでる。
型指定を使う、ダイナミックオブジェクトは使わない、Arrayは詰めて使うetcで十分に速くなる。
特に型指定はかなり効くよ。AS2の癖で型指定して無いなら今すぐすべき。
_qualityで画質犠牲にすれば多少マシになるんじゃない?
追記。以上は基本的な事項だから、実行しているなら役に立てずスマソ。
携帯用アニメーションのバナーを作りたく、 お願いいたします。 最初の数秒は1回再生、最後の数秒を無限に繰り返す バナーです。
gotoAndPlay(最後の数秒);
書き方わるかったですね、ごめんなさい。 自分で作る用です。 ありがとうございました。
質問です。 POST形式のデータがPHPファイルに送られます。 そのPHPファイルにはswfファイルが読み込まれるように記述してあるのですが PHPファイルが受け取ったPOST形式データをswfで読み込ませることはできるでしょうか? <流れ> 「input.htmlのフォーム」-POSTデータ→「receive.php(receive.phpによって作られたページにdisp.swfが表示される)」 ←このdisp.swfにPOSTデータを受け取らせたい。 OSはXPでFLASH8を使っていてPHP5です。よろしくお願いします。
>>74 1.swf?d=xxxみたいに引数を渡してdisp.swfを表示する。
2.phpからテキストに書き出してdisp.swfないからloadVarsクラスで見に行く。
3.phpのセッションに入れておいてdisp.swfからloadVarsクラスで取りに行く。
(セッション自体はswf引数で渡しておき、それをキーとして取りに行く。)
4.htmlのhiddenに入れておいてjavascriptを介して取りに行く。
5.クッキー。
俺phpのことは知らないんだけど、多分3番の方法がベスト。
disp.swf?s=data ←セッション名っていうのかな?、それ渡す。
disp.swf内で
var my_lv = new LoadVars();
my_lv.s = _root.s;
my_lv.SendAndLoad("getdata.php") //←SendAndLoadだったかは不明。
postのデータがページ番号とかの大して重要じゃない情報なら1番。
76 :
Now_loading...774KB :2007/02/03(土) 14:16:00 ID:GAA5IxMZ
>>59 描画の問題。
すべてビットマップにしろ
拡大するな、回転するな、色を付けるな。
移動しか使うな
解像度を落とせ
>>75 レスサンキュー!
そっか。セッションか。ちょっと初体験だけどやってみる。
質問です。 ビデオの読み込みで、flvを読み込んで再生させてるのですが、 パラメータのところでコントロールパネル(音量調整とかストップとか再生とか)をある程度デフォルトであるのに変えられますが、 ストップボタンだけをもうひとつ作りたいのですが、ボタンに書くスクリプトはどうしたらいいでしょうか?
>>78 onClipEvent(load)とか、フレームの1番目に初期値を設定したら?
80 :
Now_loading...774KB :2007/02/04(日) 21:32:02 ID:MRC7TsOt
環境)OS=WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro
WebのHPをXMLで読み込み、そのテキストだけを表示させたく思っています。
ASは、_rootのフレームアクションに
System.useCodepage = true;
my_xml = new XML();
my_xml.ignoreWhite = true;//改行は無視
my_xml.onLoad = function() {
txt1 = my_xml.toString();//txt1に表示
};
ボタンアクションに
on (release) {
my_xml.load(site1+".html");
}
としました。
このページ『ActionScript 誰かが物凄い勢いで解答するスレ 15 』の
URLを打ち込んだところ、txt1には
<html><head><meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<base href="
http://pc10.2ch.net/swf/ "><title>ActionScript 誰かが物凄い勢いで解答
するスレ 15</title></base></meta></head></html>
とだけしか出ません。アドバイスを願います。
81 :
80 :2007/02/04(日) 21:51:23 ID:MRC7TsOt
(補足) URLの入力先(コピペ先)はテキストフィールドsite1です。
>>80 まずはmy_xmlの中身を確認してみては?
84 :
80 :2007/02/04(日) 23:49:33 ID:5cmbI5Wp
>>82-83 レスありがとうございます。
my_xml.onData = function() {
trace(my_xml);
txt1 = my_xml.toString();
};
としましたが、今度はtrace(),txt1共に何も現われません。
どうしたらいいでしょうか?
86 :
80&84 :2007/02/05(月) 01:19:57 ID:7/jC0Hvv
Htmlタグは含まれていますが、出来ました。 my_xml.onData = function(xd) { trace(xd); txt1 = xd.toString(); }; で出ました。
質問です。 マスクされた範囲内で大きい画像を縮小表示させていて、 マウスがマスクに乗ったらカーソルのある場所がズームされるように するにはどうすればいいでしょうか? マウスを動かすと追従してズーム表示されている部分が動くというようにしたいです。 onEnterFrameでズームするところはできました。(step:Number=10) this._xscale = this._yscale += (100-this._yscale)/step; マウスを動かすと追従するところがわかりません。 マウスを乗せた位置を基準としてズームしたいのに、画像の左上からしか ズームしてくれません。なので右下あたりにマウスを乗せると画像が左上からいちいち ズームしています。マウスの位置に応じてx座標を変えればいいんでしょうけど… this._x -= (gazou_mc._xmouse+this._x)/step; おながいします!
88 :
Now_loading...774KB :2007/02/05(月) 11:28:25 ID:UbmC2m0e
初心者質問スレでスルーされたのでこちらで質問させて下さい。 tabキーを押した時に黄色くクリック領域が見えてしまうのですが これを見れないようにするにはどうすればいいんでしょうか? 環境はFlashMX2004です。よろしくお願いします。
>>88 インスタンス.tabEnabled = false
でタブオーダーから外せるよ。
90 :
88 :2007/02/05(月) 14:37:02 ID:UbmC2m0e
91 :
Now_loading...774KB :2007/02/05(月) 22:35:10 ID:Tiahve6f
>>87 クリック時のカーソル位置を画像の縦横に対する比率として記録、拡大時の中心をその比率に移動。
ってやってもいいが、ムービークリップをネストして中の図形の中心位置を
ずらして(外側は逆にずらす)から外側を拡大すると楽。
92 :
Now_loading...774KB :2007/02/06(火) 09:38:50 ID:fdHiE+e2
Flexは使ってないのでわからないが、とりあえずFlash9で stage.addChild(new TargetPathEx()); はちゃんとガッと表示された。
Flex2 SDK入れてためしてみた //TargetPathEx.as(8) public var sample_spr:Sprite; ↓ public var sample_spr:SpriteAndMethod; でいいんじゃないすか? SpriteクラスにはMethodメソッドが定義されてないためだと思う。
SpriteAndMethodのインスタンスはSprite変数に代入可能であるが、 一度代入するとSpriteクラスとして扱われるってことですな。Java的
ActionScript3で質問です。 拡大縮小や回転で使われる基準点を設定する方法は無いのでしょうか? Spriteを入れ子にして擬似的に表現するしかないのでしょうか?
>>96 マトリックスつかうとか、回転拡縮しつつ位置も移動するとかあると思うけど、
やっぱり入れ子が簡単かな。
マトリックスでアフィン変換すればいいらしいよ。
>99 どの部分の話をしてるのかわかりません
rss吸い取って表示したりとかです
>101 rssは見当たらないなぁ、俺の環境のせいか?
>>97-98 基準点を変更する方法は無いのですね。デフォルトで(0,0)等ヘルプで書いてあるものですから、
てっきりできるものかと…
代替案で我慢する事にします。
>>93-95 なるほど・・Spriteのサブクラスなのに
Spriteでキャストをかけつつインスタンスを生成した結果、
SpriteAndMethodメソッドが死んだイメージですね。
わざわざSDK入れてもらって実験していただいてありがとうございました!
(しかし
>>93 は解せないなぁ、Flash9だと挙動違うんかな・・・)
読み込んだ外部ファイルの中の操作で 大元のファイルの変数を変更したりすることってできますか?
できないよ セキュリティ的に問題あるから 変更したいならCGI側でそういう仕組みを作っておいて、 それを呼ぶような仕組みが必要
>>105 ファイルってswfのこと?
loadMovieで読み込んだswfからなら変更できる。
読み込まれるほうに _parent.hensu=123
そういう話じゃ無いならスルーして。
109 :
Now_loading...774KB :2007/02/07(水) 19:15:53 ID:BZR4sY7T
>>109 激しくスレ違いだけど、JavaScriptとの組み合わせ。後は自分で調べるか他のスレ行って。
>>108 レスどうもです。
>loadMovieで読み込んだswfからなら変更できる。
まさしくswfのことです。
普通に違う階層に埋め込んだMCと同じ扱いでいいんですね。
ありがとうござしました。
113 :
Now_loading...774KB :2007/02/07(水) 22:08:30 ID:BZR4sY7T
109 ありがとうございました。 110・111
リンクの設定がうまくいきません。 使用ソフト FLASHMX2004 リンク用ボタンを「シンボル ボタン」にして アクションフレームで「現在の選択からリンクボタン」を選んで on (release) { this.getURL("リンクさせたいアドレス"); } と書き込みましたがパブリッシュすると **エラー** シーン = シーン 1, レイヤー = rinku, フレーム = 1 :行 1: マウスイベントはボタンインスタンスでのみ使用できます。 on (release) { ActionScript エラー数 :1 報告済みエラー :1 と出てしまい動きません;; getURLを書き込む時、アクションフレームの中の 現在の選択にあるリンクボタンを選んだんですが エラーメッセージからするとそれが間違ってるんでしょうか?
116 :
Now_loading...774KB :2007/02/09(金) 09:47:59 ID:7oEOM1+m
>>114 エラーに書いてあるとおりなのでは?
ボタンを選択して書いたつもりが、rinkuってレイヤーのフレーム内に書いてるんだろう。
>>115 >>116 ナルホド・・・もう一度よく見てやってみます><;
回答ありがとうございました
すごく初歩的な質問だと思うんですが、 カレンダー表示で月のところを「2」「3」という 数字ではなく「Feb」「Mar」という風に 英語表示にしたいんですが どうやるかわかりません。 ↓現在のヤツ onClipEvent (load) { myDate = new Date(); var yobi:Array = new Array ("sun", "mon", "tue", "wed", "thu", "fri", "sat"); var y = myDate.getFullYear(); var m = myDate.getMonth()+1; var d = myDate.getDate(); var yb = myDate.getDay(); $date = y+"."+m+"."+d+"."+"("+yobi[yb]+")"; day.text = $date; } 具体的に教えていただけたら有り難いです。よろしくお願いします。
質問です。 loadMovieで読み込んだ外部swfファイルから 大元の_parentや_rootへの操作(変数の変更など)を 禁止または制限することはASで可能でしょうか?
Flex2 SDK でActionScript3を使用しているのですが、 loaderInfo.parametersの情報が取り出せません。 for (var value:String in loaderInfo.parameters) { tf.appendText("\n" + value); } これで何か間違ってるのでしょうか…何も表示されません。 ご教示宜しくお願いします。
123 :
122 :2007/02/10(土) 00:40:39 ID:2qXTGLAu
すみません、自己解決しました。 paramタグのFlashVarsの項目しか読み込まないのですね。 ご迷惑をお掛けしました。
>>121 loadMovieで読み込むswfをすり替えられて変更されたら困るってことなら、
mc.loadMovie("hoge.swf")で読み込んだときに
hoge.swfから親にパスワードを送ってそれが違ったら消してしまうとかかな。
125 :
Now_loading...774KB :2007/02/10(土) 01:47:29 ID:2FyXyfKH
>>121 読み込み元のムービーのスクリプトをクラスファイル化して、変数をprivateにしたらいいと思うよ。
>>125 俺の勘違いだったら悪いんだけど、それやったら大元からも変更できなくならない?
127 :
Now_loading...774KB :2007/02/10(土) 03:16:06 ID:t5dtHQkG
128 :
Now_loading...774KB :2007/02/10(土) 03:17:15 ID:t5dtHQkG
エラー内容は以下の通りです
[RPC Fault faultString="HTTP request error"
faultCode="Server.Error.Request"
faultDetail="Error: [IOErrorEvent type="ioError"
bubbles=false cancelable=false eventPhase=2
text="Error #2032: ストリームエラー。
at mx.rpc::AbstractInvoker/
http://www.adobe.com/2006/flex/mx/internal::faultHandler ()
at mx.rpc::Responder/fault()
at mx.rpc::AsyncRequest/fault()
at ::DirectHTTPMessageResponder/errorHandler()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/flash.net:URLLoader::redirectEvent()
天安門事件
130 :
Now_loading...774KB :2007/02/10(土) 03:48:02 ID:2FyXyfKH
>>126 窓口関数を用意して、そこで所定の手続きをした場合のみアクセスできる(様にしとく)…と理解してるが間違ってるのかな?
質問です 環境:Mac OS 10.2 Flash MX やりたいこと: 任意のユーザーの指定したムービークリップや画像を読み込んで 15パズルをつくりたい …そのためにまずはひとまず 「任意のムービークリップを適当なサイズの複数のムービークリップに分割する」 …という動作をActionScriptでやりたいのですが これにはどのような関数を用いればよいのでしょうか?
132 :
Now_loading...774KB :2007/02/10(土) 04:38:02 ID:2FyXyfKH
>>131 MXだとビットマップコピーが無いから、MCを15個に複製してそれぞれに15分の1のサイズのマスクを適用するしかなさそうだね。
>>132 こんな朝早くに返信ありがとうございます
なるほど…やはりMXでは機能的に難しいわけですね
ところでではもし最新のソフトでやるとすると
どのような関数を用いることになるのでしょうか?
134 :
121 :2007/02/10(土) 06:01:58 ID:1L0KgpJJ
>>124-126 読み込み元に対するクロスムービースクリプトそのものに
制限をかけるというのは無理のようですね・・・
教えていただいた方法をいろいろと試して頑張ってみます。
ありがとうございました。
すみません、質問よろしいでしょうか? 当方、WinXpProにて、 Flash8のActionScript2.0を使ってアクションゲームを作成しているのですが、 キーボードのボタンを押した時と離した時、それぞれ別のイベントを用意しています。 そのため、最初にキーを押した時だけイベントを起こすようにフラグで管理しています。 その場合、例えばXを押しっぱなしにしている時にYを押してすぐに離すと、 キーが離されたと認識して、キーが押されているという情報が消えてしまい その後にXを離しても認識されない状態になってしまいます。 どうやらこれは、[ KeyUp ] が「ボタンを押して離した時」という認識で起動するからのようです。 解決案として、どのキーを離した時も、一度全てのキーを押しているというフラグをリセットする というやり方で試してみましたが、動作はしませんでした… 純粋に、「ボタンを離した時」で認識してくれれば良かったのですが… ネットや参考書などを調べてもわかりませんでした、よろしければ 解決策を教えてはいただけないでしょうか?
>>135 キーごとにフラグを持てばいいんじゃないの?
もしくは対象のキー以外はフラグの値を変更しないようにする。
iKey = false; kKey = false; ↑どこかで初期化 onClipEvent(enterFrame){ if(Key.isDown(73)){ if(!(iKey)){ iKey = true; trace("'i'キーが押された"); } } if(!(Key.isDown(73))){ if(iKey){ iKey = false; trace("'i'キーが離された"); } } if(Key.isDown(75)){ if(!(kKey)){ kKey = true; trace("'k'キーが押された"); } } if(!(Key.isDown(75))){ if(kKey){ kKey = false; trace("'k'キーが離された"); } } } これくらいしか思いつかなかった。
親swfのmcにループムービーの子swfを再生して、一定時間経ったら 自動的にまた別の子swfにチェンジ再生というスクリプトは どう書いたらイイんでしょうか?
>>137 その記述で試してみましたが、押す部分と離す部分が同じ[Key.isDown]内ですので
押されたと離されたを繰り返すという結果になりました。
自分の場合このような記述にしております。
メインタイムラインのフレームに
iKey = false;
kKey = false;
ムービークリップに
onClipEvent(keyDown){
if(Key.getCode() == 73){
if(_root.iKey == false){
_root.iKey = true;
trace("Iキーが押された");
}
}
if(Key.getCode() == 75){
if(_root.kKey == false){
_root.kKey = true;
trace("Kキーが押された");
}
}
}
onClipEvent(keyUp){ if(Key.getCode() == 73){ if(_root.iKey == true){ _root.iKey = false; trace("Iキーが離された"); } } if(Key.getCode() == 75){ if(_root.kKey == true){ _root.kKey = false; trace("Kキーが離された"); } } } この記述の場合、Iキーを押し続けている最中にKキーを押して離すと その後のIキーを離したというイベントが実行されません。 もう一度Iキーを押し直さないとIキーが離されたと認識されないようです。 Iキーを押し直さずにIキーが離されたと認識させるにはどうすればいいでしょうか? 自分のイメージですと、スクリプトの届かない最下層に「ボタンを押した」「ボタンを離した」 のフラグがあるように感じます… 長文、失礼いたしました。
>>138 >一定時間経ったら
これはsetInterval
>>141 キーリスナーを使う
var key_obj = new Object();
var i_bln = false;
var k_bln = false;
key_obj.onKeyDown = function() {
key = String.fromCharCode(Key.getAscii());
if (key == "i") {
i_bln = true;
} else if (key == "k") {
k_bln = true;
}
};
key_obj.onKeyUp = function() {
key = String.fromCharCode(Key.getAscii());
if (key == "i") {
i_bln = false;
} else if (key == "k") {
k_bln = false;
}
trace("["+key+"] UP");
};
Key.addListener(key_obj);
143 :
Now_loading...774KB :2007/02/13(火) 06:23:36 ID:aIVBT6xu
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) フレーム間でのデータの受け渡しについて質問です。 1フレ目のボタンアクション on (press) { bun1 = "おはよう"; bun2 = "ございます"; } on (release) { bun3 = bun1.concat(bun2); } 2フレ目のフレームアクション bun3_ins.text = bun3; 1フレ目で文字列「おはようござます」を生じさせて、これを2フレ目の テキストフィールド(インスタンス名:bun3_ins)に表示させたいのです が上手くいきません。 とりあえず2フレ目のtraceで trace("文3= "+bun3); はOKですが、 肝心のテキストフィールドが駄目です。どうしたらいいでしょうか?
インスタンス名を付けてないとか、パスが違うとか。
クリックして遊ぶムービーを作ったのですが、 操作を何もせず放置して、一定時間が経過すると、 あるURLに飛ぶように・・・という設定が出来ません。 どなたかアドバイスお願いします。 (テンプレのサイトにも目を通したのですが、もし見落としていたらすみません。)
setInterval
夢中になって遊んでたら突然グロ画像表示されるFlashを思い出した
149 :
143 :2007/02/13(火) 19:25:03 ID:d/2WbSk/
>>144 すいません。アホやってしまいました。
テキストフィールドの文字を背景と同じ白に設定していました。。。。
だれか、私のお尻を打って下さい。
∧∧ ∧_∧ ノ⌒ヽ) アッー! ( ・ω・)=つ≡つ( ノ (っ ≡つ=つ. _ノノ> / ) バババ レ ( / ̄∪
何がしたいのかよく分からんけど・・・・ movex = 270; movey = 20; これは関数の外に出すんじゃね んで、シンボルのプロパティのタイプをグラフィックじゃなくてムービークリップにすればいいんじゃね。
153 :
152 :2007/02/13(火) 23:33:29 ID:6djz/zjw
>>152 なるほど・・・
ムービークリップにするってのは盲点でした・・・・
あと関数内で設定した変数は関数から出ると初期化されてしまうんですね・・・
このフラッシュはC言語のソースを背景で1文字ずつ表示されていくのが表現したくて作っていた物です
設置されてる変数はデバッグ用です
無事解決しましたありがとうございました
>>142 KeyUp自体が「キーを押して離した時」の認識のようでして、
やはり認識しませんでしたが、
>>139 に書かれているとおり、Flash Playerを8から7に変えたら認識されるようになりました。
これは意図的なものなのかバグなのかわかりませんが…新規バージョンでは7の
ボタン認識を基準にしてくれたらと思います。
とりあえず解決いたしました。
相談にのっていただき、ありがとうございました。
155 :
150 :2007/02/14(水) 04:18:12 ID:EQ6IDonK
何度もすみません
>>152 で一度解決したのですが
同じ文字を2度表示するとそれ以前に表示していた文字が x,0 y.0の位置になってしまいます
配列は直接使用できないみたいで八方塞です
何か良いアイデアないでしょうか
よろしくお願いします
case "l":
_root.attachMovie("Ls", "Word[Num3]", sindo);
_root.Word[Num3]._x = movex;
_root.Word[Num3]._y = movey;
movex += 8;
break;
http://www.uploda.org/uporg693037.fla.html _root 1フレーム目 269 - 277
156 :
152 :2007/02/14(水) 04:50:27 ID:O/dgGfgt
適当。 case "l": _root.attachMovie("Ls", "Ls"+sindo, sindo); _root["Ls"+sindo]._x = movex; _root["Ls"+sindo]._y = movey; movex += 8; break;
157 :
150 :2007/02/14(水) 04:59:55 ID:EQ6IDonK
>>156 無事出来ました
配列と同じような働きをしてくれるのかな・・・
あとは自分で調べてみます
2度もありがとうございました
テキストを関数内でロードしたときに下記のように記述したんですがうまくいきません loadtext(); function loadtext() { loadVariables ("text.txt", this); displaytext(date1); } function displaytext(txt) { textdisplay = txt; } 何が間違っているのでしょうか?
>>158 ロードにはたとえ一瞬であれ時間がかかるので、読み込み待ちの処理が必要。
それから、とくに理由がないならFla4スタイルはやめてLoadVarsを使え。
161 :
Now_loading...774KB :2007/02/17(土) 03:05:23 ID:otBDLE5c
>>161 _root._urlを使いたまへ
あとはsplitでどうとでもなる
フラッシュでパスワードを求めて正しいパスワードなら指定URLに飛ぶフラッシュを作りたいんですが どの程度のセキュリティがありますか? 今のところ考えているのは正しいパスワードを別途ファイル記述する程度しか思いつきませんでした アドバイスお願いします。
>>163 外部CGIとかに認証をまかせるのがお手軽でオススメ・・・だが、
その指定URLをswfの中に記述してたらパスなんて関係なく簡単に見れちゃうのでその辺は要工夫
>>161 swf内で _root.Target で取得できる。
swf?の後ろに付いた文字がそのまま変数になり、=の後ろが代入される
日本語を使う場合はURLエンコードする。
>>163 LoadVarsクラスでcgiにPostして、cgi内でチェック。
正しければhtmlをprintするなりどっかに飛ばすなりお好きなように。
>>164 やはりフラッシュのみに任せるのは荷が重いですね・・・
CGIの勉強ちょっとして見ます
ありがとうございました
167 :
161 :2007/02/17(土) 09:43:36 ID:otBDLE5c
ご回答ありがとうございました!
>>163 パスワードをファイル名にして、URLをファイルに記述
169 :
Now_loading...774KB :2007/02/17(土) 11:38:59 ID:aF/tNEaH
まず、Object::registerClass を使用して attachMovie した MC を作成しました。 次にその MC をコンストラクタに指定して Sound オブジェクトを作り、attachSound→start で サウンドを再生しようとしても出来ません。(その MC だと TrantisionManager も一部動作しなくなる) Flash 上でリンケージ指定した MC では再生できるのですが… どうしてかアドバイスお願いします。
171 :
Now_loading...774KB :2007/02/17(土) 15:50:02 ID:aF/tNEaH
>>170 必ず埋め込む必要は無いですよね?
_root 直下に空の MC を作成し、それを引数にサウンドオブジェクトを作ると
他のサウンドオブジェクトとは区別して制御できるんです。
でも Object::registerClass を使用して作成した MC では制御出来ません。
しかもその MC の子も同じ現象になります。
何故こうなるのか全然分かんないんです><
172 :
Now_loading...774KB :2007/02/18(日) 03:07:31 ID:ZtJ0tJkQ
外部の改行を含むテキストファイルを読み込んで配列に分けて入れようとしてるんですが、 どうも改行コードを置換する処理がうまく行きません。 ASでの改行コードの扱いはどうなってるのでしょうか? ちなみに書いているスクリプトは↓ root.yomikomi.data.split("\n").join(",");//改行コードを","に変更 this.datalist=_root.yomikomi.data.toString().split(",");
>>172 this.datalist=_root.yomikomi.data.split("\n");
これじゃうまくいかんの?
ついで\nじゃなくて\rだったりするテキストもたまにあるけど・・・
174 :
172 :2007/02/18(日) 04:16:03 ID:ZtJ0tJkQ
>>173 \rも試してもできなくて、さっき\r\nで試してみたらできました!
どうやらWindowsの改行キーが違ってたみたいでした・・・orz
マウスを右クリックした瞬間××フレームに飛ぶ…という処理を作りたいんですが可能でしょうか。 色々ASサイト見て回ったのですが見あたらなかったので質問します。 環境はFLASH8。宜しくお願いします。
右クリックは使えないんじゃ無いっけ
>>175 右クリにオリジナルのメニューを設定することはできるが
右クリはFlashPlayerが使っているから、右クリした瞬間にという動作は無理なはず。
右クリ以外の処理にするしかない。
>>178 そいつは失礼。
直前に関数が走るのはしらんかった。
で、すきなフレームにgotoAndStop()する関数をつくって関連づければいけるよ。
そのページ見てもわからないのはどこの部分?
>>178 いや、ちょっと待て。
その例だって、右クリした瞬間には表示しないぞ。
とりあえずコンテキストメニューが表示されてから表示が切り替わるよな?
そういう方法でもいいの?
コンテキストメニューをすっ飛ばして動作ってのは無理じゃないだろうか。
181 :
178 :2007/02/18(日) 12:17:55 ID:FML0Yg2+
コンテキストメニューが表示されるのは構いません。 上記の解説ページのサンプルを見て、処理が必要とされるフレームに以下のASを記述してみたんですが、 右クリックしてもフレーム18に移動しません。 尚、サンプルから改変したのは function teisi (){【ここの部分】} だけなので、その記述の方法が間違っているのか、他の部分の記述も変える必要があるのかが分かりません。 度々すみません。以下、自分が記述したAS。 menu_cm = new ContextMenu (); // コンテキストメニュー作成 menu_cm.onSelect = teisi; // 右クリックメニューが呼び出される直前に呼び出される関数を割り当て function teisi (){ gotoAndPlay(18); } _root.menu = menu_cm; // コンテキストメニューをメニューに割り当て
>>181 普通に動くよ。gotoAndPlayの前行にtraceで確認してみそ
たぶんgotoAndPlayの行き先ちがうとか、stop()してないとかでしょう
>>180 >>182 解決しました。
右クリックメニューを制限する
fscommand ("showmenu", "false");
の記述が入っていると上手く動作しないようです。これを消したらちゃんと動作しました。
重ね重ねどうもありがとうございました。
外部から画像を読み込んで、その画像を使いまわしたいのですが、 ムービークリップに画像を読み込んだ後に duplicateMovieClip(); でムービークリップをコピーしても画像入りのムービークリップを コピーできません。 カードゲームの柄を何時でも変更出来る様に外部に持ちたいのですが、 カード自体は大量の枚数なので、その度に読み込めないですし… 本当にアホな質問ですみません…
>>184 どういうASを書いてダメなのかを書かないとだれもわからん
>>184 duplicateMovieClip()で複製できるのはもとのシンボルから作ったインスタンスだけ。
そこにロードした内容までは複製できない。
複製してからロードするか(キャッシュがあるのではやいはず)、8以降なら
ビットマップキャッシュでなんとかなるんじゃね?
読み込み専用swfを作ったんですが再生するフラッシュによってサイズを変更するのは大変なので 外部テキストにサイズを記述しようと思ったのですがサイズを変更するためのスクリプトがわかりません 何かアドバイスお願いします ちなみに変更するのはムービークリップではなく読み込み用フラッシュ自体の大きさです
188 :
169-171 :2007/02/19(月) 21:05:41 ID:mE52BRaZ
うーん…分からん
>>187 swfのステージサイズはASでは変更できない。
swfを直したくないのならhtmlに埋め込んでるタグ部分の幅を変えるとか。
Flash8 BasicでMGを作っていたのですが ASによる計算を多用したため、とても負荷がかかります。 そこで高速と言われるAS3.0を使いたいと思ったのですが、 Flex2では音楽にあわせたエフェクトなどを表現しにくいと思います。 タイムラインベースでAS3.0を使える環境が欲しいのですが Flash8 Proにアップグレードして、そこから Flash9 alphaを使うしかないでしょうか?
FLASHでゲームを作っているんですけど、 256色透過PNG中の特定の色を別の色に変えることってできるんですか? FLASHでフルスクリーンとかできるんですか? あとFLASHでゲームパッドってつかえるんですか?
寝ヴォケながら答えてみます。
>>192 パレットアニメですか?色変えたい部分のドットのみMC化して
ASで変化させてやればそれっぽく見えるかもしれないです。
フルスクリーンはスタンドアロンアプリ化したらいけると思います。
といっても、ウインドウをモニタいっぱいに引き伸ばしただけで
一般的なゲームのようなDirectXを利用した画面切り替えとは
違いますです。
ゲームパッドはFlashのランタイムでは感知してくれないので
JoyToKey使ってとかFlashPlayerEXで遊んでなどと、プレイヤーに
一工夫を求めるしかないのかもです。
194 :
Now_loading...774KB :2007/02/21(水) 07:00:09 ID:Ff/s3VQk
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) フレーム共通の動作について質問です。 gotoAndPlay()を使い、ボタン操作によってシーンを切り替える1〜20フレームのSWF を作りましたが、あるテキストフィールド(インスタンス名:input1_ins 場所は_root)の 背景を途中のフレーム以降全てで水色にするにはどうしたらいいでしょうか? 水色の背景は input1_ins.backgroundColor = 0x00FFFF; なので、例えば3フレ以降 を全てキーフレームにして、その全てのフレームアクションとして上の記述を書けば 出来そうですが正直面倒です(2個のフレームで試した場合はOKでした)。 区間に共通して適用させる方法を教えて下さい。
>>191 AS2.0での作りを考えた方が良いよ。ちなみにASの計算なんて負荷のほんの少し。
>>194 最初に設定したら背景色はそのままのはずだけど。
196 :
191 :2007/02/21(水) 13:59:20 ID:kRLz19hF
Flex2で出力した部品クラスをFlash上に配置できりゃいいんだけどね Flash9待ちかな そういやFlex2SDK無料な今、Flash9ではBASIC/Proの区分けにあまり意味がなくなりそうだな。 Proでプログラマユースな奴はFlex2SDKに抵抗ないだろし。 どうなるんだろ
Flash Lite2.0対応の携帯用に直線を描写するようなFLASHを作っています こんな感じに書いても(100, 100)から描写されず(0, 0)から描写されてしまいます。 どうすれば(100, 100)から描写できるようになるのでしょうか。 aaa = ccc(10); _root.lineStyle (2, 0x00ffff, 100); _root.moveTo (aaa, aaa); _root.lineTo (200, 200); function ccc(bbb) { so.data.count=10; answar=bbb*myso.data.count; return(answar); } SharedObject.addListener("OpenCount", ccc); var OpenCount = SharedObject.getLocal("OpenCount");
>>198 実機もってないし、ソースも斜め読みだからわからないけど、
もう少し単純なケースから検証したほうが良いんじゃない?
たとえば線が引きたいだけなら、
//----
_root.lineStyle (2, 0x00ffff, 100);
_root.moveTo (100, 100);
_root.lineTo (200, 200);
//----
で試すとか
下のほうはso、myso、OpenCountとSharedObjectらしきもの
がいろいろあって混乱してるからその辺から見直せ。
多分全部同じものを指したいんじゃないのか?
>>198 なぜSharedObject使わなきゃいけないのかわからんが
_root.moveTo (100, 100);
201 :
192 :2007/02/21(水) 16:42:32 ID:nBuQk+fR
>>193 格ゲーの色違いキャラみたいなのをやりたかったんですけど、
例えば服だけ色を変えたりとかしたかったんです。
如何せん絵の枚数が多いもので・・・
FLASH側で画面の解像度を変えたりとかできないんですね?
あとなんですけど、FLASH9ではどのくらい高速化されるんですか?
具体的には今はFLASH8で640*480の画面で60fpsで動かして、
モバイルペンティアム1.7GHzでもかなりきつい動作をさせているんですけど。
要はFLASHで格ゲーを作っているんですけど、
もちろんFLASH以外で作った方がいいとは思ってはいるんですが・・・
>>199 >>200 ×answar=bbb*myso.data.count
○answar=bbb*so.data.count
でした
SharedObjectを使うのは携帯を開いた回数をカウントするためです
そしてカウントに連動して線を描写したいんですが上手くいきません
ちなみにカウントだけ、描写だけなら上手くいきます。
>>203 いやでもFLASHの線画によるアニメーションが好きなんで、
それでキャラのモーションを描いたりとかもしているんですよ。
で、大体形は出来上がっているんで、
折角だからもっと高速化できないかとか考えていたんですよ。
CかなんかかでFLASHを制御したりとかはできるんですか?
描画の雰囲気をFlashプレーヤー風にしたいなら結局はFlash プレーヤーの描画速度に依存するから無理。 Cでswfファイル解析して自分で画面描画処理をDirectXなりに 出力する気ならがんばって。
Flexかなり速いよ。32x32のマップチップやオブジェクト数百枚とかで画面埋め尽くしてみても平気で30fps出る(macmini 1.42GHz) VGAサイズ60fpsでも、ビットマップ転送ならそれなりに軽めでいけそう。 でもベクター扱うとやっぱり重いな。 Flash8で吐いたオブジェクト読ませると旧VM読込む形になるようで、結局その部分の処理は大差ない様子だし。 計算やロジックが主の負荷ならかなり改善を期待できるかな。 Flash9出たら、内蔵MCを一度AS側でビットマップレンダリング保持しなおして高速処理とかできないかなとか妄想してみたり
AS3でRPGを書こうと思うんだけど マップ・キャラチップをフレーム毎にBitBltするのと キャラだけSpriteにして合成するのはどっちが扱いやすいかな AS3を始めたばかりで迷う・・・
208 :
Now_loading...774KB :2007/02/22(木) 12:48:25 ID:fiHoCW+H
delete this; って有効ですか?
>>207 おれは、描画処理クラスはマップやキャラクラスから切り離してます。
クラスには位置情報や状態、画像アニメーションセットへの参照とかなるべく軽くしてる。
クラスは最低限の情報のみにして、大量のnewに耐えられるようにしたいなと思ったためですね。
何かをextendしたクラスを大量にnewするのってなんか気がひけます。
あと考えた点だと、処理最適化時に描画エンジンだけ考えられる状態にしたいなとか。
FLASH5です。 youtubeの様なプレイヤーを作りたいのですが、 コントロールバーに使うボタン (再生位置を取得しつつMouseDownで位置指定できる奴) の仕組みがよく理解できません。 実際外部から読み込むのはswfで、フレーム数の取得関係は出来ています。 あれはボタン1個のオブジェクトアクション1枚で書く物なのでしょうか?
>>210 > あれはボタン1個のオブジェクトアクション1枚で書く物なのでしょうか?
いまいち疑問とするところがわからんのだが、
とりあえずFlash5でのスクロールバーの作り方とか見てみたら参考になるんでない?
ボタンじゃなくてMCを使って、クリップアクションであれこれ設定するんだったような。
>>211 自分基準で決め付けるのは良くないよ。
企業とかでもまだ5を使ってる会社もあるし。
イラレ8やフォトショ6もいまだに多くの企業で健在してるよ。
>>213 イラレ、フォトショは印刷関係で広く使われているから仕方ない面もあるが、
フラッシュだぞ。しかも動画扱うんだろ。基準が違う。
flv無いし イラレやフォトショと同じじゃない 自分基準はどっちだか
>>212 ありがとう、ちょっと表現がおかしかったかもしれない。
プレイヤーのコントロールバーとスクロールバーの違いといえばよかったかも?
プレイヤーの方は絶えず再生位置を取得して移動させつつも、
ユーザーのアクションで再生位置を指定すると言うものなので
2重ボタンとかの工夫が必要なのかとおもったんだ。。
ていうかFLASH5レベルでスクロールバーだと位置を相互で取得してるって
自体あんまりなくて参考になるのが見つからず、、もしかして不可能?
FLASH5レベルだとmp3プレイヤーにしてもコントロールバーが付いてるものが
ほとんどみかけないんですが、、、
>>213-215 古くてすまんかった
217 :
Now_loading...774KB :2007/02/22(木) 19:58:40 ID:MiANG5Hm
MX2004 win XP ですが、 arrayで複数の数字の配列を作っておいて、ifの条件にそのarray内の数字の一つでもifの条件に入ってたら特別な動作を実行するって可能ですか? わかりにくくてスマソ
>>217 var a = new Array(94,54,85,97,84,20,66,48,41,94,1,11,8,38,86,18,8,94,77,13,45,7);
for(var i=0;i<a.length;i++)if(30<=a[i]&&a[i]<40){ //30以上40未満の数字が含まれているか
trace("あった"); //特別な動作
break;
}
220 :
216 :2007/02/22(木) 22:15:17 ID:mm7bESkf
ちょっと話ずれるけどFLASH5でボタンの中のMCにSWF読ませるとか出来ませんか? 例えばなんだけど構成こんな感じで。 _root │ ├ボタン2─MC(loadMovieのtarget) └ボタン1(pressでloadMovie) 出来ない原因としてボタン1のloadMovieで指定するパスが通らないみたいで ボタンにインスタンス名が付けられない為?他に手法無いでしょうか?
221 :
217 :2007/02/22(木) 22:19:36 ID:MiANG5Hm
223 :
216 :2007/02/22(木) 22:40:04 ID:mm7bESkf
>>222 サンクス、つまりボタンの用にMCを扱うしかないってことだよね、、
そこに限界があればそこまでってことか。。。
>>223 どのへんが限界なの?
ボタンのなかってのは基本的にASの操作対象外だから、考え方自体を変えるしかないっしょ。
MCのなかにボタンとターゲットMC置くとか、なんか方法あると思うけどね。
>>209 Thx、やっぱり大量にインスタンス生成するのは負荷が凄いよね
昔ながらの方法でやろうと思います
226 :
Now_loading...774KB :2007/02/23(金) 16:42:04 ID:0alEW4FW
テキストファイルを読み込んで表示させる物を作っているのですが 埋め込みフォント使うとどうも読みにくいって言うか汚くなりますよね あれどうにかならないのでしょうか? マスクを使わずに 表示の必要が無い部分を背景色と同じmcなどで隠す方法をやってみたのですが 読み込むテキストが大量になる場合はどうも重くなってしまい、 マスクを使うとかなり軽くなるのですがその分汚くなる アドバイスお願いします。
日本語でおk
228 :
Now_loading...774KB :2007/02/23(金) 17:10:47 ID:0alEW4FW
すいません わかりにくいですよね 要はフラッシュ掲示板みたいなものだと思ってください で、ログをテキストフィールドに読み込んで そこにマスクして埋め込みフォントにした訳なんですけど どうにもフォントが綺麗に出ないそれをどうにかしたいんですが お願いします。
>>228 テキストフィールドの「文字の埋め込み」のことだよね?
普通、フォント埋め込むとアンチエイリアスがかかって逆に綺麗に見えるもんだと思うが。 とりあえずレイヤーマスクじゃなくて、MovieClip.setMask()使ったら?
231 :
Now_loading...774KB :2007/02/23(金) 19:05:31 ID:0alEW4FW
レスサンクス
>>229 そうです文字の埋め込みの事です。
>>230 setMask()やってみたけど同じでした。
なんか文字が若干太くなってぼやけてる感じ見える
http://m-flo.com/index2.html ↑このサイトのcontents→biograghyのところなんですけど
これ最初は縦長のテキストフィールドを含んだMCにマスクかけて
スクロールバーの動きにあわせて上下させてるのかと思ったんだけど
もしかして、1行動くごとにMCごと元の位置に戻してテキストフィールドを1行ずらす
見たいな感じのスクリプトになってるんでしょうか?
>>231 setMaskをつかって、文字は埋め込まないという意味なのだが
233 :
Now_loading...774KB :2007/02/23(金) 19:47:22 ID:0alEW4FW
>>232 できました。ありがとうございます。
ってかなんでsetMask()でやると埋め込まないでいいようになってるんだろ
埋め込むだけで無駄に容量でかくなるのに埋め込みなんて必要ないような
まぁいいや、助かりました。
ありがとうございます。
テキスト&マスクは大昔からの制限だからしょうがないやね。 いまは少なくともスクリプトで何とかなるんだから昔よりはだいぶ良いよ。
FlashMX(6.0)で作ったswfをFlashPlayer8以降で実行させると 以下のプログラムの値が参照されるので困ってる。 _root.stat[10 + i].st = Math.floor(_root.stat[_root.prty[i]].st); 左辺の_root.stat[_root.prty[i]].stには小数点以下を含む数値が入っていて Math.floor()で小数点以下を切り捨てて右辺の_root.stat[10 + i].stに入れているのだが、 なぜか元の左辺の_root.stat[_root.prty[i]].stの数値も小数点以下が切り捨てられた値になっていた・・・ なんとかならないものか・・・
力技で自己解決しました(T T;
マウスカーソルの位置でスクロールするメニューを作りました。 スクロールするメニューのMCの上にカーソルを持っていったときにだけ スクロールしてほしいと思い、以下のASをメニューのMCに書いたのですが、 ムービーをロードしたときにスクロールしてしまいます。 1回メニューのMCの上にカーソルを持っていくと正常に動くのですが。 ムービーをロードしたときに、スクロールをとめる方法がありましたら教えてください。 onClipEvent (load) { nSpeed = スピード調整; nStageWidth = ステージの幅; //スクロールフラグ fScroll = true; //===function定義 function xScroll() { if (fScroll) { this._x -= (_root._xmouse-nStageWidth/2)/nSpeed; if (this._x >= 0) { this._x = -(メニューMCの幅); } else if (this._x <= -(メニューMCの幅) { this._x = 0; } } } } onClipEvent (enterFrame) { xScroll(); }
238 :
237 :2007/02/24(土) 11:35:32 ID:OI/RjSKY
書き忘れましたが、メニューのMCの 入れ子の個々のMCには以下の記述をしています。 on (rollOver) { _parent._parent.fScroll = true; } on (rollOut) { _parent._parent.fScroll = false; } よろしくお願いします。
//スクロールフラグ fScroll = true; はfalseなんじゃね
240 :
Now_loading...774KB :2007/02/24(土) 19:14:36 ID:+Momik6z
皆様こんにちは。さて質問なのですが、 SharedObject.addListener("my_so",my_so_Handler); function my_so_Handler(){ 〜〜〜〜略〜〜〜〜 }; の意味を教えてください。私が読んだ入門書によると、リスナーというのは 「監視するための部門のようなもの」と書いてありました。また、教えてFlashには「アルバイトを雇う」 のような比喩で記されていました。しかし、上記のスクリプトの、 SharedObject.addListener("my_so",my_so_Handler); ↑ ↑ の引数の部分の意味が分かりません。どなたか教えてください。 "my_so"というのは、インスタンス名だと思うのですが、次の引数のmy_so_Handlerという のは何なのでしょうか?
どう見てもユーザ定義関数ですが?
243 :
237 :2007/02/25(日) 01:00:01 ID:2b3FXY7C
>>239 その通りでした!(^^;
どうもありがとうございました〜!
質問です。 httpからフォームで入力された文章をPOST形式にしてphpで受け取って***.swf?moji=$mで フラッシュに送って表示させているのですが (テキストフィールド.text=_root.moji) フォームに入力した改行がフラッシュ内で反映されません…。 (改行箇所が半角スペースになっている) この場合、改行を反映させるにはどうしたらよいでしょうか? OSはXPでフラッシュ8をつかっています。
245 :
Now_loading...774KB :2007/02/25(日) 19:28:52 ID:UAOxCaE2
MX2004、AS2.0で質問 mx と打つと(識別子のに)色が変わるんでつがこれって予約語なの?索引見ても載ってないお
>>244 改行コードってエンコードされるんじゃなかったっけな?
代替文字(ex:\n→@@)決めてやってみれば。
それかloadVarsでPHP叩いて読み込む。
>>245 パッケージ名じゃなかったかな?
actonScript2.0でデフォルパラメータを持った関数を作りたいのですが たとえば下記のような関数で funtion hoge(a:Number, b:String){ trace(a); trace(b); } 関数の呼び出しが hoge(100); であった場合 100 値なし。 といった結果を表示させたいのですが
>>247 funtion hoge(a:Number, b:String){
trace(a);
trace(b || "値なし。");
}
複数のBGMが流れているFlashを作っているのですが 複数の中のBGM“A”を●フレームから×フレームまでActionScriptを使って音量を下げたいのですが どのようにすればいいのでしょうか?
サウンドオブジェクトを作る 複製してBGMを鳴らす 指定フレームで音量を下げる
>>251 サウンドオブジェクトについてIEで検索して調べてみたのですが
いまいちよく分かりません|ω・`)
お手数ですが、どの様に書けばいいのか書いていただけると幸いなのですが…
253 :
247 :2007/02/27(火) 02:33:53 ID:/9nNDkam
質問いいですか? loadMovieで読み込む画像の大きさを変えることってできませんか? フォトアルバムを製作中なんですが、最初に全ての画像をサムネイルのように小さく表示したいんです。 よろしくお願いします。
>>254 読み込んだ先のMCの_xscale,_yscaleを調整する
>>255 なるほど、読み込んだ先のMCの大きさを読み込む画像の大きさにしておいて、それから縮小するんですね。
ありがとうございます。Flash始めてまだ一週間足らずなもので、助かりました。
連投失礼します。インスタンス名がimage1_mcのMCをクリックしたら、インスタンス名がimage_mcのMCに画像を読み込みたいのですが、以下のようにすると動きません。 _root.image1_mc.onPress = function() { _root.image_mc.loadMovie("image/1.jpg"); }; このスクリプトはメインの1フレーム目に書いています。 どこが誤っているのでしょうか?参考書などを見ても全くわかりませんorz
こんな記述方式あったっけ
無名関数か
なんで絶対指定なの?
>>257 絶対指定はあかんけど、それで普通に動くと思うけどもな
わからん、エラーログでも書くといいのでわ
まさかプログレッシブjpgというオチちゃうよね・・・
>>262 エラーは出ないんですが、ボタンが押せないんです。
マウスが乗っても指マークにも変わらないし…。
さっきから試行錯誤してますが全然ダメですorz
>>263 ルートのフレーム1にimage1_mcは存在してる?
>>264 はい、createEmptyMovieClipで作りました。
汚いですがソース貼ります。
System.useCodepage = true;
my_lv = new LoadVars();
my_lv.load("setting.txt");
my_lv.onLoad = function() {
number = Number(my_lv.number);
_root.createEmptyMovieClip("image1_mc", 1);
_root.image1_mc._x = 10;
_root.image1_mc._y = 325;
_root.image1_mc._width = 400;
_root.image1_mc._height = 300;
_root.image1_mc.loadMovie("image/1.jpg");
_root.image1_mc._xscale = 20;
_root.image1_mc._yscale = 20;
for (i=2; i<=number; i++) {
instance_name = "image"+i+"_mc";
_root.image1_mc.duplicateMovieClip(instance_name, i);
j = i-1;
eval("_root.image"+i+"_mc")._x = eval("_root.image"+j+"_mc")._x+85;
eval("_root.image"+i+"_mc")._y = 325;
eval("_root.image"+i+"_mc").loadMovie("image/"+i+".jpg");
}
_root.image1_mc.onPress = function() {
_root.image_mc.loadMovie("image/1.jpg");
};
};
>>265 読み込み完了を待たずにonPressを定義していることが原因。
loadMovie()を実行すると、ターゲットMCに定義されたメソッドなどはクリアされてしまう。
この場合MovieClip.loadMovie()を使うのはおすすめしない。
MovieClipLoaderを使って読み込み完了後に関数定義処理を行えば平気。
それから左辺にevalを使うのは推奨されていない。
配列アクセス演算子を使うべし。
更に、一度にforで複数のloadMovie()を実行するのもよろしくない。
しつこいようだがMovieClipLoaderを使う。
>>266 ありがとうございます。
意見を参考に参考書で調べながら頑張ってみます。
オススメではないが、とりあえずこのままあまり変えずに行きたいなら・・・ もう一階層createEmptyMovieClipで作ってそっちにloadMovieする手もあるかな。 //読み込むとこ _root.image1_mc.createEmptyMovieClip("loader", 1); _root.image1_mc.loader.loadMovie("image/1.jpg"); まぁ、やりたいことがあるのは良いが、基本をしっかり押さえていったほうが良いよ。
270 :
250 :2007/02/28(水) 22:11:29 ID:6zJiJ+nc
>>253 様、返事が遅れて申し訳ないのと同時に参考になるサイトをありがとうございます。
そちらのサイトを拝見させてもらい、自分でどうにか試行錯誤しましたがどうにも上手くいきません…。
やり方としては…
複数のBGMが流れる中から音量をいじりたいBGM「A」の識別子を「main」にする
次にBGM「A」を「bgm」と言うMCの中にセットしておく
シーン1まで戻って、レイヤーを作り、そこにアクションを書く
---------------------
so = new Sound(_root.bgm);
so.attachSound("main");
_root.so.start(0,999);
---------------------
これで次に音量を小さくしたいフレームに
---------------------
so.attachSound("main");
_root.so.setVolume( 10 );
---------------------
と記入する。
とこの様にやってみたのですが、これで実際見てみると他のBGMまで音が小さくなってしまいます。
また、別にこの記入が無くってもBGMが勝手に再生される為、根本的に間違っていると思うのですが
何度試行錯誤してもエラーを吐いたり等と先に進めません。
初歩的な質問で大変申し訳ないのですが、何方か解決策をお教えください;
272 :
244 :2007/03/01(木) 00:37:34 ID:MP0Qbx0J
>>246 返信遅れましたがレスありがとうございます。
代替文字(\n→@@)だとその代替文字の組み合わせが入力に使えなくなってしまうので
ちょっと避けたいところです。(掲示板の入力的なものを考えていたので)
***.swf?moji=$mの形でSWFに読み込むとどうしても改行がとれないようです。
なので、データをいったんテキストファイルにしてからloadVarsでファイルを読み込むことにしました。
>>272 phpはしらんけどswfに渡すときにURLエンコードされた状態にしとけばいいんじゃない?
hoge.swf?moji=%E6%94%B9%0D%0A%E8%A1%8C
//swf内
my_txt.text = unescape(this.moji);
すでにやっていたらごめんよ。
FLASH8で、動的に埋め込みフォントを設定する方法ってあるでしょうか? デザイン画面ではフォントを_sansとかにしておいてモードによってフォントを 切り替えたいんですが、埋め込みフォントだとうまくいきません。 別のダイナミックテキストを用意しておいて、そこに埋め込んでますが、そのテキストフィールドでは 正しく表示されるんですが、setNewTextFormatでフォントを設定したところは規定のフォントのままです。
loadMovieについて質問したいのですが、 mother.swfでloadMovieを使ってchild.swfを読み込んだ場合、 child.swfのASでの_rootはmother.swfの_rootに変わってしまいます。 child.swfのASを改変せずにchild.swfの_rootを保つにはどうすれば良いですか?
ActionScript2.0で、 javaでいうVectorクラスみたいなリストが使いたいと思ってリファレンス漁ってたんだけど、 結局Arrayクラス使えば大丈夫なのかな。 splice()を使えばvector(リスト)と同じことは実装できるんだけど、 データ構造がリストで扱われてないと、 要素数が膨れ上がったときに値を詰めるのにやけに時間がかかったりしそうな懸念があるんだけど、 ちゃんとリストで扱われてるのかな? 教えてエロイ人。(´・ω・`)
>>277 要素数が膨れあがった時の具体的な数値を言わないとわからん。
>>278 膨れ上がったといってもせいぜい100〜200くらいかな。
>>279 速度に関しては実際に試してみればいいんじゃまいか?
ASのArrayは内部的にはたぶんHashで実装されてるんじゃないかと思う。
配列アクセスが、オブジェクトのメンバーの参照と同じスピードだったし。
>>280 ハッシュかー。ハッシュだとspliceってどうしてるんだろ…。
そだね。試しに実装してみるよ。
dクス。
282 :
Now_loading...774KB :2007/03/01(木) 19:22:11 ID:FplwnCgx
質問失礼します 当方、flashMX2004を使っています eval("nantoka"+i) = 3; //iは適当な数字 このようにeval()で繋げたあと変数に代入したいのですが >代入演算子の左側は、変数またはプロパティでなければなりません。 とエラーが出てきます 試しに以下のようにsetスクリプトで試してみたのですが未定義と出てしまい、やはりうまくいっていません i=5 set(eval("nantoka"+i), 2); trace(eval("nantoka"+i)); 今までは後ろに_xなどをつけて操作をしていたのでこんなエラーがあるとは初めて知りました なにか代用策みたいなものはあるのでしょうか 素人な質問だと思いますが、ご教授お願いします
>>282 例えば、_rootにあるhogeMC0〜hogeMC5とかにアクセスしたいとすれば、
hoge = "nantoka"+i;
_root[hoge]._x=なんたらでいける。
勿論直接、_root["nantoka"+i].〜でも大丈夫。
ミス。(´・ω・`) hoge="hogeMC"+i;と、 _root["hogeMC"+i].〜 の間違えね。すまん。
285 :
282 :2007/03/01(木) 19:40:47 ID:FplwnCgx
i=5; _root["nantoka" + i] = 4; trace(_root["nantoka" + i]) で無事トレースすることが出来ました ありがとうございます!
286 :
275 :2007/03/01(木) 21:43:38 ID:pVWdcRAP
287 :
272 :2007/03/02(金) 00:07:11 ID:S7oTIYgO
>>273 レスありがとうございます。
hoge.swf?moji=%E6%94%B9%0D%0A%E8%A1%8C
//swf内
my_txt.text = unescape(this.moji);
試してみたのですが、うまくURLエンコード部分がうまくとれません。
どうやらURLエンコード方式を読み込もうとするとFLASHの方で勝手に変な?デコードをしてしまうようです。
(%E6%94%B9%0D%0A%E8%A1%8C のような形ではなく壊れた文字列になってFLASHに取り込まれます)
288 :
272 :2007/03/02(金) 01:11:04 ID:S7oTIYgO
で、調べてみたところ_urlを使うのが良いらしくて 文字列として取った"**/**/hoge.swf?moji=%E6%94%B9%0D%0A%E8%A1%8C"を処理するやり方です。(←URLエンコードはUTF-8に変換済み) var moji:Array = (_root._url).split("="); moji = moji[1].split("%0A"); // 改行x2を回避する処理 var moji0:String = moji.join(""); this.s1.text = unescape(moji0); でできました\(^o^)/
FlashMXでベジェ曲線のポイントをスクリプトで操作することは可能でしょうか? また、マニュアルでいうと、どの分野に解説されていることでしょうか?
描画メソッド
新たに曲線を描くならcurveTo すでに描かれてる曲線を制御する方法はない
293 :
Now_loading...774KB :2007/03/02(金) 19:07:03 ID:3zP0ohx3
MX2004のSharedObjectについて質問でつ function dataSave(){//セーブ処理のユーザ定義関数 var SD=SharedObject.getLocal("dataName","/"); SD.data.dataX=charX; SD.data.dataY=charY; . . SD.flush(); delete SD;//オブジェクト消去(アクセス不可に) } このように画面を閉じた時や意図しない所で自動でセーブされないように処理ごとに オブジェクトを消去してまつ セーブやロード時にonStatus ハンドラでエラーを検出したい場合は どうすればいいの? オブジェクトを消去したら無理? onStatus ハンドラについて詳しく解説されてるサイトも教えて先生!
>>293 SOの値自体ををプログラムで使用しなければ何も問題ないのでは?
普通はセーブするときだけ転送してflushかけるけどな。
295 :
293 :2007/03/02(金) 22:48:38 ID:t+5jEzdO
レスありがとう先生 なるほど 転送てのは一時的な変数に入れて処理って事でつね
296 :
Now_loading...774KB :2007/03/03(土) 11:40:41 ID:9fNcCXjp
いま、サンプルを見ながらスクリプトの勉強をしていますが、 function メソッド名(url:String) : Void{ や、 function メソッド名() : Void{ といったVoidクラスが付けられたものが出てきましたが、 これについて解説がされていないので、Voidを付けることによって どうなるのかが分かりません。ヘルプの意味もよく分かりません。 また、: Voidを外しても普通に動作し、見た目に違いはありません。 別に記述しなくても良いものなのでしょうか?
>>296 その関数にreturn "AA";を記述して実行してみそ
298 :
296 :2007/03/03(土) 12:42:55 ID:9fNcCXjp
>>297 さん
ありがとうございます。
Voidでは戻り値(return)は使えません。って出ました。
戻り値を使用しない場合でも結局、記述してもしなくても別にいいのでしょうか?
Voidを”記述しない”ことによって何か不具合でもあるのでしょうか?
>>298 ASでは無いよ。
なんで、型宣言するかどうか考えてみそ。
バグをコンパイラが見つけ出してくれるんだ、こんな便利な手段を使わない手はないと思うぞ。
300 :
296 :2007/03/03(土) 13:28:48 ID:9fNcCXjp
つまり、Voidの活用方法は、 スクリプトがきちんと実行されているかなどの バグ探しなどに使うもの??? まだ自分には使いこなせない感じです。。。
じゃあ型宣言しなきゃいい
302 :
296 :2007/03/03(土) 16:16:02 ID:9fNcCXjp
>>Now_loading...774KBさん ありがとうございました。 Now_loading...774KBさんが言っている意味がしっかり理解できるようになるまで 頑張ります。
変数に文字列って最大何文字くらい入れることが出来るのかな?
304 :
Now_loading...774KB :2007/03/03(土) 23:33:04 ID:/+EUnXTq
ASをまじめに勉強しようとしています。 AS3を少ない資料で最初から勉強するのか、 とりあえず、AS2をやっといて、後々3に移行するのでは 今の状況だと、どちらがいいですか?
>>304 AS3
AS3はぜんぜん資料少なくないよ。オンラインヘルプで十分。
なーんてな
AS3は実行速度が早いらしい。 実務的な処理とか複雑なゲームとかにはいいかもしれない。 でも普通にビジュアリーなフラッシュ的なものを目指すならAS2で十分。 処理が早くなってもAPIな画像表示がネックになるからね。
うちのサイトではAS3に対応するプレイヤー(9以降)を使用しているユーザーが6割程度だ。 もうAS3で組んだコンテンツを出してもいい頃合かなと思っている。 ただWii向けとかPSP、ケータイ向けなども考えるとAS2の開発も押さえておきたいね。
309 :
304 :2007/03/04(日) 19:18:42 ID:48Ups/3N
みなさんありがとうございます AS2とAS3は今後は共存していくのですかね。 AS2は携帯などの軽量VM用の開発として、 AS3はウィジェットみたいなのを作る、 中規模デスクトップアプリとして。 Apolloにも興味があるので、なるべくAS3を 習得しようかなと思ってきました。
>>288 超補足。。。
FLASHはGET方式ではUTF-8のみサポートなので
UTF-8をURLエンコードしたものならそのまま読めるます。unescape(***)はいらない子でした・・・。
質問です。 onEnterFrameイベントハンドラメソッドを実行しているMCにloadClipで画像を読み込むとonEnterFrameが止まってしまいます。 これを止まらないようにするにはどうすればよいのでしょうか。 具体的には、下記のソースが所望の動作をしません。 これはimage1_mcをクリックすると、image_mcの画像がフェードアウトし、その後image_mcの画像がimage/1.jpgに切り替わり、フェードインするというものです。 しかし、フェードアウトまでは上手くいくのですが、その後の挙動がおかしいです。 trace文を入れて原因を探ったところ、上記のことが原因とわかりました。 (下記のソースを実行すると、false、false、false…、と出力されて、trueと一回出力された後、traceによる出力が止まる。) どうかご教授お願いします。長文失礼しました。 image1_mc.onPress = function() { flag = false; flag2 = false; image_mc.onEnterFrame = function() { trace(flag); if (flag2 == false) { if (flag == false) { if (this._alpha<50) { flag = true; } else { this._alpha -= 5; } } else { my_mcl.loadClip("image/1.jpg", image_mc); flag2 = true; } } else { if (this._alpha>=100) { this._alpha = 100; } else { this._alpha += 5; }}};};
>>311 >loadClip
loadMovie?
loadMovieで画像を読み込み先のmcと画像が置き換わる。
onEnterFrame書いてるmcの中にからのmcを用意してそこに読み込む。
313 :
312 :2007/03/04(日) 22:52:51 ID:eVaoxhNp
> >loadClip > loadMovie? ごめん。下のAS見てなかったわ。 多分loadClipでも同じだから読み込み用のmcは別に作った方がいい。
MovieClipLoaderの話だろ
>>313 要するに、image_mcより上に表示される真っ白なMCを用意して、それの_alphaを変化させて擬似的にフェードインアウトをしろということですか?
ちょっとやってみます。ありがとうございました。
>>315 の方法で上手くいきました!
皆様ありがとうございました。
実行文が1行のif構文で中括弧省略するやつ死ね スクリプト精査する人の気持ちを考えろ 余計な手間かけさせんな
なんか酷いコードにでもあたってるのかい? 中括弧省略で訳判らなくしてるコードを見た事がない訳じゃないが、 インデントが適切なら混乱せんけどな。 むしろ一覧性上がる場合だってある。省略できる仕様自体に罪はなかろう 仕事でそうコーディングポリシー決めてんのに違反してるっていうなら、反論の余地はないだろうけどな。 つかこれはマ板の話題だな
プログラムの世界に VBから入った人間がよく中括弧抜きのif文を書く Cから入った人間は、構文に{}つける安心感を知ってる
Cから入ったのに中括弧抜いてしまう俺は><
むしろ今switch文内のインデントで揉めてましたw caseとかbreak有無によって、インデントの仕方が仲間内四人で微妙に全員違ってた いや、別にどうでも致命的じゃないけど
たしかにswitchのインデントって微妙だよなw
うぜー
325 :
Now_loading...774KB :2007/03/05(月) 19:33:15 ID:QA1Pm96+
switch(i) { [tab] case 0: [tab] [tab] 関数や構文 [tab] [tab] [tab] [tab] 実行文 [tab] [tab] [tab] 二重if構文など [tab] [tab] [tab] [tab] 実行文 [tab] break; //-------------------case 0 end. [tab] case 1: .... .... }
こういうキチガイが寄ってくるからやなんだよ 余所でやれようぜー
switch文は使わないよ派
質問させてください。 AS3.0というかFlex2 SDKで、 http://〜/〜.swf?hoge=1 みたいに、htmlから変数と値を渡すことって出来るのでしょうか。 同じFLASHを使いまわして、ページごとにちょっとだけ違った挙動をさせたいのですが。
質問失礼します。 flash8Pro/as2.0にて System.useCodepage = true; my_lv = new LoadVars(); my_lv.onLoad = function() { a1 = Number(my_lv.a1); trace(my_lv.a1); }; my_lv.load("data.txt"); というスクリプトで外部テキストファイルからデータを 読み込むテストをしています。 swfでは読み込み可能なのですが 同じflaファイルから書き出したexeファイルでは 一切読み込んでくれません。これは仕様なのでしょうか? よろしくお願いします。
補足させてもらいますと テキストファイルはUTF-8で 内容は a1=10 というシンプルなものです。
>>330 このSWFってプレビューのこと?
そもそも、開発環境と独立したEXE形式で読み込んだかどうかの判定は
どうしてるの?
333 :
Now_loading...774KB :2007/03/05(月) 23:39:26 ID:XWnjukxr
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) 配列のデータとして、 moji[0] = "あ",moji[1] = "い",moji[2] = "う",・・・・ ,moji[9] = "5" (moji:あ,い,う,え,お,1,2,3,4,5) があるとき、これらをASを使って番号を指定して 1 → 6 ("い" → "2") 8 → 3 ("4" → "え")と順番を入れ替えて表示させるにはどうしたら いいでしょうか? 本やヘルプを見ましたが分かりません。よろしく願います。
>>333 階層に2バイト文字が含まれていると読み込みに失敗するというバグが8で再発したとかいう話を聞いたような。
違う話だったかもしれんので間違いだったらすまん。
一応、そういう可能性はないすか?
336 :
333 :2007/03/06(火) 00:07:23 ID:sRs2E10D
早速レスありがとうございます。
入れ替えたデータは最終的にはテキストフィールドに出力しますが、
その前にtrace()でチェックします。
最初、switch ... case で場合分けをしようと思いましたが、事ある
ごとにこの記述を変更しないといけないので(汎用性がないので)止めました。
>>335 さんは330さんへの答えでは?
指摘サンクス。確かに間違った。
>>335 は、
>>330 あてっす。
ついでに
>>336 spliceやsliceを使えば配列要素の入れ替え自体はできるはずだが、詰まっているのはどこ?
>>333 function change(a,b){
var tmp:String = moji[b];
moji[b] = moji[a];
moji[a] = tmp;
}
change(1,6);
change(8,3);
こゆこと?
}
339 :
333 :2007/03/06(火) 02:17:08 ID:SuPxzWEj
>>337 今、別の本を見たらspliceによる順番換えの方法が書いてありました。
>>338 関数呼び出しによる処理ですね。うーん、今回は先ずspliceの方を使って
みます。アドバイスありがとうございました。
340 :
333 :2007/03/06(火) 04:26:11 ID:yai8S8kU
spliceによる再配置できました。 moji = new Array(); on (press) { str1 = "あ,い,う,え,お,1,2,3,4,5"; a = 1; b = 8; } on (release) { moji = str1.split(","); c1 = moji[6]; c2 = moji[3]; moji.splice(a, 1, c1); moji.splice(b, 1, c2); trace("再配置= "+moji.join()); }
341 :
330 :2007/03/06(火) 08:08:00 ID:NW4U0fSt
レス遅れまして申し訳ありません。 >332 簡単なテキストフィールドで表示させてました。 >335 2バイト文字…確かにかなり上の階層に含まれてました。 それでフォルダを移し変えると動作しました。 ということでスッキリしました。 おかげてクライアントさんに余計な注文しないですみました。 お答えいただいた方々感謝です。
342 :
Now_loading...774KB :2007/03/07(水) 07:39:53 ID:Ve7E4F2o
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7)
傾いたMCの幅の維持で質問です。
SWF内で作成した配列データ(tmpData[n])を元に、2本の棒の長さが変化する
ムービーを作りました(
http://swfup.info/view.php/6344.swf 操作は、Data→
(Speed)→Start)
このASでは、setInterval()で一定時間(Speed)毎に呼び出される関数
barExpander() で
bar1._height = tmpData[n]*10; //長さはtmpDataの10倍
bar2._rotation = 60; //60度傾ける
bar2._height = tmpData[n]*10;//同じく10倍
と、棒(bar1, bar2)のうち右側の棒(bar2)を60度傾けて伸縮させるようにしました。
しかしながら、実行したムービーでは、長辺方向は確かに伸縮していますが、短辺
方向も伸縮してしまいます。
短辺の長さは固定させて、長辺のみ伸縮させるにはどうしたらいいでしょうか?
343
>>342 _heightじゃなく_yscaleを使え
345 :
Now_loading...774KB :2007/03/07(水) 15:16:22 ID:kVVJ7xE9
hoge.html?value=1 のようにURLからswfに変数を送りたいので、 javascriptでdocument.write('<object のようにタグを書き出しているのですがswfが丸ごと表示されず 右クリックすると ムービーをロードできません と表示されます。 ググってみたところjavascriptを外部ファイルとして読み込むとうまくいくような ことが書いてあったので、ためしたのですがうまくいきません。 javascriptを使わないときちんと表示されるのですが変数が送れなくなります 何かいい方法は無いでしょうか?お願いします。
javascriptで作った文字列が間違ってる
347 :
Now_loading...774KB :2007/03/07(水) 15:34:47 ID:kVVJ7xE9
>>346 ありがとうございます。
それがローカルだと表示されるんです。
LoadVarsでtxtを読んで、その値をあらかじめ作ってある2次元配列の対応したところに入れる ということをしたいんですがどう書いたらいいか分かりません。 お願いします。 test.txtの内容 a[0][0]=1&a[0][1]=2&a[1][0]=2&a[1][1]=2 fla側 a = [[0,0],[0,0]];
349 :
342 :2007/03/07(水) 17:26:45 ID:059/vH15
_yscaleで出来ました。
350 :
345 :2007/03/07(水) 17:27:23 ID:kVVJ7xE9
SetVariableを使ってどうにか変数を渡す事に成功しました。 ありがとうございました。
メインタイムラインに3つのシーン(ラベルでscene1〜3と区別)があり、 シーン1(scene1)に出てくるボタン(buttonA)を押すと シーン1が最後まで再生された後シーン3(scene3)に飛び、 押さないとシーン1が最後まで再生された後シーン2(scene2)に飛ぶというように動かしたいのです ただのgotoでは、ボタンが押された瞬間にシーン3に飛んでしまうのですが、 どのように記述すればよいのでしょうか? なるべくメインタイムラインに記述という形をとりたいのです よろしくお願いします
>>351 playSelect = false;;
buttonA.onRelease = function(){
playSelect = true;
}
if(playSelect == true){
sceneMC.gotoAndPlay("scene3");
}else{
sceneMC.gotoAndPlay("scene2");
}
/*
sceneMC内にアニメーションを作成する。
メインタイムラインに直接作らない。メインタイムラインは1フレームのみ
sceneMC内にbuttonAをいれた場合buttonAのパスが変わる。
*/
AS2.0で 外部xmlから2バイト文字を読み込み テキストフィールドに表示させたところ□□□と文字化けして表示されました。 文字化けせずに表示させる方法を教えてください。 宜しくお願いします。
AS2.0で 外部xmlから2バイト文字を読み込み テキストフィールドに表示させたところ□□□と文字化けして表示されました。 文字化けせずに表示させる方法を教えてください。 宜しくお願いします。
外部xmlの文字コードを確認
>>355 コードをUTF-8にしたら上手くいきました。有難う御座います。
357 :
Now_loading...774KB :2007/03/08(木) 20:10:05 ID:8NBMy8Gt
ロールオーバーと状態管理が把握できてりゃ、あとは配置と動きのセンスですね とりあえずそういう.flaは寡聞にして知らずスマソ てことでヘルプをどうぞ
ユーザとしては、Flashで作ったナビゲーションとか とかはイライラする事が多い。
配列に500個ぐらいデータを入れてるんですが 全く同じデータが見つかったら消して配列の順番を詰める、 という処理をしたいんですがですがこんなことは可能ですか? 例をいただけるとありがたいです。
>>360 (安易な発想で)for文で同じデータを探し、splice()で最後に移動させ、
pop()で削る。これを残った要素分繰り返す。
362 :
Now_loading...774KB :2007/03/09(金) 06:16:06 ID:mtIA5bfE
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) sort(),reverse()を使って2次元配列(markDepth[n1][n2] =100×3個)の ランダムな数値をn1毎に降順に並べ換えるASを書いています。 例として n1=0 のとき、 -2.26935119368136 1.13388068042696 1.13388068042696 を -0.33435720950365 -0.334357209503651 -2.26935119368136 としたく思っています。 このための関数changeDepth()を下のようにしましたが 必ずしもtraceが降順になりません("<<< else"が出ます)。 function changeDepth() { markDepth[n1].sort(); //最初昇順にする markDepth[n1].reverse(); //反転して降順にする for (n2=0; n2<3; n2++) { trace("id, Depth= "+n2+", "+markDepth[n1][n2]); } if (markDepth[n1][0]<markDepth[n1][1] && markDepth[n1][1]<markDepth[n1][2]) { trace("--- 昇順 ---"); //確認用 } else if (markDepth[n1][0]>markDepth[n1][1] && markDepth[n1][1]>markDepth[n1][2]) { trace("--- 降順 ---"); //確認用 } else { trace("<<< else"); //確認用 } n1++; } どうしたらいいでしょうか? 最終的には、3つのMC(mark0〜mark2)の深度を markDepth[n1][n2]に応じて重ね順を変えたいと思います。
363 :
362 :2007/03/09(金) 06:19:26 ID:mtIA5bfE
(上の補足)traceで出た数値(100個全部は見ていない。途中まで)を見る 限り、降順にはなっているのですが・・・・
丸め誤差とかのせいじゃないの?と、テキトーにこたえてみる。
n2をsortしてないのでは
366 :
Now_loading...774KB :2007/03/09(金) 15:30:49 ID:1PPdbTvq
>>360 二次元配列作って、一次目にデータ、二次目にtrueとか入れてけば重複分は勝手に消えないかな。
n1の初期値
368 :
362 :2007/03/09(金) 16:45:05 ID:jB1lOFIb
>>364-367 ありがとうございます。とりあえず10組だけtraceしましたが、この分に
限っては正しくても(降順でも)確認のif文で"<<< else"や昇順になった
り、sort()→reverse()が作用していないものもありました。
はっきり言ってバラバラです(あるいは気まぐれ)。他に良い方法はありませんか?
>>368 ソートオプションが数値でないとかじゃね
var fTxt_fmt = new TextFormat(); fTxt_fmt.size=30; this.createTextField("labelTxt",100,x,y, width, height); labelTxt.setTextFormat(fTxt_fmt); labelTxt.text = "ああああ"; delete fTxt_fmt; setTextFormatが反映されません。 解決法をまたは他にテキストフィールドのサイズを変更する 方法を教えてください。お願いします。
>>369 ありがとうございます。原因が分かりました。降順でソートするための比較
関数が無かったため、実質『文字列』として比較され、このような症状が出
ていました。
訂正したASは
function changeDepth() {
function valSort(dA, dB) { //比較関数
return dB-dA; //これが正なら降順
}
markDepth[n1].sort(valSort);
//markDepth[n1].reverse(); //反転させる必要は無い
for (n2=0; n2<3; n2++) {
trace("id, Depth= "+n2+", "+markDepth[n1][n2]);
txt2 = txt2+n2+", "+markDepth[n1][n2]+"\n";
}
if (markDepth[n1][0]>markDepth[n1][1] && markDepth[n1][1]>markDepth[n1][2]) {
trace("--- 降順 ---");
txt2 = txt2+"--- 降順 ---"+"\n";
//確認用
}
--以下同じ--
出来たSWFは
http://swfup.info/view.php/6378.swf にあります。
左欄にランダムな3個1組の数値が現れ、右欄がソートされたものです。
winXP flash MX2004 です。 現在、画像スライドビュアーのような物を作っていまして 方向キーにて「進む」「戻る」という操作をさせようと思っています。 画像ごとにラベルで仕切り、ステージ外に置いた「操作用_mc」に onClipEvent (enterFrame) { if (Key.isDown(Key.RIGHT)) { _root.gotoAndPlay("_root.ラベル2"); } if (Key.isDown(Key.LEFT)) { _root.gotoAndPlay("_root.ラベル8"); } と書く事で、画像のスライドはできたのですが キーを押すと、物凄い勢いで画像が入れ替わり、 希望の画像で止める事すら難しい有様となってしまいました。 現在の「操作用_mc」を入れ子にした「親操作用_mc」を作り タイムラインを伸ばした先に「操作用_mc」を配置して、 遅延処理をさせようとも考えましたが 遅延処理をAsにて実現できる方法はありますでしょうか? お教えいただければ幸いです
gotoAndStopなんじゃね
>>373 >遅延処理をAsにて実現できる方法
setInterval
376 :
Now_loading...774KB :2007/03/11(日) 16:53:08 ID:McbbX/ZK
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0) 2次元配列の列のソートで質問です。 100行5列のデータ(data1)があり、この列ごとに降順ソートしようとしています。 この配列は、data1 = new Array(); → data1[gyou] = new Array(); のように 行を先に定義しているので、行毎のソート(列の数値でソート)なら単純に data1.sort(降順を定義する関数) で出来るのですが、行を飛ばして列でソートする方法が分かりません。 よろしく願います。
>>376 列ごとに新しい配列にコピーしてからソートして書き戻したら?
>>376 具体的にどういう事でというのが解らないから何とも。
比較関数と複合キーでどうにでもなると思うけど。
379 :
376 :2007/03/11(日) 19:43:42 ID:Z7IJM+nP
>>377 すみません。割愛していましたが、その方法も頭によぎりました。
ただ、もっとスマートな方法はないかと思い聞きました。
>>378 複合キーとは何ですか? Googleとヘルプを見ましたが分かりませんでした。
一応、377さんの方法でやってみます。
>>379 例えば、国語、算数、理科、社会の点数をソートするときに
算数、理科、国語、社会の順やら、理科、算数、社会、国語の順で表示したいとかの時に作る
キーを複合キーっていうけど。データベース、外部キー、比較関数なんかでぐぐるといいかも。
>>380 ありがとうございます。
377さんの方法で成功しました。
フレームアクションで、onClipEvent(enterFrame)のような、 例えそのフレームがstop()していたとしてもイベントを繰り返し 発生し続けるにはどうすればいいんですか?
>>382 _root.onEnterFrame=function(){}
_rootじゃ無くてもMCなら何でもOK。
>>383 ありがとうございます。
解決しました。
すごく疑問に思って食事も喉を通らないのですが・・・ (例) this.onEnterFrame = function() { 処理; }; などと関数を使う場合の最後のブラケットをセミコロン';'で括って'};'と書いてある 記述も見かけるのですが、この場合にセミコロン ';' を付けることにはどんな意味が あるのでしょうか?
>>386 ありがとうございます。
思っているとおりで納得&安心しました。
セミコロンが無くてもエラーとはならないのですが、文法的にはやはり書くべき
なのですね。
念のためお聞きしたいのですが、以下はネット上の他人様の書いたものです。
function ArmRotationLeft(move_mc){
//イベントの動作を定義している
move_mc.onEnterFrame = function() {
//角度は「度」で指定し、時計回りの方向が「正」である。
//つまり、これは1度ずつ反時計回りをしている。
move_mc._rotation -= 1;
}
}
この例では、
move_mc.onEnterFrame = function() {
に対して }; とセミコロンで括っていないのは厳密には文法違反という解釈で
よろしいでしょうか?
>>388 たびたびありがとうございます。
初めて「自動フォーマット」って機能を使って確認してみたら確かに自動挿入
されました。
これで喉に支えていたものがすっきりしたので安心して食事が出来ます。
仕様書のほうも一度目を通して勉強してみます。
心から感謝いたします!
>>380 質問者は多分列ごとに並べ替えをしたかったんだろうな。
3 4 5 6
1 2 7 8
2 3 2 1
↓
1 2 2 1
2 3 5 6
3 4 7 8
みたいな感じで。
列の状態で行を並べ替えるなら378でいってるとおりだとおも
391 :
Now_loading...774KB :2007/03/12(月) 14:28:48 ID:/BBUgz7Z
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)
ローカル座標への変換で質問です。
_root上に描画用MC(stage1)があり、ここに2つのMC(ball1, ball2)をattachMovie()
を置き、これらを線で結ぼうとしていますが線が現れません。
試した手順は以下の通りです。まずボタンアクションで
newMark = "ball"+id1+"c"; //新しい名前。id1は1と2。
this.stage1.globalToLocal(prop); //propでstage1内の座標を指示
this.stage1.attachMovie("ball"+id1, newMark, id1, prop); //各深度はid1
trace("ball= "+this.stage1.newMark._x+", "+this.stage1.newMark._y); //←←←座標確認
では、stage1に2個のボールが現れましたが、線の描画で
this.onEnterFrame = function() {
this.stage1.clear(); //前の描画を消す
this.stage1.lineStyle(5, 0x666666, 50); //太さを5pt、色を赤、透明度(アルファ)値を50に設定
this.stage1.moveTo(this.stage1.ball1c._x, this.stage1.ball1c._y); //始点
this.stage1.lineTo(this.stage1.ball2c._x, this.stage1.ball2c._y); //線を描く
};
では線が現れません。どうしたらいいでしょうか?
また、『←←←』で書いた座標確認には何も現れません。この点もご指摘願います。
>>390 そうです。
>>391 newMarkは文字列で、MCインスタンスじゃないから_xプロパティなんて無いとおも。
赤色はFF0000なのではないかな。
>>391 this.stage1[newMark]._x
ではどうだろうか?
394 :
Now_loading...774KB :2007/03/12(月) 15:40:04 ID:2xErCeE9
複数のボタンを次のように動かしたいと考えています。 A ボタン共通の動き:マウスオーバーするとボタンの背景が同じ光り方をする。 B ボタン個々の動き:マウスオーバーするとオーバーしたボタンによって別の アクションを行う(特定のエリアに指定した画像を表示する)。 実際に行った設定は次のとおりです。 1:シンボルbtn_bgを作成し、シンボル内の第1フレームアクションで光るアクションを設定 this.onRollOver = function() {}; 2:メインのタイムライン上に複数個btn_bgを配置し、 それぞれにbtn1_mc 、btn2_mc、btn3_mc …… とインスタンス名を与え、 第1フレームアクションで個々の動作(画像表示)を設定 _root.btn1_mc.onRollOver = function() {}; _root.btn2_mc.onRollOver = function() {}; _root.btn3_mc.onRollOver = function() {}; … 実際にマウスオーバーすると、ボタンは光るのですが、 B(個々のアクション)が実行されません。 インスタンスのスクリプトをonRolloutなどに変更するときちんと動きます。 シンボルとそのインスタンスの両方にonRollOverを設定しているのがいけないのでしょうか? そもそも他の実現方法があるのでしょうか? みなさま、ご助言よろしくお願いいたします。
395 :
391 :2007/03/12(月) 16:07:10 ID:/BBUgz7Z
>>392-393 どうもです。色の設定は前のASを流用していたため、灰色のままでした。FF0000が
正しいです。座標の確認に関しては、this.stage1[newMark]._x を使って
trace("ball, id1= "+this.stage1[newMark]._x+", "+this.stage1[newMark]._y+", "+id1);
で出来ました。しかし、線の方は、
this.stage1.moveTo(this.stage1[ball1c]._x, this.stage1[ball1c]._y); //始点
this.stage1.lineTo(this.stage1[ball2c]._x, this.stage1[ball2c]._y); //線を引く
としましたが、変わらずです。また、試しにMC:stage1内のフレームアクションとして
this.onEnterFrame = function() {
this.clear();
this.lineStyle(5, 0xFF0000, 50);
this.moveTo(this[ball1c]._x, this[ball1c]._y);
this.lineTo(this[ball2c]._x, this[ball2c]._y);
};
は駄目でした。[]を外しても同じでした。間違いをご指摘下さい。
>>395 なんで、下の方のonEnterFrameではstage1が無いの?
this.stage1.moveTo(this.stage1.ball1c._x, this.stage1.ball1c._y); //始点
...
でどうなのかな。
>>395 じゃあ
this.stage1["ball1c"]
で。
ああ、stage1に書いたのね。ちと構造がわからんので、直前で座標traceしてみるとかかな。
>>394 シンボルとそのインスタンスの両方にonRollOverを
たぶんこれじゃない?
いっそボタン個々にA,Bの動作を1つにまとめたら?
>>396-398 レスありがとうございます。this.stage1["ball1c"] では座標は出ますが、線は現れません。
また、stage1内の1フレ目に線引き用のAS
this.onEnterFrame = function() { //このthisはstage1
trace("ball1c x= "+ball1c._x);
this.clear();
this.lineStyle(5, 0xFF0000, 50);
this.moveTo(ball1c._x, ball1c._y);
this.lineTo(ball2c._x, ball2c._y);
};
を書いたところ、traceで座標は出ましたがやっぱり線は出ません。
(以後、stage1内の1フレ目に描画のASを書きたいと思います)
>>400 moveTo(0,0);
lineTo(100,100);
とかで出るか確認
>>401 試してみます。ちなみに、this.onEnterFrame = function() 内の最後に
ball1c._x += 1;
if (ball1c.hitTest(ball2c) == true) {
trace("--- hit! ---");
}
を書くと、ball1cは右に移動出来て、かつball2cと衝突判定が出来ます。
連投になりすいません。 this.moveTo(0, 0); this.lineTo(100, 100); は駄目でした。いまのところ問題は線引きだけです。
>>403 ダメならとりあえず新規作成でその線だけ引けるようにしてみそ。
405 :
Now_loading...774KB :2007/03/12(月) 21:00:08 ID:2xErCeE9
>>399 さん
レスありがとうございました。
レスを見逃していて返答が遅れてしまいました。
申し訳ありません。
Aの部分(共通の動きをするボタンの背景部分)を、複数のムービーで使いまわしているため、
共有用のムービーを別途作成し、シンボル化&「ランタイム共有用に書き出し」の設定をして、
読み込んで使用する予定です。
ですので、Aの動作のasは、このシンポル上に記述したほうが更新性がいいかと思ったのですが、
やはり、この背景を使用する、個々のムービーの個々のボタンに対して、
A、Bの動作をまとめて記述するしか方法はないのでしょうか?
>>404 新規作成して、_root上にMC:stage1のみを置き、この内部に単純に
this.onEnterFrame = function() {
this.lineStyle(5, 0xFF0000, 50);
this.moveTo(0, 0);
this.lineTo(100, 100);
};
を書きましたが線が現れません。もしかして、入れ子のMC内の線は不可
なのでしょうか?
>>406 さんきゅうです。私の方でもres406.flaの線が見れました。
これを元に自分のflaのstage1をカラのMCにしたところ線が見れました。
どうやらstage1の色自体が影響しているようで、stage1のアルファを50%
にしたところ、線もボールも色が薄くなりました。
410 :
394 & 405 :2007/03/12(月) 22:32:01 ID:2xErCeE9
何度もすみません 405 = 394 です。よろしくお願いします。
>>410 同じonRollOverメソッドを定義しなおせば、上書きされてしまうはずだ。
シンボル内に書くのをやめて、フレームで同時に定義するか
共通化した関数を作るか。
413 :
410 :2007/03/13(火) 00:55:39 ID:TJjEZWuS
>> 411&412 レスありがとうございました。 なるほど上書きされてしまうわけですね。 412さんに紹介していただいたページを参考に、 共通化した関数を作る方向で頑張ってみます。 ありがとうございました。
>>405 Aの動作を共通関数にしてしまって個々のボタンから呼ぶ。
function Common(){
共通処理
}
btn1_mc.onRollOver=function (){
Common();
画像1表示処理
}
btn1_mc.onRollOver=function (){
Common();
画像2表示処理
}
Bの個々の動きってのも異なる画像の表示だけなら共通化できそうな予感。
AとBの違いはマウスオーバーで個々に特定の位置に画像を表示するってだけの 違いだから、その位置を引数として渡してやれば1つの関数内で十分完結する希ガス
416 :
410 :2007/03/13(火) 03:31:36 ID:TJjEZWuS
414さん&415さん レスありがとうございました。 414さん おかげさまで、やりたいことが実現できました! 411&412さんからもご指摘を受けましたが、 共通関数を定義して呼び出すのですね。すっきりしました。 オブジェクト指向?がきちんとできていないのがいけないんですね。 勉強不足で申し訳ありません。 415さん すみません、言葉が不足していましたが、 Bの個別の動きとは、画像の位置はすべて同じで、 各ボタンへマウスオーバーしたときに画像が入れ替わる (できればフェードインフェードアウトで) という意味のつもりでした。 いずれにしても、414さん415さんがコメントをくださったように、 おそらくBも共通化できるのでしょうね。 (attachMovieあたりですか?) こちらも、頑張ってみようと思います。 いろいろとありがとうございました。
417 :
Now_loading...774KB :2007/03/13(火) 10:50:02 ID:5RKEAwd6
超初心者スレでここまで教えていただいたのですが、ここから先が分かりません。 教えてください、お願いします。スロットマシンのFlashを作りたいのですが、 //スタート位置を変える _root.slot0_mc.gotoAndPlay(3); _root.slot0_mc.gotoAndPlay(1); _root.slot0_mc.gotoAndPlay(7); //ストップボタンに番号を持たせる(どのスロットを止めるか判別) _root.stop0_mc.num = 0; _root.stop1_mc.num = 1; _root.stop2_mc.num = 2; //ストップさせる処理 _root.stop0_mc.onRelease = _root.stop1_mc.onRelease=_root.stop2_mc.onRelease=function () { bangou = this.num; _root["slot"+bangou+"_mc"].stop(); this.tometa = true; this.enabled = false; if (_root.stop0_mc.tometa == true && _root.stop1_mc.tometa == true && _root.stop2_mc.tometa == true) { //3つとも止まったとき //絵柄を取得 各絵柄の現在のフレームから取得 egara0=_root.slot0_mc._currentframe; egara1=_root.slot1_mc._currentframe; egara2=_root.slot2_mc._currentframe; //出力 trace("スロット1=絵柄"+egara0) trace("スロット2=絵柄"+egara1) trace("スロット3=絵柄"+egara2) } }; まではご教授いただきました。この後、数字が揃った場合のアクションを追加するにはどうしたらよいでしょうか? 例えば、777が揃った場合、getURLのようなアクションで「大当たり」ページに飛ばすような事は可能でしょうか。 宜しくお願い致します。
>>417 超初心者スレで続きを教えてもらいましょう
419 :
Now_loading...774KB :2007/03/13(火) 18:08:47 ID:hnxkZy48
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)
TextFieldクラスのプロパティで質問です。
_rootのステージに2つのダイナミックテキスト型のTextFieldをcreateTextField()で作り、
この中に文字列を表示させようとしていますが、文字の大きさとフォントのタイプが指定
通りになりません。
ASは下の通りで、全て_rootの1フレ目に書いています。
this.createTextField("txt1", 1, 50, 20, 300, 100);
this.createTextField("txt2", 2, 50, 130, 300, 100); //縦に2個生成
for (id=1; id<3; id++) { //プロパティの指定
this["txt"+id].type = "dynamic";
this["txt"+id].border = true;
this["txt"+id].size = 30; //←←←※
this["txt"+id].textColor = 0x000000;
this["txt"+id].font = "MS Pゴシック"; //←←←※
}
txt1.text = "AcitonScriptのことなら 初歩的な質問でもなんでもおk "; //出力される文字列
txt2.text = "ActionScript 誰かが物凄い勢いで解答するスレ 15 "; //出力される文字列
出来たSWFは
http://swfup.info/view.php/6415.swf ですが、どう見ても文字のサイズと
フォントは設定と違います(MSP明朝の11ptくらい?)。原因は何でしょうか?
なお、textColorを0xFF0000(赤色)にすると、ちゃんと文字が赤くなります。
.fontなんてプロパティあったっけ
421 :
Now_loading...774KB :2007/03/13(火) 18:53:12 ID:Z1cSVOWy
function hoge(x, y = 0) { // 処理 } みたいに、関数の引数としてディフォルト値を設定できましたっけ? MX2004(AS2.0)です。
423 :
Now_loading...774KB :2007/03/13(火) 19:00:41 ID:Z1cSVOWy
>>422 ダメでした(;;)
function hoge(x, y=0)
{
return x + y;
}
trace(hoge(1));
trace(hoge(1,2));
-----
**エラー** シーン = シーン 1, レイヤー = レイヤー 1, フレーム = 1 :行 1:')' または ',' が必要です。
function hoge(x, y=0)
ActionScript エラー数 :1 報告済みエラー :1
うん、まずはECMA262の構文を覚えることから始めたらいい
425 :
419 :2007/03/13(火) 19:55:32 ID:rWX+uvPv
>>420 あります。というか、Flash8で書くと予約語として青く表示されます。
補足ですが、this["txt"+id].type = "dynamic"; this["txt"+id].border = true;
は共に有効です。
427 :
419 :2007/03/13(火) 20:17:01 ID:rWX+uvPv
>>426 すいません。本(逆引き550-p222)に書いてあったのでそのまま適用しました。
改めてヘルプを見ると確かにあったのでヘルプからコピペします。
font (TextFormat.font プロパティ)
public font : String
このテキストフォーマットでのテキストフォント名を示すストリング。
デフォルト値 null はプロパティを未設定にします。
使用できるバージョン : ActionScript 1.0、Flash Player 6
ということで、Player7,AS2.0では不可でした。
でも、馬場ぎんがさんの本見るとTextFormatクラスのプロパティとして
Player6以降で使えるようです。
どっちが本当(fontかw)か分かりません。
>>427 テキストフィールドには.fontというプロパティは無い。
TextFomatオブジェクトを作ってそこにフォントなりを設定して、
それをテキストフィールドに適用する。他の方法は無いよ。
>>427 全然ちゃんと読んでないじゃん。
TextFormat クラスとTextField クラスは別物。
430 :
419 :2007/03/13(火) 20:32:36 ID:rWX+uvPv
>>428 さんきゅうです。うーん、たかがフォント1つ設定するのに幾つかの手順
を踏まないといけないとは・・・・ とりあえずやってみます。
データをローカルのハードディスクではなく swfファイルがおいてあるサーバー上に保存することは 出来るのでしょうか? 逆引きという本を見るとcgiに渡す方法はあるようですが…
すいません なんでもありません スレ汚し大変失礼しました
AS3で質問です。スタティッククラスのクラス名をストリング値で指定して同名のクラスを 取得する方法ってありませんでしょうか? 例えば以下のように var str:String = "Elastic" ↑のElasticのクラスを取得したい場合、 mx.effects.easing[str]では駄目ですし、 getDefinitionByName("mx.effects.easing."+str) as Class でも取得できないようです。 Object や配列で予めクラスとストリングを関連付けておけば可能なのですが、 直接取得する方法はありますでしょうか?
>>433 Object や配列で予めクラスとストリングを関連付けておけばいいんじゃね?
mxのクラスってPlayerの内部クラスじゃないから、先にリンクしておかないと
読み込めない(どこにもない)んじゃないかな。
>>434 レスありがとうございます。importしただけでいいかと思ってたんですが事前にどこかで
読んであげないと駄目なんですね。クラスを事前に読み込んだらgetDefinitionByName
でも取得できました。
436 :
Now_loading...774KB :2007/03/15(木) 15:13:02 ID:2Ief0Xsf
FileReferenceについて質問させてください。 ファイルをアップロードしたときに セッションを使って事前にログインした際の情報を 判定したいのですが IEでは大丈夫なのですが、FirefoxやSafariでは ファイルアップロードのときだけ セッションが別のものになってしまいます。 これは仕様なのでしょうか? ちなみにFlex2です。
>>436 サポートしているブラウザをチェックしてみるとか
仕様です
439 :
436 :2007/03/15(木) 17:01:25 ID:2Ief0Xsf
そうなのですね。残念。 他の方法を考えます。
440 :
Now_loading...774KB :2007/03/16(金) 11:28:07 ID:YDRvG0uW
MCが読み込まれる度に一回だけ攻撃がヒットさせたいんだけど どうすればおk?(現時点ではまったく反応せず onClipEvent (load) { for (i=0; i<26; i++) { hitFlag[i] = true; } } onClipEvent (enterFrame) { for (i=0; i<26; i++) { if (hitFlag[i] == true) { if (this.hitTest(_root.map[_parent.army+i].model.hitObj)) { power = (_parent._parent.AT-_root.map[_parent.army+i].DF); if (power<=0) { power = 1; } _root.map[_parent.army+i].HP -= power; trace("アッー!"); hitFlag[i] = false; } } else { } } }
>>440 onClipEvent (load) {
var hitFlag:Array = new Array();
for (i=0; i<26; i++) {
hitFlag[i] = true;
}
}
442 :
Now_loading...774KB :2007/03/18(日) 23:25:06 ID:6gIqoiNS
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0) 複製したMCのドラッグで質問です。 mc0というroot上のMCに on (release) { newName = "mc1"; //新しい名前は『mc1』 prop = {_x:this._x-50}; //左に-50の位置に出現 this.duplicateMovieClip(newName, 100, prop); //深度は100 } を書いて複製は出来ました(mc1が出現)。しかし、これをドラッグするために rootのthis.onEnterFrame = function() { } 内に this.mc1.onPress = function() { this.startDrag(); }; this.mc1.onRelease = function() { this.stopDrag(); }; を書いたところ、ドラッグは出来るものの、Releaseする度にその場所から左に-50 の位置に移動します。 原因は何でしょうか?
ブラウザ上だと再生速度が低下しちゃうバグの対策に、 <param name="wmode" value="opaque" /> のタグを打ったんだけど、 何故かこれをブラウザ(IE)で開くと逆に再生速度が早くなってしまう…。(´・ω・`) この問題が起こるのは、 今回作った30fpsで動作するアクションゲームだけで、 上記のバグ対策なしだとおよそ24fps程度になって、 対策を入れると30fps〜34fpsくらいになる。 普段は30fpsで動作してるようなんだけど、 何かアクションを起こすとfpsが上昇する。 ソースに問題がありそうなんだけど、 誰かこんな症状聞いたことある人いる? ソースは1万行弱あって、 問題がありそうな部分とか抽出できず情報が少なくて申し訳ない。 ただ一般的な書き方をしてて形式事態に特別問題があるわけではないと思う。 誰か少しでも何か知っている人いたら教えてつかあさい。m(_ _)m ■環境情報 FlashMX 2004 WindowsXP Professional PentiumM 1.4Ghz Memory 1024MB VRAM 64MB(on Borad)
444 :
442 :2007/03/19(月) 02:53:13 ID:vkKELzOL
自己解決しました。 どうやらduplicateMovieClip()では、元のMC(mc0)がASを含めて丸ごと 複製されるみたいで、新しいMC(mc1)にもprop = {_x:this._x-50}; が有効になっています。 解決策:MCでの記述を止めて、フレームアクションで行うようにしました。
>>442 onEnterFrameのなかに onPress=function(){}を書くのはどうかと思う。
で、その原因は良くわからんけど以下のようにASをすべてフレームに記述すれば解決。
this.mc0.onRelease = function() {
newName = "mc1";
prop = {_x:this._x-50};
mc1 = this.duplicateMovieClip(newName, 100, prop);
mc1.onPress = function() {
this.startDrag();
};
mc1.onRelease = function() {
this.stopDrag();
};
};
textFieldのことについてなんですが textFieldに変数をリンクして変数の値が変わったら 何も記述しなくても表示変わってくれる様にする事は出来ないでしょうか? 今現在毎回replaceText()で置き換えていて少々不便なもので。
>>446 変数の値がどういうタイミングでどこから変更されるのかわからんが、
変数の値が変更されるタイミングでテキストフィールドに表示するという
関数を自分で作ればそれほど不便てことはないと思うが?
何にせよ、基本的に必要な動作は自分で記述する必要がある。
後は設計によって便利か不便かが別れるのではないだろうか。
449 :
Now_loading...774KB :2007/03/19(月) 16:36:35 ID:2D5R29+B
MovieClipを拡張したMyMovieClipを使いたいんだけど オーサリング環境で画面に置いたMovieClipインスタンスが MyMovieClipで作られるようにすることは可能ですか?
>>449 ちと、よくわからんが普通にライブラリに作ったMCをドラッグすればいいんでは?
getURLでボタンを作ったんですが、IEでは動作するのですが
firefoxでうまく動作しません。
なにか記述で対策はあるのでしょうか?
on (press) {
getURL("
http://... ", "_blank");
}
と書いています。
再現しないなぁ@Firefox2 ポップアップブロックか「新規タブで開く」モードで勘違いしてるとかないかい
>>452 レスありがとうございました。
自ブラの設定がポップアップブロックになってました・・
吊ってきます
>>451 サポートされているブラウザの環境をチェック
>>449 AS3なら普通に可能。
AS2ならリンケージ設定でクラスを指定。
>>456 画面再描画が追いつかなければ自動的に間引きされるから、
必然的にfpsは下がるわな。
実行時に右クリックで再描画領域のチェックしてみれば?
458 :
Now_loading...774KB :2007/03/20(火) 11:13:52 ID:2CLiIh9w
先生! MovieClipLoaderのイベントハンドラについて質問でつ(MX2004、AS2) mcListener.onLoadComplete = function( ターゲットA:MovieClip ) { trace("読み込み終了"); } mcListener.onLoadInit = function( ターゲットA:MovieClip ) { trace("先頭フレームのアクションが実行された"); } ローカルでは onLoadComplete と onLoadInit の処理はほぼ同時に処理されるはずなんでつが 何かのキーを押していると微妙に onLoadInit の処理されるタイミングが遅れまつ これって仕様? キー入力に関するコードも書いてますがMovieClipLoaderに影響は無い内容でつ しかもなぜか Key.isDownで設定してないキーを押してもタイミングが遅れまつ
>>458 ロードされました。というのと、ロードし終わって処理を開始しますの違いでしょ。
後者に処理を書けば問題ないのでは?
460 :
458 :2007/03/20(火) 12:32:48 ID://mBYTpb
レスありがとー先生 たしかにおっしゃる通りでつが当初不具合の原因がわからず混乱しまつた まあ報告みたいなもんでつ
461 :
Now_loading...774KB :2007/03/20(火) 21:47:51 ID:Vwj3ea7P
あまりに基本的な問題で申し訳ないですが、以下のコードで深度も変わらない、 複製も出来ない原因はどこにあるのでしょうか? //深度100に空のムービークリップを作成 this.createEmptyMovieClip("myMovieClip", 100); trace("作成したmyMovieClipの有無確認 = " + this["myMovieClip"]); trace("作成したmyMovieClipの深度確認 = " + this[myMovieClip].getDepth()); //深度101にムービークリップを複製 this.myMovieClip.duplicateMovieClip ("myCopyMovieClip", 101); trace("複製したmyMovieClipの有無確認 = " + this["myCopyMovieClip"]); trace("複製したmyMovieClipの深度確認 = " + this[myCopyMovieClip].getDepth()); //深度999にムービークリップを移動 this.myMovieClip.swapDepths(999); trace("変更したmyMovieClipの有無確認 = " + this["myMovieClip"]); trace("変更したmyMovieClipの深度確認 = " + this[myMovieClip].getDepth()); 【traceの結果】 作成したmyMovieClipの有無確認 = _level0.myMovieClip 作成したmyMovieClipの深度確認 = -16384 複製したmyMovieClipの有無確認 = _level0.myCopyMovieClip 複製したmyMovieClipの深度確認 = -16384 変更したmyMovieClipの有無確認 = _level0.myMovieClip 変更したmyMovieClipの深度確認 = -16384
>>457 いや、逆にブラウザ上でバグ対策すると、
fpsが上がって早くなりすぎるから、
ゲームにならなくて困ってるんだ。(´・ω・`)
以前OCNのなつゲーコンテストに応募したときも、
うpされてたのがこれと同じ症状になっててマジ萎えた。
いくらググっても全く同じ症例が見あたらないんだよね…。
34fpsくらいでパブリッシュして、
バグ対策なしでうpするしかないか…。(´・ω・`)
どうしても分からないので教えてください。 環境はWinXPでFlashMXを使用しています。 ムービークリップに記述するアクションスクリプトの話です。 #を押した時に動作するようにしたいのですがやり方が分かりません。 on(press, keyPress "#"){ } ではなく、 onClipEvent(enterFrame){ if( Key.isDown() ){ 色々; } } のような感じでやりたいのですが、Key.isDownの()の中に何を書けばいいか分かりません。 キーコードで調べても#は見当たらないのですが、どうすればいいのでしょうか?
464 :
Now_loading...774KB :2007/03/20(火) 23:04:56 ID:Vwj3ea7P
>463 #はShiftを押しながら入力しないか? つまりそういうことだ。
>461 this.myMovieClip.getDepth() じゃないか?
467 :
463 :2007/03/20(火) 23:35:18 ID:lG3bp2TE
>>464 調べてみると、3と#はキーコードは同じで
アスキーコードは違うみたいですね。
Key.isDownでアスキーコードは扱えないのでしょうか?
>>465 Shiftと3が同時に押された時に処理しろということでしょうか?
PCで操作する場合はそれでいいのですが、
携帯用に作成しているFLASHなので別の方法はないでしょうか?
468 :
Now_loading...774KB :2007/03/20(火) 23:43:13 ID:Vwj3ea7P
>>466 []を消してthis.myMovieClip.getDepth()にすると指定したとおりの値が得られました。
ありがとうございました。
//深度100に空のムービークリップを作成
this.createEmptyMovieClip("myMovieClip", 100);
trace("作成したmyMovieClipの有無確認 = " + this.myMovieClip);
trace("作成したmyMovieClipの深度確認 = " + this.myMovieClip.getDepth());
//深度101にムービークリップを複製
this.myMovieClip.duplicateMovieClip ("myCopyMovieClip", 101);
trace("複製したmyMovieClipの有無確認 = " + this.myCopyMovieClip);
trace("複製したmyMovieClipの深度確認 = " + this.myCopyMovieClip.getDepth());
//深度999にムービークリップを移動
this.myMovieClip.swapDepths(999);
trace("変更したmyMovieClipの有無確認 = " + this.myMovieClip);
trace("変更したmyMovieClipの深度確認 = " + this.myMovieClip.getDepth());
//指定した深度にムービークリップが存在するか確認
trace(this.getInstanceAtDepth(100));
trace(this.getInstanceAtDepth(101));
trace(this.getInstanceAtDepth(999));
//存在するムービークリップの最大深度
trace(getNextHighestDepth());
469 :
Now_loading...774KB :2007/03/20(火) 23:44:49 ID:Vwj3ea7P
改行が多過ぎと怒られたので続きです。 【traceの結果】 作成したmyMovieClipの有無確認 = _level0.myMovieClip 作成したmyMovieClipの深度確認 = 100 複製したmyMovieClipの有無確認 = _level0.myCopyMovieClip 複製したmyMovieClipの深度確認 = 101 変更したmyMovieClipの有無確認 = _level0.myMovieClip 変更したmyMovieClipの深度確認 = 999 undefined ←swapDepthしたのでundefinedで正解 _level0.myCopyMovieClip _level0.myMovieClip 存在するムービークリップの最大深度 = 1000
470 :
463 :2007/03/21(水) 00:23:32 ID:WUx7HYxO
>>463 の質問の内容に少し補足を・・・。
463の内容か、もしくは、
on(press, keyPress "#"){
}
で、キーを押した瞬間だけ動作させるように出来ないでしょうか?
>>462 なるほど、言いたいことは分かったがそんな症状には出会ったこと無いな。
力になれなくてスマン。
mc.onRollOut= function(){ test } ; mc.onDragOut= mc.onRollOut; こういうこと?
>>473 mc.onRollOut = mc.onDragOut = function(){
test
}
ってこと?
476 :
Now_loading...774KB :2007/03/21(水) 04:40:24 ID:PAVuuw3I
トイレの窓から出ようとして窓に挟まっちゃってる女のやつないですか?
申し訳ありませんが 風香は扱っておりません
>>474-475 どっちの書き方も全く知らなかった・・・
教えてくれてありがとう。勉強になった
function tester() { test } mc.onRollOut = tester; mc.onDragOut = tester; おれはこういう書き方の方がなじむな。見やすいし。
HTMLファイルからフォームでいくつかの文字列を送って、 Flash側でそのURLを分解して変数に格納してダイナミックテキストか何かで表示したいのですが、どうすればいいのでしょうか?
>>481 htmlをflashにする。これで解決。
>481 <form action="hoge.swf" method="get"> <input type="text" name="var1"> <input type="text" name="var2"> <input type="submit" value="submit"> </form> というフォームで送信すると、hoge.swfで最初に _root.var1 _root.var2 の変数に対応するテキストが代入される
>>479 関数とか使わないで、って書いてたのでファンクション宣言を使いたくないのかと。
まぁメソッドクロージャも匿名関数だけどね。
>>483 ありがとうございます。
英数字はそれで問題がなかったのですが、日本語を表示するには
<form action="test.swf" method="get">
<input type="text" name="var1">
<input type="submit" value="submit">
</form>
var2 = unescape(var1);
と、こんな感じで"var2"を表示させたらいいのだろうと思ったのですが、どうしても文字化けしてしまいます。
なぜでしょうか?
質問してばかりですみません...
>485 HTMLフォームの文字コードをUTF-8にしてる?
今までコンポーネント単位に配置していたイベントスクリプトを、1フレーム目に #include する一つのASファイルにまとめようとしています。 例: ボタン button1 のイベント on(press) { Alert.show('test'); } ↓ ASファイルに書き直し _root.button1.onPress = function() { Alert.show('test'); } 最初のフレームのイベントは問題なく移行できたのですが、2フレーム目移行のキーフレームに配置したオブジェクトのイベントが動作しません。 もしかしてコンポーネントがあるキーフレームの単位で #include する必要があるのでしょうか? キーフレームの位置はレイヤごとに様々で一定ではないため、できれば1つのASファイルにまとめたいと思っています。 やり方を知っている方、教えてください。
488 :
487 :2007/03/22(木) 14:02:20 ID:vSVtj/5O
環境を書き忘れていました Windows XP SP2 Flash 8 Professional よろしくお願いします
>>486 ありがとうございます、うまくいきました。
ほかのサイトで見たものはShiftJISだったので、
何か特別なことをしなければいけないものだと思いこんでいました。
#includeでASファイルを読むってのは、#includeされた位置にASファイルのスクリプトを丸々コピーするってことになる。
つまり今
>>487 がしていることは2フレーム以降にあるオブジェクトのイベントを
全て1フレーム目に書いてるっていうこと。普通に考えたら動作しないよな
フレーム単位で#includeするとか、functionで括るとか対策は色々あるけど・・・
外部ASファイルにするメリットは「テキストエディタでSWFの挙動を変更できる」くらいで
動作速度が遅くなるとか、スクリプトが丸見えだとかデメリットが多いってことは既知?
作例CD付きのテキストにあった物をちょっと弄ったものですが メインタイムライン1行目に myListener = new Object(); myListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) { per_txt.text = Math.floor(loadedBytes / totalBytes * 100); }; myListener.onLoadComplete = function() { nextFrame(); }; my_Lod = new MovieClipLoader(); my_Lod.addListener(myListener); my_Lod.loadClip("xxx.swf", loader_mc); stop(); として、読み込み割合を表示→読み込み100%後xxx.swfをloader_mcに表示しているのですが 自分が用意した、画像がフェードアウトするだけの簡単なswfを読み込ませたら 最初の読み込み割合の表示中と同時にswfの再生が始まってしまいました ちゃんと読み込みが100%になってからswfを再生させるにはどのようにすれば良いのでしょうか?
1文字代入しようと思うんですが、上手くいきません。 toStr[0] = str[0]; すごい単純な事だと思うのですが・・・
493 :
492 :2007/03/22(木) 18:30:02 ID:xwNf5jPy
>>490 >動作速度が遅くなるとか、スクリプトが丸見えだとかデメリットが多いってことは既知?
その話どっから持ってきたんだよ。
まさか、swfと*.asファイル一緒じゃないと動かないとか思ってないか?
>>490 自分も知りたい。
> 動作速度が遅くなるとか、スクリプトが丸見えだとか
これってソースはどこ?
何と比較してそう言ってるの?
コピペされるだけなら、flaファイルのフレーム1に書くのと同じことじゃないのか?
動作速度にしても解析可能にしてもflaに直接書くのと変わりないと思ってたけど?
どっからそんなトンデモ知識身に付けてきたんだよw
ごめん。俺が間違ってたw
>>494 の言ってるように、.asがインタプリタ型のincludeと同じ扱いになる思ってたわ
コンパイラディレクティブ : 指定したファイル内のコマンドを呼び出し元のスクリプトにインクルードし、
そのスクリプトの一部であるかのように扱います。#include ディレクティブは、コンパイル時に起動されます。
このため、外部ファイルに何らかの変更を行った場合には、ファイルを保存し、
その外部ファイルを使用している FLA ファイルを再コンパイルする必要があります。
flvファイルの再生についての質問ですが、 flvファイルの総再生時間を得るにはどうしたらいいんでしょうか? 例えば1分のflvファイルがあったとすると、この1分というのをデータで欲しいのですが。 netStreamメソッドの一覧を見てもそれらしいものがありません。
バージョン
500 :
498 :2007/03/23(金) 11:26:02 ID:SiqOIwuY
FLASH 8でした。 netStream.onMetaDataのdurationが時間のようですね。 自己解決しましたすいません。
501 :
Now_loading...774KB :2007/03/23(金) 12:50:06 ID:DF+Ud5uk
一つのswfに複数のXMLを読み込ませるのって簡単?
>>501 XMLオブジェクトのloadメソッドで好きなだけ読み込んでください
503 :
Now_loading...774KB :2007/03/23(金) 14:35:05 ID:m2qYEHhv
質問失礼します falshMX2004で透過処理を行ったpngを外部から読み込むことは出来ないのでしょうか? 色々調べるとパブリッシュの時点でFlashPlayerが7、ASが2ではpngに対応してない臭いのですが・・・ 以下のスクリプトでテストしてみたのですがやはり読み込めません 同様なjpgは読めるのですが・・・、なにか抜け穴は無いでしょうか? _root.createEmptyMovieClip("pic", 1); pic_load = new MovieClipLoader(); pic_load.loadClip("pic/1.png", _root.pic); やはりflash8に買えかえるしかないのかなぁ・・・お財布にきつい
>>503 swfとjpgだけだったはず。
pngをswfにして読み込みという方法は無理?
>>504 えっとxml読み込み型のちょっとしたゲーム作成フラッシュを作りたいんです
なのでswf形式を読み込ませるのはユーザーに負担かかっちゃうかなぁと思いまして
やっぱり直接pngを用いるのは無理ですかね
レスありがとうございました
よくみたら全然ちがった。すまん。
508 :
505 :2007/03/23(金) 22:19:59 ID:m2qYEHhv
>>508 png型式の画像を動的に読み込めるのはFlash8からなので
8を買うか、透過GIF使うとか。
ライブラリに読み込んでおけばpngも使えるけどね。
ここで質問していいのか分かりませんが、 (A+20B+C/4)*2-3Dと言う計算式にA〜Dに値を入れ、 その結果を返し表示するフラッシュを作りたいです。 Text Filedクラスを作ってやるのかなと思い、ダイナミックテキストにしてみましたが いまいちよく分からず、できませんでした。 宜しくお願いします。
511 :
510 :2007/03/24(土) 22:05:30 ID:/aZomwTA
環境はwinXpでFlash Lite1.0出力方式でお願いします。
計算式をパースするライブラリ、何て言ったっけ
513 :
510 :2007/03/24(土) 22:35:11 ID:/aZomwTA
追記です。 各値は0をふくむ正の整数が入れられるようにしたいです。 また、Cは割りきれない場合は小数点以下切捨てで計算するようになるようお願いします。
お願いします、って製作依頼かよ!
>>513 A = 1
B = 2
C = 3
D = 4
と値を代入して
ans = (A + 20*B + C/4)*2 - 3*D
で計算。
516 :
Now_loading...774KB :2007/03/25(日) 00:36:25 ID:uduwVn/T
_root上のMCをクリックした地点を中心に拡大したり縮小したりするようにしたいんですが、どうすればおk? 自力ではお手上\(^o
>>516 たとえばクリックすると2倍の大きさになるとする
(1,1)をクリックするとサイズが2倍になってクリックしたポイントは(2,2)に移動する。
その移動したポイントが元の場所に表示されるように場所をずらせば良いわけだ。
さてどの辺でつまってる?
518 :
Now_loading...774KB :2007/03/25(日) 01:02:47 ID:uduwVn/T
拡大は出来るんだけど、位置は変えられないし変えても戻せないってのが現状。今アク禁喰らって携帯厨だからASカケネ
>>518 zoom = 2;
box.onRelease = function() {
var mx = this._xmouse * this._xscale / 100;
var my = this._ymouse * this._yscale / 100;
this._xscale *= zoom;
this._yscale *= zoom;
this._x -= mx * zoom - mx;
this._y -= my * zoom - my;
};
520 :
501 :2007/03/25(日) 05:05:12 ID:pCoY+j8h
>>519 かたじけない。ちょっくら試してみましょ。縮小は*zoomを/zoomにすれば大丈夫かな?(携厨
zoom = 2; を 0.5とかにすればいいよ。 そうすれば縮小でも拡大でも同じ処理になるから。
質問です keydown で変数Xが変数==0ならフレームAに。 変数==1ならフレームBに。というASなんですけど onClipEvent (keyDown) { if (Key.isDown(88)) { _root.gotoAndPlay("フレームA"); } } ここまでは出来たのですが、変数によっての分岐で 振り分ける方法がわからないでいます。 else if でいろいろ試してみたんですが・・・ どうかご教授お願いします。
>>523 質問の意味がよくわからないんだけど
if ( X == 0 ) {
_root.gotoAndPlay("A");
} else {
_root.gotoAndPlay("B");
}
を if (Key.isDown(88)) { } 内に書けばいいんじゃないの
525 :
523 :2007/03/27(火) 18:54:07 ID:ld+AZfcT
質問します。 環境:FlashMX2004 文字列を変数に直したいのですが、上手くいきません。 何か方法はありますでしょうか。 list = 2; hoge1 = 3; hoge2 = 4; hage = "hoge"+String(list);//hage = hoge2(文字列) hoge3 = hoge1+Number(hage); //ここで3+4(結果7)にしたいのですが上手くいきません。
hoge3 = hoge1+this[hage];
>>527 有難うございます、そのような書き方は知りませんでした。
足し算は上手くいきませんでしたが、もう少し試してみます。
529 :
Now_loading...774KB :2007/03/29(木) 04:10:54 ID:IhMtmG3F
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0) for文の停止→再開で質問です。 0〜999の間で100単位で処理を止め、一定時間(例えば2000ms)後に次の 100個の処理を行うASはどんなものになるでしょうか? つまり、処理→2秒停止→処理→2秒停止・・・ です。 一応、on (release)内 のボタンアクションは以下の様に書き、100単位でtraceは出ます。 on (release) { kazu = 1;//kazuの初期値 for (id=0; id<1000; ) { if (id%100 == 0 && id>0) { trace("id= "+id); } kazu = kazu*10+kazu; id++; } } setInterval(動作を記述した関数, 2000) を使おうと思いましたが、これでは時間 そのもので制御するので諦めました。 どのような方法がありますでしょうか?
>>526 hageは"hoge2"という文字列だから、それを数値にはできないでしょ。
数値の文字列表現、例えば"12345"等を数値にするのがNumber()。
>>529 1秒ごとにfor100回ずつ処理。境界条件とかはお好みで。
idmax=1000;
id = 0;
intervalid = setInterval(this,"rdisp",1000);
function rdisp(){
if(id>=idmax-100){
clearInterval(intervalid);
}
for( i = id; i<id+100;i++){
trace("id="+id+"i="+i);
}
id += 100;
}
ASで音声ファイルのピッチを変更する事って可能?
>528 >527 hoge3 = hoge1+this[hage]; 足し算できますよ
>531 倍速遅速再生ってこと? Sound.position プロパティで飛び飛びで再生することは出来るけど あいうえお→あうお ってなるから汚い 綺麗に再生する方法があれば教えて欲しい
>>532 それは何を足してるかわからんな。
参照したいならthis["hage"]かthis.hage。
当然文字列"hoge2"が値としてtrace出来ると思うよ。
>>531 無理。ピアノみたいなの作りたかったらそれぞれの音階のwavを割り当てるとか。
>534 えーと、>526みれば意図は分かると思うんだけど hoge3 = hoge1+this[hage]; っつーのは hoge3 = hoge1+hoge2; のこと
>>535 ああ、すまん文字列にしてたのね。Numberの方見てた。
537 :
526 :2007/03/29(木) 16:15:31 ID:CkgWHQ82
>>532 >>534-536 有難うございます、参考になります。
今、成功と失敗を繰り返しています^^;
loadVariables("text1.txt",_root);
/* test.txt ファイルの内容
&hoge2=4&
*/
list = 2;
hoge1 = 3;
hage = "hoge"+String(list);
//hage = hoge2(文字列)
this.onEnterFrame=function(){
hoge3 = hoge1 + Number(this[hage]);
}
/*これで上手くいくのですが…、ボタンをつかってやろうとすると失敗('A`)
おかげ様で、前進しました。 もう少し試してみます。
もう、何をしたいのか書いちゃえば? onEnterFrameとか目的が分からんと理解できん
よくわかんないけどloadVariablesが完了してないんじゃね?
何とか目的のFlashがほぼ完成しました。
おかげ様でとても助かりました、ありがとうございます。
>>538 ユーザーが編集できるリストを作りたかったんです。
テキストファイルから読み込んだリスト(変数)を、用意した文字列から("hoge"+String(list)の様に)指定し、
更にボタンを押してリストを出力するのが目的です。
>>539 おお、多分そうだと思います。
onEnterFrameにしておかないと、loadVariablesで指定した変数の値が代入されていないようでした。
541 :
529 :2007/03/29(木) 20:28:42 ID:6Y3DTgsv
>>530 さんきゅうです。
しかし、この記述では最初に待ち時間があり不便です。
別の方法はないでしょうか?
それと、intervalid = setInterval(this, "rdisp", 3000); の『this』
と『" "』意味を教えて下さい。ヘルプを見ても分かりませんでした。
私の方では、getTimerを使った方法を探っています。
>>541 最初に1回rdisp()を呼んでから処理を行えばいいのでは?
thisは自分自身のインスタンスを表す。この場合はMCだね。
""は文字列を表現するときに使う記号。rdispという名前の関数を
参照するってこと。thisに書かれたrdispと言う名前の関数を3秒ごとに
実行しますってことじゃないかな。
やりたいことを書いてくれたほうが、ベストな解決方法はいっぱい出てくると思うけどね。
543 :
Now_loading...774KB :2007/03/30(金) 00:27:51 ID:WGGKDHkK
援助要請 やたらでかいMC(map)の中に複数のMCがあって map内のMCをクリックすることによってクリックしたMCがスクリーン上の 中心になるようにmapを動かしたいんですが、どうすれば 例によってお手上げ
イベントをクリックで取ろうと思わずに クリックを_rootで取って、その中で for inとかで該当MCを回して、マウス座標とhitTestしたほうがいい
>>542 どうも。『やりたいこと』は簡潔には表現しづらいので、530さんの方法を
採用します。
※getTimer案は良いのが出来なかったのでパスします。
採用とかいっちゃってるよw
上から目線w
>>543 座標系で混乱したら、A4の紙をステージに見立てて
ポストイットとか置いてみればすぐわかる。
MC(親), MC(子)があるとするよ。
親の原点をスクリーンの中心にするには
oya._x = Stage.width * 0.5
oya._y = Stage.height * 0.5
親の中にある子供の座標_x = 100, _y=100だとするだろ?
そうすると、実際の_rootで子供が表示される位置は親からさらに100右下にずれるから
Stage.width + ko._x
Stage.width + ko._y
になる。
つまり、こいつが画面の中心になるように、親の座標をずらしてやればいい。
この場合、左上に100ずれればいいんだよな。で、100ってのは子供の座標分と同じだよね。
よって
oya._x = Stage.width*0.5 - ko._x
oya._y = Stage.height*0.5 - ko._y
550 :
Now_loading...774KB :2007/03/30(金) 17:48:41 ID:kqp21wEc
スレ違いかもしれませんが、ほかにあてもなかったのでこちらに書き込みさせていただきます。 Flex2でWordやExcelの文書をそのままコピペできるようなリッチテキストエディターご存知の方いませんか? いろいろ調べてはみたのですが、見つかりませんでした・・・・orz 画像データもそのままコピペで貼れちゃうエディターが理想です。 JavaScriptで作られたものはあったのですが・・・
>>546 多分、529&541との入力ミスだと思いますが、540は私ですよ。
mapを動かすとかは、処理が重そうだし、難しそうですね^^;
553 :
Now_loading...774KB :2007/03/31(土) 03:10:55 ID:pS/dIVtD
外部ActionScript 2.0 クラスのスクリプトでのみ定義される必要があります。 とエラーメッセージが出るのですが何が悪いのかわかりません。
多分外部のクラスファイルで書かないとだめなんだと思います。
555 :
Now_loading...774KB :2007/03/31(土) 03:29:33 ID:pS/dIVtD
お返事ありがとうございます。 多分、外部のクラスファイルに書いているつもりなのですが main.as と test.as を作って flaファイルの1コマ目に #include "main.as" #include "test.as" と書くとエラーになるのです・・・。 #include "main.as" だけ書いた場合はエラーにならず、 >#include "test.as" ↑この記述にエラーがあるのかと思い続けているのですが 解らないので、良ければ教えてください。お願いします。
>>555 クラスファイル?それとも普通のas?
クラスファイルならパスの通ったところからimportだよ。
557 :
Now_loading...774KB :2007/03/31(土) 08:20:19 ID:pS/dIVtD
普通のASとクラスファイルの違いがわかりません・・・ 一応、test.asにはクラスの定義が入っているのでクラスファイルということに なるのでしょうか? また、そうした場合、普通のASファイルというのは何を指すのでしょうか 分からない事だらけです。すいませんがよろしくお答え願います。
class クラス名{ 定義 } の形式で書いてあるのがクラスファイル。 普通のASファイルはタイムラインに書いてあるコードをそのまんま テキストファイルに移して拡張子「*.as」にしたファイル。 includeの書き方は間違ってなさそうだから、 「test.as」の内容にエラーがあるんじゃない?
>>557 AS2でファイル名と中身のユーザー定義関数の名前が同じのがあるとクラスファイルと誤認するお
クラスファイルはincludeしたら内部ファイルになってエラーになるんでは
>>560 ためしてみれ クラスファイルでもないのにクラスがどーのこーのってエラーが出る
>>562 だから詳細をと。もしかしてimportと#includeまちがえてエラーってことないよな?
試してみた。 asファイル「Hoge.as」 function Hoge() {trace("hoge");} 同一ディレクトリのFlashのAS #include "Hoge.as" エラーでないよ。こういうことじゃない?
565 :
562 :2007/03/31(土) 16:21:46 ID:nULmcugg
やあ! エラー出ないなw でも以前はたしかに出たんだって それでファイル名を大文字に変えて回避したんだお あれは何だったんだ…
小人さんの仕業だな 寝不足とか不摂生するとよく出てくるぞ 仕事は進めてくれるけど間違いだらけのお茶目さんだが
ASOの消し忘れだべ
LoadVarsでのCGI呼び出しについて質問。 LoadVarsにて下記のようにCGIの呼び出しをしています。 myVars.data = "XXX"; myVars.sendAndLoad("XXX.CGI", myVars); myVars.onLoad = function () { XXX }; このときCGIからの返事がない場合のタイムアウトはどのように すればいいのでしょうか? 返事がない場合受信待ちになっているようで、一定時間後 再度sendAndLoadを実行してもCGIのリクエストが出ていないようです。
>>568 onLoadの引数でエラーが返るから、
あとはsetIntervalで自分で何秒でリトライとか決めればいんじゃないかな。
まあデバッグ時ならタイムアウトじゃなくCGIやASに問題がある場合が多いよ。
570 :
Now_loading...774KB :2007/04/02(月) 22:51:02 ID:pH+yLGrA
スクロールバー付き複数行ダイナミックテキストに 120行ぐらいの外部テキストを表示させているのですが、 それをHTMLのアンカーリンクみたいに、 任意の行が1行目に来るように 移動させるにはどうしたらよいでしょうか?
572 :
Now_loading...774KB :2007/04/02(月) 23:22:23 ID:3iOk37lK
ムービー1,2と常にループするようMediaPlayBackで設定しているんですが。 1の再生時にバッファ時間を設定して何秒後に再生されるようにしたいのですがうまくできません。 また、1のバッファが完了して1が再生されている間に2のバッファが裏ではじまっていて、動画切り替わり時にスムーズに 再生されるようにするにはどのようにすればいいんでしょうか?
ムービーファイルは外部FLVです。
574 :
570 :2007/04/03(火) 00:53:11 ID:ZrptS6ZB
>>571 ありがとうございます。ですが scroll はわかるんです。
例えば、
○月○日
××××××××××××××××××××××××××××××××××
××××××××××××××××××××××××××××××××××
○月□日
××××××××××××××××××××××××××××××××××
○月△日
××××××××××××××××××××××××××××××××××
××××××××××××××××××××××××××××××××××
××××××××××××××××××××××××××××××××××
・
・
<以下略>
といったテキストを、任意の日付の文章が一行目に来るように
表示させたいんです。
何か方法はありませんでしょうか?
>>574 いや、だからその質問ならscrollプロパティを使えば、と言われるのは当然では?
任意の行に移動するのはscrollプロパティを使えばできることだから。
そうでないなら、もっと具体的にどこがわからないのかを説明した方がいい。
たとえば「特定の日付が何行目にくるかがわからない」とか。
576 :
570 :2007/04/03(火) 01:45:51 ID:ZrptS6ZB
失礼致しました。 仰るとおり、例えば○月△日が何行目にあるかが判れば scroll でそこへ移動できますが、それが判らなくて困っています。 何か方法はありませんでしょうか?
>>572 >バッファ時間を設定して
ユーザーの回線速度を考慮してる?
インターバルするにしろ、読み込み完了のチェックをしてから次の処理に進む
ロジックが必要かと
578 :
Now_loading...774KB :2007/04/03(火) 02:23:00 ID:qbvmyliN
そうか、回線速度を考えると1つのビデオごとに読み込むほうがいいんだね。 ということはビデオ2に行くときに映像が少し読み込むまで停止してるから その間NowLoading・・・を表示するようにすればいいんですね。 やり方がまったくわからない・・・orz
>>578 >>577 の回線速度...って意味をどこまで理解できてるかわかんないが、
ある人は光回線で一瞬でバッファされるだろうし、またある人は56K接続で
バッファまでかなりの時間を要するかもしれないって違いのこと。
低速回線および何らかの不都合で読み込みに時間を要した場合への配慮までするなら
時間制御だけでムービー2の開始をしてしまったらムービー1の読み込みが完了しないまま
ムービー2の読み込みを始めてしまうってこと。
if(初回起動){ ムービー1の読み込み開始&タイマースタート; } ↓ Now Loading...表示 ↓ if(ムービー1読み込み完了 && タイムアップ){ ムービー2読み込み開始; ウェイトタイマー開始; タイムアップ; ムービー1再生開始; } ↓ if(ムービー2読み込み完了){ 初回起動およびバッファ完了; } ↓ if(バッファ完了){ ムービー1再生; ムービー2再生; ムービー1再生; ・・・以下ループ; } 流れ的にはだいたいこんな感じでいいと思ふ
少し抜けてたorz if(ムービー2読み込み完了){ 初回起動およびバッファ完了; if(ムービー1再生終了){ ムービー2再生開始; } } ↓ if(バッファ完了 && ムービー2再生終了){ ムービー1再生; ムービー2再生; ムービー1再生; ・・・以下ループ; }
582 :
Now_loading...774KB :2007/04/03(火) 08:35:01 ID:lfno4qtt
>>569 それがonLoadでエラーにならずに待ち状態になるんですよ。
しかも再度sendAndLoadをしてもCGIのリクエストがでないんです。
それで何とかタイムアウトさせれないか考えていますが、今のところ
うまくいっていません。
スクリプトの質問とはちょっと違うのですが失礼します フラッシュ再生時に、多数の外部画像を読み込んで削除を繰り返します ページを更新等一切せずに、フラッシュ再生中にまた画像を呼び出すとキャッシュを利用して即座に表示できるのでしょうか? もちろん、個人個人のブラウザの設定等で変わるのは分かってますが 一般的にこの技は通用するか知りたいです 中々テストがしにくい内容なので・・・・ もし使ったことのある方いましたら教えていただきたいです
>>576 ○月△日の前に何個改行があるかって事だろ?文字列処理のメソッドを調べてみる事
>>583 UA依存
>>583 一般的なブラウザで、一般的なユーザーなら
そう考えて問題ないかと。
ただ、まったく考慮しないで組むと
ファイルが見つからないと処理が進まないとかなるので、
最低限のエラー処理なりローディングは入れとくのが吉
>>582 CGIの読み込みも成功してるのでは?
不具合の判断はどうやってるの?
587 :
Now_loading...774KB :2007/04/03(火) 15:41:24 ID:lfno4qtt
>>586 まず正常なCGIと何も返さないCGIを用意します。
正常動作のCGI(aaa.cgi)
#!/usr/bin/perl
require 'm_unit.pl';
print "Content-type: text/html\n\n";
$a = xxx;
print "data=$a";
わざと何も返さないようにしたCGI(bbb.cgi)
#!/usr/bin/perl
require 'm_unit.pl';
これでLoadVarsで正常CGIへsendAndLoadした場合はもちろん
正常にデータが取得できます。
その後何も返さないようにしたCGIへsendAndLoadを行います。
このとき何も返ってこないのは当たり前ですが、
これを2回以上繰り返し、その後正常CGIへsendAndLoadを
実行しても何も返ってこなくなります。
なのでLoadが完了せずおかしくなっているのではないかと
思っているところです。
>>587 たぶんAS側のプログラムミスじゃないかな。
そちらの方のソースが無いから何とも言えないけど、
loadVarsオブジェクトは正常用と返さない用にきちんと2つ作ってる?
Flex初心者です・・・ 質問させてください。 <mx:Canvas width="722" height="659" autoLayout="true" x="10" y="212"> <mx:Panel x="10" y="25" width="250" height="200"></mx:Panel>←パネル1 <mx:Panel x="10" y="235" width="250" height="200"></mx:Panel>←パネル2 </mx:Canvas> 上記のような状態で、マウス操作でパネル1とパネル2を入れ替えたいのですが、 どのようにすればよろしいのでしょうか? サンプルソースがある場所でもかまいません、教えてください。 よろしくお願いします。
>>587 そもそも何も返さないCGIって鯖エラの原因にならなかったっけ?
それを走らせてるだけで問題ってことはないのかな。
591 :
Now_loading...774KB :2007/04/03(火) 17:27:34 ID:lfno4qtt
>>588 非常に簡単なスクリプトを作成してテストしてみました。
loadVarsオブジェクトは次のようになっています。
ソース
ボタン1
lon(release)
{
System.useCodepage = true;
myVars = new LoadVars();
myVars.data = "";
myVars.sendAndLoad("
http://192.168.0.1/AAACGI ", myVars);
myVars.onLoad = function (success)
{
if (success) {
Mes.text = MyVars.toString();
}
};
}
ボタン2
ボタン2もAAA.CGIの部分がBBB.CGIとなっているだけで
それ以外は全く同じものです。
環境 WinMe Flash5 目的 無作為に選んだ数値10個を小さい順に表示したい。 無作為に選んだ数値をd_1,d_2・・・・d_10として配列(Array)を作り それをsortしてみましたがうまく行きません。 変数を数値に置き換えないとダメなんでしょうか? 変数を数値に置き換える方法は有りますか?
>>591 >if (success) {...
の部分でエラーの時、つまりelseの時はエラーメッセージを出力するとかするのでは?
そのソースだとどこがエラーなのか特定できないよ。
正しいときも何か固定で良いからメッセージを出力してみて、
「正しくて何も出力されない」のか、「エラーで何も出力されてない」のかまず判断。
595 :
592 :2007/04/03(火) 18:45:49 ID:xdSR6BrD
>>594 すいません。自己解決しました。
選出される数値に1桁と2桁の場合があり、
結果を見ていたら、一桁の数値が並べ替えの際に2桁目として認識されるようだったので
選出する数字の桁数を揃えたらうまく行きました。
ありがとうございました。
>>591 送信用と受信用のLoadVars別にした方がいいんじゃないか?
>>595 解決したみたいだから参考までに。sort()のデフォルトは
辞書順だから、数値としてsortするときにはオプションを付ける。
some = [0,1,2,3,10,11,12,21,22,23,1000];
trace(some);
trace(some.sort());
trace(some.sort(Array.NUMERIC));
>>597 それ、Flash5だと対応してないと思う
しらんがな
flashをhtmlで読み込むようにしたのですが マウスのポインタを移動させるたびにポインタの右下あたりにflashの名前が表示されてとっても気になるんですが これはどうすれば表示しなく出来ますか?
>>599 さすがにfla5の環境無いので、とりあえず
>>597 の下に以下をコピペで。
わざと逆順になるように比較関数作ってる。
trace(some.sort(cmp));
function cmp(a,b){
if(a>b){
return -1;
}
if(a<b){
return 1;
}
return 0;
}
>>601 htmlのflashを貼りつけている何らかのタグのtitleプロパティにそのflash名が書かれているのでは?
>>443 ,
>>462 だが、
どうも、マウスの移動が原因みたいだ。
マウスを動かすとマウスの描画回数に合わせて全体のFPSが上昇するみたいだ。
高速で動かしたら、40fpsくらいまであがった。
マウスに追随するMCに、
onClipEvent (mouseMove) {....}
のイベントハンドラを記述してるんだが、
この中身が({...}の部分)空であっても同様の症状が起こり、
イベントハンドラごと消したら症状は消えた。
ちなみに、中にupdateAfterEvents();記述してもしなくても症状に変化はなかった。
取り合えず、MC上じゃなくてMC内のフレームに、
this.onMouseMove=function(){...}
に書き直せば動きそうだが、ちょっと移植が大変で躊躇してるんだけど、
このバグは既出じゃないのかな?
何か情報ある人教えてクレイバズーカ
ActionScript3でソケット通信(UDP)を行うことは出来ますか? ちなみに、Socketクラスを使ってTCPでの通信は行えました。
無理
FlashとPHPのデータのやり取りについて 詳しく解説しているサイトをご存知ありませんでしょうか? FlashからPHPへデータを送信し、 帰ってきたXMLを読み込んで表示ということがやりたいのですが。
>>589 Flex関係できいたほうがいいよ。
とりあえず、ViewStackのサンプルを見てみるといいかと。
それか、panel2つにidを割り振って、visibleを切り替えるか
611 :
595 :2007/04/04(水) 13:45:51 ID:YJrCbTdc
>>597 ありがとうございます。
>>602 をやってみたのですが、
some=[d1,d2,d3,d4,d5]
trace(some.sort(cmp));
function cmp(a,b){
if(a<b){
return -1;
}
if(a>b){
return 1;
}
return 0;
}
これを頂きましたw
ActionScript3で質問です。 TextFieldのrotationプロパティに数値を代入したのですが、0以外の数値を代入すると 文字が画面から消えます。AS3で文字列の回転は不可能なのでしょうか?
>>613 どうもありがとうございます。埋め込みフォントを使わないといけないのですね。
日本語フォントはファイルサイズが気になると書いてあったので、フォントを画像に
変換して使用する事にします。
ありがとうございました。
>>612 デバイスフォントを回転したい場合には、
Bitmap.drawで、デバイスフォントをビットマップに描画して
ビットマップを回転すればOK。
フォトショで画像ファイルとか作ると更新が面倒なので。
すみません質問があります。 私は携帯用Flashを作っているのですが容量が足り苦しいのでASを簡略化できないかと思ってます。 if((a == 1) && (b >= 1)) { c = 1; } else if((a == 2) && (b >= 2)) { c = 1; } else if((a == 3) && (b >= 3)) { c = 1; } else if... (略) } else if((a == 12) && (b >= 12)) { c = 1; } ...と、ifとelse if合わせて12回条件式を入れているのですが、もっと簡単に出来ないのでしょうか? FlashLite1.1でもfor文が使えるということでfor文が使えそうな気がするのですがいつもif文しか使わないのでよく分かりません。 trueの処理は全てc = 1;です。 良ければ返答お願いします。
if(a==b){
途中で誤爆・・・ if( b >= a ){ c=1 } 条件を見る限り、↑ほぼ解決。 必用に応じて、整数かどうかや、 aの範囲 1〜 12 の条件判定を入れればよいかと
書いてる途中で先越されたみたいだけど一応 if(a == int(a) && 1<=a && a<=12 && a<=b) c = 1;
>>618 そうすれば良かったんですね。
大変勉強になりました。
返答ありがとうございました。
>>619 同じく大変参考になりました。
返答ありがとうございました。
622 :
607 :2007/04/05(木) 01:14:10 ID:pfyVTyEl
flash8を使っております 以下の画像読み込みスクリプトを組んでいるのですが var mcl = new MovieClipLoader(); _root.createEmptyMovieClip("img", 1); mcl.loadClip(name, "_root.img"); 読み込んだ後に画像のサイズを変更したいのですが _xscaleなどの%指定ではなく、widthのようにピクセルを指定したいのですが上手くいきません 画像ではなくmcのサイズを変更してるからだと思うのですが、なにか良い方法は無いでしょうか 元の画像のサイズを拾えたら一番簡単だと思うのですが・・・
width変更のスクリプトは?
>>596 いろいろやってみましたが、解決しませんでした。
今回はとりあえずあきらめます。
皆さん、ありがとうございました。
>>623 これだけだとなんとも言えないけど、
ちゃんとロードチェック後の処理が書けてるのに動いてない場合には、
movieClipLoaderのonLoadComplete と onLoadInitの混同してる場合が多い。
onLoadCompleteはロード完了の瞬間に呼び出され、
まだロードされた画像やswfの初期化が発生してない為、
内部のプロパティにアクセスできない。
ロードした画像の_widthをいじくりたければ、
onLoadInit( loadedElement ){
くそ、今日も途中で送信しちまった・・・ 続きね。 function onLoadInit( loadedElement ){ loadedElement._width = 100 } みたいに、onLoadInitのタイミングで行うとよろし。
>>626-627 見事に言われたとおりのドツボに嵌ってたようです
無事、解決できました
ありがとうございます!
629 :
Now_loading...774KB :2007/04/05(木) 15:43:27 ID:gxQNBLdR
質問させてください。
SendAndLoadでphpと変数のやり取りを行いたいのですが、
swfファイルの置かれたPCと同じLAN内の別のPCのphpファイルを参照できるのでしょうか?
http://192.168....などと指定したみたけど駄目でした 。
もしできるのであればurlの指定方法など教えて頂けたら幸いです。
そもそもswfとphpを同じディレクトリに置けば済む話なのですが、
サーバーがMacで、phpから利用できるwindowsのソフトと連動しようとしているため
このようなこととなっている次第です。
ネットワークの知識もない初心者のためおかしなことをやっているのかもしれません。
ですので、上で質問した方法が無理でも何かやり方があるようでしたら是非教えてください。
宜しくお願いします。
環境はFlash MX 2004です。
試したことはないけれど、
別マシンがちゃんとWEBサーバーとして機能してるならば
理屈上はできると思われ。
その場合通信できない理由は、Flashのセキュリティーポリシー。
Flashは外部のドメインとは、相手側の許可がなければ通信できない。
で、192.168... の直下ディレクトリに、
↓みたいなcrossdomain.xmlというファイル(詳細はググって。)を置く必用がある。
ttp://amazon.co.jp/crossdomain.xml テストなら全ドメインからのアクセス許可で↓みたいにする。
<allow-access-from domain="*"/>
631 :
629 :2007/04/05(木) 17:34:38 ID:gxQNBLdR
>>630 crossdomain.xmlファイルを置いてやってみたところできました。
具体的な指摘で非常に助かりました。
本当にありがとうございました。
632 :
Now_loading...774KB :2007/04/06(金) 06:02:56 ID:l9Th6Opr
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) setInterval()による配列の呼び出しと変数の設定について質問です。 目的の動作の前に、_rootで定義したdata1[id](id=0〜4999、5000個)という 配列(データ群)があり、これを function dataLoad() { trace("id, data= "+_root.id+", "+_root.data1[_root.id]); trace("this= "+this); _root.id++; } on (release) { trace("id0= "+data1[0]); //確認用 id = 0; //初期値に戻す femtID = setInterval(dataLoad, 3000); //3000ms毎に関数呼び出し } によりtraceウインドウに表示したく思っています。実行すると、確認用traceは 正しい値を表示するのですが、肝心のsetInterval()呼び出しは3秒毎に id, data= 4999, undefined this= undefined id, data= 5000, undefined this= undefined と出ます。どうしたものでしょうか? ※dataLoad()の位置もundefinedです。
633 :
632 :2007/04/06(金) 07:41:29 ID:l9Th6Opr
すみません。自己解決しました。 ムービー内の他の記述でidが4999になるように書いていたのが原因です。
FLASH LITE 1.1でindex.swf?test=12345等にアクセスした場合 12345の部分をフラッシュ内の変数に取り込む方法はないでしょうか?
Flashで画面遷移を作ろうと思うのですが、 いくつか分からない事があるので質問させてください。箇条書きで失礼します。 1.フレームを移動する際、そのフレームで使った変数や関数のDeleteは必要なのかどうか 2.MCの中にASを記述するのは避け、出来る限りフレームアクションに記述するべきなのかどうか 3.フレーム間でコンポーネントに同じ名前を付けても平気なのかどうか 4.フレーム移動の際にイベントハンドラ(btn.onRelease = function()など)は消えるのかどうか 4.が消えないのであれば、3.は必然的にダメになると思うのですが、 試しにその状況を作ってみても、各ページのイベントは正常に動きました。 ただ、テキストエリアなどが、データの受け渡しもしていないのに、 前のフレームの同じ名前のテキストエリアからデータを受け取っていたりと 妙なことがあったのですが、やはりコンポーネントの名前は全てバラバラにするべきなんでしょうか?
>>635 >1
フレームを移動しても、変数、関数は残ります。
同名の変数、関数が移動先にある場合は上書きされます。
>2
フレームに書くと、スクリプトの存在が視覚的にわかる利点があります。
>3
同一のものを継続して使いたい場合はその通りでOK。
ただしコンポーネントのあるレイヤーのフレーム間に空白のキーフレームを置いたり、
レイヤーのフレーム内の要素を変えないこと。
■■■□□■
みたいに、途中に空白キーフレームがあると、
末尾の■は同一のコンポーネントとは扱われない。
>4
消えない。
コンポーネントが同一のものとして扱われていれば問題ない。
途中で空白フレーム経由で消えた場合は、
あらたにコンポーネントが出現したタイミングで再定義されてしまうる。
SharedObjectについて 1 文字列(""で囲ったヤツ)は保存されるのか 2 _root.でやったら全変数が保存されるのか 1はやってみたら文字列のみ保存できす、_rootは試した事ありません ボスケテ
>>637 どこからやろうと、dataプロパティにセットしたものは保存されるよ。
逆に、セットしなければ保存されない。
値は文字列でも配列でも数値でも保存できるよ。
使い方間違ってるんじゃねーの?
>>636 ありがとうございます。レスを参考にいろいろ.flaを弄ってみたのですが、
「同一のものとして扱う」という使い方を全く知らなかったので、色々と勉強になりました。
ただ、また疑問点が・・・連続で質問して申し訳ないのですが、
逆に、フレーム間で同一のものとして扱わない場合は、同名は避けたほうがいいのですか?
自分で色々弄った感じでは、オリジナルからコピペしたもののみが同一と認められるようなのですが
万一に、同一扱いではない同名コンポーネントが、
スクリプトでのプロパティ変更などで同一のもとの扱われてしまって、
イベントを引き継いでしまうというようなことはあるんでしょうか?
それと、フレーム移動後も変数や関数が残るということは
上書きする予定のない関数や変数は、移動前にdeleteした方が
メモリ節約(?)などで速度アップに繋がるんでしょうか?
>>638 文字列については自分でやってみます。
できれば名前付きの全変数を保存する方法うp
>>639 >同名コンポーネント
別として扱いたいなら、
バグの温床になるので同名は避けたほうがいいと思う。
コピペが厳密に同一として扱われるのは、
多分コピペしてフレーム等が切れてなければ、
オブジェクトの内部的なIDが同じ = 同一のまま変化してないと扱われるから。
それ以外のケースは、nameと同じ名前のタイムライン上の変数に
生成時に放り込まれてる感じ。
なので初期化は起きるけど、同じ名前で参照できる。
定義したイベントは持ち越されない。
>delete
理屈の上では、こまめに消したほうがいいけど
そのMC自体を消せば全部消えるので、それほど気にしなくても大丈夫。
>>640 for(var propName in object)
mySharedObject.data[propName] = object[propName]
これで、特定のオブジェクトの全変数をsharedObjectに注入
>>641 セーブって
savedata=SharedObject.getLocal("file");
savedata.data.TOKUTEN=_root.TOKUTEN;
savedate.flush;
でやってんだけど、どうすれば?
643 :
639 :2007/04/07(土) 15:01:00 ID:aKhn+gVH
>>641 なるほど、同一扱いがどういうことなのか理解できました。
ただ、deleteの件なのですが、
>>そのMC自体を消せば全部消えるので、それほど気にしなくても大丈夫。
というのが、どういうことか分からなかったので調べてみたのですが、
ttp://chikura.fprog.com/?UID=1174532897 意味合いは違いますが、↑のページの上から7つ目のソースのように、
関数や変数を全て何かしらのMCのプロパティとして中に入れ、
フレーム移動の際にMCが消えるのを利用して、変数や関数も同時に消す、ということでしょうか?
それと、最後にもうひとつだけ…
フレーム間でデータの受け渡しする際に、同一扱いのコンポーネントを使わずに行う場合は
最初のフレームに、全ての受け渡しデータの保持用変数を作成し、
以降のフレームでのコンポーネントへのデータ挿入や、データの書き換えは、
最初に作成した変数を参照するようにしているのですが(最初のフレームに戻ったりで初期化しないように注意しつつ)
この書き方は問題ないのでしょうか? 参考になるソースも見つからず、自分で考えたものなので
何か「こうしたほうがいい」などがあれば指摘をお願いします。
644 :
Now_loading...774KB :2007/04/07(土) 16:36:32 ID:AD241Op/
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) テキストフィールドの特定の文字列の色について質問です。 ダイナミックに生成される文字列(dataStr)をテキストフィールドtxt1 (インスタンス名:txt1_ins)に縦に、txt1 = txt1+dataStr+"\r"で あい12 うえ3456 おか7 ・・・ ・・・ きく89 ← などとtxt1_ins.scroll++ で常時上にスクロールしながら表示しつつ新しく現れた 文字列(ここでは矢印の『きく89』)のみを青色にするにはどうしたらいいで しょうか?(文字列は配列には格納されていません) 試しに dataStr.textColor = 0x00FFFF; としましたが駄目でした。 本を読むと、TextFieldクラスのsetTextFormat() で出来るようですが、これ では引数として文字の位置を指定する必要があり、今回の場合では文字列 の長さが不定なので使えません(一応、ヘルプも読みました)。 アドバイス願います。
645 :
Now_loading...774KB :2007/04/07(土) 17:33:44 ID:2wgaFHBh
>>644 setTextFormtでも、文字の位置を計算すればできそうな気はするけど・・・
てっとりばやくやりたければ、Flash8ならば
一番したの行の位置に色のついたMCを置いて、ブレンドモードで重ねたら?
で、スクロールした瞬間に表示して、フェードアウトさせる。
dataStrはStringだと思うので、textColorは使えないっす。
/:\.____\ / 対ガッ用超高性能ぬるボックスのテスト開始! |: ̄\(∩( ;゚∀゚) < 重いので持ち上げたり投げ飛ばしたりするのは不可能 |: |: ̄ ̄ ̄∪:| \ 耐熱耐寒耐水仕様、太陽に突っ込んでも大丈夫 \そして中から鍵を掛けてあり鍵は粉々にした。 \そしてもちろん合鍵は無い。 \そして護衛用にフィン・ファンネルがいて \この世の全ての物(叩き人以外)を取り寄せられる! \___________ _____ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /:\.____\ / 圧力にも屈しない。外部からの衝撃で中の人間が死ぬ事もない。 |: ̄\(∩( ;゚∀゚) < 宇宙空間でも大丈夫。酸素も食料も一生分ある。排泄物も秘密システムで処理できる。 |: |: ̄ ̄ ̄∪:| \ 箱は中からしか開かない。ふはははは、完璧すぎる。ぬるぽぬるぽぬるぽ! \ネジ?あるわけねーじゃん \もしもの時にはナイフで叩き人を・・・・・ \___________ _____ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /:\.____\ / 対ガッ用高性能ぬるボックスのテスト開始! |: ̄\(∩( ;゚∀゚) < ぬるぽぬるぽぬるぽぬるぽーーーーーーーー! |: |: ̄ ̄ ̄∪:| \ ぬるポっぼぬるポぉぉぉぉぉぉぉぉぉぉぉ!! \___________ バタンッ!! ________ |: ̄\ \ <ヌルポヌルポー!! |: |: ̄ ̄ ̄ ̄:|
質問します。 環境:FlashMX2004 スリーミング再生の場合に、再生時間(my_sound.position)のリセットが上手くいきません。 2曲目を再生すると、再生時間が1曲目から加算されてしまいます。 何か方法はありますでしょうか。 hoge = hige.mp3; //変数(hoge)に音楽1の名前(hige.mp3)を入れる。 Time = 0; //再生時間を表示するテキストを0秒にする。 this.onEnterFrame = function(){ Time = Math.floor(my_sound.position / 1000); //常に音楽の再生位置を、テキスト(Time)へ表示させる。 } this.Play_btn.onPress = function(){ //再生ボタンを押した時、 my_sound.loadSound(hoge,true); //音楽をロードし、ストリーミング再生する。 my_sound.start(miniStop); //一時停止した位置(miniStop)から再生する。 miniStop = 0; //一時停止した位置の情報をリセットする。 } this.miniStop_btn.onPress = function(){ //一時停止ボタンを押した時、 miniStop = Math.floor(my_sound.position / 1000); my_sound.stop(); } this.Next_btn.onPress = function(){ //次の音楽選択するボタンを押した時、 hoge = hage.mp3; //変数(hoge)に音楽2の名前(hage.mp3)を入れる。 miniStop = 0; //再生開始時の位置を0秒にする。 } 上記のプログラムをウェブ上で実行した場合に、 音楽1を再生した後、音楽2を再生すると、音楽だけは0秒から再生するけれど 再生時間を表示するテキスト(Time)は、音楽1を再生し終わった時の秒数から加算されてしまいます。
648 :
Now_loading...774KB :2007/04/07(土) 21:31:13 ID:NmTaLwvj
>>647 全然関係ないけど
loadSoundを再生ボタンを押した時に呼ぶのはまずくないか?
次の音楽選択するボタンを押した時に処理することを薦める
>>648 まずいですか^^; 一つのボタンで再生が2度行われているという点ですかね。
出来れば、音楽を選択するボタンにloadSoundを使わないようにしたいんです。
音楽の数がもっと多い場合を考えると。
my_sound.loadSound(hoge,true); ↓ my_sound = new Sound(this) my_sound.loadSound(hoge,true); でいいんじゃね?
>>650 おお、そんな方法が! 有難うございます。
my_sound = new Sound();を実行すると、それ以前のmy_soundの情報は塗りつぶされるのだろうか…
とにかくやってみます。
>>650 駄目でした… ○| ̄|_
new Sound();以前のmy_soundに関わる処理が行われませんでした('A`)
不思議なことに、ストリーミング再生では無い時や、ローカルで再生する時はそのような現象は起こらないのです。 ロード時間があるのとで何かが違うのかな…
654 :
Now_loading...774KB :2007/04/08(日) 00:44:02 ID:/riI4zTQ
>>649 ちがう。
音楽を再生するたびにファイルを読み込みなおしてどうする?
続きから再生なんかできんぞ?
>音楽を選択するボタンにloadSoundを使わないようにしたいんです。
>音楽の数がもっと多い場合を考えると。
意味不明。関数使え。
655 :
Now_loading...774KB :2007/04/08(日) 02:17:26 ID:MridBIDF
便乗なんですが 例えば1フレーム目でloadSoundで1.mp3を呼んで 100フレーム目で2.mp3を読み込む設定にしてですね 再生時に仮に50フレーム通過あたりで mute ボタン(Allsoundoff組み込み)を押しても また100フレームで音鳴っちゃうのなんとか ならないですか?
656 :
Now_loading...774KB :2007/04/08(日) 03:05:46 ID:Ep/gKvAG
>>655 それはその時に鳴ってる音を「止める」って処理だから。
サウンドオブジェクトを生成してボリュームをゼロにしないと。
>>654 >音楽を再生するたびにファイルを読み込みなおしてどうする?
次の音楽を読み込みます。
loadSound(hoge,true); //()内をtrueにすると、ロード中に再生され、
my_sound.start();が無くても再生ボタンの役割をするからです。
>続きから再生なんかできんぞ?
続きから再生したいのではなく、再生時間が続きからになっていて困っています。
次の音楽を再生しても、my_sound.positionが0にリセットされないので。
ストリーミング再生を行う場合の仕様なのでしょうか。
>>657 soundインスタンスが1つだからその開始時からの経過時間なのでは?
>>650 の言うようにnewして参照を変えればいいかもね。
>>658 回答ありがとうございます、そうみたいです。
ストリーミングで再生中に別の音楽を同じsoundインスタンスでロードするとそうなるみたいで、
stopを含め、再生ボタンを押しても音楽1の再生終了を認識できていないようです。
>>650 氏の言うように、毎回参照を変えるのも手かもしれませんね。
>>659 普通に新しくロードした音にアクセスできるのは、
mySoundがロード完了してから。
まだ古いSoundが有効だから、
ロード終わるまでそっちの値が参照されてる。
ローカルだとロードの待ち時間がないから、なんか動いてる。
ちゃんとサウンドのロードをコンプリートしてから、再生するようにして
ロード中は表示の更新とか、位置の更新とかロックしとけばOK
>>660 有難うございます。
やはりロード完了してからですか… ○| ̄|_
どうりでストリーミング再生ではおかしくなってしまうのですね^^;
出来たっぽいです━(゚∀゚)━!! my_soundが有効なうちにmy_sound.start(0);を入れてみたところ、 sound.positionが上手く0にリセットされてくれたようです。 回答していただいた方々本当に有難うございました。
Actionscriptの最適化(高速化)について質問があります。
Papervision3Dを用いてDirextxのxファイルを表示するというスクリプトを組んだのですが、
毎フレーム呼び出して体をボーン単位で変形(アニメーション)させている関数
XFile.as内のtransFrame関数が大体40msecほど消費しています。
この関数自体の作り方が悪くて関数の実行が遅いのか、それとも元々ActionScriptでは
速度が稼げないのか判断がつけられないでいます。
識者の方々にこのスクリプトがまだ高速化できるのか、できるとしたら、どのあたりをいじる
と良いかをお教え願えませんでしょうか?
表示サンプルは
ttp://file.oquto.blog.shinobi.jp/XRead001.html ソースは
http://file.oquto.blog.shinobi.jp/xfileRead_SRC.lzh ※Papervision3Dのソースは同梱していませんので各自用意してください。
作成環境は WindowsXP SP2 + Flash8 Basicです。
>>663 Flash8で製作ってことはAS2だよな?
それならFlashのせい。
ActionScript3を使えば、ポリゴンの頂点は8000ぐらいまでならいけると思われ。
そんな差が出るんだ。触ってみようかな。
666 :
Now_loading...774KB :2007/04/09(月) 17:24:14 ID:FHNDzRGK
localconnectionが sleipnirではうまくいくのに IE6、firefoxではうまくいきません。 どんな原因が考えられますでしょうか?
>>666 それだけではなんと答えればいいのか誰もわからんと思う
IEで動いて..の話ならありそうだけど。
LocalConnectionはブラウザ依存の機能じゃないから、 特定のブラウザで動かないってのは考えにくいな・・・ 同じIDのコネクションは1つしか存在できないから、 Sleipnirで開いてるときに、IEでも開いたら動かなかったとか IEで同じページ別タブで表示して、ID重複したとか そういうオチじゃないかと。
669 :
Now_loading...774KB :2007/04/09(月) 17:53:23 ID:FHNDzRGK
ありがとうございます。 実は、別ウインドウを開くと、 子ウインドウswfから親swfに開かれたことが通知され、 通知を受け取った親から子に変数を送るというのをやっているのですが、 その送受信部分のソースだけを別ファイルに貼り付けてコンパイルするとIEでもうまくいくのです。 そのflashでは、ほかにloadvarsでphpとやりとりしてxmlを読み込んだりしているのですが、 いったい何がいけないのでしょう?
670 :
629 :2007/04/09(月) 17:53:30 ID:d+RP0VdC
以前このスレッドで質問させて頂いた629です。
状況が変わったので、似たような質問ですが再度質問させて下さい。
サーバーに置いたswfファイルから別のサーバーに置かれたphpファイルとsendAndLoadで連携を取りたいのですが、phpファイルを置くサーバーはローカル環境に存在しなければならないので、ルーターのポート8080番にそのサーバーマシンを繋ぐことで連携を取ろうと考えました。
そこで、
sendAndLoad("
http:// (ルーターのグローバルアドレス):8080/(ファイル名).php", オブジェクト名)
とアドレスを指定したのですが上手く行きません。
アドレスの指定方法が間違っているのでしょうか?あるいは、何か他の部分で問題があるのでしょうか?
初心者のため、全く見当違いなことをしているかもしれません。
分かる方がいらっしゃいましたら是非とも宜しくお願いします。
環境はFlash MX 2004です。
671 :
Now_loading...774KB :2007/04/09(月) 18:10:24 ID:FGIjcwH+
ふと思っただけの事なのですが シンボル変換でグラフィックを選択した場合、他2つに無い利点って何かあるのでしょうか?
672 :
Now_loading...774KB :2007/04/09(月) 18:12:59 ID:GrJR/syf
>>669 子→親、親→子、どっちも動かないって認識でいいのかな?
もし、ほんとにブラウザ依存で起こるとしたら、
HTMLへのswfのEmbedのタイミング?みたいのしか思いつかない。
子のローディングが100%終わって
一瞬間を空けてから送信したら、
ひょっとしたら動くかもしれない
・単に複数まとめる入れ物として使うなら、グラフィックのほうが軽い ・オーサリングでフレーム番号指定して、表示を決定・プレビューできる ・実行時にMovieClipとは._parentの扱いが違う(グラフィックは存在しないものとして、その親が渡される) 3つめは利点というか、うまく使えば色々と便利。
675 :
629 :2007/04/09(月) 18:26:49 ID:d+RP0VdC
>>672 ありがとうございます。
せっかく回答して頂いたのに大変申し訳ないのですが、
私の指定方法とどう違うのでしょうか?
http://ipアドレス:8080/ 〜
の後にphpファイルを置いたマシンのローカルアドレスを加えるという意味でしょうか?
本当に申し訳ございません。
>>670 で、アドレス書いてないのと勘違いしてた・・・ スマヌ
とりあえず検証方法としては
getURLで、そのphpにアクセスできるかを確かめてみるといいかと。
getURLでブラウザにphpを表示できなければ、
そもそもサーバー関係で何かが間違ってる
ブラウザが開いて表示できたら、セキュリティー関係だと思われ。
>>677 同じフォルダに入れて、普通にメインクラスをコンパイル
679 :
629 :2007/04/09(月) 19:14:18 ID:d+RP0VdC
>>676 ありがとうございます。
getURLで試してみたところ
While trying to retrieve the URL:
http://ルーターのipアドレス:8080/ファイル名.php The following error was encountered:
* Connection to ルーターのipアドレス Failed
The system returned:
(61) Connection refused
The remote host or network may be down. Please try the request again.
と返されました。
サーバー関係のネットワークの問題のようですね...。
もしまた何かお気づきの点があればご助言よろしくお願いします。
680 :
663 :2007/04/09(月) 19:31:54 ID:jhmxqnHo
>>664 回答ありがとうございました。
やっぱりAS2.0が遅いですか、、、
AS3.0に移植してみます。
折角Flash8 basic買ったのは無駄になりそうだ、、orz..
>>680 FLEX用の埋め込みアセットとか作るにはFlashも必要っしょ
その用途にはBasicで十分だからちょうど良いんじゃない?
682 :
Now_loading...774KB :2007/04/09(月) 20:20:48 ID:FHNDzRGK
うまくいかない... loadVarsを使わなければうまくいったんですが、 もしかして、loadVars使った後は localconnection使えないんでしょうか?
683 :
Now_loading...774KB :2007/04/09(月) 20:47:12 ID:FHNDzRGK
あれ? 外と通信するに当たって [グローバルセキュリティ設定] パネルで 「常に許可」に設定すると 以降localconnection使えなくなるんですか?
AS2か3を学ぼうかと参考書を用意しました 書き方の違いは分かりましたが、使いどころが分かりません デザイナー寄りなので、軽いアクションゲームや 関数を使ったモーションイメージ、ユーザーインターフェイス作成がメインです 今後を考えると新しいAS3がよいとは思うのですが、 上記の作成では、どちらを学べばメリットが多いのでしょうか?
今は時期が悪い
686 :
Now_loading...774KB :2007/04/10(火) 15:32:10 ID:HWbLVxhc
wordWrap = true 、 multiline = true のダイナミックテキストに textプロパティで長文を流し込んで表示させているのですが、 印刷すると改行がされません。どなたか対処法をご存知ありませんか?
>>686 印刷方法が書かれていないので何とも言えないけど、
原文に改行がないなら改行されないと思うよ。
ヘルプでPrintjobあたり見てみればいいかも。
688 :
Now_loading...774KB :2007/04/10(火) 17:22:43 ID:HWbLVxhc
あ、ごめんなさい。 改行ではなく、テキストフィールドの右端で文章を折り返して全文表示したいんですが 折り返されずに右端で切れてしまうんです。 助けてください。
よろしくおねがいします。 下記のスプリクトは、大昔の雑誌に出ていてプルダウンメニューの スクリプトなのですが、下記の部分の「"contents?"; 」の部分を 日本語に置き換えると、プルダウンメニューでは、表示されません(空白)。 この場合、日本語に置き換えるにはどの様に直せばよいでしょうか。 よろしくお願いいたいします。 onClipEvent (load) { depth = 0; flag = 0; //親項目設定 reaf0 = 5;//親項目数 reaf1 = "contents1"; reaf2 = "contents2"; reaf3 = "contents3"; reaf4 = "contents4"; reaf5 = "contents5"; //子項目設定 //深さ1 reaf10 = 3; reaf11 = "1-1"; reaf12 = "1-2"; reaf13 = "1-3"; reaf20 = 2; reaf21 = "2-1"; reaf22 = "2-2"; reaf30 = 1; reaf31 = "3-1"; reaf40 = 1; reaf41 = "4-1"; reaf50 = 2; reaf51 = "5-1"; reaf52 = "5-2";
>>689 多分、フォントを埋め込んで表示しており、日本語などは対応する文字が埋め込まれていないと推測。
その場合は必要な文字を埋め込む。
>>690 お手数かけます。
その必要な文字列を埋め込むとは、具体的に伝授願えませんでしょうか。
たとえば、reaf2 = "contents2";をreaf2 = "リンク集"; などと書き換えると
表示されません。contents2のままですと、どのまま「contents2」と表示さ
れます。度々すみません。よろしくお願いします。
>>691 多分ここで説明されるより、ヘルプで
「フォント 埋め込み」なんかで検索するほうが詳しいし正確。
ただ文章みてると、ひょっとしてMTASCとか非Adobe環境で製作してたりする?
その場合は仕様ツール名と、Font, Embed で英語でググればなんかあると思う。
694 :
663 :2007/04/10(火) 21:06:24 ID:bMkMaBhB
スクリプトをas2からas3に移植が完了したので報告を。 結果 14Fpsしか出なかったのが114Fps出るようになったwwwww なんだこりゃw
>663 見てみたいw うpよろ
696 :
663 :2007/04/10(火) 21:37:12 ID:bMkMaBhB
697 :
684 :2007/04/10(火) 21:38:55 ID:cuqEsbSL
AS3かAS3を学べばいいんだな! >685 Flash4から5への時期みたいなもんすかね 5基準で作りたいのにクライアント絡みで4なんて時期もありました
>>696 なんじゃこりゃあああああああwwwwwwww
はええ!!
>695 すごい・・・ これってリアルタイムでレンダリングしてるの? flashってこんなこともできるんですかぁーーー どうすればこんな事出来るように成れるんですかぁーーー
>>696 ねえねえ AS3のベクターの描画速度はどうなの?
ゲームとかアニメの
>>694 8000頂点OKとか適当な数字言ったけど、
ここまで早くなるとは思わなかったwwwwww
AS3初挑戦っぽいから助言しておくと
・ループ分で配列の中にアクセスする時必ず 、var a:Hoge = Hoge( array[i] ) みたいに型変換をする。
・Object型、* みたいなダイナミック型は遅いので、なるべく使わない。
・単純な足し算に限り、int, uintはNumberよりも劇早。
・ボトルネックは常に描画、しかも面積。
とか意識してチューンナップすれば、もっとはやくなるんじゃね?
>>700 描画に関する処理速度は、AS2とAS3は一応一緒だよ。
速度が違うのは、Matrix変換等の内部処理。
703 :
Now_loading...774KB :2007/04/11(水) 03:43:43 ID:97qhBSYc
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7)
フォントをMSP明朝に設定したテキストフィールド(TF)を3つ横に並べて
左のTFに数字、中央と右のTFに数字以外の文字列を表示させています。
このとき、同じフォントサイズでも、左のTFはExcelで言うところの上詰め
になり、中央と右のTFは下詰めの状態になってしまいます(つまり上下に
段差が出来る)。
対策を教えて下さい。
>>645 位置の計算で出来ました。有難うございます。
>>702 ベクトルの内積について勉強する。もしくは線形代数かな。
>>703 スクリーンショットがないから何とも言えないけど、そんなもんじゃないのか。
>>670 =629
swf以前に2つの鯖同士でネットワーク通信は確立しているの?
706 :
703 :2007/04/11(水) 07:36:14 ID:ncXUeCip
>>706 動的に配置してるのか?同じテキストフィールドの属性じゃないんじゃないの?
縦に複数配置してずれると書かないとわからんだろ。
配置する位置の計算とかそういう問題になるでしょ。
質問です。
ASとは違うかもしれないんだけど…
http://www.nike.jp/running/v2/ このサイトって、たとえばトップからPRODUCTSとかに移動すると
Flash内のページ遷移はシームレスに行われてるぽいのに
アドレスは変わってるよね?(もちろん戻るボタンで戻ったりもできる)
これってどうやってるか分かる方いませんか?
>>708 JavaScriptに状態を渡して、
JS側でURL制御してる。
ブラウザでバック押したら、逆にイベントをFlashに伝えてる。
HTMLのソース見れば、やり方わかると思うよ。
710 :
708 :2007/04/11(水) 11:54:05 ID:Hrg3xBbM
>>709 なるほど。
<script type="text/javascript" src="js/history/dhtmlHistory.js"></script>
<script type="text/javascript" src="js/history/historyUtilBasic.js"></script>
<script type="text/javascript" src="js/history/historyUtil.js"></script>
↑ここらへんのJSぽいですね?
勉強します、ありがとう。
>>692 お世話になります。
環境をどの様に書けばよいのか解っていないのですが、
Win XP studio MX
Flash でタイムライン上に、メニュー
frame action 名で、
タイムライン1
thistop()
タイムライン2
for(i=1;i<=reaf0;i++){
ty = _parent._y + i*15;
eval(i).dir = String(i);
eval(i).drop.drop(ty, 100);
}
this.gotoAndStop(_currentframe-1);
graphics 名でボタンのグラ botton 名でアクションボタン on (press) { if (flag == 0) { for (i=1; i<=reaf0; i++) { this.attachMovie("lib", i, i); eval(i).tab = eval("reaf"+i); eval(i)._x = _parent._x; eval(i)._y = _parent._y; eval(i)._alpha = 0; } flag = 1; this.gotoAndPlay(_currentframe + 1); } else if(flag == 1){ for (i=1; i<=reaf0; i++) { eval(i).drop.drop(_parent._y, 0); } flag = 0; } } もどってシーン1が最初に書いたスプリクトです。 何かヒントが有りますでしょうか?。
713 :
629 :2007/04/11(水) 14:42:39 ID:Gwno2XDW
>>705 ありがとうございます。
確立されていなかったです...。
apacheのポートにちゃんとフォワードされていなかったことが原因で、
8080でなく80にしたところできました。
ネットワークなどの基礎が全く分かっていないのが問題ですね...。勉強したいと思います。
ご助言ありがとうました。
714 :
Now_loading...774KB :2007/04/11(水) 18:02:59 ID:nCKN8B+2
comboBoxコンポーネントのプルダウンメニューを 上下どちらに展開するか指定することはできますか?
715 :
702 :2007/04/12(木) 01:31:55 ID:x67qu6qB
>>704 ありがとうございます。線形代数でがんばってみます。
AS3てフレームアニメとかMCとか使えないの? その辺詳しく解説してるサイト教えて先生 ググッても要領を得ないお
線形代数とか群論とか全部優だったけど、すっかり忘れたし、全然困らねえよ。数学できなかった奴に限って勉強しろと他人に薦めるから痛い。
>>716 AS3でも多分、フレームアニメは使えるよ。
パブリッシュじのASチェックを緩くすれば、
型指定なしでも動く。
少なくともFlash9 Public Alphaではそう。
>>718 フレームアニメのベクター描画速度って少しは速くなるの?
それはプレーヤー次第だからプレーヤーが同じなら変わらない。
721 :
663 :2007/04/12(木) 22:41:44 ID:TY9hTwXF
Flex2 SDK単体でコンパイルできる状態になったので
ソースとともに再うp
ttp://file.oquto.blog.shinobi.jp/XReadFlex.html 今回は60Fpsに設定してパブリッシュしたんですがブラウザだと40Fps程度しか出ない。
CPU使用率も50%に届いていないっていうのに、、
(使用ブラウザはスレイプニル2.5.9。 Flash Player9だとほぼ60Fps出る。)
なんでこんなに差が出るんでしょうか、、、
ActionScript触って1月程度だとわからんことが多すぎる、、orz..
>>721 このファイルに限らず、ブラウザごとに速度が出たり出なかったりする傾向が。
スレイプニルはよくわからないけど、自分の環境(winXP)では
スタンドアロン>IE>firefox
という感じ。
724 :
721 :2007/04/13(金) 00:04:05 ID:TY9hTwXF
>>723 ものすごいレスの速さにサンクス!
早速試してみたらきちっと60FPS出た。(プニルIE7 とFireFoxで確認)
こういうノウハウほかにもないかちょっと興味が出てきたよ。
>724 よければ教えて頂きたいのですが SWFで3Dを表示して制御する技術って 何勉強すればいいんでしょう? 今は、swiftというソフトで、3dソフト(3dsMAX)から アニメーションを吐き出して3Dを表現しています もちろん、ただのベクタのパラパラアニメなので 制御は出来ません
727 :
724 :2007/04/13(金) 00:50:51 ID:6DsrFTFg
>>725 今使ってるライブラリはPapervision3DっていうMITライセンスのもの。ぐぐると結構でてくる。
全部英語だけれどもサンプルがそれなりにそろっていたりするのでソースさえ読めれば何とかなる。
ポリゴンモデルを表示して移動させるだけならばPapervision3Dの使い方以外に覚える必要は特にない。
ボーン入りのモデルを動かすため(上にうpしたサンプルね)に覚えたことは以下。
0:ActionScriptとPapervision3Dの使い方。
1:XFILEからの読み込みを実現するためにxFileの構造と中身。
2:ボーンを使ってモデルを動かすために回転行列をちょっと。
3:ボーン入りモデルを作成するために3DモデラのBlenderの使い方をちょっと。
てか、わからないことが出たらその都度調べればいいとおもうよ。
ところで
>>724 氏はどれくらいのポリゴンモデル表示しようとしてるんだ?
1000とかそこらのローポリゴンモデルなら軽快に表示できそうだけど数万ポリゴンとかだったら多分無理だよ?
phpやmysqlを使って記録をやりとりするサイトを作りたいのですが、 EUCの文字をflashに読み込むのはどうすれば良いのでしょうか? System.useCodepage = true; でShift_JISを読み込めるのは分かったのですが… あとflashを使うにあたって経験的にオススメの文字ってありますか?
>>728 FLASH自体はShift_JISかUTF-8しかサポートできない。
PHP等のCGI側でShift_JISかUTF-8の入出力に対応するしかない。
個人的にはMySQLからPHPまで全てUTF-8統一がお勧め。
やっぱShift_JISだと文字が表現しきれないケースに遭遇する時がある。
>>729 ありがとうございます。
今後、エディターから全部、UTF-8にしていきます。
FPS落ちる問題の解決策がHTMLに <param name="wmode"value="opaque" /> 書けばいいということですがswf単体開かれた時はFPS落ちちゃうんですけど swf単体開かれた時でも落ちない方法わかりませんか?
>>731 FPS以前にどういう形で動く、提供するということを前提にしてるの?
普通はhtmlから呼ばせる形だよね。
通常閲覧以外の動作保証はしないほうが精神的に楽だよw
734 :
◆l2Ftd2iB76 :2007/04/14(土) 08:22:59 ID:dP+veFlS
>>734 だから、表示するテキストフィールドにフォントが埋め込まれてないって言ってるじゃん。
それがすべて。
どうして既に回答しているのに、また同じ質問するんだよ。
回答の意味がわからないなら、試したこと、調べたことと、それでもわからない部分を具体的に言ってくれ。
>>734 objectを選択、編集を選んでそのプロパティでフォントがArialになってる。
これを日本語表示できるフォント(MSゴシとか)にすれ。
>>736 >>737 >>738 いろいろありがとう御座います。
ご指摘のフォントは「menu」の文字のフォントで、ご指摘部分の
フォントをMSゴシック等に変更し、埋め込み後、contents*を
日本語に変更しても表示されませんでした。
何か手順が間違っているのでしょうか?。
すみません。
>>739 本当にその通りにやったのであれば、表示される。
本当に必要な文字のフォントを埋め込んでるか?
埋め込む意味、方法はわかってる?
>>740 アドバイスありがとうございます。
やはり表示されません、
>>740 さんは、ちゃんと表示できてる
という事は、何が悪いのかですね。なにかヒント頂けないでしょうか。
よろしくお願いいたします。
>>741 上がってたファイルを開く
↓
ライブラリに登録されているシンボルから、objectを選択
↓
objectムービークリップには、レイヤーが4つある
そのなかにtextというレイヤーがある
textレイヤーに配置されたテキストフィールドを選択
↓
フォントを日本語のフォントにする
↓
文字…のボタンを押して、
「埋め込みなし」を選択するか(とりあえずこっちをおすすめ)
または「範囲の指定」を選択して追加文字のフィールドに必要な文字を打ち込む
↓
パブリッシュプレビュー
これで出来なければ、何かを根本的に間違って理解していると思われる。
>>742 表示されました、ありがとうございます。助かります。
基本が解ってませんでした、すみません。
さらに、お叱りを受けるのを覚悟で、クリックした先に
リンクするには、どのように設定すればよろしいでしょうか。
休日にもかかわらず、何度も申し訳ありません。
>>743 プロパティパネルの下のほうの大きい入力欄にURL
>>743 object内にあるボタンにon(release)で、if (!_root.menu["reaf"+dir+"0"]) ならgetURL、
URLは自分の名称と親の名称から割り出して〜とかやればできるはずだけど
すまん、さすがにそれを説明するのは面倒くさいので俺はパス。
というか、このFlashそのものがfla4〜fla5くらいの旧式な作りなで
インスタンス名は数字にするし、配列アクセス演算子ではなくeval()使ってるし
テキストフィールドを変数にしてるしと結構めちゃくちゃなんであんまり深入りしたくない。
教材としてもおすすめしない。
いっそ一から作ってもらった方が早いかもしれん。
質問です。 得意先からの依頼でFLASH8とかAS2を扱う機会があったのですが その際にswfからflaファイルを作るようなツールを紹介されました。 調べてみたところswfはオープンフォーマットだそうですので パブリッシュ関連の仕様は一般に知られているみたいですが それにしてもこんなことができちゃっていいのか?と疑問に思ってしまいます。 ActionScriptの隠蔽性は無いに等しい、と考えてよいのでしょうか? (Flashを生業としている方は、ご自分の技術をオープンにする覚悟で 作品を発表されているのでしょうか?) それとも、隠蔽のための技術等も存在しているのでしょうか? Classファイルまでは復元できない、みたいな逃げ道があったらなー、とか AS3では何か事情が変わってる、とか、そういう期待的な妄想をしております。
>>746 基本素っ裸だけど、
SWFEncryptというような、対デコンパイル用難読化ソフトはある。
ただ確実に、パスワード等の情報を生で埋め込むのはとても危険。
面白いSWF作ったら、
研究熱心な相手には確実にデコンパイルされて覗かれることは覚悟したほうがいい。
ただ一般にデザイナー肌の人が多いので、
盗んだりリバースエンジニアリングは暗黙のタブー視されてる傾向がある気がする。
基本的に狭い業界だから、クラス丸ごと盗んだとかバレたら、その後大変じゃないかと。
748 :
746 :2007/04/15(日) 14:40:12 ID:vF4TMnU0
>>747 SWFEncryptを調べてみたら、関連する話題を扱っている
サイトなども見つかって勉強になりました。
たいへん分かりやすい回答をありがとうございました!
749 :
Now_loading...774KB :2007/04/15(日) 16:58:23 ID:qZxX684E
ActionScriptを使わなくても出来ることと使わなくても出来ることを詳しく教えてください お願いします
>>749 ・使わなくてもできること
アニメーション、グラフィックデザイン
・使わないとできないこと
ユーザーの入力や外部データ等によって変化するコンテンツ
例:ゲーム、掲示板、ニュースフィード等
751 :
Now_loading...774KB :2007/04/15(日) 20:35:39 ID:A9j7bLL2
>>750 ありがとうございます
もう少し詳しく言うとどうなりますでしょうか?
お願いします。教えてください
ある変数をコピーした状態にするスクリプトってありますか? いわゆるコピペをワンクリックで行えるようにしたいのですが・・・
ようは、なんか押したりしたらなんか起きるもんとか、 動作に判断が必要なものは、スクリプトが必要。 静止画やアニメーション流しっぱなしはスクリプトいらない
>>752 Systemのなかに、クリップボードにコピーみたいな関数があったはず。
クリップボードへのアクセスや、ペーストは存在しないので、
テキストフィールドに流し込んだりする処理は、自力でやる必要がある。
Flash外でクリップボードにコピーしたものを、
スクリプトでペーストする方法はない。
>>754 おかげでSystem.setClipboardを見つけました
ありがとうございます
756 :
Now_loading...774KB :2007/04/16(月) 12:09:36 ID:UB7UEbOt
質問させてください。 ボタンが10個くらい並んで横スクロールしているとします。(ずっとループします。) ボタンにマウスを乗せたときにスクロールするスピードが落ちるようにするには どんな方法がありますか? サンプル集などみても近いものはありますが、ちょっと違っていて、 それを書き換えられる知識は私にはありません。 グローバル変数を使いフレームレートを変化させるというのが一番近い気がしたのですが やはり思い通りに書き換えることはできませんでした。 簡単なことのようで検索してもサンプルが見つからず困っています。 どなたかよろしくお願いいたします。
>756 フレームレートはいじりません 横スクロールの方法は毎フレームに決まった数だけ移動させます 速度を変えるには、決まった数を減らせばいいです ・MCを横に動かす ・ボタンでMCを止めたり動かしたりする 最低これが出来てからじゃないと 話が始まらないと思うよ
>>757 のいってることが、できるのを前提にすると。
・横スクロールの値を制御する変数、 vx とかを定義する。
・毎フレーム、MCをvxだけ移動させる。
・マウスオーバーで、vxを2倍とかにする
・マウスアウトで、vxを半分とかにする
これでOK
759 :
756 :2007/04/16(月) 13:12:46 ID:UB7UEbOt
>>757 757さんのいっていることは一応できます。
ストップや再生のボタンを別に作るのではなく
ボタン自体が右から左にスクロールしていて左に消えていったボタンが
また右からスクロールしてくる無限スクロールのような状態で、
ボタンにマウスオーバーでスピードを落としたいのです。
>>758 さん ありがとうございます。
難しそうですが、少し理解できました。
その変数を定義してスクロールさせた場合には、
上に書いたような無限スクロールは可能でしょうか?
決まった値ずつスクロールさせていき
ある位置で元のフレーム位置に戻せばいいのですよね?
>>759 そだね。
if(myMc._x < 0)
myMc._x = 右端
みたいな感じで、左の画面外に出たら
右の画面外に移動させればOK.
元のフレーム位置ってことは、
トゥイーンでアニメーションさせてるんかな?
トゥイーンの場合、スクリプトで速度変えるのは難しいと思うから
onEnterFrameってので、毎フレーム _x を変えて移動させたほうがよいよ。
761 :
756 :2007/04/16(月) 13:37:33 ID:UB7UEbOt
>>760 ムービークリップはトゥイーンさせずに、変数で移動させるんですね。
その場合の変数で定義する移動距離は、
スクロールを元の位置に戻す場合の座標をきっちり計算する必要はあると思いますか?
作り方によるからケースバイケースとしか いいようがないかなぁ 個人的には myMc._x = myMc._x + 速度 で移動させて移動させて問題ないと思う。 キレイにループさせたければ、MCの間隔を最初からループ前提で置くか、 左はしから消えたら、一番右の奴の隣に移動させるとか、 ちょっと工夫が必要かも。 とりあえず、挑戦してみてダメポだったらまた聞いてみればいいんじゃね?
763 :
756 :2007/04/16(月) 13:53:03 ID:UB7UEbOt
>>762 レスありがとうございます。
すでにステージサイズとボタンサイズが決まってしまっているので
きれいにスクロールさせるにはボタンの間隔とかで調整してみます。
とりあえず挑戦してみます。しつこく聞いてすみませんでした。
本当に感謝です。
MCの縦幅を取得するにはどう記述すれば良いですか?
767 :
Now_loading...774KB :2007/04/16(月) 16:59:14 ID:XN/CXVog
Flash Lite2.0でのSharedObjectの使い方について質問させてください。 以下のようにあるクラスにおいてSharedObjectからデータを読み込んで クラスのメンバ変数に値を格納したいのですが、コールバック内から メンバ変数を参照できないためデータをコールバックの外へ渡す方法が わかりません。(できるだけ_rootプロパティは使用したくないです) どなたか解決方法をお知りであればご教授願えないでしょうか。 以下は現状のソースコードです。 class SOTest { private var m_sharedObject : SharedObject; private var m_dataDestination; function SOTest() { // SharedObjectを読み込む // まずリスナーの登録 SharedObject.addListener("savedat", LoadSaveData); // SharedObject読み込み開始 m_sharedObject = SharedObject.getLocal("savedat"); } // データロード完了時のコールバック function LoadSaveData(so : SharedObject) { // m_dataDestinationにSharedObjectからのデータを格納したい } }
>>767 Flash Lite2.0というか普通にShaardObjectを使ったswfを
作ったことあるのか?
769 :
767 :2007/04/16(月) 17:44:57 ID:XN/CXVog
>>768 FlashPlayer用のSharedObjectであれば同期処理が行われるので
問題なくデータを読み込むことができています。
しかしFlashLitePlayerの場合だとgetLocalメソッドが非同期処理で
かつaddListenerでコールバック関数を指定するようになっているため、
コールバック関数の中からデータを渡す必要があると認識しているのですが、
この認識は間違っているのでしょうか。
770 :
756 :2007/04/16(月) 20:04:00 ID:UB7UEbOt
>>756 です。
>>760 を試してみましたが、ムービークリップはうまくいきました。
しかし、ムービークリップにrollOverが使えずに行き詰まりました。
スクロールは変数の使い方がわからなかったので
MC_01.onEnterFrame = function() {
MC_01._x = MC_01._x-2;
if (MC_01._x < -430)
MC_01._x = 10;
}
こんな感じです。
これをマウスオーバーでスクロールスピードを落とすにはどうすればいいでしょうか?
おぉ、大分全身したね。 そのやり方だと変数は MC_01.speed = -1 みたいに定義できる。 で、onEnterFrame内とかで MCが自分自身にアクセスするときは、 将来的にはthis を使うくせをつけとくといいよ。 //〜省略 onEnterFrameの中身 MC_01._x = this._x - this.speed で、ロールオーバーは MC_01.onRollOver = function(){ this.speed = -2 } MC-01.onRollOut = function(){ this.speed = -1 } みたいにすれば動くんじゃね?
間違えた、ロールオーバーとアウトの中身逆ね。スピードはやくしちゃった
773 :
756 :2007/04/16(月) 20:34:26 ID:UB7UEbOt
>>771 このように書きましたところ、スクロールはするのですが、
ロールオーバーとロールアウトが動作しません。
MC_01.onEnterFrame = function() {
MC_01.speed = 2
this._x = this._x - this.speed;
if (this._x < -430)
this._x = 10;
}
MC_01.onRollOver = function() {
this.speed = 0.5
}
MC_01.onRollOut = function() {
this.speed = 2
}
間違っていますか?
774 :
756 :2007/04/16(月) 22:07:00 ID:UB7UEbOt
ガイド本とか読んでみましたが、 onEnterFrameはムービークリップに対するイベントハンドラで onRollOverとonRollOutはボタンに対するイベントハンドラと書かれていました。 混在はできないということでしょうか?
>774 ロールオーバーで値を変えても 毎フレームにspeed=2が上書きされてますよ 要所にtrace("test");とでもいれて動作確認
776 :
756 :2007/04/16(月) 23:08:35 ID:UB7UEbOt
>>775 trace 調べて試してみました。
0.5と2が交互に出力されました。
フレームが移動する度に2で上書きされているのはわかりました。
試しにonRollOver時の値を10にしたところ、マウスオーバーした瞬間に速く動きますが
一瞬だけでした。
ボタンとしてのonRollOverが動作していることはわかったのですが、
上書きされないようにするにはどうすればいいのかさっぱりわかりませんでした。
もう知恵熱が出そうです。。
>>776 onEnterFrame の中に MC_01.speed = 2 入れてるからじゃないの?
>776 外に出しちゃう MC_01.speed = 2; MC_01.onEnterFrame = function() { this._x = this._x - this.speed; if (this._x < -430) this._x = 10; }
779 :
756 :2007/04/16(月) 23:53:46 ID:UB7UEbOt
>>777 ,778
レスありがとうございます。
MC_01.speed = 2;
MC_01.onEnterFrame = function() {
this._x = this._x - this.speed;
if (this._x < -430)
this._x = 10;
}
MC_01.onRollOver = function() {
this._x = this._x - 0.5;
}
MC_01.onRollOut = function() {
this._x = this._x - 2;
}
これで試しましたがだめでした。
780 :
756 :2007/04/16(月) 23:54:53 ID:UB7UEbOt
Scriptを見ていて思ったのですが、この場合に変数は意味があるでしょうか? 最初にアドバイスをくれた方はonRollOverで変数を変えるといってました。 そこで MC_01.speed = 2; MC_01.onEnterFrame = function() { this._x = this._x - this.speed; if (this._x < -430) this._x = 10; } MC_01.onRollOver = function() { MC_01.speed = 0.5; } MC_01.onRollOut = function() { MC_01.speed = 2; } としてみたら、ちょっと近い動きをするのですが、 ロールアウトした時に元のスピードに戻ったり戻らなかったり。 どう思いますか?
781 :
756 :2007/04/17(火) 00:00:44 ID:3ITAmVkh
連書きすみません。
>>780 で書いたものをswfに書き出して再生したところ
思った通りになりました!
ムービープレビューだと負荷が大きくて動作が不安定だったようです。
レスしてくれた皆さん、本当にありがとうございました。
まだ、未完成ですがやっと次のステップに進めそうです。本当に感謝です!
>781 お疲れ様 いまの使用だと逃げるボタンを追っかけるから 使いにくいかもしれないね 距離によって速度を変えたり 透明な大きいボタンをおいて反応させやすくしたり いろいろがんがってください
ユーザーの立場からすると、動くボタンは勘弁して欲しいけどね・・・
プロジェクタへの書き出しについて質問でつ(mx2004) 上の方に出る「Macromedia Flash Player 7」の部分を作品のタイトルに書き換えたいんだけど無理? その下の「ファイル」「表示」「制御」「ヘルプ」も消したいんだけど無理? ヘルプのパブリッシュの項見たけど詳しく書いてないんだお ウワアアアアン
>>784 基本的に無理。
その部分を書き換える方法はあったと思うが、Flash外の話。
786 :
784 :2007/04/17(火) 11:51:00 ID:zyK7zxvB
>>785 レスdでつ
fscommandでコンテキストメニューを消せました!
でも消すとウィンドウのサイズを自動で調節してくれなくて上下に隙間ができてかっこ悪いでつ
「Macromedia Flash Player 7」の表示変更はやっぱ無理でつか… アレ出るとかっこ悪いよね? 今は9なのに
プレーヤーが古いの? とか Adobeに変わったはずじゃないの? とか ユーザーが混乱すると思う
Adobeの中の人はきっとここ見てるはず
なんとかしてお〜age
>>786 仕事でやってるのか趣味でやってるのか知らんが、
仕事ならzincを買っとけ。
flashのexeのインストーラー作ったり、
スクリーンセーバー化したり
枠透明にしたり、
ローカルファイルにアクセスできるように拡張してくれる。
というかなんでもできる
790 :
Now_loading...774KB :2007/04/17(火) 16:52:48 ID:b5TkZTza
FLASH MX2004 でAS2なのですが、
複雑なポリゴン(総ポリゴン数:80000とか)のオブジェクトをFLASH上で毎フレームレンダリングさせ制御するのと、
あらかじめレンダリングしておいた16色GIF画像を読み込んでアニメーションするようにして、
このモーションは何フレームか、ってのをスクリプトで制御するのとでは、
動作としてはGIF画像を使ったアニメーションの方が軽いですか?
もしFLASH上で毎回3Dをレンダリングしたほうが早いのであれば、
>>663 の方のように3DデータをFLASHへ移行できるものを買おうと思ってるのですが。
792 :
Now_loading...774KB :2007/04/17(火) 18:08:52 ID:b5TkZTza
>>791 どうも返信ありがとうございます。
やっぱり画像を使って擬似3Dとしてやっていきます。
793 :
Now_loading...774KB :2007/04/17(火) 18:51:27 ID:kjatGmWN
ブラウザの窓サイズを変えてもmenuBar_mcが表示窓の下端に追従するようにしたいのですが 勢い良く窓を広げたりすると変な位置でmcが止まったり、どうもうまく動いてくれません そしてhtmlで表示するとmenuBar_mcが消えてしまいます 間違っている所等どうかアドバイスをお願いします var viewSizeY:Number = Stage.height; var menuY:Number = menuBar_mc._height; Stage.scaleMode = "noScale"; Stage.align = "T"; var sizeCheck:Object = new Object(); sizeCheck.onResize = function() { menuBar_mc._y = viewSizeY - menuY ; viewSizeY = Stage.height; updateAfterEvent(); }; Stage.addListener(sizeCheck);
>>789 こんなの無理w
解説サイトでもあればなー…
>>794 読めなくてもなんとかなるぞ。
トライアルでいろいろ遊べる。
wmvファイル外部で読み込んでながせるのはおもしろい。
これでMacだけじゃなくwindowsでもフルスクリーンがあればいいんだけどな。
Macだとフルスクリーンあっても動画読み込めねーし。そこら辺が微妙
796 :
Now_loading...774KB :2007/04/18(水) 17:27:57 ID:8bjZfsKt
http://flashrave.org/as/button_on/index.html ↑
HPのメニューボタンをこの作り方で5つ作りました。(ALL FLASHではありません)
それぞれリンクを貼ったのですが、それぞれ反映してくれません。
レイヤーは5つに分けてそれぞれボタンを配置しています。
on (rollOut) の後はこれではいけないのでしょうか?
間違っていたらタイムラインを利用して作成したボタンにリンクを張る方法を教えてください。
宜しくお願いいたします。
on (rollOver) {
_root.BU_01.gotoAndPlay("START");
}
on (rollOut) {
_root.BU_01.gotoAndPlay("END");
}
onClipEvent (load) {
getURL("mail.html");
}
>>796 on (rollOver) {
this.gotoAndPlay("START");
}
on (rollOut) {
this.gotoAndPlay("END");
}
on (release, releaseOutside) {
getURL("hoge.html");
}
MCに書くのひさしぶりだな。
798 :
Now_loading...774KB :2007/04/18(水) 19:26:59 ID:8bjZfsKt
>>797 ありがとうございます。解決しました!
久しぶりというと、もう古い手法なんでしょうか?
>798 オブジェクトアクションだとあちこちに書くから管理しにくい フレームに一まとめに書いたり BU_01.onRollOver=function() { this.gotoAndPlay("START"); } classの共有で別ファイルにAS2式とか 別にどれでもええ
プルダウンメニューでフリーを探しているのですが、 著作権表示があったり、ムービーファイルだけだったりと・・ どこか御座いませんでしょうか。
801 :
Now_loading...774KB :2007/04/19(木) 10:40:52 ID:nXW4MBjJ
>>800 Flashだったら標準でぷるだうんコンポーネント付いてくるだろ。
804 :
Now_loading...774KB :2007/04/19(木) 12:16:12 ID:2ZsjLHq7
>>799 すいません、798ですがこのMCボタンにピピッとかいう音を付けるのは
どうすれば良いのでしょうか?
いろいろ調べたのですが検索の仕方が悪いのか出てきません・・・
>>804 btnSE1 = new Sound();
btnSE1.attachSound("rolloverSound"); //rolloverSound=リンケージ識別子
btnSE2 = new Sound();
btnSE2.attachSound("pressSound"); //pressSound=リンケージ識別子
//
on (rollOver) {
btnSE1.start(0);
this.gotoAndPlay("START");
}
on (rollOut) {
btnSE1.stop();
this.gotoAndPlay("END");
}
on (press) {
btnSE2.start(0);
}
on (release, releaseOutside) {
btnSE2.stop();
getURL("mail.html");
}
とかでいいんじゃないかな。
リンケージ識別子は検索するなりヘルプで。
806 :
Now_loading...774KB :2007/04/19(木) 15:22:28 ID:2ZsjLHq7
>>805 ありがとうございます!!!
本当助かります!!
807 :
Now_loading...774KB :2007/04/19(木) 23:02:00 ID:ISUL9wic
Action Scriptをプログラムがよくわからない人でも使えるようになるような ソフトを作りたいのですがどうすればいいと思いますか? イメージとしてはActionScriptの辞書のような物です。 例えばボタンを押したら移動というのを入力されたら myButton.onRelease = function(){ _root.square1._x += 10; }; と出力されるようなものを作りたいんです。 なにかいい案や開発に使えそうなソフトなどないでしょうか?
>>807 html+css+php
メモ帳があればできる。
>>807 FlashのExtensionというものを調べるといい。
XULというXML言語とJavaScriptで、Flashの簡易プラグインみたいなものを作れる。
XULっていうHTMLもどきでインターフェース作って、JavaScriptでシンボル配置したり
スクリプトを挿入したりファイル操作できる。
これでやるとFlashと一体化できるから一番よいと思う。
ボタンを押したらというのも、XULで距離とかの入力ポップアップを作って
OKを押したら、JavaScriptで入力した値をとって、
キーフレームにプログラムを挿入みたいにすればできる。
ヘルプでFlash 拡張 XUL Javascriptあたりで調べるべし
ASでインスタンスを作成する方法について、質問させてください。 ある本に、ASでムービークリップからインスタンスを作成する例として id = this.getNextHighestDepth(); _root.attachMovie("MCSCENE01", mc_scene01, id); _root[mc_scene01]._x = 100; のような例が載っていたのですが、なぜ _root[mc_scene01]._x という表記になるのでしょうか? どうしても _root.mc_scene01._x になるはずでは・・と考えてしまいます。 [ ] は配列で使用する記述だと思うのですが、 _root[mc_scene01] という記述も配列なのでしょうか? ASで作成したインスタンスと、[ ] 記述との関係を教えていただきたいのです。 よろしくお願いします。
>_root[mc_scene01] という記述も配列なのでしょうか? そのとおり
>>810 連想配列でググる。ヘルプには結合配列とかで書いてあると思う。
mc_scene01は変数だが、この例の前のどこかで代入されてるんじゃね? たとえば var mc_scene01="mc"; とか書いてた場合、 _root.attachMovie("MCSCENE01", mc_scene01, id); で生成されるのは _root.mc となり、当然 _root.mc_scene01 ではアクセスできない。 このとき _root[mc_scene01]は_root["mc"]を指し、_root.mcと同義になる。
814 :
810 :2007/04/20(金) 07:02:50 ID:PQKH096g
ありがとうございます。 「 _root["mc"]を指し、_root.mcと同義に... 」 これを理解していませんでした。 ペルプも検索してみます。 感謝です!!!
質問失礼します flash8を使用してます ライブラリにあるボタンを配置して、その後functionで受け取った変数によって ボタンをクリックしたときに色々な動作を起こさせたいのですが上手くいきません function set_bt(X, Y){ _root..attachMovie("bt", "bt", 0); _root.bt._x = X; _root.bt._y = Y; _root.bt.onPress = function() { trace("test"); }; } 試しにこのようなスクリプトを書いたのですが、やはりトレースアクションが動きません 設置、x,y座標設定はちゃんと動いてるので関数自体はちゃんと動いてるようです onPressをファンクション内で解決するのはどうしたら良いのでしょうか スクリプトによって多数のボタンをばらまくため、事前にタイムラインに書くことが困難なので・・・
816 :
815 :2007/04/20(金) 09:22:53 ID:MruDyyOC
すみません、動きました 僕の勘違いだったようです
netStream.onStatus = function(infoObject) { if (infoObject.code == "NetStream.Play.Stop") { netStream.seek(0); } }; 外部flvをこんな式でループ再生したいんだがスムーズにループしない。 ほんのコンマ何秒ガクって止まるのは仕様?
818 :
Now_loading...774KB :2007/04/20(金) 22:50:13 ID:RWsDJokN
>>809 すいませんヘルプで調べてみたんですが何をどうすればいいのかよくわかりませんでした。
お手数ですがどのようにしてやればいいのか、何を参考にしてやればいいのか具体的に詳しく
教えていただけないでしょうか?どうかよろしくお願いします。
>『よくわからない人でも使えるようになるようなソフトを作りたい』 ってまず自分がよくわかってないんじゃないのか。。
_root.UnitData["unit001"].Name=""; _root.UnitData["unit001"].Class="戦士"; _root.UnitData["unit001"].Lv=17; _root.UnitData["unit001"].EXP=75; _root.UnitData["unit001"].HP=415; _root.UnitData["unit001"].MP=340; _root.UnitData["unit001"].AT=320; ・ ・ ・ ・ ・ と、書くのは手間が掛かるので、なんかいい方法ありませんか?
>>821 手間ってのがよくわからんがこういうこと?
_root.UnitData = new Object();
_root.UnitData.unit001 = new Object();
_root.UnitData.unit001 = {Name:"", Class:"戦士", Lv:17, EXP:75, HP:415, MP:340, AT:320};
trace(_root.UnitData.unit001.Class);
//trace 戦士
823 :
Now_loading...774KB :2007/04/21(土) 17:01:49 ID:IA3hMP83
初めまして。 フラッシュとかはじめてなので教えていただけたら幸いです。 ツールを使ってFLVファイルの動画サムネイル(100×100)を大量に作成します。 それを動的に組み合わせてビデオギャラリーのように並べてHPで表示させたいのです。 コマンドラインツールでFLVを再生するだけの簡単なSWFをコンパイルしてそれをTableタグで 表示しようかと考えております。 もちろんひとつのSWFでコマを割って表示するのが王道だと思うのですが、そこまでの スキルがありません。 以上のような非常にシンプルなスクリプトを書きたいのですが、これで何行ほどの コードになるでしょうか? もしどこかにサンプルがあればご紹介いただけると幸いです。 またメモリやトラフィックの問題でそもそも無理というアドバイスなどご意見をお願いします。 過去レスを読んでもなにがどう応用できるのかさっぱりという状態です。 なるべく簡単な方法を教えてください。お願いします。
>822の方法でもいいし、可読性をもうちょっとつけたいとかの場合は var u1 = _root.UnitData["unit001"] u1.Name="" u1.Class="戦士" . . . ではどうよ?
825 :
Now_loading...774KB :2007/04/21(土) 17:11:56 ID:IA3hMP83
>>823 追記です。
使用ツールはffmpeg→MTASCという予定です。
ffmpegのようなコマンドラインツールでswfファイルが作れたらそれが一番
簡単だと思いますが、調べてもわかりませんでした。よろしくお願いします。
>825 完成形が想像できない
>>821 var character = _root.UnitData["unit001"];
character.Name="";
character.Class="戦士";
・
・
・
とか。
実行速度もこうしたほうが821の書き方より速いはず。
>>822 _root.UnitData.unit001 = new Object();
の行はいらないかもね、次の行がObjectの生成だから。
うは、被ったorz
829 :
Now_loading...774KB :2007/04/21(土) 17:41:44 ID:IA3hMP83
>>826 100×100のswfにムービーサムネイルが表示されてて、
それを複数表示したい、ということです。
複数表示の部分はサーバーサイドスクリプトでなんとか
やれそうなので、最小単位のswfのコードの書き方だけ
ご指南いただければと・・・。
説明がわかりにくくて申し訳ありません。
>>822 ["Unit001"]が["Unit999"]までぐらいあるから
ありがとうございます
>>823 はじめてのFlashでイキナリMTASC使って、FLVを埋め込みって
なかなかチャレンジャーだな。
純粋な行数だと、プリロード、再生、ループ、エラーハンドリングで
多くて20行じゃね?
大量にFLV作るなら、FLVロードするプレイヤー1個作って、外部からFLV読むほうが
負荷もトラフィックも、管理、修正も全然楽かと。
>>830 クラス作って、値代入用のASはエクセルとかから書き出したら?
建前:
>>822 方で地道にやりますよ
本音:詳細教えれ
834 :
Now_loading...774KB :2007/04/21(土) 17:59:15 ID:IA3hMP83
>>831 ありがとうございます。
サムネイルの配置がかなり動的なので一つにまとめるのはムリポということです。
20行でなんとかなりますか!ありがたい。
まず
>>833 お前の技術力をおしえれ
・AS1 か AS2 か?
・AS1ならprototypeは使えるか?
・AS2ならクラスは使えるか?
・外部データのロードはやったことがあるか?
とりあえず、その辺に応じて策を考える。
データをクラス化してデザインパターン使って性格付けしてった方がいいんでね。
>>835 AS2常用
クラスなんてなんのことやら
画像とかmp3とかloadMovieなら経験アリ
こんなところ
838 :
Now_loading...774KB :2007/04/21(土) 18:14:30 ID:IA3hMP83
サンプルめっけました。 // NetConnection オブジェクトを作成する : var netConn:NetConnection = new NetConnection(); // ローカルストリーミング接続を作成する : netConn.connect(null); // NetStream オブジェクトを作成し、onStatus() 関数を定義する : var netStream:NetStream = new NetStream(netConn); netStream.onStatus = function(infoObject) { status.text += "Status (NetStream)"+newline; status.text += "Level:"+infoObject.level+newline; status.text += "Code:"+infoObject.code+newline; }; // NetStream ビデオフィードを Video オブジェクトに割り当てる : my_video.attachVideo(netStream); // バッファ時間を設定する : netStream.setBufferTime(5); // FLV ファイルを再生する : netStream.play("videoFile.flv"); ここからスタートしてみます。 ありがとうございました。
>>837 LoadVarsで、外部のテキストデータ読むのが楽だな多分。
LoadVarsは name=value&name=value&... しかロードできないって思われがちだけど、
実は myLoadVars.onData = function(data){} で、生のテキストデータを読める。
これでエクセルとかで作った外部データを読むと楽かと。
で、テキストを myString.split(",") とかで、コンマや改行で分割して配列化して
for文のループでいっきに注入するといいんじゃないかと。
for(var i=0; i< データ配列.length; i++)
{
var unit = {}
_root.UnitData["unit" + i] = unit
//ここでデータ注入
}
職業とかは、名前を直接いれるんじゃなくて
var classes = ["戦士","僧侶","魔法使い"]
みたいに、クラス名用の配列とかを用意して
_root.UnitData["unit001"].Class= 0
みたいに、配列のインデックス番号だけ突っ込む。
こうするとclasses配列の名前かえるだけで、全データの職業名とかを修正できる。
クラスの基本パラメーターや特殊能力なんかも、まず配列にいれて
ユニットには配列番号だけ渡しておくと、番号変えるだけて転職とかできるよ。
よっしゃ 本腰入れてやってみますわ FGFギャー
ASはわかったけどテキスト側はどうしましょ?
俺だったらの例な ID, NAME, CLASS, MAXHP.... Number, String, String, Number... 0, "あべ", "そうり", 123... 1, "こいずみ", "そうり", 45... 2, "おぶち", "そうり", 0... 3, "もり", "そうり", 7... みたいな形にするかな・・・ 1行目に変数名 2行目に変数の型 3行目からデータ で、データをロードしたら・・・ 1: まず改行をsplitして各行を配列化。 2: つぎにコンマをsplitして、各行のセルも配列化。 3: 1行目と2行目を、配列から取り除く。 4: forループ文でオブジェクトに、1行目から抜き出した変数名へ、2行目から抜き出した型で、3行目以降のデータを注入する。 多少メンドクサイが、データを汎用的に注入できる処理なので 一度作れば、モンスターだろうが魔法だろうが、まったく同じ方法でデータ管理できるかと。
>>842 それメモ帳でもおk?
エクセルが見当たらない;
メモ帳でもOK。 ここまで教えたんだから、FGF期待してるからなwwwwwww
任せておきなさいな 今Fateやってる
0ってカワイソス(´・ω・`)
おぶちはティウンティウンしちゃってるから Fate止めてパソ画面と睨めっこ中
849 :
Now_loading...774KB :2007/04/21(土) 19:59:48 ID:KJufdjEU
ボスケテ……なんでか全然わかんない 「keyPress "<Enter>"を認識しない」 環境:Flash8 Basic XPhsp2 on (release, keyPress "<Enter>"){ this.nextFrame();} ってアクションをボタンに割り当てて、 パブリッシュしてるんだけど…… Flash画面内を何度クリックしても、 Enterキーでは先に進まないんだ ヒット領域をクリックすれば当然のように動作する。 何か他に仕掛けが必要なのか?
>849 必ず [ 制御]-[ キーボードショートカットを無効] を選択してください。
>>849 キーリスナー
>>821 まずUnitDataは配列じゃダメなの?プロパティ名に全部unitって付いてて、変わるのは番号だけでしょ?
それからClassは予約語だから使っちゃだめ。
unitData = new Array(
{name:"あべ", className:"そうり", maxHP:123},
{name:"こいずみ", className:"そうり", maxHP:45},
{name:"おぶち", className:"そうり", maxHP:0},
{name:"もり", className:"そうり", maxHP:7}
);
trace(unitData[2].name); //"おぶち"
FGF参加予定です
852 :
849 :2007/04/21(土) 21:04:22 ID:KJufdjEU
>>850 ムービープレビューじゃないんだパブリッシュしてるんだ
>>851 addListener()を使うほど大それた場所じゃないんだが……
それしか方法がないなら……そうします……
「FLASHPlayer内のスクリプトが原因で処理が遅くなってます」って 出るんですが具体的にどういった処理を書くとでるんですかね? 自分で臭いと思ってる処理 onClipEvent (enterFrame) { for (i=0; i<51; i++) { if (this.hitTest(_root.map[_parent._parent.army+i].model.hitObj)) { if (_parent._parent.AP>=_parent.SP) { _parent._parent.SP = _parent.SP; _parent._parent.weapon = _parent.weapon_label; _parent._parent.gotoAndPlay("攻撃"); } else { trace("AP不足で行動不能"); _parent.gotoAndStop("なし"); } } } } armyってのが敵のMCの名前でSPとかAPは無視しちゃって ちなみに敵1人につきこの処理が4つぐらいある。(敵は5人
>>853 無限ループっぽい奴とかじゃね?
1フレームでhitTest51回くらいじゃ、落ちないと思う。
ただ敵5人4っつって・・・
51 * 4 * 4 = 1000回hitTest... これはちょっと重いかもわからんね。
どういうタイプのゲームかによるけど、
シューティングやアクションRPG程度のゲームだったら
マス目の位置をチェックしたり、
円で衝突判定をやったほうが圧倒的に軽いと思われ。
見てると当たり判定じゃなくて、攻撃の範囲(?)判定っぽいし。
あまりにも初歩的な質問だけど、全く原因が分からないので私を助けて Flex SDK 2 @ WindowsXP なんだけども、Embedで画像を埋め込んで表示させるのがうまくいかない package { import flash.display.*; public class Tester extends Sprite { [Embed(source='teset.jpg')] private var g:Class; public function Tester() { var sprite:Sprite=new g(); addChild(sprite); } } } っていうasなんだけども、埋め込むのが上のようにJPEGやGIF,PNGだとだめ(表示されずに背景のみ)だが SWFやSVGだとちゃんと表示される ファイルサイズを見る限り、ちゃんと埋め込まれてはいるんだけども・・・ ちゃんと表示さすには、どこを修正したらいいか、どこを勘違いしているのかあったら教えてください
>>855 試してないから間違ってるかもだけど、
画像ならSpriteじゃなくてBitmapじゃね?
857 :
855 :2007/04/22(日) 14:02:13 ID:QaxNyUst
はい表示できたーウシャシャシャシャシャシャwwwwwwwwwww
なるほど、あー、なんかいろいろ納得しました
ありがとうございました
>>856 そこを踏まえてもっかいじっくりリファレンス読んできます
858 :
Now_loading...774KB :2007/04/22(日) 19:40:25 ID:sYg3mSTR
すみませんが教えてください。 入力中のテキストをリアルタイムに 外部swfファイルに表示させたいのですが どのようにしたらよいか検討がつきません・・・ LocalConnectionを使って外部swfに表示はできたのですが、 ムービークリップアクションのイベントでは なにか特定の動作をしなければ反映できず、リアルタイムとはいきませんし・・・。 ご存知の方よろしくお願いします 環境 FlashMX2004
テキストフィールどはchangeだか、onChangeだかでイベント取れるので、それを使うんだ。 LocalConnection使えるぐらいなら、テキストのイベントハンドラぐらいかけるよな。
質問フェイズは終了してないぜ! 味方のデータを Party1="unit001"; Party2="unit002"; Party3="unit005"; ・ ・ ・ Party10="unit073"; こんな風に管理してるんだけど ・自動的にパーティにユニットを加える場合、 一番最初の空欄(Party内)に値を代入する方法 (Party4まで埋まっていた場合、Party5に値を代入する ・パーティからユニットをはずした場合、 自動的に空欄を埋める方法 (Party7を空欄にしたら8が7に、9が8にって具合 どうかよろしく
>>860 Array.prototype.push
>>861 くやしく
そっただ標準語はわからんとですだ
>>860 どういう構造か知らんから適当言うけど、partyって配列でも作って管理したら?
要素が多いならクラス化でもしないとマジきついと思うがだいじょぶか?
まずパーティ管理に配列を使う
party = new Array()
party[0] = "unit001"
な、
後ろに追加する場合、
party.push( "unit002" )
削除する場合
party.splice( removedPosition ,1)
>>861 なぜにプロトタイプ?
>>860 配列にしたほうが良いと思うんだぜ?
//初期化
var party=[];
party[0]="unit001";
party[1]="unit002";
//追加
party.push(newUnit);
//削除
party.splice(deleteIndex,1);
また被ったんだぜ?orz ヽ(`Д´)ノもう来ねえよ!
867 :
858 :2007/04/22(日) 23:51:32 ID:5qgLQaFS
>>859 ありがとうございます
onChange使ってやってみます
868 :
838 :2007/04/23(月) 00:02:56 ID:QUGXttTq
またお知恵を拝借しに来ました。 前回の件は結局最新のffmpegがswfを吐けるということで一気に解決したのですが、 そのswfのonclickイベントをjavaで拾いたいのです。 今は強引に透明gifをかぶせてやってますが、とても人様に見せられません。 生成されたswfにさらにコードを埋め込むことってできますでしょうか? できないとしたらやっぱりflvを生成してコードをコンパイルしないといけないですが、 そもそもjavaにイベント渡すことってできますでしょうか? 要するにliteboxみたいなスクリーンレイヤーを表示するんですけど。 (それら含めて全部Flashはとてもミリ)
ようは
ttp://www.fladdict.net/app/hatenatube みたいな使い方をしたい、って認識でOK?
なんでJavaが出てくるのかわからんけど
ぶっちゃけFlash to Java は難易度高いよ。
まずFlashからJavaScriptにブリッジして、
JavaScriptからJavaに渡さなきゃならん。
FlashからJSへの通信は、
ExternalInterfaceクラスを使うか、
AdobeLabにあるAjaxBridgeみたいな名前のフレームワークを使う。
SWFhへ外部からパラメーターを渡す方法は、
PHP等からHTMLのEMBEDタグにFlashVarというのを使って渡す。
あ、ミス FlashVarsね
FlashVarsなんて聞いたことない。
872 :
838 :2007/04/23(月) 00:36:56 ID:QUGXttTq
>>869 おお、そんな感じで、サムネイルが動くと。そういうイメージです。
なるほど・・・
その線で調べてみます。ありがとうございました。
873 :
838 :2007/04/23(月) 00:43:30 ID:QUGXttTq
>>869 MTASCでコンパイルする場合
ExternalInterfaceを使うべきでしょうか?
fscommandを使うべきでしょうか?
>>873 どっちでもいいと思うけど
最近の流れだとExternalInterfaceみたい
875 :
639 :2007/04/23(月) 01:28:21 ID:ItNu69vl
>>863 オブジェクト思考を勉強中なんですが、是非そのクラスを使った際のソースを見てみたい…
>>860 を見ても通常の配列しか思いつかなかったんだけれど
クラスにするとどのような利点があって、どんなスクリプトになるんですか?
AS2.0で関数に、 二重配列のうちの1列だけを渡すにはどうしたらいいん? var arr:Array=[[0,1,2],[3,4,5]]; hoge(arr[0]); function hoge(arr:Array){ trace(arr[0]); } って感じで今書いてるんだけど、 traceの結果はundefinedでちゃんと渡せてないみたい。 ヘルプとかサイトで調べてみても、 配列の渡し方について見つけられんかった。(´・ω・`) スマンが誰か教えてくれい。
877 :
Now_loading...774KB :2007/04/23(月) 02:53:34 ID:l7l2PHQs
>>876 すでに1列渡ってる。
1列渡したんだから、arr[0]が存在するわけがない。
function hoge(arr:Array){
trace(arr);
}
>>877 いや、2重配列のうちの任意の1列って意味なんだが…。
javaで言えば、
public static void main(String args[]){
int i[][] = new int[2][2];
i[][]の初期化;
disp(i[1]);
}
static void disp(int[] arr){
System.out.println(arr[1]);
}
こういうことなんだけど、
どうにもAS2.0だと渡せてないようなんだ。
880 :
838 :2007/04/23(月) 10:06:21 ID:/AcnpstM
めちゃくちゃ初心者ですがお願いします。 まず、時刻(a)を取り出し、その後ボタンを押す事で時刻(b)を取り出し、 (b)-(a)で経過時間を出すプログラムはどのようにしたらいいのですか?
882 :
Now_loading...774KB :2007/04/23(月) 11:27:14 ID:knbqJxKA
FLASH MXでGETURLを指定しています。
ボタンを選択して、そのボタンに記述していますが
実行されません。反応が何も無い状態です。
パブリッシュ設定も、バージョン6に設定しています。
下記でヤフーに飛ぶようにしたいのですがなぜ動かないのでしょうか?
わかるかた教えてください・・・
on (release) {
getURL("
http://www.yahoo.co.jp ");
}
環境はWindows XPです。FLASH MXを使っています。
>>879 オブジェクト配列のことでしたか
何かこうArrayクラスを使わなくてもいいような管理クラスがあるのかと思いまして。
でも何かと参考になりそうだったのでお気に入りに保存した。ありがとう
>>877 >>879 うあー。動いた。
配列定義の部分を#initclip〜#endinitclipで括ってたんだけど、
こいつが正しく機能してないみたいだった…。
申し訳ない。助かりました。
885 :
Now_loading...774KB :2007/04/23(月) 13:26:08 ID:EBvJWvZi
今Flashのお試し版Flashを使ってお試し期間が終わった後、買ったらいい Flashの製品名とかバージョンとかを教えてください 現在のお試し版の機能があれば十分です。
887 :
Now_loading...774KB :2007/04/23(月) 14:59:45 ID:T3hZkVEl
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) SharedObjectのSOLファイルで質問です。 localSO = SharedObject.getLocal(saveName1, "/"); localSO = SharedObject.getLocal(saveName2, "/"); ・・・ ・・・ などとして、saveName1,saveName2,・・・ というSOLファイルにlocalSO.flush() で書き込んだ後、ディレクトリ内のSOLファイルの一覧を作成することは可能でしょ うか? イメージとしては、WordやExcelなどでの ファイル→開く(一覧を見る) みたいな 感じです。
888 :
887 :2007/04/23(月) 15:07:13 ID:T3hZkVEl
すいません。 上の書き方では誤解を招きそうなので、修正します。 希望の一覧形式はGUIのような高度なものでなく、単純にSOLファイル名のみ をテキスト形式で表示するだけで結構です。
できないからSOL名管理用のSOL作ってそれ経由で管理
solのパラメータ見るだけならフリーのGUIツールがいくつかあるよ。
891 :
Now_loading...774KB :2007/04/23(月) 18:44:07 ID:QZRYDxfT
FLASH MX 2004なんですが、テキストデータを読み込んで、 そのテキストデータ内にある変数の中の文字列から「<br>」が幾つあるかを検索したいのですが、 どういう風にActionScriptを記述すればいいでしょうか? よろしくお願いいたします。
893 :
Now_loading...774KB :2007/04/23(月) 18:51:32 ID:T6B8IJsb
on (press) { _root.gotoAndStop(1); } 子swfから親swfへ命令したいのですが(どちらもレベル0)、 flash8ではこれでは稼働しません。(7以下では動きます) どう書き換えればいいのでしょうか? よろしくお願いいたします。
ルートはswf自身の_root を参照する仕様。 swf自体を入れ子にしている場合は、 lockRootというものを調べてみるべし あるいは _levelo0 めがけて、gotoAndStop送るとか
_levelo...ってなんだよ レベロ・・・ 誤字おおいな俺。
896 :
893 :2007/04/23(月) 20:03:28 ID:T6B8IJsb
勉強してみます!ありがとうございました
897 :
891 :2007/04/23(月) 20:31:55 ID:QZRYDxfT
>>892 ありがとうございます!splitを使って出来ました!
898 :
Now_loading...774KB :2007/04/23(月) 22:15:00 ID:TvTXhiqA
AS2.0の質問です BitMapDataの特定の色だけを透過するには1pxづつgetPixel32して比較して、setPixel32するほかないですか? 実行速度が気になるもので・・・
>>899 thresholdとかpalleteMapとか使える。
使いやすいのはpalleteMapかな・・・
thresholdは、ある一定の色の条件(redが127以下とか)で、
その色を置き換える機能。
paletteMapは R255G200B100 → R200G140B92 といったように、
0〜255の配列で対応する色を別の色に置き換える機能。
とりあえず、ヘルプ読んでサンプルの数字変えて
それでもわかんなかったら、どこまでやったかと一緒にもう一度きいてみてくれ。
903 :
887 :2007/04/24(火) 00:48:20 ID:OUHcGOFG
>>889 , 890
さんきゅうです。2つの案で進めます。
>>881 Dateオブジェクト作ってgetTime()メソッド使う。
切り捨てとか時分への計算は自分でやる。
var stDate:Date = new Date();
trace("起動時刻"+stDate);
onMouseUp = function(){
var edDate:Date = new Date();
var term:Number=0;
term = (edDate.getTime() - stDate.getTime()) / 1000;
trace("起動時刻から"+term+"秒経過");
}
>>882 on(release)自体が動いてるかどうか、getURLの前にtraceでも入れて確認。
905 :
Now_loading...774KB :2007/04/24(火) 11:19:11 ID:KxT+kJLS
>>882 です。
>>904 レスさんきゅ〜です。
on(release)自体が動いてるか確認のTraceで
動いてないことが確認・・・何の反応もありませんでした。
どうしてなんでしょう??良い方法がありますか?
>>905 ヘルプでボタンの作り方みて、
書いてある通りの場所に、書いてある通りのコードをコピペしろ。
それで動いたら、中身をgetURLに変える。
初心者全体にいえることだが、
つっかえたら新規Flaに、まず動いてるところから
コードコピペして試すとよいよ。
907 :
Now_loading...774KB :2007/04/24(火) 11:58:42 ID:4+xbYX6T
ActionScriptで(OSの)ビープ音を鳴らすことはできますか?
908 :
881 :2007/04/24(火) 13:36:02 ID:zykUYDB3
>>904 ありがとうございます。アドバイス頂き感激です。
超初心者ですが試行錯誤がんばってみます。
感謝します!
909 :
Now_loading...774KB :2007/04/24(火) 13:52:21 ID:4+xbYX6T
Flash8で、ヘルプのサンプルにあるコード、 class Sample { public static var count:Number = 0; private var ID:Number; public var email:String; public function Sample() { Sample.count++; trace("count updated:" + Sample.count); } public function myMethod():Void { trace("myMethod"); } } に対して、シンタックスチェックを行うと、 Sample.as: 行 6:静的メンバーには、クラスを通してのみ直接アクセスできます。 Sample.count++; などとエラーが出てしまいます。これは一体どういうことでしょうか? (実動作には問題ありません)
>>909 うーん、よく見つけたね。これ
Flashのエラーチェッカのバグじゃね?
クラスSampleの静的変数countを読みにいってるのだけど、
コンストラクタ内でSampleと書くと、
クラスSampleのcountじゃなくて、コンストラクタのプロパティcountを読み移行としてるみたい。
仕様なのかな?なんかFlashが悪いような気がする。
とりあえず、Sample.count を count に置き換えれば動くよ。
あとコンストラクタ内以外では、Sample.countと書いて無問題。
911 :
Now_loading...774KB :2007/04/24(火) 14:41:17 ID:4+xbYX6T
>>910 Sample.count++;
を コンストラクタ内でなく、myMethod() に移しても同様のエラーが出ました。
単に count++ とすると大丈夫のようでした。
AS2で、クラス内でサウンドオブジェクトを作って、そのサウンドを _rootから使いたい(setVolumeとか)んですが、やり方がわかりません。。 2日ほどハマってます。 クラス------ classh Hoge{ function Hoge(){ var bgm_mc:MovieClip=_root.createMovieClip("bgm_mc",1) var s0:Sound=new Sound(bgm_mc) } } タイムライン---- var hoge1=new Hoge() s0.setVolume(50) ☆やりたいこと _rootタイムラインのボタンを押すとs0のsetVolumeを行うようにしたい。 ☆わからないこと classの中で作ったサウンドオブジェクト s0 をタイムラインで参照できない。 以下、全てundefined。 trace(_root.s0) trace(hoge1.s0) trace(_global.s0) trace(s0) どなたがお願いします。。。 (_rootでs0を作ればいいのは分かってるんですがclassで宣言したい) ていうか無理なのかな?
>>912 class Hoge{
var bgm_mc:MovieClip;
var s0:Sound;
function Hoge() {
bgm_mc= _root.createEmptyMovieClip("bgm_mc", 1);
s0= new Sound(bgm_mc);
}
}
>>913 ありがとうございました!
_rootで参照できました
trace(h1.s0) // [object Object]
コンストラクタ関数の中で変数宣言しちゃダメってことですね
>>914 今後もつっかかると思うから、こう考えるといいよ。
コンストラクタに限らず、
関数内で宣言した変数は、
関数の終了時に開放される。
永続させたい変数は、外で宣言すること。
youtubeに上がってる動画なんですが、たまにMetaDataが付いてないのに youtubeだと総時間が出てたりどこでもseek出来たりしてるんですが あれはどうやっているか分かりませんか? 普通にnetStream.seekとかだと飛べないのですが・・・
バージョン
Flash8です。 seekってMetaDataに埋め込まれた一番近い時間のところに飛ぶんですよね? 無いのにどうやってseekできてるのか不思議です。
youtubeはもう一つ前のバージョンのflvベース
実はちゃんと埋め込まれてるけどバージョンが違うから読み方が違うんですかね。 色々検索してきます。
921 :
Now_loading...774KB :2007/04/25(水) 20:19:54 ID:gCStIQa+
質問よろしいでしょうか。 今、配列にMCへのパスを放り込み、続いてそれらのMCにプロパティをくっつけるとします。 (_root上には適切なMCがあるとします) test_array = new Array(); for (var i = 0; i<5; i++) { targetMc = eval(i+"_mc"); test_array[i] = targetMc; test_array[i].testNumber = i; } このとき、あるMCのtestNumberがいくつなのかは trace(test_array[4].testNumber) みたいな感じですぐわかりますが、例えばtestNumberが2のMCを見つける為には どういった手順を踏むべきですか? やはりforやifなんかの条件式でしらみつぶしにあたるしかないんですかね?
>>921 この場合、testNumberがユニーク(重複しない値)かどうかによって変わる。
基本は、Dictionaryとか連想配列っぽいやり方で、
もう1つ配列みたいな参照コンテナを作る。
test_dictionary = new Object()
test_array = new Array();
for (var i = 0; i<5; i++) {
targetMc = eval(i+"_mc");
test_array[i] = targetMc;
test_array[i].testNumber = i;
test_dictionary[i] = targetMc
}
こういう風にすれば、mc = test_dictionary[ testNumber ] で、対応するtargetMCを取得できる。
配列のかわりにObjectを使ってるので、
数字でも文字でもユニークな値だったらなんでも大丈夫。
ちょっと長くなるので続く。
ゴメン上の代入する部分 test_dictionary[ targetMc.testNumber ] = targetMc で、testNumberが重複する値の場合は、 test_dictionary内にさらに配列を作ることで、対応する。 test_dictionary = new Object() test_array = new Array(); for (var i = 0; i<5; i++) { targetMc = eval(i+"_mc"); test_array[i] = targetMc; test_array[i].testNumber = i; if( test_dictionary[i]==undefined){ test_dictionary[ targetMc.testNumber ] = new Array() } test_dictionary[ targetMc.testNumber ].push( targetMc ) } こういう風に、test_dictionary[ id ] が存在しない場合は、新規配列を作って その中にtargetMCを追加していく そうすると、 var ar:Array = test_dictionary[ id ] で、対応するデータを配列で取得できる。
即レスありがとうございます
突然の質問すみません。 例えば変数text1(デバイスフォント)に以下のように文字列を代入します。 text1 = "あいうえお"; text1の色は白なのですが、上記の文字列の「うえ」だけを赤色にすることはASで可能でしょうか? swf7で作ってます。 良ければ返答お願いします。
7ってHTML使えたっけ
6から使えるだわさ 変数あつかえるかは知らない
>>925 テキストフィールドにmy_txtっていうインスタンス名(変数じゃないよ)をつけて、
my_txt.html = true
my_txt.htmlText = "あい<font color=\"#FF0000\">うえ</font>お"
929 :
Now_loading...774KB :2007/04/25(水) 23:26:54 ID:cjl2jlWh
sound関係のASで音程を操作する関数とかってないでしょうか?
無い
例えば0.5秒かけてアクションする というような記述はどのようにすれば良いですか
>931 待つならsetInterval
933 :
Now_loading...774KB :2007/04/26(木) 14:44:11 ID:2Hvz1+8W
【環境】winXP、 flash9 public alpha、 AS3 最近AS3の勉強を始めたのですが、行き詰まってしまったので どなたか教えてください。 A.swf frame1に記述したスクリプト --------- var loader:Loader = new Loader(); loader.load(new URLRequest("B.swf")); addChild(loader); --------- この場合、B.swf側からA.swfの値を参照するにはどうしたらよいのでしょうか? AS1の時は下記のように出来たのですが、AS3になって解らなくなってしまいました。 A.swf frame1に記述したスクリプト --------- aaa = 300; loadMovieNum("B.swf",1); --------- B.swf frame1に記述したスクリプト --------- trace(_level0.aaa); --------- よろしくお願いします。
正しくは知らんけど this.parent.parent["aaa "] か this.parent.root["aaa "]でアクセスはできるはず
935 :
933 :2007/04/26(木) 18:33:33 ID:2Hvz1+8W
this.parent.parent["aaa"] と this.parent.root["aaa"] 両方ともアクセスできました。 ありがとうございます。 ただ何故parentが2つ必要なのでしょうか?? aaaはB.swfの親であるA.swfにあるからparentは1つでokだと思っていました。
多分Loader.contentの下にswfが読み込まれるからだと思う
937 :
933 :2007/04/26(木) 18:51:59 ID:2Hvz1+8W
>>936 とても助かりました。
ありがとうございます。
938 :
Now_loading...774KB :2007/04/27(金) 12:20:02 ID:yJetYxdC
絵のムービークリップをクリックすると、絵が所定の位置まで移動してその内容が表示されて その中のクローズボタンを押したらまた最初の位置まで絵が戻って元通りのようにしたいのですが クリックした後に絵を押しても同じ動きをしないよう、ネットの情報の真似でdalete onPressを指定したら 絵はクリックできないようになりましたが、クローズを押した後も押せないままになってしまいました このonPressをまた復活させるにはどのようにすれば良いのでしょうか またはもっと効率の良い方法があったら教えて下さい、お願いします
>938 絵MCの最初と最後だけにボタンを置く
940 :
Now_loading...774KB :2007/04/27(金) 17:16:11 ID:rjmFGodJ
swfがブラウザ上で再生されているか、ローカルで直接再生されているかを ActionScriptから判定する方法がありますか?
_url
942 :
Now_loading...774KB :2007/04/27(金) 19:36:06 ID:rjmFGodJ
すみません、ちょっと言い直します。 swfがブラウザ上で再生されているか、ローカルファイルで直接再生されているかを ActionScriptから判定する方法がありますか? 同じローカルでも、ブラウザを利用しているかどうかを知りたいんです。
>>942 System.capabilities.playerTypeあたりか?
具体的には何のために知りたいの?
944 :
Now_loading...774KB :2007/04/27(金) 20:03:30 ID:rjmFGodJ
>>943 それっぽいです。ありがとうございます。
JavaScript操作(getURL("javascript:"))を実行するかどうかを分岐したかったです。
945 :
944 :2007/04/28(土) 14:41:25 ID:5rfcqrC/
自分の目的の場合、 ExternalInterface.callとExternalInterface.availableを利用する方が よいかもと思い、結局そちらを採用してみました。
946 :
Now_loading...774KB :2007/04/29(日) 08:10:51 ID:cABnzptw
日本語の文字コードについて質問です。 環境はWindowsXP、Flash8です。 CGIとxmlでやり取りするflashを作っていますが、xml内の文字列とasファイル内に 書いた文字列がうまく比較できません。 具体的には、 // xmlから、あるノードのプロパティを拾ってくるファンクション var foo:String = getXmlXXXProperty(xxx); // "あいうえお" var bar:String = "あいうえお"; var piyo:Boolean = (foo == bar); trace(piyo); // false xmlの文字コードはUTF-8、ActionScriptの文字コードもUTF-8です。 ただ、asファイルの文字コードをShift-Jisにすれば期待通り動くようです。 asファイルをUTF-8にしたまま、うまく動作させる方法はないでしょうか。 ご教示お願いします。
テストしてみたけど、両方UTF-8(BOM付)で問題ないみたいだよー。 trace([foo,bar]); trace([foo.length, bar.length]); trace([typeof foo, typeof bar]); とりあえず最小構成のテストファイル作って原因を絞ってみては いかがでしょうか?
948 :
946 :2007/04/29(日) 09:54:44 ID:cABnzptw
>>947 さっそくありがとうございます。
環境設定 → ActionScript → デフォルトエンコーディング と設定していたのを
UTF-8 エンコーディング に変更したあと、flash8を再起動していなかったのが
問題のようでした。
再起動したところ期待通り動作しました。
ちゃんとチェックせずすみません。ありがとうございました。
949 :
946 :2007/04/29(日) 10:18:13 ID:cABnzptw
何度も申し訳ありません…。 原因は再起動のせいでもありませんでした。 ActionScriptはEclipseで書いてるのですが、文字コードの自動判定をミスるせい でした…。 UTF-8(自動判定)で開く → 書く → 保存(自動判定によりShift-Jisで保存)。 完全にスレ違いでした。失礼しました。
外部FLVファイルを用意して、プログレッシブダウンロードで 再生させているのですが、 そのFLVファイルの再生が終わったら特定のフレームに飛ぶように するにはどうしたらいいでしょうか? いろいろ調べたりしたのですが、解決に至りませんでしたので どなたかご教示いただけると幸いです。。
>>950 var listenerObject:Object = new Object();
listenerObject.stopped = function(eventObject:Object):Void {
// ここにイベント処理コードを挿入する
};
my_FLVplybk.addEventListener("stopped", listenerObject);
Action ScriptやFLASHの知識はあまりないですが、 JavaScriptやActiveXコントロールのプログラミングには多少知識があります。 今あるワンクリック詐欺サイトについて調べているのですが ここでswfが使われています Action Scriptでは閲覧側のコンピュータに対する破壊活動を どの程度行う事が可能なのでしょうか? 例えばファイルを消したり、 メール内容を勝手に送信したりできるものなんでしょうか?
>>952 当然出来ない。
但し、Flash Player自体に脆弱性があれば、それはまた別の話。
>>952 ないと思うが、それだけではなんともいえん。
そのサイトのURL張れんの?
以前playerの脆弱性が指摘されたけど今はしらん シマンテックとかセキュリティサイトと adobeサイトみて何もなければいいんじゃね?
956 :
Now_loading...774KB :2007/04/30(月) 03:20:41 ID:rd00c7kp
関数内での変数について質問です。 今CSVファイルをLoadVarsで読み込んで表示させようとしています。 無事にファイルを二次元配列に収める事には成功したのは良いので すが、関数内でローカル変数として読み込んでしまったため、関数の 外から配列を呼び出せずに困っています。 そこで今グローバル変数とローカル変数について勉強しているのですが、 読み込む配列を宣言する際に例えば_global.myDataとして宣言すれ ば、その配列は以降は関数外でも呼び出せるという事なのでしょうか? なかなか思うような結果が得られず悩んでおります。どなたかご教授ください。
>>956 var table = new Array();
・
・ table の中に2次元配列を作る処理
・
// ローカル変数は関数が終了した瞬間に消滅してしまうので、
// グローバル変数にコピーしておく
_global.globalTable = table;
最後に、ローカル変数tableをグローバル変数globalTableにコピーして
あげればokかと。
コピーした直後から、作った2次元配列はflash内のどの関数内からでも、
呼び出すことが可能になります。
> 思うような結果が得られず
trace(table); とかで、どこまで正常に動いていて、どこから失敗しているか
見直してみるとよいです。
958 :
956 :2007/04/30(月) 07:14:47 ID:rd00c7kp
>>957 素早いレスありがとうございます!
なるほど、消える前に別のグローバル変数に代入すれば良いのですね。
参考にして修正をしてみたのですが、仰る通りにtraceを使って点検をした
のですが、今回お聞きした部分以前に作動してないようでした。
my_lv = new LoadVars();
my_lv.onData = function(str) {
trace("Start.OK");
if (str != undefined) {
trace("read.OK");
var myData = str.split("\n").join("").split("\r");
for (var i = 0; i < myData.length; i++){
myData[i] = myData[i].split(",");
}
}
_global.txtData = myData;
}
my_lv.load("test.txt");
trace(txtData[0][0]);
このように組んだのですが、最後の行の出力がundefinedになるだけでな
く、関数内のtrace部分に関しては何も出力されませんでした。
loadメソッド自体が行われていない、という事なのでしょうか?
959 :
あほ初心者 :2007/04/30(月) 07:28:25 ID:6U9m8zgY
環境は標準です。 やりたいのは、ダイナミックテキスト表示を メインムービーの中のクリップ内のダイナミックテキストエリアに表示させたいだけですが出来ません。。 ヘルプのサンプルを下記のようにいじってメインムービー1フレに貼りました。 ta.txt内にta=testと記述し、mc1クリップ内のta1エリアにtestと表示させようとしましたが unable…すら表示されずtrace(features_lv.ta)してもundifinedです。 そもそもon Textファンクション自体が働いてないようなんですが、何故でしょうか。 var features_lv:LoadVars = new LoadVars(); features_lv.onLoad = onText; features_lv.load("ta.txt"); function onText(success:Boolean) { if (success) { this.mc1.ta1.text = features_lv.ta; } else { this.mc1.ta1.text = "unable to load text file."; } }
>>958 何で成功時のみの処理なの?意味無いじゃん。失敗したときの処理は?
>>959 テキストフィールドのパスを確認。thisが何を指しているのか確認。
サウンドオブジェクトでループ回数を無限にするにはどうしたら良いんでしょうか _root.hoge.start(0,???); ???の部分がわかりません。。
962 :
959 :2007/04/30(月) 08:35:59 ID:0/5H6yiY
>960 回答ありがとうございます。 this.mc.ta1.text の部分、.text以前は"ターゲットパスの挿入"ダイアログで行っているので、パスはあっているかと思っています。 asはメインムービーに貼っているので、 thisはメインムービーですよね。 this.mc1.ta1でメインムービー内>mc1インスタンス>ta1テキストエリアとなるはずですが。。 上記の理解が間違っているのでしょうか。 それとも、mc1内での変数宣言などが必要になるのでしょうか。。 メインムービーへのテキスト表示は出来る(サンプルまんまだから当たり前か)だけに なにが障害かわからない。。
964 :
Now_loading...774KB :2007/04/30(月) 09:12:54 ID:ayOv5W0u
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7) 複数のテキストをXMLで読み込むASで質問です。 読み込み後の文書データ名をmotoとして、フレーム内のボタンアクションを 以下のように書きました。 on (release) { moto = ""; //motoの初期設定 for (id=0; id<2; id++) { txtXml.load("bun_"+id+".txt"); //bun_0.txtとbun_1.txtを読み込む txtXml = new XML(); txtXml.onData = function(s) { tmp1 = s.split("\n").join(""); //不要な改行を消す moto = moto+tmp1; //motoに追加 }; } trace("moto= "+moto.length); //読み込みのチェック } この場合、traceで moto= 0 となり、読み込みに失敗しています。 どうしたら良いでしょうか?
>>964 loadできるのはxmlインスタンスを作ってからでしょ
966 :
964 :2007/04/30(月) 09:58:27 ID:ayOv5W0u
>>965 有り難うございます。
txtXml = new XML(); をフレームアクションとして、プレビュー起動時に
xmlインスタンスを作成するようにしました。しかし、これでも出来ません。
どうしたものでしょうか?
>>966 onDataの引数sは何のためだと思うの?
ループではなく1つだけの時は動くの?
まずは単純なものから始めてみる
968 :
964 :2007/04/30(月) 11:07:04 ID:ayOv5W0u
>>967 お世話になります。解決出来ました。
ヘルプでonDataの仕組みを見ました。これはロード完了後初めて実行される
ハンドラなので、forの外に trace("moto= "+moto.length) を置いても、実質
forの処理を飛ばしてtraceされるため、0が表示されると解釈しました。
パラメーター『s』は、ヘルプの基本式 onData = function(src:String) {} と
ヘルプの記述「ダウンロード中にエラーが発生しなければ、サーバーからダウ
ンロードされた XML テキストを含むストリングになります。」から、XML テキスト
を含むストリング、つまり、bun_0.txtとbun_1.txt と解しました。
実行したASは以下の通りです。
ボタンA
on (release) {
moto = "";
for (id=0; id<2; id++) {
txtXml.load("bun_"+id+".txt");
txtXml.onData = function(s) {
tmp1 = s.split("\n").join("");
moto = moto+tmp1;
trace("moto= "+moto);
//
};
trace("moto長さ= "+moto.length); //実質無意味ですが書いています
}
}
ボタンB
on (release) {
trace("moto all= "+moto.length); //全部の長さ
}
別のボタンBで見ると目的の長さが得られました。
969 :
959 :2007/04/30(月) 13:42:07 ID:RLzUTBnn
>963 何度もすみません。 ASはメインムービ貼ってるのでtrace(that);の結果は_level0です。 メインムービーに貼ったAS内の this.mc1.ta1.text = では、子インスタンス内のta1ダイナミックテキストエリアに変数を渡せないのか or それ以前の変数宣言や関数呼び出しの段階から、this.mc1.ta1といった対象オブジェクトの指定が必要なのか が詳細な質問内容です。
>>969 this.mc1.ta1.text=
の前行にtrace(this);
>>969 > ターゲットパスの挿入"ダイアログで行っているので、パスはあっているかと思っています
これが間違い。
「ターゲットパスの挿入」は、あくまでそれが書かれているフレームのタイムラインを
基準にしている。
しかし、スコープが変わればthisが参照するものは変わる。
この部分は「ターゲットパスの挿入」ではフォローされない。
thisが何を指しているのかは、散々言われているようにtrace()をすることで確認できる。
>>970 の通りにやってthisがさしているものが_level0でないなら、そこに
mc1.ta1というものは存在しない。
972 :
956 :2007/04/30(月) 16:38:38 ID:rd00c7kp
>>960 確かに、成功時だけで失敗時には意味がないものになってますね…ありがとうございます!
そこでプログラムを修正した後読み込みに挑んだのですが
my_lv.onData("1,2,3");
と直接データを与えると正常に作動するのですが
my_lv.load("test.txt");
とするとonDataメソッドが呼び出されないようなのです。
他の所からonDataメソッドを呼び出す必要があるのでしょうか?
どーせloadの後ろにondata書いてるんじゃねーの?
ひょっとして、my_lvを関数内のローカル変数として作って 呼び出し終わる前に、ガベッジコレクションで消えたりしてないか?
>>972 なんのために関数内でmyDataを宣言してるの?
はじめから_globalに入れればいいと思うんだけど。
onDataでは無くonLoadにしてみたら?
あと今回の問題に関係ないけど、配列は単純に=ではコピーできない。
_global.txtData = myData;
の後に_global.txtDataの中身を変えたらmyDataの中身も変わってしまう。
>>975 いや、そこらへんは
>>972 はなにも間違ったことしてない。
myDataをローカル変数で宣言してるのは、CSVをパースするための一時的な処理だし、
ローカル変数だから _global.txtData = myData; とすることにも間違いはない。
むしろ、myData.concat() とかここでやるのは冗長。
あとonLoadはCSV解析するには使えないから、onDataでいいんだよ。
977 :
Now_loading...774KB :2007/04/30(月) 22:21:31 ID:zMpVFz10
pic01_mc 〜 pic03_mcを押した時同じ処理を関数で行いたいのですが 実際関数中にそれぞれmcを指定するにはどうすれば良いのでしょうか? 引数をnで持ってきて、pic01_mcに10を代入したいとしたら "pic0" + n + "_mc" = 10; で良いのでしょうか、これでは動きませんでしたが・・・
>>977 バージョンも実行条件もわからんが
this.変数名
とか
979 :
Now_loading...774KB :2007/04/30(月) 23:29:49 ID:zMpVFz10
>>978 レスありがとうございます
function picPress(n) {
(ここで押されたpic0?_mcを判別して、その._xに10を代入)
}
pic01_mc.onPress = function() {
picPress(1);
}
pic01_mc.onPress = function() {
picPress(2);
}
説明下手ですいません、上のような感じで処理をしたいのですが
関数側でどのようにして押したムービークリップを判別をさせるのかがわからないのです
押したpic0?_mc側から1や2を渡して、それからどうにかして判別とか自分では漠然と考えていたのですが;
FLASHのバージョンは8です
979のonPressの部分 pic01_mc.onPress = function() { picPress(1); } pic02_mc.onPress = function() { picPress(2); } でした
function picPress(mc){ mc._x += 10 } pic01_mc.onPress = pic02_mc.onPress = pic03_mc.onPress = function(){ this._parent.picPress(this) } こんな感じじゃね? 無理してID渡すより、MCそのものを渡すほうが楽だよ。 ID渡す場合は、 this[ "pic0" + n + "_mc"] みたいになる。 変数名を式で作る場合には、文字を[ ] で挟む。
>>981 レスありがとうございました
まだまだ勉強不足なので、そちらの式を参考にさせて頂きます
pic01_mc.onPress = pic02_mc.onPress = pic03_mc.onPress = function(){ this._x += 10; };
984 :
952 :2007/05/01(火) 00:36:27 ID:yQiLdouY
どうも有難うございます これがその詐欺サイトだそうです。 www.x69xforyou.com/member/?code=milk&confirm=yes 私は危険かもしれないのでブラウザでは開いておりません。 ただしHTMLを落としてソースは見ました。 見たらFLASHにIP等が渡されています 開く場合は注意してお願いします
for(i=1;i<4;i++){ this["pic0"+i+"_mc"].onPress=function(){ this._x+=10; } mc増えると桁そろえるのって面倒だから pic1_mcの方が楽じゃね?
986 :
956 :2007/05/01(火) 07:07:44 ID:IZjWiysq
>>973 >>974 >>975 >>976 レスの確認が遅れてすいません。素早い返答ありがとうございます。
onDataの文頭に動作を確認するtraceを配置したのですが出力がなく、onData
自体が呼び出されていないようでした。
>>973 、
>>974 で指摘された部分に関して
は見直しても該当していませんでした。
何か根本的なミスがあるかもしれないので、もう少し自分で見直してみます。
皆さんご丁寧にレスありがとうございましたm(__)m
>974 あんまり意識したことなかったんだけど、 LoadVarsのonLoadが呼ばれる前ってGCの対象になるのかな? どっちにしてもあんまり作法は良くないとは思うけど。
988 :
959 :2007/05/01(火) 11:13:20 ID:4uKjBk9P
>970 >971 なるほど。なるほどなるほど! ようやく理解できました。 言い訳すると、絶対パスでチェックしたとき動かなかった(他の部分が間違えていた)ので パスミスだとは思っていませんでした。。 お礼が遅くなってすみません。 ありがとうございました。
>>984 うーん どうなんだろね。
IP記憶して他に書き出してるのかな。
そのくらいしかできないと思うけど。
あなたの登録情報つって リファラやIPだす程度だろw
XP環境でFlash8です。 _rootフレームに function sound() { se = new Sound(); se.attachSound("sound file"); se.start(); } と書いて _root.sound(); にて実行させています。これでうまくいっていたのですが 操作用MC(インスタンス名 ope)に if (Key.isDown(83)) { _root.gotoAndPlay(""); _root.sound(); } と書いてみたんですが音が鳴ってくれません。 他の部分ではちゃんと音が鳴るのに、このMCだけ音が鳴らない原因は なんでしょうか? お教え頂ければ幸いです。
_root.sound(); _root.gotoAndPlay("");
>>991 if文をenterFrameの中に入れてないとか。
リスナー使った方が良いよ。
>>992 解決いたしました。ありがとうございました m( _ )m
なかなか1作完成しません すぐ他のアイデアに目移りするのと もともと自慢できるような大それたアイデアじゃないのと 忍耐力が無いのが主な原因かと思われますが 何か打開策は無いでしょうか 技術的に完膚なきまでに挫折したわけでもありません むしろ実現困難かに思える部分を作りきるところまでは楽しいです
996 :
Now_loading...774KB :2007/05/01(火) 19:13:42 ID:82jw0aYL
FlexBuilderの体験版インストールしたんだけど、 エディタの色をうまく変えれません とりあえず背景を黒くして、文字を明るいグレーにしたんだけど public や import みたいな修飾詞がデフォルトだと青で表示されてます これを変えたいんだけど、設定を一通りみても見つかりましぇん どこにありますか
997 :
996 :2007/05/01(火) 19:31:57 ID:82jw0aYL
ちなみにFlashのセキュリティで一番怖いのは、第三者によるクロスサイトスクリプティングだと思われ。 FlashブログとかでURLとかリンクのフィールドに JavaScptが入った投稿されて、 他のユーザーがそのリンククリックしたらgetURL("javascript:〜")みたいのが実行されるという奴。 へたすれば、そのユーザーのメアドやパスワードを引っこ抜かれる。 HTMLと違ってURLのリンク先や、HTMLソース見れないから、 しかられても見つけにくい。
Flashサイトが嫌われる原因の一つでもあるね。 ↓次スレ
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。