07/08/18 08:54:58 g0sVH2IC
アドビ本家(FLashCS3の30日間無料トライアルのダウンロードもここから)
URLリンク(www.adobe.co.jp)<)
.solエディタはここ
URLリンク(www.alexisisaac.net)
3:Now_loading...774KB
07/08/18 13:40:00 +E7xJx7d
Flex 2 (ActionScript 3.0)で、縦書き表示したいのですが、何か方法はあるでしょうか?
Flash 8では、静的テキストならプロパティの変更で縦書き表示が選べたのですが…
よろしくお願いいたします。
4:Now_loading...774KB
07/08/18 17:22:44 rmevAXa2
windowsXP FLASH8 です。
ムービークリップに
onClipEvent (load) {
if (_root.変数1 == true) {
this. gotoAndPlay("A");
}
if (_root.変数2 == true) {
this.gotoAndPlay("B");
}
}
と記述して動作しているのですが同じ内容を記述するムービークリップが
多くなりそうなのでfunctionにすることにしました
↓rootタイムラインに記述
function 名無し() {
if (_root.変数1 == true) {
this. gotoAndPlay("A");
}
if (_root.変数2 == true) {
this.gotoAndPlay("B");
}
}
↓ムービークリップに記述
onClipEvent (load) {
_root.名無し();
}
では動作してくれません。。。。。
どこが問題なのでしょうか。。。。。orz
5:Now_loading...774KB
07/08/18 18:49:09 JpSxShXi
>>4
thisが違うんじゃない?
function 名無し(mc:MovieClip){
mc.gotoAndPlay("A");
//他は略
}
呼ぶときは
_root.名無し(this)
6:Now_loading...774KB
07/08/19 01:23:19 xj1FghBM
flashでホームページを作っています。
各アイコンのボタンをMCにして、マウスが近づくと大きくなるようにしているんですが
数が増えてしまいCPU負荷が予想以上に多くなってしまいました。
対策として、アイコンのエリアより大きいサイズの透明のMCに
onClipEvent (load) {
Iconflag = true;
}
on (rollOver) {
Iconflag = true;
}
on (rollOut) {
Iconflag = false;
}
と書き。アイコンのMCに
onClipEvent (enterFrame) {
if (Iconflag == true) {
xm = _parent._xmouse;
ym = _parent._ymouse;
span = Math.sqrt(xm*xm+ym*ym);
if (span>100) {
mcScale = 80;
} else {
mcScale = 80+(span-100)*-20/100;
}
this._alpha = this._xscale=this._yscale=mcScale;
}
}
とやってみて負荷は下がったのですがアイコンの拡大縮小が滑らかではなくなってしまいました
原因があれば直していきたいのでぜひ教えてください
7:Now_loading...774KB
07/08/19 02:00:39 5SDHQgxV
>>6
円型のMCの半径100ピクセル範囲にマウスがあったら
その距離に合わせてサイズを変えるという事かな。
on(RollOver)イベントが発生するのは「MCとの距離が80以内の(重なっている)時」
本来は「100ピクセル以内に入ったらサイズ変更する」はずなので
そこが上手く処理できていない。
上手い解決策かは分からないけど
MCの中に半径100の円を作って背景色と同じにするか(他のMCと重なるかも)
入れ子のMCにしてonClipEvent(load){_visible = false}
で、見えなくすればいいかも。
8:Now_loading...774KB
07/08/19 02:08:37 5SDHQgxV
しまった、自分の質問忘れてたorz
MCの存在をチェックする時の質問です
var Mc:MovieClip = _root.MC;
とルート上のMCを変数に割り当てた後
MC.removeMovieClip();
で削除後、
Mcの変数を使って存在をチェックします。
「if(Mc == ??)」の「??」にあたるものが分からず
今は「if(Mc._x == undefined」というように内部のプロパティを見て判定しています。
この「??」またはMcを利用して存在をチェックするにはどうすればいいのでしょう。
教えていただきたいです。
9:Now_loading...774KB
07/08/19 02:46:57 NTX07+iK
>>8
下記でどうでしょう?
var mc:MovieClip = _root.mc;
if (mc === undefined) {
trace("mc 無いよ");
}
//出力結果 mc 無いよ
10:Now_loading...774KB
07/08/19 03:04:17 5SDHQgxV
>>9
回答ありがとうございます。
しかし、その方法だと上手くいかないみたいですorz
こちらで試した処理
trace("START");
attachMovie("mc", "mc1", 1);
var Mc:MovieClip = _root.mc1;
trace(Mc);
Mc.removeMovieClip();
trace(Mc);
if (Mc === undefined) {
trace("undfined");
}
if(Mc == ""){
trace("空白");
}
trace("END");
<出力>
START
_level0.mc1
END
改行なのか、undefinedなのか・・・
11:Now_loading...774KB
07/08/19 03:45:46 NTX07+iK
getInstanceAtDepth()を使うと、その深度にMCがあればMCへの参照が
無い場合はundefinedが返るので、スマートさにかけるような気がしますが
これで判定するというのもひとつの手ですかね。
trace("START");
attachMovie("mc", "mc1", 1);
var Mc:MovieClip = _root.mc1;
trace("Mc = " + Mc);
Mc.removeMovieClip();
trace("Mc = " + Mc);
if (Mc == undefined) {
trace("undfined");
}
if (Mc == "") {
trace("空白");
}
if (Mc == null) {
trace("null");
}
if (getInstanceAtDepth(1) == undefined) {
trace("mc無いよ");
}
trace("END");
<出力>
START
mc = _level0.mc1
mc =
mc無いよ
END
12:Now_loading...774KB
07/08/19 03:47:11 NTX07+iK
<出力>以下は下記に訂正します。
<出力>
START
Mc = _level0.mc1
Mc =
mc無いよ
END
13:Now_loading...774KB
07/08/19 06:49:10 wUCJhVh1
trace(Mc instanceof MovieClip); とか。
14:6
07/08/19 10:09:23 xj1FghBM
>>7
レスありがとうございます
なんというか、マウスの反応エリアにポイントが乗ってない時には
enterframeの処理を休止させるような良い方法があればいいんですけど。。。
空ボタンでマウスエリアを作って変数の受け渡しでon/offをしてみたのが
”>>4”の状態なんですけど
これだと、マウスをmcに近づける速度が速すぎると
空ボタン反応→mc拡大が急になりぎこちなく見えるし
mcから急に離すと、mcが縮小する前にイベント休止になってしまい、
中途半端な大きさで止まってしまう状態です。
かといって、空ボタンのサイズを大きくすると意味無いし。。。
もう脳みそ、溶けそうっす
15:Now_loading...774KB
07/08/19 10:13:36 wUCJhVh1
updateAfterEvent();
16:Now_loading...774KB
07/08/19 11:54:06 O2qXmHbE
環境はMEでFlash6を使っています。
画質が低のとき、低の文字に印がつくようにしたくて「画質選択」と言うスプライトに
onClipEvent (enterFrame) {
if ( _quality = low ) {
this.gotoAndStop(1);
}
if ( _quality = medium ) {
this.gotoAndStop(2);
}
if ( _quality = high ) {
this.gotoAndStop(3);
}
}
と、ASを書いたのですが、印が低、中、高とぐるぐる回るだけです。
オプション─オプション画面.png ←この画像に低中高の文字あり
画質選択┬低.pdr フレーム1
├中.pdr 2
└高.pdr 3
if ( _quality = low )の部分がいけないのでしょうか?
17:Now_loading...774KB
07/08/19 11:57:20 5SDHQgxV
>>11,12
MCの深度を調べる方法ですか。
確かにこの方法で調べられると思うのですが、
その深度に新たに別のMCが作られるとアウトですよね。。。
すいません、質問には含めてなかったんですがやりたい事では↑がありえてしまうのでorz
>>13
ありがとうございます。
色々試した結果、判定処理も負荷が余分にかかることなく実行できました。
回答いただいた方、ありがとうございました。
18:Now_loading...774KB
07/08/19 12:10:22 5SDHQgxV
>>14
ひとまず急に離した時に大きさが中途半端なのは以下のソースでなんとかなるかと
if (Iconflag == true) {
// 処理
} else {
this._alpha = this._xscale=this._yscale=80;
}
毎回設定してるからちょっと気持ち悪いけど・・・。
急に近づけた場合はon(RollOver)の実行タイミングだから
前見たく常に判定させるかくらいしか・・・
>>16
ifの判定はif(_quality == low)とかになると思う。
後、lowが文字型で文字入ってるならいいけど、
if(_quality == "HIGH")で文字比較する。
19:Now_loading...774KB
07/08/19 12:35:34 O2qXmHbE
>>18
御回答ありがとうございます。
==を使えばいいと分からなかったとき
if(_quality = "high")
と書いてみたら画質が高に固定されたから困った
20:Now_loading...774KB
07/08/19 15:03:36 awgMx+iC
前スレ982,985です(BSキーのキーコード)
「キーボードショートカットを無効」にチェック入を入れるにはどうすれば良いでしょうか?
Flash8では、 編集 → キーボードショートカット でそれらしきものが出ますが、そこから
先が分かりません。
21:Now_loading...774KB
07/08/19 15:26:23 9/7tACGE
x 1000 y 500 内のステージ上でマウス、カーソルの位置に合わせてオブジェクト(ボタンなど)のx位置が変化する、単純なマウスアクションを作りたいですけど。
x位置に制限をつけるやり方、どなたか教えてください。
例えばそのオブジェクトをステージの中央(例えば x 500)に配置して、マウス位置 x 0 (画面左ぎりぎり)の時はそのオブジェクトの x位置を400に、
反対に右いっぱい(マウス位置x1000)の時は x位置 600 という、400~600までの制限をつけたいんですけど、どうAS書けばいいのか教えてください!
22:Now_loading...774KB
07/08/19 15:39:14 9a4wjjql
>>21
完全に算数的な動作ですなw
1000-0:600-400 = 1000:200 = 5:1
だから、マウスの座標とオブジェクトの座標を5:1の関係
で動かせば良いのでは?
つまり、マウスの移動量*0.2=オブジェクトの移動量 で、マウスの座標>1000
なら、オブジェクトの座標=オブジェクトの座標(繰り返し代入)とか
23:Now_loading...774KB
07/08/19 15:53:16 9/7tACGE
>>22
挑戦してみたんですが、なかなかうまく動かず↓
もしよければ具体的にどう書いたら、ちゃんと動くのか書いてもらえませんか?
すみませんずうずうしくて↓
24:Now_loading...774KB
07/08/19 16:01:56 yqPb+OKQ
>>23
数学の勉強をやり直すのをオススメするよ
まずは制限とか考えずに、とりあえず動くように作ってみたら?
25:Now_loading...774KB
07/08/19 16:04:20 9/7tACGE
>>24
ありがとうがざいます。
一応動かすことはできるんですが、今の書き方のままですと
一生カーソルに付いてくるので↓
なんとか制限を付けられないかなと。
すみませんド素人で。
26:Now_loading...774KB
07/08/19 16:07:45 9a4wjjql
>>25
どうしても駄目なら、FlaファイルごとUpしたら?
あと、いちいちAgeなくても良い。
27:Now_loading...774KB
07/08/19 16:16:33 57texW2D
>>20
ムービープレビューしたときのメニューのどこか。確か[制御]
28:Now_loading...774KB
07/08/19 16:22:27 9/7tACGE
>>26
“マウスの座標とオブジェクトの座標を5:1の関係
で動かせば良いのでは”
大変失礼ですが、具体的に書いてもらえないでしょうか?
29:Now_loading...774KB
07/08/19 16:25:15 vAyQy28C
大物が来たなw
30:Now_loading...774KB
07/08/19 16:29:10 dkUFB5nF
>>28
マウスの座標をとれてるなら、x座標なら
(オブジェクト)._x = 400 + (マウスのx座標)/5;
でいいんじゃないのー?
31:Now_loading...774KB
07/08/19 16:30:25 a77o6odo
>>27
ありがとうございます。BSのキーコード確認できました。
ちなみに、これでEnterキーも確認できまた。
32:Now_loading...774KB
07/08/19 16:32:08 9/7tACGE
>>30
きた.com
33:Now_loading...774KB
07/08/19 16:38:53 LNQddBb7
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)
テキストフォーマットで質問です。
ある文字列の特定の区間をイタリック(斜体)にするにはどうしたら良いでしょうか?
ASとしては、on (release) で
text1 = "見れない、保存したい、flashを作りたいはスレ違い ";
text1_fmt = new TextFormat(); //新規TextFormatを生成
text1_fmt.italic = true;
text1_ins.setTextFormat(text1_fmt); //テキストインスタンスtext1_insに反映させる
text1全部を斜体にすることは出来ましたが、区間(例えば5文字目から10文字目)
を指定する方法が分かりません。
Selection.setFocus(text1_ins);
Selection.setSelection(5, 10);
を使うと、単に指定した区間がハイライトされた状態になります。
どうしたら良いでしょうか?
34:Now_loading...774KB
07/08/19 16:54:34 wUCJhVh1
text1_ins.setTextFormat(text1_fmt, 5, 10);とか
35:Now_loading...774KB
07/08/19 17:03:30 wUCJhVh1
あ、2.0なら引数のフォーマットとインデックス逆かも
36:Now_loading...774KB
07/08/19 17:12:57 LNQddBb7
>>35
有り難うございます。やっぱフォーマットが後ろで、
text1_ins.setTextFormat(5, 10, text1_fmt);
でOKでした。
37:Now_loading...774KB
07/08/19 19:41:30 LNQddBb7
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)
while文中のif条件文で質問です。
あるテキスト文中の処理で、そのテキスト文の終端に文字位置が来たら
終了(break)するようにしたいのですが、終わりません。
ASはon (release) に
fmtPo2 = 0; //文字位置パラメーター
txt2_len = txt2.length-1;
trace("txt2.length= "+txt2_len);//長さは632と表示
while (1) {
if (fmtPo2>500) {//500で終了させるのは可能
break;
}
//ここに処理
fmtPo2++;
}
と書いて実行すると、これは正常に終了するのですが、本来の動作のために
if (fmtPo2>500) → if (fmtPo2>txt2_len) //終端でbreak
とすると、閉ループに入ったようになり終了しません。
どうしたら良いでしょうか?
38:Now_loading...774KB
07/08/19 20:39:57 MLctj2zj
>>37
if文の中にはいってきてんの?
39:37
07/08/19 21:32:32 LNQddBb7
>>38
そうです。
if (fmtPo2>500) {
break;
}
が
if (fmtPo2>txt2_len) {
break;
}
になりました。
今まで、変数の大小で判定した際にこんなことは無かったのですが・・・
40:6
07/08/19 21:48:01 xj1FghBM
今日一日いろいろやってみまして空ボタンに
on (rollOver) {
//省略
}
で変数を取得させてenterFrameを一時停止させる方法に
おかげさまで目処が立ちました。
>>14でのぎこちなく動く。という原因は収縮するmcの中にネストしていた
ボタンのせいで空mcのエリアに穴が出来、そのため空mcがrolloutと
判断してenterFrameを一時停止させていたためでした。
対応として、ボタンに
on (rollOver) {
Iconflag = true;
}
を追加して、ボタンのエリアも変数flag取得エリアとすることで、
多少、スマートではないものの、CPU稼働率を80%からエリア外にマウスがある時には
4%にまで落とすことが出来ました。
いろいろとアドバイスありがとうございました。
41:Now_loading...774KB
07/08/19 21:57:10 MLctj2zj
>>39
fmtPo2>txt2_lenがtrueと評価されているなら
breakされるから無限ループにはならない。
42:37
07/08/19 23:52:32 6FwBMnZF
>>41
レス有り難うございます。原因が分かりました。
if (fmtPo2>500) → if (fmtPo2>600) → if (fmtPo2>610)
→ if (fmtPo2>620) → if (fmtPo2>631)
とすると、if (fmtPo2>610)まではOKでそれ以降は不可でした
(if (fmtPo2>615)はなんとか可)。
while文中の処理として、特定の部分を太字化していたのですが
元の文字列txt2の末尾にそれがあるもののそこで終わらず、再び
先頭の目的以外の文字列も太字化されていました。
つまり、最後を通り越して先頭に戻り、また最後を通り越して・・・
の閉ループになっていたようです。
対策として、if (fmtPo2>txt2_len-nnn) というように、txt2の最後の行
の文字列数分nnnを引いた数以上で判定させました。
43:Now_loading...774KB
07/08/20 06:32:33 qNinbgOq
ActionScript3.0はJavaに似てる、って聞いて飛んできたのですが
JavaアプレットをActionScriptにすぐ移植できるぐらいなんでしょうか?
C++ → Javaアプレットへの移植ぐらいだと助かるんですが。
44:Now_loading...774KB
07/08/20 06:45:58 Uasgpnme
JavaとAs3.0の両方に精通していれば楽に移植できるでしょう
どちらも中途半端な場合は悲惨な結果になるでしょう
45:Now_loading...774KB
07/08/20 06:51:03 qNinbgOq
>>44
ありがとうございます!
希望が出てきたので本格的にActionScript勉強してみます
やっとアプレットから逃げ出せそうな予感が
46:Now_loading...774KB
07/08/20 11:18:59 IGoV6Jt8
単純なものなら Java→AS2でも割と簡単に移植できるよ。
47:Now_loading...774KB
07/08/20 11:24:09 XQnOjEb+
>>45
でもJava程柔軟かって言われるとそうでもないから、かなりの確率でがっかりすると思う
48:Now_loading...774KB
07/08/20 22:34:23 7PVd6DBD
// NetConnection オブジェクトを作成する :
netConn = new NetConnection ();
// ローカルストリーミング接続を作成する :
netConn.connect (null);
// NetStream オブジェクトを作成し、onStatus() 関数を定義する :
netStream = new NetStream (netConn);
// NetStream ビデオフィードを Video オブジェクトに割り当てる :
this.VideoWindow_mc.my_video.attachVideo (netStream);
// バッファ時間を設定する :
netStream.setBufferTime (5);
//
netStream.onStatus = function (infoObject) {
if (infoObject.code == "NetStream.Buffer.Empty") {
hyouji = "データのフロー中断中";
} else if (infoObject.code == "NetStream.Buffer.Full") {
hyouji = "バッファが満たされました";
} else if (infoObject.code == "NetStream.Play.Start") {
hyouji = "再生開始";
} else if (infoObject.code == "NetStream.Play.Stop") {
hyouji = "停止";
} else if (infoObject.code == "NetStream.Play.StreamNotFound") {
hyouji = "FLV が見つかりません";
}
};
このソースで「netStream」はどこに収納されているのでしょうか?
ローディングバーにて
onClipEvent (enterFrame) {
// 読み込まれているパーセント分メーターを進める
this.gotoAndStop (Math.floor (_root.netStream.bytesLoaded / _root.netStream.bytesTotal * 100));
}
とかいてあるのですが、ローディングバーの反応がありません
たぶん_root.netStreamのパスのせいだと思うのですが。
49:Now_loading...774KB
07/08/20 23:41:31 Uasgpnme
>>48
拾ってきたのか書籍のサンプルのかわからんが、完成されている
ソースの一部分をコピペされてどうなのと言われても困る
50:Now_loading...774KB
07/08/21 00:16:48 R9e+YG2d
ActionScriptで同じディレクトリのテキストファイルは読み込めるようですが
バイナリファイルも読み込めるんでしょうか?
51:Now_loading...774KB
07/08/21 04:32:57 R9e+YG2d
色々調べてURLStreamでreadByte、readIntなどを使って読み込んでいけることが
分かりましたが、読み込むことができるファイルがSWF、TXT、GIFなど限られている
ようなので、例えばJPGにデータを詰め込んでおく・・・とか?
52:Now_loading...774KB
07/08/21 06:50:15 np2L7+ij
日本語でおk
53:Now_loading...774KB
07/08/21 10:38:02 eQMxDHhK
フレームアクションの変数を、シンボルにリンケージしたクラスから参照するのってどうやるの?
_root
nt=10;
.as
class myClass{
function myClass(){
trace(nt);
}}
54:Now_loading...774KB
07/08/21 11:33:52 7HCVWyPt
_rootに書いたなら_root.ntじゃね?
55:Now_loading...774KB
07/08/21 15:28:12 ERTsYJLH
>>50
一番手っ取り早いのは loadVariables() を使う方法。
「Flash MX ActionScript 実践技&ウラ技大全」(C&R研究所)ナツメ社 p144
「Flash ActionScript 逆引き大全550」(ITフロンティア 著)秀和システム p132
56:Now_loading...774KB
07/08/21 21:06:07 R9e+YG2d
>>55
ありがとうございます!
さっそく逆引き大全を買ってみます
57:Now_loading...774KB
07/08/23 01:49:09 eoOlJ0cq
fuse kit の勉強がしたいのですが
詳しく解説しているサイトか書籍はありませんか?
58:Now_loading...774KB
07/08/23 07:06:18 lEsqcOve
FLVファイルからデータベース接続って可能ですか?
外部ファイルを読み込ませてつかっていたのですが
外部ファイルの更新頻度が高いのでDB化したいのですが・・・
59:Now_loading...774KB
07/08/23 18:12:42 ItKCb7FJ
>>58
FLVはビデオファイルなので無理
swfからならphpやcgiを介せば可能
60:58
07/08/23 19:30:51 lEsqcOve
あ。。swfからです。。。汁
できるのですねーありがとうございました!
61:Now_loading...774KB
07/08/23 19:38:27 xQJLCoy/
しる?
62:Now_loading...774KB
07/08/23 19:50:41 lEsqcOve
× 汁
○ 汗
63:Now_loading...774KB
07/08/24 12:05:56 uesSMLIk
onClipEvent(load){
Mouse.hide();
this.startDrag(true);
}
上記をイベントハンドラメゾットで記述する場合はどうするのでしょうか?
_root.pointer.load=function(){
Mouse.hide();
_root.pointer.startDrag(true);
}
としてみましたがダメでした・・・。
64:Now_loading...774KB
07/08/24 12:18:31 vW2YLMXV
質問です。
SWFからASを抽出できるソフトってあるんですか?
あったら教えてください。宜しくお願いします。
65:Now_loading...774KB
07/08/24 12:50:03 MMRc6Rmv
>>63
インスタンスにpointerってのがあるの?
それなら、ターゲットパス一覧にも有りそうだが。
66:Now_loading...774KB
07/08/24 15:43:52 qG0MHHfC
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)
親MC消去で質問です。
親MC(oyaM)の中に子MC(koM)を配置して、koMを押すとoyaMが(koMも一緒に)
消えるようなASを書いていますが消えてくれません。
koMに書いたASは下の通りです。
on (release) {
this._parent.removeMovieClip();
}
どうしたら良いでしょうか?
67:Now_loading...774KB
07/08/24 15:47:17 KbsGqjNP
>>66
親MCっていうのは、あらかじめタイムラインにおいてあるムービークリップ?
それとも、attachMovieとかでスクリプトから追加したムービークリップ?
前者だとしたら、それだと消えないと思うよ。
68:Now_loading...774KB
07/08/24 15:48:58 7hCp+LC2
FLASH MXを使用しています。
_rootに置いた、timeという名前とmyMCという名前のインスタンスがあります。
timeの方では
onClipEvent(enterFrame){
dateobj = new Date();
}
onClipEvent(enterFrame){
hour = dateobj.getHours();
}
というスクリプトを書き、myMCの方では
onClipEvent(load){
aaa = _root.time.hour;
trace(aaa);
}
のようにしているのですが、trace(aaa)でundefinedとなってしまいます。
timeの中でtrace(hour)をしたら15のように出力されるのですが・・・
これは何が原因だと考えられるのでしょうか?
69:Now_loading...774KB
07/08/24 15:53:25 q4uBGDUr
>>67
レス有り難うございます。
設定は前者の方です。ということは消えませんね・・・・ 別の方法を探します。
70:Now_loading...774KB
07/08/24 16:10:12 7VdQ4Kxu
>>68
loadした時にはまだenterFrameのイベントは実行されてないからでは?
loadをenterFrameにしてtrace()結果の2行目以降に値が表示されるなら、そうだと思う。
71:Now_loading...774KB
07/08/24 16:20:29 1OwmfRka
>>68
onClipEvent(enterFrame){
hour = dateobj.getHours();
trace("hour= "+hour);//確認用
}
一杯出てくるけどw
72:Now_loading...774KB
07/08/24 16:41:32 7hCp+LC2
>>70
ありがとうございます。
trace()を繰り返してみると、2行目以降に値が表示されました。
同じフレームでの実行だったので、どうやらmyMCの方が先に実行されてたようです・・・。
他のプログラミング言語でいう、Sleep()とかwait()みたいな関数って用意されてないのでしょうか?
73:Now_loading...774KB
07/08/24 17:37:31 4NYpyoJF
>>69
depthが1以上なら消えるはず。attachしてもdepthが1以下なら消えないはず。
74:69
07/08/24 18:28:02 MJ2AZXwL
>>73
有り難うございます。消えました。
75:Now_loading...774KB
07/08/24 22:05:24 bFIOJMpP
サウンド(ボタンアクション)について質問です。
ボタンアクション(再生ボタン)
on(release){
SoundA.stop();
SoundA = new Sound(_root);
SoundA.attachSound("AAA");
SoundA.start();
}
//ライブラリ内のサウンド(識別子"AAA")
このScriptの書き方ですと、再生ボタンを押すとサウンドの重複は回避できますが
再生ボタンを押すたびにサウンドの頭からスタートしてしまいます。
出来れば、再生中は再生ボタンを押しても反応しない(無効)書き方にしたいんですが。
停止ボタンを押すことによって再び再生ボタンのアクションを有効にするやり方を教えてください。
76:Now_loading...774KB
07/08/24 23:42:50 JML/IxYr
>>75
Sound.onSoundComplete = function(){
再生するフラグ = true;
}
77:Now_loading...774KB
07/08/24 23:53:36 gMg4Xk8A
>>75
いちいちattachしないでstopとplayだけしてればいいんじゃないの。
78:Now_loading...774KB
07/08/24 23:56:30 S+yTP2Up
>>76
さっそくの回答ありがとうございました。
これをどこに記述すればいいのですか?あとフラグとはなんですか?
すみません素人で。
79:Now_loading...774KB
07/08/25 00:08:33 hE6Fefjg
>>78
真面目かつ良識的にに書くと、flagとはif文などで
勃起(準備OK) = true
萎縮(今はダメなの) = false
80:Now_loading...774KB
07/08/25 00:15:52 fQZyWmzZ
>>78
どこに書くかはプログラム全体を見ないとわからない。
81:Now_loading...774KB
07/08/25 00:23:11 WMOJ/8D9
>>77
ご回答ありがとうございます。
もしよろしければ、一時停止ボタンの作成を教えていただたけませんか?
82:Now_loading...774KB
07/08/25 02:32:03 fQZyWmzZ
>>81
//再生再開
on(release){
SoundA.start(SoundA.position/1000, 0)
}
//停止
on(release){
SoundA.stop()
}
83:Now_loading...774KB
07/08/25 09:27:48 jah+z/np
JavaからActionScriptに移ってきてJavaに似てるって喜んでたんですが、
もしかしてActionScriptでは画面の部分更新(領域を指定して画面に転送)は
できないんでしょうか?
addChildの処理は重いみたいなので画面サイズのスプライトの中で処理して
部分更新なんて考えてたんですが無理なのかな・・・。
84:Now_loading...774KB
07/08/25 09:30:08 dAihp5hQ
スプライトって何?
85:Now_loading...774KB
07/08/25 09:52:50 Me+/y7tq
paraflaかも
86:Now_loading...774KB
07/08/25 09:55:58 aSG+OSFh
>>83
画面サイズのBitmapData用意してそれを直接書き変えれば?
というか、addChildで重いって、どんな物を作りたいの?
87:Now_loading...774KB
07/08/25 09:59:03 5jsZChmw
>>83
ムービープレビューで右クリ、再描画領域を表示をしてみそ
88:Now_loading...774KB
07/08/25 10:58:46 yP6Bwp/a
>>84
Sprite AS3.0で使うクラス
>>83
毎回グラフィック用のSpriteを作ってaddChildしてるとか?
うろ覚えだがENTER_FRAMEのイベントで
Spriteの中のオブジェクト(RectとかCircle)を操作したら勝手に部分再描画になったような。
89:Now_loading...774KB
07/08/25 11:28:41 hM6+qsn1
>>83
ビットマップの話なのかベクターなのかはっきりしてから質問した方がいい。
90:Now_loading...774KB
07/08/25 14:08:12 LbNq99D/
MCが、0~30フレームまでの間でrollout時に、逆再生させたいのですがわかりません。
91:83
07/08/25 14:31:11 jah+z/np
すみません、明らかに勉強不足のようなので出直します。
addChildでかなり時間がかかるという記事を見たので、部分更新が出来る
か気になって質問してしまいました。
>>86さんの書き込みを見て希望が出てきたので、まずはしっかり勉強します。
92:Now_loading...774KB
07/08/25 14:35:43 dAihp5hQ
>90
mc.onRollOver = function() {
this.onEnterFrame = function() {
this.prevFrame();
}}
これを基本にいじってみる
93:Now_loading...774KB
07/08/25 21:38:51 LRHJXgIf
>>91
希望が出てきたというか、>>87や>>88の言ってることが全てだとオモ
レイヤー構造と、全てのオブジェクトが固有のタイムラインを持てることを知ればいい
94:Now_loading...774KB
07/08/26 00:11:54 J2+eBKoQ
>>93
でも>>91の言うこともなんとなく分かる。
AS3.0始めた頃は
「SpriteにDrawして書く」
「MovieClipをClassにしてattachMovieみたいに使う」
「JCanvas使ってJavaみたく描画メソッド作る」
くらいの3パターン、どれがいいのか・・・と迷ったもんだ。
今でも処理効率で言えばどれが一番なのか分からんしね。
再描画領域指定できそうな3つ目かなと思ってたりするけど・・・
一度テストしてみようかと思った。雑談すまそ。
95:Now_loading...774KB
07/08/26 01:00:34 y5uVf7Gu
その3つの選択肢なら使い分け用途がかなりはっきりしてるから迷うまでもない。
ビットマップなんていつでもコンバートできるんだから処理によって変換すりゃいいし。
96:Now_loading...774KB
07/08/26 10:59:10 1nX11mtB
>>95
速度は?
97:Now_loading...774KB
07/08/26 16:47:37 DMgdoKD0
AS3.0で導入された可変長引数を別の関数に渡すにはどうしたらいいんでしょうか?
Cのように sprintf("%d: %s", 1, "リンゴ") で「1: リンゴ」を返すsprintfに可変長引数を
渡したいのですがどう渡していいのか分かりません。
現在は10個までとして以下のようにしてしまっています。
public function Trace(format:String, ... args):void
{
trace(sprintf(format, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]));
}
98:Now_loading...774KB
07/08/26 17:55:04 E9ow17w7
>>97
他の関数に渡すとかいう時点で、可変長引数使う意味ないだろw
99:Now_loading...774KB
07/08/26 18:56:54 VDOPw4zH
Fla6 AS1.0書き出しです。
ムービークリップをドラッグして投げられ、マウスを放すとだんだん減速して止まるようなスクリプトを書いています。
そこで問題です:
ものすごい速さでマウスをドラッグしてリリースするとstopDragが効かず、MCがマウスに張り付いたままになってしまう。
かといってreleaseのほかにonDragOutも付けるとものすごい速さでマウスを動かすとdragOutが反応してしまい
マウスを離さなくても飛んでいってしまう。
MCに書いているスクリプトは下記です。
100:Now_loading...774KB
07/08/26 18:57:41 VDOPw4zH
onClipEvent (load) {
stat = 0;
}
onClipEvent (mouseMove) {
updateAfterEvent();
}
on (press) {
stat = 0;
this.startDrag(false);
}
on (release) {
this.stopDrag();
stat = 1;
x2 = _x;
y2 = _y;
speedx = (x2-x1);
speedy = (y2-y1);
}
onClipEvent (enterFrame) {
x1 = _x;
y1 = _y;
if (stat) {
_x += speedx*2;
_y += speedy*2;
speedx = speedx*0.9;
speedy = speedy*0.9;
}
}
101:Now_loading...774KB
07/08/26 18:59:13 VDOPw4zH
改行が多くてERRORになるので分割しつれいします。
statは現在の状態を示す変数で、0のときは何もしていないかドラッグ中、
1の時は惰性で飛んでいる状態を示しています。
102:Now_loading...774KB
07/08/26 19:06:29 V6E00enf
一定間隔でマウスボタンが押されているかどうかを判定すればいいんじゃね?
103:99
07/08/26 20:04:06 VDOPw4zH
>>102
なるほど。。。
マウスに追随する透明のMCをつくってそれがhitしてるか
enterFrameで判定してやってみます。
104:99
07/08/26 20:28:56 VDOPw4zH
むー。うまくいきません。
領域外に出たとき「マウスが押されていない」というのをどう判定すればいいものか。。。
105:99
07/08/26 20:59:14 VDOPw4zH
URLリンク(www.mother.co.jp)
このサイトなんですが、なんでブラウザ枠からカーソルが出ているのに
ドラッグが継続されるんでしょうか?
startDragでMCをドラッグした場合、ブラウザからはみ出たらMCが固まっちゃいますよね?
そもそもstartDragを使わない方法なんでしょうか・・・
106:Now_loading...774KB
07/08/26 21:03:54 1nX11mtB
>>98
printf()系に渡すんなら意味があるんじゃないか?
C言語ならva_listを使うんだけど。AS3でどうやるかは知らん、すまん。
107:Now_loading...774KB
07/08/26 21:17:30 YaiKwi7D
>>99
話もどしてしまうけど。。。
>releaseのほかにonDragOutも付けると
releaseOutsideは試した?どちらかというとこっちじゃないか?
108:99
07/08/27 00:01:42 /tJVCQPd
>>107
releaseOutsideなんてあったんですね・・・
超基本的なことでしたね。解決しました!ありがとうございます!
109:Now_loading...774KB
07/08/27 19:52:03 +KoBV6ub
AS3.0について質問です
class A {
public staic function test1(){
trace("test1");
}
}
class B extends A{
static function test2(){
trace("test2");
}
}
こんな感じにAを継承したBというクラスがあります
このtest1とtest2を実行した所
test2は問題ないのですがtest1に関して以下のようなエラーが出ます。
未定義である可能性のあるメソッド test1 を、静的型 Class の参照を使用して呼び出しました。
エラー内容がいまいちピン来ず、ヘルプを呼んでも直せませんでした。
間違いのある箇所を指摘していただきたいです。
110:Now_loading...774KB
07/08/27 19:52:53 +KoBV6ub
追記
実行方法は
B.test1() B.test2()を実行しました。
111:Now_loading...774KB
07/08/27 20:35:46 /CIW+tvt
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)
loadMovieで読み込んだ画像のサイズを取得するにはどうすれば良いでしょうか?
ASとして以下をボタンアクションon (press) 内に書いています。
this.stageM.loadMovie(name1+".jpg");//MC:stageM(300*300)に読み込む
trace("wide="+this.stageM[name1+".jpg"]._width);
目的JPGは200*200のサイズですが、これだと wide= undefined が返ってきます。
112:Now_loading...774KB
07/08/27 20:37:10 pACmOEd0
classBに
static function test1(){
A.test1()
}
がないとエラーになんじゃないかなそれは。
113:Now_loading...774KB
07/08/27 20:41:29 pACmOEd0
>>111
moviecliploaderのonloadinitをヘルプで調べるんだ
読み込み開始後すぐにはそ見込み後のサイズは取得できないはず
114:Now_loading...774KB
07/08/27 21:03:03 +KoBV6ub
>>112
継承してもBからはAの静的関数は実行できない仕様、と捉えて良いのでしょうか
AS2.0と同じように扱えると思っていました、解答ありがとうございます。
115:111
07/08/27 21:13:41 /CIW+tvt
>>113
早速のレス有り難うございます。ヘルプを読み、ましたが
「ロード対象クリップの先頭フレーム上のアクションが
実行されたときに呼び出されます。」
の意味が分かりません。別の表現だとどうなるのでしょうか?
116:Now_loading...774KB
07/08/27 21:21:13 pACmOEd0
>>115
「完全に外部ムービーが読み込まれ、画面に表示され、幅や高さなどをスクリプトから取得できる
準備ができたら、このイベントハンドラに指定しておいた処理が実行されます。」ってこと。
つまり、このイベントが起きる前に幅や高さを取得しようとしても、まだ読込中なのでundefinedになるってこと。
イベントハンドラって何?ってのはがんばって勉強してくれ、としか言えない。
117:111&115
07/08/27 21:22:57 /CIW+tvt
>>116
さんきゅうです。引き続き、やってみます。
とりあえず、画像は表示されます。
118:111&115
07/08/27 22:11:29 /CIW+tvt
(連投すいません)
MC:stageMのイベントハンドラとして
this.onLoadInit = function() {
trace("-OK-");
};
を書きました。JPGの読み込みが終了したら出る筈なのですが、
5秒位待っても -OK- が出ません。
119:Now_loading...774KB
07/08/27 22:23:15 AajI9Cl/
>>118
onLoadInitはMovieClipLoaderクラスのリスナーだから
そのASでは何秒待っても-OK-はでません。
ヘルプでMovieClipLoaderを調べるんだ。そしたら例が載ってるから。
120:Now_loading...774KB
07/08/28 00:10:30 LKGdZc2X
>>114
URLリンク(www.fumiononaka.com)
121:111&115
07/08/28 01:16:14 erJeZUhX
>>119
度々ありがとうございます。
ヘルプと本を見てrootのイベントハンドラとして下の様に書きました。
myJpg = new MovieClipLoader();
mcListner = new Object();
mcListner.onLoadInit = function(stageM) {
trace("-OK-");
};
myJpg.addListener(mcListner);
相変わらず画像は出ますが、まだOKが出ません。
重ね重ね申し訳ありません。間違いをご指摘願います。
122:Now_loading...774KB
07/08/28 01:35:20 hlBUaXHU
>>121
画像を読み込みたかったんじゃないの?そのASは何を読み込んでるの?
ヘルプに載ってる例をまるまるコピーすればいいと思うんだけど。
あと試すときはローカルじゃなくてweb上でね。
123:Now_loading...774KB
07/08/28 01:38:13 hlBUaXHU
>>121
あ、ごめん画像は出んだ。
web上で試すときはtrace()使えないからテキストフィールドとかに出力。
124:111&115
07/08/28 02:48:43 erJeZUhX
>>122-123
一旦話をまとめたいと思います。
目標: MC(stageM)にロードしたJPGの大きさを取得したい(最初は横幅のみでOK)
流れ:
this.stageM.loadMovie(name1+".jpg");//MC:stageM(300*300)に読み込む
※これは可能
↓
MovieClipLoader.onLoadInitイベントリスナーを使って画像情報を取得したい
rootのイベントハンドラとして:
myJpg = new MovieClipLoader();
mcListner = new Object();
mcListner.onLoadInit = function(stageM) {
trace("-OK-"); //動作確認でOKを出す
};
myJpg.addListener(mcListner);
↓
しかし、このOKが出ない。
改めて、問題点のご指摘を願います。
125:Now_loading...774KB
07/08/28 03:08:18 hlBUaXHU
>>124
myJpg.loadClipが無いんじゃない?
試すときはローカルじゃなくてweb上で。
126:111&115&124
07/08/28 04:01:21 erJeZUhX
>>125
有り難うございます。幅が取得できました。
関連ASは以下の通りです。
myJpg = new MovieClipLoader();
mcListner = new Object();
mcListner.onLoadInit = function(stageM) {
trace("-OK-");
trace("wide= "+stageM);
//
ok = "-OK-";//テキストフィールドokに出力
wide = stageM._width;//テキストフィールドwideに出力
};
myJpg.addListener(mcListner);
on (press) {
myJpg.loadClip(name1+".jpg", stageM);//MovieClipLoaderクラス用にloadClip()
}
Web上の動作を推奨されていますが、ローカルでも wide= 200 と、JPG
の横幅が得られました。
重ねて御礼申し上げます。
127:Now_loading...774KB
07/08/28 14:24:19 QxMZY+P1
よろしくお願いします。
winXP/FlashCS3/AS2.0です。
mainMCがクリックされた際、
mainMCの中にsubMCを複製したいです。
MCの中にMCを複製する事は可能ですか?
mainMCに下記を記述してみましたがMCは複製されませんでした。
on (release) {
_root.mainMC.duplicateMovieClip(_root.subMC,"subMC_d",dep);
}
※depは複製されたMCの通し番号が入ります
どのように記述すればMCの中にMCを複製できるのでしょうか。
128:Now_loading...774KB
07/08/28 18:08:07 Dv9/WtcH
>>127
_rootにsubMCがない
MCにsubMCという名前がついていない(プロパティ)
生成するMCの名前が同じ
気になるのはこんなところ。
129:Now_loading...774KB
07/08/28 23:10:41 NsBwdnrq
FLVを再生時に、再生している途中で、
また頭から再生したいという場合は、どのような記述を
すれば実現できるのでしょうか?
現在、ボタンに以下のようなスクリプトを記述しているんですが
反映されません。 ムービーの再生が終了すると反映されます。
宜しくお願いします。
ボタン//
on (press) {
my_FLVPlybk.play();
}
//FLV再生命令(フレームアクション)
import mx.video.*;
my_FLVPlybk.autoPlay = false;
my_FLVPlybk.contentPath = "test.flv";
var listenerObject:Object = new Object();
listenerObject.ready = function(eventObject:Object) {
my_FLVPlybk.seekSeconds(0);
my_FLVPlybk.play();
};
my_FLVPlybk.addEventListener("ready", listenerObject);
130:Now_loading...774KB
07/08/29 12:16:15 UEebW6WD
AS初心者ですが質問させてください
WinXP,FlashMX2004使ってます
ゲームを作っていて、LANで繋がれたパソコン同士でハイスコアを表示させたいと思っています。
loadVariablesでテキストファイルから変数を読み込んで、(hscore=1000のように)
それをhiscore=parseFloat(hscore); で変換するとhiscore=NaNになってしまいます。
変数のリストアップをするとhscore="1000"は読み込めています。
恐らく面倒なことをやっているような気がするのですが、
何かいい方法は無いでしょうか?
お願いします。
131:130
07/08/29 12:19:35 UEebW6WD
連投すいません。訂正でパソコン同士ではなくてローカルサーバーに繋がっています
132:Now_loading...774KB
07/08/29 12:32:39 si3eNAOb
>>130
Flash単体では書き出しが出来ないので、CGI(PHPとか)をLoadVarsで使って、
サーバーのテキストファイルに書き出し、読み込みをする。
133:Now_loading...774KB
07/08/29 13:07:53 Vvfpu2qg
>>130
スコアが整数のみなら、
hiscore=Number(hscore);
でもいいと思うけど。
ただ、parseFloat関数でも
hscoreに"1000"が入ってれば数値に変換されるはずだから、
関数呼び出し位置に問題があるような気がする。
試しにテキストの内容に関わらず、parseFloat関数呼び出す直前で
hscore="1234";
hiscore=parseFloat(hscore);
とhscoreに直接文字列突っ込んだ後parseFloatするなりして、その結果を見てみたら?
134:Now_loading...774KB
07/08/29 18:59:09 ryuPbw4d
厨房みたいな質問で悪いんだが、ホンキで気になったので質問させてほしい
ニコニコ動画のコメントのID割り出しツールがあるけど、あれって一体どういう仕組み・・・?
コメントCSVやチャットサーバからのレスポンスに、実はIDも記述されてて、
それを取得するような改造版FLVPlayerを、標準Playerとすり替えてUIにしてるのかな?
予想で構わないので何かレスポンス希望
135:Now_loading...774KB
07/08/29 19:05:28 2eY6RUaR
超能力に米俵一票
136:Now_loading...774KB
07/08/29 19:45:13 I2MUZift
>134
IDも送ってくんだよ。ツールに解説あるんじゃね?
137:Now_loading...774KB
07/08/29 20:15:57 lfB2oEQ3
すいません、ひとつ質問させてください。
AS3.0で、Javaサーバーとソケット通信するFlashを作成していて、確立するためのポリシーファイルについて質問です。
function start_connect(address,port) {
Security.loadPolicyFile("xmlsocket://" + address + ":" + port);
socket.connect(address,port);
}
上記の様なコードの時、loadPolicyFileでポリシーファイルを受け取る前に.connectメソッドが動いてしまいそうなのですが、大丈夫なのでしょうか?
loadPolicyFileの戻り値も無いみたいですし・・・。
138:130
07/08/29 20:35:09 UEebW6WD
>>132 >>133
レス遅れてしまいましたが答えて下さりありがとうございます!
まず133の方法で試してみたのですがNumberでもだめでした。NaN
直前に hscore="1234"; を入れてみると1234になったのですが
同じ位置に試しにparseFloat入れてもダメでした…
そこで132さんのCGIについて調べてみた所、それっぽい記述があったので
CGI全く触ったことありませんが、ちょっとがんばってみます。
どこかにサンプルがあればそれを参考にしようと思います。
ありがとうございました
139:Now_loading...774KB
07/08/29 22:06:31 ryuPbw4d
>>137
ポリシーファイル系の処理はLoader系と違って完了するまで優先的に処理されるから大丈夫
140:Now_loading...774KB
07/08/30 00:00:23 obah/Nnl
>>139
なるほど、安心しました。
どうもありがとう!
ネット対戦ゲーム作ってる人って自分以外にこのスレでいますかな。
141:Now_loading...774KB
07/08/30 01:38:51 F5vZDKIg
>>140
むしろ、ゲー製板があるがな。
URLリンク(pc11.2ch.net)
142:Now_loading...774KB
07/08/30 01:45:37 g1hvaqqN
>>141
その板のFLASH系もう過疎ってだめぽ
143:Now_loading...774KB
07/08/30 13:22:29 ljrzh0lg
FlashCS3 AS3
クラスから
stage.addEventListener(KeyboardEvent.KEY_UP, keyCheck);
とかするとstageがnullとかエラーが出てしまいます。
stageなしだとフォーカスが必要とのことですが、
"マウスクリックしてフォーカス"とかなしで
キー入力対応させるにはどうしたらよいですか?
144:Now_loading...774KB
07/08/30 14:06:05 fxDqXm13
意味がよくわからんけど、stageプロパティ使いたいならそのクラスに
DisplayObject含むクラス継承させときゃいいんじゃね?
145:Now_loading...774KB
07/08/30 14:07:55 fxDqXm13
あと、ムービーにフォーカスが無い時のキーボードイベント拾う事は不可能。
それできたらパスワードの入力の時とかにキーのログ拾われるから禁止になった。
146:Now_loading...774KB
07/08/30 14:35:40 ljrzh0lg
>>144
レスありがとうございます。
public function Stopwatch(initTime:Number=3) {
timetotal = initTime*60;
outputText = new TextField();
outputText.text = timetotal;
addChild(outputText);
myTimer = new Timer(1000,timetotal);
myTimer.addEventListener("timer", counter);
stage.addEventListener(KeyboardEvent.KEY_UP, keyCheck);
}
public function keyCheck(event:KeyboardEvent) {
trace(event.keyCode);
myTimer.start();
}
なにかキーを押したらTimerのカウント数を表示するだけのクラスなんですが、
stage.addEventListener(KeyboardEvent.KEY_UP, keyCheck);
を
addEventListener(KeyboardEvent.KEY_UP, keyCheck);
とすればカウントが表示されるのですが、
テキストフィールドにフォーカスしないとキー入力を受け付けてくれませんでした。
調べたらstage.を書かないとフォーカスなしでは動かないとのことなので
書いたのですが今度はエラーが出てしまいました。
DisplayObjectを入れろとのことで、
import flash.display.DisplayObject;
としたらエラーは出ないのですがテキストが表示されなくなりました。
stage.addChild(outputText);とかにしても同じでした。
147:Now_loading...774KB
07/08/30 15:06:42 udV3bP6I
そもそもそのクラスは何を継承してるの?
148:Now_loading...774KB
07/08/30 15:32:11 fxDqXm13
こんなで、
package {
import flash.display.Sprite;import flash.utils.Timer;import flash.events.*; import flash.text.TextField;
public class TimePanel extends Sprite {
var myTimer:Timer,_t:TextField;
public function TimePanel() {
_t = new TextField();_t.text = "100";addChild(_t);
myTimer= new Timer(1000);
myTimer.addEventListener(flash.events.TimerEvent.TIMER , counter);
setEvent();
}
public function setEvent() {
if (stage) {
trace("画面に追加されてます");
stage.addEventListener(KeyboardEvent.KEY_UP, keyCheck);
} else {
trace("画面に追加されてません");
}
}
public function counter(e) {
_t.text = String(Number(_t.text)-1);
}
public function keyCheck(e) {
trace(e.keyCode);myTimer.start();
}
}
}
149:Now_loading...774KB
07/08/30 15:33:20 fxDqXm13
うごかすにはこんなじゃね?
var t=new TimePanel()
addChild(t)
t.setEvent()
ようするに、stageまで辿りたいなら表示リストに乗っけないと駄目なんでない?
150:Now_loading...774KB
07/08/30 15:36:42 fxDqXm13
あとは、FlashCS3だったらドキュメントクラスにしときゃ、stageで確実にStage拾えるんじゃね?
151:Now_loading...774KB
07/08/30 16:09:44 ljrzh0lg
>>148-150
これの追加でいけました!ありがとうございます。
stopwatch.setEvent();
public function setEvent() {
if (stage) {
trace("画面に追加されてます");
stage.addEventListener(KeyboardEvent.KEY_UP, keyCheck);
} else {
trace("画面に追加されてません");
}
}
152:Now_loading...774KB
07/08/30 16:19:13 zj2bgIKw
FLASHでflvファイルを消音状態で表示したいと思い、ググッてみたらこの情報を見つけたのですが
URLリンク(www.flash-jp.com)
>MovieClip.attachAudio()メソッドを使って、音源のNetStreamインスタンスを、コントロール対象のMovieClipに接続する必要があります。
> // サウンドコントロールの対象にするMovieClipをmy_mcとした場合
> var my_sound:Sound = new Sound(my_mc);
の辺りがよく分かりません、new Soundのカッコ指定用にストリーミングビデオをMCシンボルに変換が必要?
と思い、ビデオをmy_mcにシンボル変換してみましたが、やはり音は消えませんでした
現状ではムービーは普通に再生されますが、消音できてない状態です
因みにrootの階層にストリーミング形式のmy_videoを配置しています
どなたらアドバイスをお願いします・・・
153:Now_loading...774KB
07/08/30 16:19:16 upfWoDgo
ずっとhtml+JSは書いていて、
最近フラッシュを始めました。
質問ですが、ASでは、
(function(){ trace("asdf") })()
と書いても動かないものなのでしょうか?
環境は、Flash8Pro + MacOSX です。
よろしくお願いします。
154:Now_loading...774KB
07/08/30 16:50:12 udV3bP6I
>>152
変換じゃなくて適当なMCが必要なだけだから空のMC作って指定してあげれば
いいだけ。
155:Now_loading...774KB
07/08/30 16:58:02 zj2bgIKw
>>154
消音されるようになりました!どうもありがとうございます!
156:Now_loading...774KB
07/08/30 17:09:12 fxDqXm13
>>153
8(AS2.0)だとそれは動かなかった気がする。
いまCS3(AS3.0)で試したら動いた。
157:153
07/08/30 17:44:40 upfWoDgo
>>156
ありがとうございました。
うpでーたん買いに行ってきます!
(((;;;:: ;: ;; ;; ;:;::)) ::)
( ::: (;; ∧_,∧ );:;;;)) )::: :; :))
((:: :;; (´・ω・)っ;;;; ; :))
((;;; (っ ,r どどどど
ど・・・・・
i_ノ┘
158:Now_loading...774KB
07/08/31 00:27:00 zmW3hsvO
こんばんは。CS3のAS3.0でFLASHを作成しています。
キーボードの操作を作成していてこう記述しました。
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownEvent);
function KeyDownEvent(event:KeyboardEvent) {
trace(event.keyCode)
}
この処理でひとまずキーの押下を試していたのですが、
CTRL+ENTERでパブリッシュするとZキーが反応しません。
おそらく「90」が表示されると思うのですが・・・何故か無反応です。
他にもAキー等も利かず。
試しにキーコードをテキストに表示する処理を作り
パブリッシュ後のswfファイルを開くとZキーも反応しました。
このイベントリスナーはCS3でパブリッシュ中に不具合でもあるのでしょうか。
159:158
07/08/31 00:44:58 zmW3hsvO
すいません、Zキーを押すと拡大ツールになるみたいでした。
キーボードのショートカットをオフにしたら反応しました。
しかし、キー全部使うような場合はどうするんでしょう・・・全部オフにするのかな。
160:Now_loading...774KB
07/08/31 01:23:20 3OIPOoFY
>159
糞仕様です。プレビューでショートカットの無効を試してください
この回答で問題は解決しましたか?
161:158
07/08/31 07:59:21 zmW3hsvO
>>160
回答ありがとうございます
ツールのキーショートカットを全部削除したものを作りました。
その質問に「はい、解決しました」を選べた試しがないです(笑)
162:Now_loading...774KB
07/08/31 15:08:43 bEb8PNaZ
ウィンドウズXPでFLASH8を使っています。
createTextFieldでテキストフィールドを作った後に、setTextFormatでテキストフォーマットを指定しています。
その後中のテキストを変えるとフォーマットが勝手に変更(デフォルトへ?)されてしまうのですが何か良い回避方法は無いでしょうか?
今はテキストが変更されるたびに同じテキストフォーマットをぶちこんでるのですが処理の重さの方が気になります
こんな感じです
_root.createTextField("test", 0, 0, 0, 300, 300)
fmt = new TextFormat();
fmt.size = 24;
test.setTextFormat(fmt);
test.text = "1行目\n";
test.text += "2行目";
test.setTextFormat(fmt);//これが無いとテキストフォーマットが解除されてしまう
質問の仕方が下手で申し訳ない・・・
163:Now_loading...774KB
07/08/31 15:12:45 xAIasgsE
setNewTextFormat
164:Now_loading...774KB
07/08/31 15:17:26 bEb8PNaZ
素早い回答ありがとうございます!
試してみましたがこれでかなり処理が軽くなりそうです
165:Now_loading...774KB
07/08/31 16:00:46 hscyW3hW
CS3 AS3で作ってるんですが
Timerで3分のカウントダウンタイマーを作ってるんですが
OSの時計より5秒も遅れてしまいます。
これって普通なんでしょうか?
166:Now_loading...774KB
07/08/31 16:31:25 hyV6m2mV
>>165
タイマー開始は、ボタンのon(press)/on(release)で動作?
on(press)なら押した瞬間からだからね。
1分や10秒のタイマーも試した?
マシンのパワーによっては動作(反応)が遅くなることがあるけど。
167:Now_loading...774KB
07/08/31 17:28:05 Zygq0bfq
もしかして1秒たったら+1するイベントを実行していたりして。
168:Now_loading...774KB
07/08/31 17:39:16 hscyW3hW
>>166
キーアップです。1分で2秒遅れ、10秒なら問題がないくらいです。
ただ、時計とどんどんずれていってしまいますのでイベントのタイミングはないようです。
マシンパワーはPenM1.73GHzなんですがどうなんでしょうか。
スクリプト
public function Stopwatch(initTime:Number=3) {
outputText = new TextField();
outputText.autoSize = TextFieldAutoSize.LEFT;
timetotal = initTime*60;
outputText.text = String(timetotal);
addChild(outputText);
myTimer = new Timer(1000,timetotal);
myTimer.addEventListener("timer", counter);
}
169:Now_loading...774KB
07/08/31 17:40:00 hscyW3hW
public function setEvent() {
if (stage) {
trace("画面に追加されてます");
stage.addEventListener(KeyboardEvent.KEY_UP, keyCheck);
} else {
trace("画面に追加されてません");
}
}
public function keyCheck(event:KeyboardEvent) {
if(event.keyCode == 32 && !keyFlg){
keyFlg = true;
myTimer.start();
}else if(event.keyCode == 32 && keyFlg){
keyFlg = false;
myTimer.stop();
}
}
public function counter(event:TimerEvent):void {
outputText.text = String(timetotal - myTimer.currentCount);
}
です。
170:Now_loading...774KB
07/08/31 18:42:39 xAIasgsE
>>168
currentCountはハンドラが呼ばれた回数だから、それを時間計算につかうのはどうかと。
秒以下なりの端数の丸めが生じるから、表示が秒単位ならずれは1秒のずれは出る。
timerをストップするタイミングとスタートするタイミングでもずれは生じるよね。
171:Now_loading...774KB
07/08/31 18:49:54 VwDRt4nd
ヘルプよりTimer オブジェクトについて
---------------------------------------------------------------------
SWF ファイルのフレームレートまたは Flash Player の環境
(使用可能なメモリやその他の要素) に応じて、
Flash Player ではややオフセットの間隔でイベントを送出できます。
~~~~
たとえば、SWF ファイルを 10 fps (1 秒あたりのフレーム数)、
つまり 100 ミリ秒間隔で実行するように設定し、
80 ミリ秒でイベントを発生するようにタイマーを設定すると、
Flash Player ではおよそ 100 ミリ秒間隔でイベントが実行されます。
また、メモリに負荷のかかるスクリプトでも、イベントがオフセットされる場合があります。
---------------------------------------------------------------------
ただし割り切れる数、仮に10fpsで1000ミリ秒間隔で実行するようにしてもずれてくる(と思う)。
Flashに限らずあらゆるプログラムのタイマーイベントは"約"○秒間隔で実行されるものと覚えておいた方が良い。
今回のタイマーイベントは経過時間描画更新用にでもしておいて、
実際何秒経ったかの計算は、タイマー開始時の時間をgetTimer()で取得して保持しておき
描画更新タイマーイベントの度にこの時の時間をこれまたgetTimer()で取得、
そんで保持しておいた開始時の時間との差分を計算して
結果を経過時間として表示がベターでありセオリーかな。
描画更新用タイマーの間隔を1000ミリ秒にすると最初の理由で時々秒数が2秒飛んで表示されたりするはずだから、
気になるなら描画更新イベントを呼ぶ間隔を100ミリ秒なりfpsが許すまで気にならないレベルに落とせば良いと思う。
172:Now_loading...774KB
07/08/31 23:08:28 agiUkJyo
FlashMX2004です。クラスの利用についての質問です。
クラスを管理しやすくするために、FLAファイルと同階層に
MCControlフォルダと、Managementフォルダを作り、
MCControlフォルダにCursor.as、Managementフォルダに
Condition.asを配置しました。
ここで、Cursor.asで、Conditionを使おうとして
class Cursor {
var condition:Condition;
}
とすると、「クラス'Condition'がロードされませんでした」というエラーが出ます。
importしようとして、
import Management.*;
class Cursor {
var condition:Condition;
}
としても、解決できませんでした。
どうすれば、別フォルダにあるクラスを利用することができるのでしょうか?
173:Now_loading...774KB
07/09/01 02:37:23 fOe1T35u
FLASH5使ってます
ムービークリップのアクションに記述した変数の中身を
別のフレームのムービークリップやフレームのアクションから
読み込みたいのですが、可能ですか
174:Now_loading...774KB
07/09/01 07:00:10 8k8KBU5/
>>172
パブリッシュ設定画面でActionScriptのバージョンリストの横にある設定、
そこでクラスフォルダを指定できる場所があると思うからそこに
MCControlとManagementフォルダパスを指定すればいける、かも。
175:Now_loading...774KB
07/09/01 11:10:06 lM5AHOi+
>>172
パッケージとして使うなら class MCControl.Cursor {
176:Now_loading...774KB
07/09/01 12:30:56 +bO+o6yA
>>173
パスを使う。例えば、MC名がxxxで変数がyyyなら、
絶対パスでは、_root.xxx.yyy
177:172
07/09/01 12:48:19 or8PVano
ご解答ありがとうございます。
>174
相対パス指定、絶対パス指定の両方をためしたのですが、状況は
変わりませんでした。
>175
class MCControl.Cursor {
var condition:Condition;
}
としてみたのですが、状況は変わりませんでした。
また、念のため
class MCControl.Cursor {
var condition:Management.Condition;
}
および、Condition.asを
class Management.Condition{
//処理
}
として試してみたのですが、同様に状況は変わりませんでした。
なお、エラーは「シンタックスチェック」ボタンを押したさいに出ます。
FLA精製時には、エラーメッセージは出ません。
※クラスファイルで別クラス読み込むさい、「../」といった方法あればいいのですが……
178:Now_loading...774KB
07/09/01 12:57:01 5nF/Lifr
>>177
環境設定のクラスパスに追加汁
179:172
07/09/01 13:17:41 or8PVano
ご回答ありがとうございます。
>178
「環境設定」から、MCControlとManagementのパスを追加したところ
class MCControl.Cursor {
var condition:Management.Condition;
}
だと状況に変化はなかったのですが、試しに
class MCControl.Cursor {
var condition:Condition;
}
としたところ、「コンパイルされたクラス'Management.Condition'が
読み込まれたクラス'Condition'に一致しませんでした」という、別の
エラーが帰ってきました。
(「クラスをコンパイル」した覚えはないのですが……)
なお、Condition.asは前回と同様
class Management.Condition{
//処理
}
です。
180:Now_loading...774KB
07/09/01 13:36:28 lM5AHOi+
クラスパス追加するからエラーがでるんだろ。
追加するのはクラスのルートディレクトリだけな。でコンパイルするときはASO
削除してから。
181:Now_loading...774KB
07/09/01 13:47:57 +bO+o6yA
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)
SharedObjectのディレクトリについて質問です。
localSO = SharedObject.getLocal(saveName1, "/"); と localSO.flush();
で、saveName1という名前でHDDのlocalhost内にデータを保存させることは
出来ました。
次にlocalhostの下に、ASで任意の名前のディレクトリ(例えばFolder1)を作って
保存したいのですが、これは可能でしょうか?
solファイルが増えることを想定して、ディレクトリ名で管理したいと思っています。
182:172
07/09/01 14:05:18 or8PVano
ご解答ありがとうございます。
>180
ルートディレクトリを「フルパスで」設定したところ、エラーが出ずに
無事表示されました。ありがとうございました。
ただ、一つ疑問なのですが、環境設定ではすでに
クラスパスとして「.」が登録されていました。
これは、FLAファイルがおかれているディレクトリを指すのだと
思うのですが、なぜ改めてフルパスで指定しなければ
うまく動かなかったのでしょうか?
※今後、複数のFLAファイルを作っていく際に、「そのFLAのある
ディレクトリがクラスのルート」という指定ができてくれれば
編集のたびにいちいち環境設定を変更しなくても良くなるのですが……。
183:Now_loading...774KB
07/09/01 14:44:20 /szJRb7p
>>182
ファイルからの相対パスじゃなくて
実行プログラムからの相対パスだからじゃね?
よく知らんけど
184:172
07/09/01 15:09:44 or8PVano
ご回答ありがとうございます。
>183
私は実行ファイルを「appli」フォルダに入れていたので、そこからの
相対パス「..\」をクラスパスに設定したところ、問題なく動作いたしました。
ありがとうございました。
>172からの質問は、これにて終了いたします。
皆様、本当にありがとうございました。
185:158
07/09/01 15:20:03 e1mE+muK
>>181
ディレクトリ操作は無理じゃないかと。
FLASHから勝手にフォルダ作られちゃ困るでしょ
186:Now_loading...774KB
07/09/01 19:10:34 5nF/Lifr
>>181
第2引数で指定すりゃいんじゃねーの
187:Now_loading...774KB
07/09/01 19:53:32 or8PVano
FlashMX2004 Professionalです。
私は>172ですが、別件の質問をさせていただきます。
アニメーションするマウスカーソルを作ろうとしているのですが、
このアニメーションを、複数の外部JPEGを読み込むことで
実現しようと考えています。(いわゆるパラパラ漫画のようにする)
ぱっと思いつくのは、setIntervalを使って、短い時間に次々と
MovieClipLoader.loadClip()でJPEGファイルをロードする方法ですが、
アニメパターンごとにloadClipするのは明らかにまずいように思いますw
あらかじめ画像全体をメモリに読み込んでから、表示時jにメモリへ
アクセスするとか、そう言った「外部ファイルのアニメ表示」のアイデアには
どういうものがあるのでしょうか?
188:Now_loading...774KB
07/09/01 19:58:31 0t02gU5O
>>181>>186
"/"で指定できるのはswfのurlに含まれるディレクトリ
C:\Documents and Settings\hoge\test.swf
の場合
"/Documents and Settings"でlocalhost内にDocuments and Settingsと言うフォルダが出来る。
(webでも大体同じ)
残念ながら任意の名前は指定できない。
189:Now_loading...774KB
07/09/01 20:06:21 5nF/Lifr
/以下の任意のディレクトリ構成は可能じゃなかったっけ?
190:181
07/09/01 20:16:42 /2GjwLFq
>>185,186
ありがとうございます。第2引数では駄目でした。
やはり、ディレクトリはlocalhost固定のようです。
191:181&190
07/09/01 20:20:26 /2GjwLFq
>>181-189
すいません。このスレをリロードせずに書き込んでいました。
一応、下に1個は作成できるということですか?
192:Now_loading...774KB
07/09/01 20:37:41 5nF/Lifr
>>191
ああ、第2じゃなかった
第1引数の方で"savedir/savedata"とかでやってみてちょ
193:181&190
07/09/01 21:47:09 /2GjwLFq
>>192
有り難うございます。
path1 = "subhost/";
localSO = SharedObject.getLocal(path1+saveName1, "/");
とすると、#subhostフォルダ(シャープが付く)が作成され、その中に
saveName1.solが保存されました。
なお、第2引数 "/"が無い場合は、path1で指定した名前に関わらず
Flashで勝手に ##EE6383F9C6・・・・ などというフォルダが作られ、
その中に00000001.solというものが出来ます。 よって第2引数も
必須のようです。
194:Now_loading...774KB
07/09/01 22:47:04 /9LeuBUy
>>187
試してないから出来ないかもしれないけど
1 2 3 4
レイヤー1:mc1
レイヤー2: mc2
レイヤー3: mc3
ってMC置いといて
4フレーム目でそれぞれのMCに画像読み込んで
1~3フレームをループすればできそう。
195:188
07/09/01 23:14:26 0t02gU5O
>>192
おお、気が付かなかった、勉強になった。
196:Now_loading...774KB
07/09/01 23:28:54 GOhTES9R
>>187
それ、一枚ごとに読み込まなきゃいけないの?
アニメにするつもりなら、swfとかflvみたいなひとかたまりにしておいた方がよくないか?
197:Now_loading...774KB
07/09/01 23:46:13 Apz3GuwA
標準カーソル隠してカーソルの位置にアニメーションするMC、だけで済むだろうに・・
まさかFlexで作ってるとかじゃあるまい?
198:187
07/09/02 00:03:21 JKrAf2BC
ご回答ありがとうございます。
>194
ありがとうございます。あらかじめ複数配置しておくのは盲点でした。
ただ、loadClipするときは、そのフレームで対象となるmcが配置されて
いる必要があるので、下のレイヤーを前のフレームに配置し
後のフレームを上に重ねるようにすればできそうです。
(この場合、複数のmcがカーソルの中で重なっているので
のちの仕様変更(透過PNGを使うなど)の歳にもう一度考えないと
いけないとは思いますが、当分はこの手でしのげそうです)
>196>197
発注元からの指示が「Flashがなくても絵柄を変更できるように
PhotoShopで扱える画像で頼む」とのことでしたので、こんな方法を
取っています。Flash8以降ならPNGを使えれば透過もできて最高なのですが
開発環境がMX2004なので、やむなくJPEGで納得してもらっています(´・ω・`)
199:Now_loading...774KB
07/09/02 04:28:56 o3hqjAWm
プロジェクターについて質問なのですが、
例えばウィンドウのクローズを押された時に『終了しますか?』というようなダイアログを出したいのですが
FLASH側でクロ-ズを取得するコマンドってありますか?
200:Now_loading...774KB
07/09/04 16:40:25 y0mjhuPr
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)
SharedObjectの新規ディレクトリ(フォルダ)について
path1 = "subhost/";
localSO = SharedObject.getLocal(path1+saveName1, "/");
とすると、#subhostフォルダ(シャープが付く)が作成され、その中に
saveName1.solが保存されました。
ここで作成とは反対に、作成ディレクトリ(フォルダ)の削除と名前の変更を
試みていますが、両方出来ません。
削除・変更は、(セキュリティ上)OSの機能を使わないとやはり駄目なのでしょうか?
なお、新規ディレクトリ内のsolファイルの削除は、saveName1を定義して
localSO.clear(subhost); でOKでした。
201:Now_loading...774KB
07/09/04 20:32:37 5sDI9kzh
無理じゃないの?
てかそれ目的はなに?
202:Now_loading...774KB
07/09/04 20:47:43 5sDI9kzh
ちなみにプレーヤーの設定画面でローカル記憶領域を0にすれば
該当ドメインのsolをフォルダごと消せるけど
それではだめなの?
203:Now_loading...774KB
07/09/04 21:16:53 yJHGSOK3
質問なんですが、
とある本に、あるMCがマウスカーソルの動きに
遅れてついてくるスクリプトが書いてあり、
マウスカーソルの位置でピタリと止まるには
onClipEvent ( EnterFrame ) {
if ( _x < int ( _root._xmouse/10)*10) {
_x+=10;
} else if ( _x > int ( _root._xmouse/10)*10 {
_x-=10;
}
if ( _y < int ( _root._ymouse/10)*10) {
_y+=10;
} else if ( _y > int ( _root._ymouse/10)*10 {
_y-=10;
}
}
と、目標地点を移動量刻みに分割しろと書いてあったのですが、
同じようじ書いてもMCがカーソルのところで止まってくれません、
どこがいけないんでしょうか?
204:Now_loading...774KB
07/09/05 00:25:26 E+VHtrAA
サウンドプレーヤー作成にて質問です。
目的はループ再生(もしくは“100回”など)なんですが、一時停止後
//再生再開
on(release){
Sound1.start(Sound1.position/1000, 0)
}
と、ボタンアクションに記述すると、一時停止したその曲で終わってしまいます。
この記述のどこに変更、もしくは足せばループ再生的な事ができますか?
ループの回数は30回もあれば十分なので。よろしくおねがいします。
205:Now_loading...774KB
07/09/05 00:46:02 n30z77if
>>203
MCの移動量が10刻み、1にしたら多少マシになるかも
>>204
onSoundComplete = function(){ Sound1.start();}
206:Now_loading...774KB
07/09/05 01:00:45 STXMbf8o
>>203
MCの位置とマウスの位置が10(移動量)以内なら、
MCの位置にマウスの位置を代入するようにする。
207:Now_loading...774KB
07/09/05 01:01:52 Lv8sVb/D
眠くて頭が回んないので、気づいたとこだけ答えると、
>203
int()はMath.int()のまちがいじゃまいか。
あと、そのスクリプトは構文エラーなので、括弧の閉じ方とか
予約語などをもう一度見直した方がいい。
なお、そのスクリプトでどういう動きをしたいのかが分からないが、
「遅れてついてくるMC」なら、俺はこうする
onClipEvent ( enterFrame ) {
_x -= (_x - _root._xmouse) / 10;
_y -= (_y - _root._ymouse) / 10;
}
>204
ボタンアクションにそーゆーことを記述するのはめんどいのでオススメしない。
(つーか「クリップアクション」自体、なるべく避けた方がいいと思う。迷子になりやすいし)
とりあえず、そのスクリプトの「Sound1」を_rootから始まる場所に書き換えてみよう。
そのままだと、ボタンが置かれたMCで定義したSound1に対して
あれこれ仕様という意味になるから、もっと上で定義していたら、とうぜん空振りする。
208:200
07/09/05 01:08:38 l+jAGjWi
>>201
目的は、GUIとまでは行きませんが、solファイルを含むフォルダ操作です。
フォルダの作成に加えて変更・削除が出来れば、かなり自由度が増えると思いました。
>>202 ローカル記憶領域を0
試してみます。
209:Now_loading...774KB
07/09/05 01:20:11 /9kyThfX
>>208
Flashでフォルダ操作やファイル操作は出来ません。
210:Now_loading...774KB
07/09/05 01:39:27 Lv8sVb/D
>208
localSO.data.rootfolder.savedata1=保存内容
とかじゃだめ?
これならdataプロパティ以下の要素を、色々いじれるが。
ファイルを直接作ったり消したりしたいなら、あきらめたほうがいいかも。
211:200
07/09/05 02:25:57 l+jAGjWi
>>209-210
複数のフォルダ内の複数のsolファイルに色々な項目(例:身長,体重,年齢など)を
詰め込みたいので出来れば、フォルダ単位で消去・変更したいです。
なお、「ローカル記憶領域を0」は、まだ試していません。
212:Now_loading...774KB
07/09/05 02:48:47 Lv8sVb/D
>211
var root = new Object();
root = SharedObject.getLocal("root", "/");
saveData1 = SharedObject.getLocal("root/saveData1", "/");
root.data._content = "これはカレントのデータだお";
saveData1.data._content = [{height:"209cm", weight:"135kg", name:"G.馬場"},
{height:"191cm", weight:"102kg", name:"A.猪木"}];
delete saveData1.data._content;
末尾の delete saveData1.data._content; を付けたり外したりするなどして、
*solファイルの有り無し検索してみよう。
自分で実験するヒマを惜しんではいけない。
213:Now_loading...774KB
07/09/05 02:50:53 Lv8sVb/D
申し訳ない、>212の1行目var root = new Object(); は不要です。
・・・ダメだ、頭が働かないのでもう寝る。
214:200
07/09/05 03:30:38 l+jAGjWi
>>212-213
てんきゅう
215:202
07/09/05 04:11:35 oq2Wn5BF
>>200
「ローカル記憶領域を0」は無視でいいよ
話が良くわかってなかった。
フラッシュからASでやれることじゃないし。
216:Now_loading...774KB
07/09/05 14:11:01 ps3RHVx4
外部テキストを読み込むクラスなんですけどテキストが返ってこないんです。
どうすればテキストの内容を返すことができるのでしょうか。
public class Textload extends Array {
var loader:URLLoader;
var datB:Array = new Array();
public function Textload() {
}
public function textloading():Array {
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.load(new URLRequest("test.txt"));
}
public function completeHandler(evt:Event):Array {
var datA:Array = loader.data.split("\r");
for(var i:Number=0; i<datA.length; i++){
datB[i] = new Array();
datB[i] = datA[i].split(",");
}
return datB;
}
var playerdata:Array = new Textload();
trace(playerdata.textloading());
217:Now_loading...774KB
07/09/05 14:18:34 8MQmnQEW
待ってないから
218:Now_loading...774KB
07/09/05 15:33:36 be+ocy7a
>>216
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
219:203
07/09/05 22:41:07 v6ZxKUeG
ご回答ありがとうございました
>>207
Math.int() にしたらエラーが出ましたが、
onClipEvent ( enterFrame ) {
_x -= (_x - _root._xmouse) / 10;
_y -= (_y - _root._ymouse) / 10;
}
の方法で解決しました。
なぜ、うまくいくのか
じっくり考えたいと思います。
220:Now_loading...774KB
07/09/05 23:06:49 bqmYmjyS
paraflaでFLASHを作っています。
左クリックでのボタン処理ができるように、
右クリックを押すことでアクションをしたいのですが、
どうすれば出来るでしょう?
221:Now_loading...774KB
07/09/05 23:13:09 Oadww5zB
コントロールパネルで左利き用マウスに設定すればいいよ
222:Now_loading...774KB
07/09/06 01:00:17 M+Pv+M6l
>219
自分自身の座標と、目標の座標の10分の1づつ接近していく。
近づけば近づくほど、「10分の1」の値は小さくなる=近づき方が遅くなる
ただし近づいてはいるので、いずれある時点でその差は1を下回る=目標値点で止まる
ただ、止まっているときでも常にカーソルへの移動を試みているので
無駄を省きたいので有れば「マウスカーソル移動でMC移動開始」と
「移動距離が1を切ったらonEnterFrameをやめる」を
実装してもいい(必要ないと思うならしなくてもいいが)。
>220
Macのことを考えてみよう。
(じつは、右クリックはコンテクストメニューなら割り付けられる。方法は勉強してちょうだい)
223:Now_loading...774KB
07/09/06 02:08:02 9lIbtxB2
>>220,222
AS3.0限定かもしれないけど右クリックのアクションも可能だと思うよ。
前に見た解説サイト見つけられないけど・・・
paraflaでもできないわけじゃないかも。
224:Now_loading...774KB
07/09/06 05:53:23 ARIbZD1C
>>216
きちんとヘルプを読めばサンプル載ってるし、そんな書き方しないと思う。
適当に書いて動きませんなんとかして、はひどすぎ。
225:Now_loading...774KB
07/09/06 10:56:05 IA+i6VgC
>>224
いや、適当というつもりはなかったです。
return datB;のところでtrace(datB)するとテキスト取得の確認ができたので、
関数に型名つけてreturnで返そうと思いました。
public function completeHandler(evt:Event):Array {...}
だけだとundefinedとでたので、public function textloading() {...}のほうにも
型名つけないとまずいのかと思ったのですが、そうするとエラーが出てしまい、
どうすればよいのか解らなくなり質問しました。
226:Now_loading...774KB
07/09/06 11:03:19 ARIbZD1C
>>225
ん、まず、なんでArrayから派生させてるのかがわからん
ハンドラのreturnって何が受け取るの?
227:Now_loading...774KB
07/09/06 12:57:09 IA+i6VgC
>>226
swfのタイムラインに以下を記述してtrace結果でテキストの内容を出そうとしました。
var playerdata:Array = new Textload();
trace(playerdata.textloading());
228:Now_loading...774KB
07/09/06 13:09:51 ARIbZD1C
>>227
答えがそれかよw。Classを使ってどうこなら
まず、Javaなりの入門書を一冊やって、OOPを勉強してからだな。
229:Now_loading...774KB
07/09/06 16:14:27 DwFYQP3i
バイナリデータを埋め込んで動的に読み込みたいんですが、
↓のように定義して
[Embed(source='data/stage1.dat', mimeType="application/octet-stream")]
private var GameData1:Class;
↓のようにクラスへの参照を取得しようとすると
var classRef: Class = getDefinitionByName("GameData1") as Class;
↓のようなエラーが表示されてしまいます。
ReferenceError: Error #1065: 変数 GameData1 は定義されていません。
Embedで埋め込んだクラスにはgetDefinitionByName()できないのでしょうか?
どうにかクラス名を動的に指定して読み込む方法はないでしょうか。
環境はWinXP/Flex2 SDK/Flash9 r28です。
230:Now_loading...774KB
07/09/06 16:18:27 eVJwwHFF
そんなもんクラスじゃねーだろ
好きに読み込め
231:Now_loading...774KB
07/09/06 16:20:16 eVJwwHFF
なんだか頭の不自由な奴が自分ルールでクラスだのなんだのを勝手に
定義してわけわからん質問してるのが多いな。同じ奴か?
基本的な本1冊読めよ。馬鹿すぎる。
232:229
07/09/06 16:47:32 DwFYQP3i
すみません。
普通のアセットクラスだと思うのですが、どの辺りが間違っているのでしょうか。
233:Now_loading...774KB
07/09/06 16:59:08 ARIbZD1C
>>232
Flexでの書き方はしらんが、知ってる人でもその質問では答えられんと思う。
何をやりたいのかを書いて、具体的なソースを提示しないとわからんよ。
234:Now_loading...774KB
07/09/06 17:04:44 ARIbZD1C
だいたい
>バイナリデータを埋め込んで動的に読み込みたいんですが、
埋め込んで動的にって。。。どういうことだよw
235:229
07/09/06 17:36:43 DwFYQP3i
質問が下手ですみません。
ゲームのステージデータを埋め込んで、各ステージの初期化時に
読み込みたいのです。
public class Sample01 extends Sprite {
[Embed(source='data/stage1.dat', mimeType="application/octet-stream")]
private var GameData1:Class;
[Embed(source='data/stage2.dat', mimeType="application/octet-stream")]
private var GameData2:Class;
...
}
といったようにSWFファイル内にバイナリデータのアセットとして埋め込んでおいて、
以下のようなステージデータのロードメソッドを呼ぶつもりでした。
動的にというのは、ステージ番号を指定してgetDefinitionByName()に渡す文字列を
変えたいという意味で使いました。
private function loadStageData(stage: int) {
var classRef: Class = getDefinitionByName("GameData"+ stage) as Class;
var GameData: ByteArray = new (classRef());
}
埋め込んだデータがJPEG画像などでも同様でした。
別の方法でも構わないのですが、同様のことを実現するにはどういったやり方が
あるでしょうか。宜しくお願いします。
236:Now_loading...774KB
07/09/06 17:44:14 ZRyepadd
だからそれのどこがクラスだよ
今のあんたに何説明しても無駄
237:229
07/09/06 18:08:28 DwFYQP3i
>>236
クラスについては認識が間違っているということで、再度勉強させていただきます。
ステージデータについては、当初以下のような記述で動作していたのですが、
クラス名の指定をgetDefinitionByName()に置き換えられないかと試行錯誤して
いるところでした。この違いについて、まだよく理解できていません。
private function loadStageData(stage: int): ByteArray {
var data: ByteArray;
switch (stage) {
case 1:
data = new ByteArray( new GameData1() );
break;
case 2:
data = new ByteArray( new GameData2() );
break;
...
}
return data;
}
ステージデータは100面分用意する予定なので列挙するのはできれば避けたいと
思っています。>>235にも書きましたが、私の書いたやり方がよりも良いやり方が
あれば、お教えいただけると幸いです。
238:229
07/09/06 18:12:32 DwFYQP3i
バイナリデータを読み込む部分ですが、popforgeというサウンドライブラリの
SoundFactory.classを参考にしました。Classと指定することについては、そう
いうものだと思って、あまり深く考えていませんでした。
239:Now_loading...774KB
07/09/06 18:17:06 ZRyepadd
埋め込む必要があるなら文句いわねーで列挙しろ
めんどくさかったらコードを書くマクロを作れ
実行時に読み込むだけで事が足りるならクラス化しねーでファイル読み込め
240:229
07/09/06 18:45:02 DwFYQP3i
列挙するのを避けたいというのは面倒だという理由ではなく(それこそマクロ等で
処理すれば良いので)、保守性や可読性の観点から現実的ではないと判断しました。
そこで調べた結果行き着いたのがgetDefinitionByName()でしたが、意図した通りに
動作させることはできませんでした。
そもそもgetDefinitionByName()はこのような用途には使えないのか、使い方が悪いのか。
他のやり方があるのか、あるいは列挙以外に方法はないのか…というのが、私の知りたい
ことです。宜しくお願いします。
# 外部ファイルから読み込む案もご提示いただきましたが、今回はデータを埋め込む場合で
# お願いいたします。
241:Now_loading...774KB
07/09/06 18:50:49 ZRyepadd
使い方というより頭が悪いな
242:229
07/09/06 18:59:27 DwFYQP3i
正直、頭は悪いほうなので、独力では解決できずに助言を求めている次第です…。
内容の無い、悪意の回答はご遠慮いただけると幸いです。
243:Now_loading...774KB
07/09/06 19:38:29 wXAs/28X
var classRef:* = new getDefinitionByName("GameData"+ stage)()
か
var GameData: *= new (classRef)()
じゃね?知らんけど
244:229
07/09/06 20:02:42 DwFYQP3i
>>243
ありがとうございます。
早速試してみましたが、「getDefinitionByName()をコンストラクタとして
呼び出すことはできません」とのエラーが出てしまいました。
型宣言を「*」にする部分を参考にさせていただいて以下のようなコードも
試してみましたが、>>229同様の定義されていないエラーとなってしまいました。
var classRef:* = getDefinitionByName("Sound1");
var GameData:* = new (classRef)();
245:Now_loading...774KB
07/09/06 20:18:08 wXAs/28X
間違えた
var classRef:* = new (getDefinitionByName("GameData"+ stage))()
246:229
07/09/06 20:26:33 DwFYQP3i
>>245
ありがとうございます。
やはり、定義されていないエラーになってしまいます。
getDefinitionByName()に渡している文字列が悪いのかもしれませんが、
traceを見ても「GameData1」になっているので、間違ってはいないと
思うのです。。。
すみません。
>>244では「Sound1」になっていますが、効果音読むところをコピーして
しまいました。正しくは「"GameData"+ stage」と書いてあります。
247:Now_loading...774KB
07/09/06 22:05:25 Ggf2GCKz
>>246
var classRef: Class = getDefinitionByName("GameData1") as Class;
var gameData: GameData1 = new classRef();
これでどう?
GameData1がパッケージ内にあるなら、パッケージ名も書かなきゃだめだよ。
248:229
07/09/06 22:24:58 DwFYQP3i
>>247
ありがとうございます。
コンパイル時に以下のようなエラーとなってしまいました。
型が見つからないか、コンパイル時定数ではありません : GameData1。
var GameData:GameData1 = new classRef();
^
GameData1は現在Sample01というクラスの内部でEmbedしている箇所で宣言しています。
パッケージ名は親(?)のSample01には特に指定していないので、GameData1にも付かない
のだと思っています。こういう場合のパッケージ名がどうなるのかは、よく分かって
いません。ソースは以下のような感じです。
---
package {
import flash.display.*;
...
public class Sample01 extends Sprite {
[Embed(source='data/stage1.dat', mimeType="application/octet-stream")]
private var GameData1:Class;
[Embed(source='data/stage2.dat', mimeType="application/octet-stream")]
private var GameData2:Class;
...
}
}
---
249:Now_loading...774KB
07/09/06 22:57:16 IvtJX8zy
っ getDefinitionByName("Sample01_GameData1") as Class;
250:Now_loading...774KB
07/09/06 23:20:52 IvtJX8zy
っ var GameData:* = new (getDefinitionByName("Sample01_GameData1") as Class);
251:229
07/09/06 23:31:26 DwFYQP3i
>>249
うああ、できました!ありがとうございますっ…!
クラスの中のクラス(どう呼ぶのか分かりません)名は、そのように
記述するのですね。勉強になりました。
>>249さん、答えていただいた皆様、本当にありがとうございました。
252:216
07/09/07 10:21:44 /y5tc2Xf
>>228
public class Tashizan {
public function Tashizan() {
}
public function sum(numA:Number,numB:Number):Number {
return numA+numB;
}
}
var goukei:Object = new Tashizan();
trace(goukei.sum(15,3));
//18
のようにreturnで返したかったんですがなにが問題なのでしょうか?
問題点だけでも教えていただけませんか。
253:Now_loading...774KB
07/09/07 14:46:11 QESz89NL
>>216
関数の外にreturn置いてるのとか継承と型指定を取り違えてる風な書き方
3個以上間違いがあると誰も答えてくれないだろうから質問するときは問題点を
絞り込むように単純化した方がいいよ。
254:Now_loading...774KB
07/09/07 17:27:19 G6/Ml+Up
>>252
Arrayから派生してるのは何故?
returnは何が受け取るの?
レスしても、ちゃんと答えない質問者にはレスする気にならん。
255:Now_loading...774KB
07/09/08 22:27:58 rf8QzVNl
WinXP-ProでFlash8-Pro(Ver8.0)を使っています。
lineStyle()で線を点線(あるいは破線)にすることは可能でしょうか?
一応ヘルプを見ましたが、分かりませんでした。
256:Now_loading...774KB
07/09/08 23:10:39 gH/pK9oI
破線はなかったはず。てか、Google。
URLリンク(www.gac.jp)
257:Now_loading...774KB
07/09/09 01:52:20 46xyRfSe
環境はWin, CS3, AS3です。
これまでは_urlでswfの置かれているパスを取得できたと思うんですが、
AS3の場合はどうすればいいでしょうか。
よろしくお願いしますm(_ _)m
258:Now_loading...774KB
07/09/09 02:38:29 lVJTecGh
>>257
_url → flash.display.Loader.contentLoaderInfo
AS2と比べると使い方はちょっと面倒かもな。
AS3ではどうするの?という質問はまず↓を見てみよう。
URLリンク(livedocs.adobe.com)
259:Now_loading...774KB
07/09/09 04:21:40 oX5rL85l
>>257
trace(loaderInfo.loaderURL);
260:255
07/09/09 04:54:02 DAvWqwjE
>>256
有り難うございます。
なるほど、細かい点(線分)の集合ですね。
あー、お腹の調子がおかしい・・・ ←独り言
261:Now_loading...774KB
07/09/09 14:28:39 AciRr+jo
Javaをちょこっとかじってて、ActioScript初めてなんですけど、
flaファイル上のMovieClipにASファイルのクラスを適用することって出来るんでしょうか?出来れば軽くサンプルを書いてもらえるとありがたいんですが…
ASで定義したクラスのメソッドでMovieClipの操作を行ってみたいんですが・・・
262:Now_loading...774KB
07/09/09 14:35:15 oX5rL85l
>>261
できる
263:Now_loading...774KB
07/09/09 19:15:13 QumQM+cK
初歩的な質問ですみません。
LoadVariables()で読み込んだファイル名のMP3を再生させようとするのですが、
loadSound()でエラーが出てしまいMP3が読み込めません。
loadVariables("soundplay.txt", _root);
my_snd01 = new Sound(this);
my_snd02 = new Sound(this);
my_snd01.loadSound(_root.sound01, false);
my_snd02.loadSound(_root.sound02, false);
soundplay.txtの中身:
sound01=sound01.mp3&sound02=sound02.mp3
何故かloadSound()をコメントアウトすると変数がちゃんと拾えているようですが、
loadSound()があるとundefinedが出て読み込みエラーが出るようです。
これは何故でしょうか…詳しい方お願いします。
264:257
07/09/09 20:12:11 46xyRfSe
>>258-259
ディモールトグラッツェ!!!!
ありがとうございました、助かりました。
265:Now_loading...774KB
07/09/09 20:55:39 itq/IsYb
>261
俺も最初は苦労したくちなので、丁寧におしえちゃうぜ。
でもな、バージョン名くらいは書いて下さい。頼むから。
ライブラリウィンドウで、ムービークリップの
リンケージ名称設定をしてから・・・
MXの場合:
function クラス名(){プロパティを列挙}
クラス名.prototype=new MovieClip();
クラス名.prototype.メソッド名=function{処理}
クラス名.prototype.メソッド名=function{処理}
:
Object.registerClass(リンケージ名,クラス名);
MX2004の場合:
ムービークリップのリンケージ名の下に
AS2クラスの項目があるので
そこにクラス名を記入。
※ちゃんとクラスはMovieClipをextendsしてるよね?
266:Now_loading...774KB
07/09/09 23:46:14 AciRr+jo
>>265
すいません、遅くなりました
Flash8 (AS2.0?)です
------
class Hoge extends Movieclip {
private var mc:MovieClip;
function hoge(target_mc:Movieclip){
mc = target_mc;
}
…
てかんじにして、flaファイル側に
hoge = new Hoge(リンケージ名);
hoge.hghg();
という感じでやってたんですが、反応が無いみたいです;
265の方法を試してみます。
267:Now_loading...774KB
07/09/09 23:54:50 BVXAhwVo
>266
var hoge:Hoge=new Hoge(引数(インスタンス名とかな));
インスタンス名.onPress=function(){
hoge.ghgh();
}
既述通り、リンケージが楽
つーか、基本はggrば?
268:Now_loading...774KB
07/09/09 23:58:35 itq/IsYb
>266
俺は>265だが、8かー。MX2004使いだから的はずれかもしれんが
一応>266で気になったことは、
「MovieClipはattachで生成するのであって、newで生成しない」
(ただしFlexはnewで生成するが……)
という、基本ルールを知っているかどうか。
269:Now_loading...774KB
07/09/10 00:04:53 IlxYGmqe
>268だけだと意地悪なので、いちおうコードも載せておくよ。
_root.attachMovieClip("リンケージ名", "MC名",深度, {プロパティ名:値});
この「リンケージ名」に、さっき定義したリンケージ名をいれればOK。
ちなみに俺が良くやる方法は、
for (i=0; i<個数; i++){
MC[i]=_root.attachMovieClip("リンケージ名", "MC名"+i,i);
}
と、イコールつなぐことで、「参照」を取得できる。こうすると、いちいちパスを書かなくても
MC[2]._alpha=50; なんてことができて、スゲーらくちんw
270:Now_loading...774KB
07/09/11 12:54:39 Ln/IIDsc
デザイナー初心者です。
フラッシュ制作で、キューブが回転して奥から転がってくるものを依頼されました。
回転するものはあっても転がってくる様なものは探しても見つかりませんでした。
その様なサイトかスクリプトがあれば教えて下さい。
よろしくお願いします。
271:Now_loading...774KB
07/09/11 13:01:55 UA9VZCW1
>270
誘導
スレリンク(swf板)
272:Now_loading...774KB
07/09/11 13:35:00 Ln/IIDsc
>>271
有難うございます
そちらに行ってみます(`・ω・´)
273:Now_loading...774KB
07/09/11 16:27:25 ZKuw48zy
質問です。環境はWinn2000・Mx2004です。
式の書かれた外部テキストファイルを読み込ませ、
それを解釈させて、結果をtrueかfalseで得ようとしています。
例えば、他の処理系風に書けば:
res=eval("(a==1)&&((b<250)||(name=\"Dave\"))");
trace("resu;t: "+ res);
で、trueまたはfalseを返したいのですが、ActionScriptのevalでは
そう言うことができません。
次善の策として、JSONを使い:
[
{ "left" : "a", fugou : "==", "right":1}, {……}, {……}
]
などと言うことも考えたのですが、どのように処理していいのかが
まるで思いつきません。
どのようにするのがよいでしょうか?
274:Now_loading...774KB
07/09/11 20:31:38 yONnbTi8
>>273
javascriptでできるならASから呼んでやればいいんじゃない?
275:Now_loading...774KB
07/09/11 21:44:44 4GLdl+a5
>>273
言ってることがいまいちよくわからんが、
>式の書かれた外部テキストファイルを読み込ませ
の部分はASで実装できてるの?
276:273
07/09/11 21:57:50 ZKuw48zy
>274
できればswf内で完結させたいと思っています。
>275
はい。文字列を読み込ませ、それをtraceでそのまま表示させることは
できています。
>273のスクリプトを正確に書き直すと、
condition.txtの内容:
(a==1)&&((b<250)||(name==\"Dave\"))
flaファイルのスクリプト:
lv=new LoadVars()
lv.onData=function(string){
res=eval(string); //この行はあくまでも例示です
trace("result: "+ res);
};
lv.load("condition.txt");
です。
277:Now_loading...774KB
07/09/11 22:51:35 b9HnqLsx
javascriptに投げてevalで計算した結果をexternalinterfaceで貰えばいいんじゃ?
278:Now_loading...774KB
07/09/11 23:28:26 x8I9fL8z
>>273
逆ポーランド記法にできれば結構楽よ
// 変数は自分で管理
var MyVariables = {a: 1, b: 100, name: "foo"};
// 変数と数値と文字列の区別は適当に目印つける
var MyCondition = ["V:a", "N:1", "==", "V:b", "N:250", "<", "V:name", "S:Dave", "==", "||", "&&"];
var _stack = new Array();
for(i=0;i<MyCondition.length;i++){
var t = MyCondition[i];
switch(t){
case "==": var wk = _stack.pop() == _stack.pop(); _stack.push(wk); break;
case "&&": var wk = _stack.pop() && _stack.pop(); _stack.push(wk); break;
case "||": var wk = _stack.pop() || _stack.pop(); _stack.push(wk); break;
case "<": var wk = _stack.pop() > _stack.pop(); _stack.push(wk); break;
default: // 演算子以外は項である
var type = substring(t, 1, 2);
var term = substring(t, 3, t.length-2);
switch(type){
case "S:": _stack.push(term); break;
case "N:":_stack.push(parseInt(term)); break;
case "V:":_stack.push(MyVariables[term]); break;
}
break;
}
trace("「"+t+"」を処理した後のスタックの状態");
for(n=0; n<_stack.length;n++) trace("["+n+"] "+_stack[n]);
}
trace("result:" + _stack[0]); // 演算結果が[0]に残る