ActionScript 誰かが物凄い勢いで解答するスレ 17

このエントリーをはてなブックマークに追加
1Now_loading...774KB
AcitonScriptのことなら
初歩的な質問でもなんでもおk

見れない、保存したい、flashを作りたいはスレ違い
下記の関連スレ、超基本的な質問へ。

●質問する時は自分の環境を書く
書いてない場合WinXP,FlashMX2004(AS2.0以降)を前提で
●質問はものすごい勢いじゃなくて結構
●できるだけコードも示す
●まず自分がやりたいことを明確に書く。そのために試してみた処理を書く

直前スレ
ActionScript 誰かが物凄い勢いで解答するスレ 16
http://pc11.2ch.net/test/read.cgi/swf/1178021352/l50
関連スレ
Flashの超基本的な質問はここでしろ! part35
http://pc11.2ch.net/test/read.cgi/swf/1184667056/l50
Flash製作初心者の質問スレッド レイヤー36
http://pc11.2ch.net/test/read.cgi/swf/1173006099/l50

サイト、参考書籍、関連情報は>>2-10あたり
2Now_loading...774KB:2007/08/18(土) 08:54:58 ID:g0sVH2IC
アドビ本家(FLashCS3の30日間無料トライアルのダウンロードもここから)
ttp://www.adobe.co.jp

以下はAS2までのツールと思ってちょ
ASエディタse|pyのHP(ダウンロードは一番下のとこ)
ttp://www.sepy.it/
.solエディタはここ
ttp://www.alexisisaac.net/
3Now_loading...774KB:2007/08/18(土) 13:40:00 ID:+E7xJx7d
Flex 2 (ActionScript 3.0)で、縦書き表示したいのですが、何か方法はあるでしょうか?

Flash 8では、静的テキストならプロパティの変更で縦書き表示が選べたのですが…
よろしくお願いいたします。
4Now_loading...774KB:2007/08/18(土) 17:22:44 ID: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
5Now_loading...774KB:2007/08/18(土) 18:49:09 ID:JpSxShXi
>>4
thisが違うんじゃない?

function 名無し(mc:MovieClip){
 mc.gotoAndPlay("A");
 //他は略
}
呼ぶときは
_root.名無し(this)
6Now_loading...774KB:2007/08/19(日) 01:23:19 ID: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;
}
}
とやってみて負荷は下がったのですがアイコンの拡大縮小が滑らかではなくなってしまいました
原因があれば直していきたいのでぜひ教えてください
7Now_loading...774KB:2007/08/19(日) 02:00:39 ID:5SDHQgxV
>>6
円型のMCの半径100ピクセル範囲にマウスがあったら
その距離に合わせてサイズを変えるという事かな。

on(RollOver)イベントが発生するのは「MCとの距離が80以内の(重なっている)時」
本来は「100ピクセル以内に入ったらサイズ変更する」はずなので
そこが上手く処理できていない。

上手い解決策かは分からないけど
MCの中に半径100の円を作って背景色と同じにするか(他のMCと重なるかも)
入れ子のMCにしてonClipEvent(load){_visible = false}
で、見えなくすればいいかも。
8Now_loading...774KB:2007/08/19(日) 02:08:37 ID:5SDHQgxV
しまった、自分の質問忘れてたorz

MCの存在をチェックする時の質問です
var Mc:MovieClip = _root.MC;
とルート上のMCを変数に割り当てた後
MC.removeMovieClip();
で削除後、
Mcの変数を使って存在をチェックします。

「if(Mc == ??)」の「??」にあたるものが分からず
今は「if(Mc._x == undefined」というように内部のプロパティを見て判定しています。
この「??」またはMcを利用して存在をチェックするにはどうすればいいのでしょう。
教えていただきたいです。
9Now_loading...774KB:2007/08/19(日) 02:46:57 ID:NTX07+iK
>>8

下記でどうでしょう?

var mc:MovieClip = _root.mc;
if (mc === undefined) {
 trace("mc 無いよ");
}
//出力結果 mc 無いよ
10Now_loading...774KB:2007/08/19(日) 03:04:17 ID: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なのか・・・
11Now_loading...774KB:2007/08/19(日) 03:45:46 ID: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
12Now_loading...774KB:2007/08/19(日) 03:47:11 ID:NTX07+iK
<出力>以下は下記に訂正します。

<出力>
START
Mc = _level0.mc1
Mc =
mc無いよ
END
13Now_loading...774KB:2007/08/19(日) 06:49:10 ID:wUCJhVh1
trace(Mc instanceof MovieClip); とか。
146:2007/08/19(日) 10:09:23 ID:xj1FghBM
>>7
レスありがとうございます
なんというか、マウスの反応エリアにポイントが乗ってない時には
enterframeの処理を休止させるような良い方法があればいいんですけど。。。
空ボタンでマウスエリアを作って変数の受け渡しでon/offをしてみたのが
”>>4”の状態なんですけど
これだと、マウスをmcに近づける速度が速すぎると
空ボタン反応→mc拡大が急になりぎこちなく見えるし
mcから急に離すと、mcが縮小する前にイベント休止になってしまい、
中途半端な大きさで止まってしまう状態です。
かといって、空ボタンのサイズを大きくすると意味無いし。。。
もう脳みそ、溶けそうっす
15Now_loading...774KB:2007/08/19(日) 10:13:36 ID:wUCJhVh1
updateAfterEvent();
16Now_loading...774KB:2007/08/19(日) 11:54:06 ID: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 )の部分がいけないのでしょうか?
17Now_loading...774KB:2007/08/19(日) 11:57:20 ID:5SDHQgxV
>>11,12
MCの深度を調べる方法ですか。
確かにこの方法で調べられると思うのですが、
その深度に新たに別のMCが作られるとアウトですよね。。。
すいません、質問には含めてなかったんですがやりたい事では↑がありえてしまうのでorz

>>13
ありがとうございます。
色々試した結果、判定処理も負荷が余分にかかることなく実行できました。

回答いただいた方、ありがとうございました。
18Now_loading...774KB:2007/08/19(日) 12:10:22 ID:5SDHQgxV
>>14
ひとまず急に離した時に大きさが中途半端なのは以下のソースでなんとかなるかと
if (Iconflag == true) {
// 処理
} else {
this._alpha = this._xscale=this._yscale=80;
}
毎回設定してるからちょっと気持ち悪いけど・・・。

急に近づけた場合はon(RollOver)の実行タイミングだから
前見たく常に判定させるかくらいしか・・・

>>16
ifの判定はif(_quality == low)とかになると思う。
後、lowが文字型で文字入ってるならいいけど、
if(_quality == "HIGH")で文字比較する。
19Now_loading...774KB:2007/08/19(日) 12:35:34 ID:O2qXmHbE
>>18
御回答ありがとうございます。
==を使えばいいと分からなかったとき

if(_quality = "high")

と書いてみたら画質が高に固定されたから困った
20Now_loading...774KB:2007/08/19(日) 15:03:36 ID:awgMx+iC
前スレ982,985です(BSキーのキーコード)

「キーボードショートカットを無効」にチェック入を入れるにはどうすれば良いでしょうか?
Flash8では、 編集 → キーボードショートカット でそれらしきものが出ますが、そこから
先が分かりません。
21Now_loading...774KB:2007/08/19(日) 15:26:23 ID:9/7tACGE
x 1000 y 500 内のステージ上でマウス、カーソルの位置に合わせてオブジェクト(ボタンなど)のx位置が変化する、単純なマウスアクションを作りたいですけど。
x位置に制限をつけるやり方、どなたか教えてください。
例えばそのオブジェクトをステージの中央(例えば x 500)に配置して、マウス位置 x 0 (画面左ぎりぎり)の時はそのオブジェクトの x位置を400に、
反対に右いっぱい(マウス位置x1000)の時は x位置 600 という、400〜600までの制限をつけたいんですけど、どうAS書けばいいのか教えてください!
22Now_loading...774KB:2007/08/19(日) 15:39:14 ID:9a4wjjql
>>21
完全に算数的な動作ですなw
1000-0:600-400 = 1000:200 = 5:1
だから、マウスの座標とオブジェクトの座標を5:1の関係
で動かせば良いのでは?

つまり、マウスの移動量*0.2=オブジェクトの移動量 で、マウスの座標>1000
なら、オブジェクトの座標=オブジェクトの座標(繰り返し代入)とか
23Now_loading...774KB:2007/08/19(日) 15:53:16 ID:9/7tACGE
>>22
挑戦してみたんですが、なかなかうまく動かず↓
もしよければ具体的にどう書いたら、ちゃんと動くのか書いてもらえませんか?
すみませんずうずうしくて↓
24Now_loading...774KB:2007/08/19(日) 16:01:56 ID:yqPb+OKQ
>>23
数学の勉強をやり直すのをオススメするよ
まずは制限とか考えずに、とりあえず動くように作ってみたら?
25Now_loading...774KB:2007/08/19(日) 16:04:20 ID:9/7tACGE
>>24
ありがとうがざいます。
一応動かすことはできるんですが、今の書き方のままですと
一生カーソルに付いてくるので↓
なんとか制限を付けられないかなと。
すみませんド素人で。
26Now_loading...774KB:2007/08/19(日) 16:07:45 ID:9a4wjjql
>>25
どうしても駄目なら、FlaファイルごとUpしたら?
あと、いちいちAgeなくても良い。
27Now_loading...774KB:2007/08/19(日) 16:16:33 ID:57texW2D
>>20
ムービープレビューしたときのメニューのどこか。確か[制御]
28Now_loading...774KB:2007/08/19(日) 16:22:27 ID:9/7tACGE
>>26
“マウスの座標とオブジェクトの座標を5:1の関係
で動かせば良いのでは”
大変失礼ですが、具体的に書いてもらえないでしょうか?
29Now_loading...774KB:2007/08/19(日) 16:25:15 ID:vAyQy28C
大物が来たなw
30Now_loading...774KB:2007/08/19(日) 16:29:10 ID:dkUFB5nF
>>28
マウスの座標をとれてるなら、x座標なら
(オブジェクト)._x = 400 + (マウスのx座標)/5;
でいいんじゃないのー?
31Now_loading...774KB:2007/08/19(日) 16:30:25 ID:a77o6odo
>>27
ありがとうございます。BSのキーコード確認できました。
ちなみに、これでEnterキーも確認できまた。
32Now_loading...774KB:2007/08/19(日) 16:32:08 ID:9/7tACGE
>>30
きた.com
33Now_loading...774KB:2007/08/19(日) 16:38:53 ID: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);

を使うと、単に指定した区間がハイライトされた状態になります。
どうしたら良いでしょうか?
34Now_loading...774KB:2007/08/19(日) 16:54:34 ID:wUCJhVh1
text1_ins.setTextFormat(text1_fmt, 5, 10);とか
35Now_loading...774KB:2007/08/19(日) 17:03:30 ID:wUCJhVh1
あ、2.0なら引数のフォーマットとインデックス逆かも
36Now_loading...774KB:2007/08/19(日) 17:12:57 ID:LNQddBb7
>>35
有り難うございます。やっぱフォーマットが後ろで、
text1_ins.setTextFormat(5, 10, text1_fmt);
でOKでした。
37Now_loading...774KB:2007/08/19(日) 19:41:30 ID: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
とすると、閉ループに入ったようになり終了しません。
どうしたら良いでしょうか?
38Now_loading...774KB:2007/08/19(日) 20:39:57 ID:MLctj2zj
>>37
if文の中にはいってきてんの?
3937:2007/08/19(日) 21:32:32 ID:LNQddBb7
>>38
そうです。
if (fmtPo2>500) {
break;
}

if (fmtPo2>txt2_len) {
break;
}
になりました。
今まで、変数の大小で判定した際にこんなことは無かったのですが・・・
406:2007/08/19(日) 21:48:01 ID:xj1FghBM
今日一日いろいろやってみまして空ボタンに
on (rollOver) {
//省略
}
で変数を取得させてenterFrameを一時停止させる方法に
おかげさまで目処が立ちました。
>>14でのぎこちなく動く。という原因は収縮するmcの中にネストしていた
ボタンのせいで空mcのエリアに穴が出来、そのため空mcがrolloutと
判断してenterFrameを一時停止させていたためでした。
対応として、ボタンに
on (rollOver) {
  Iconflag = true;
}
を追加して、ボタンのエリアも変数flag取得エリアとすることで、
多少、スマートではないものの、CPU稼働率を80%からエリア外にマウスがある時には
4%にまで落とすことが出来ました。

いろいろとアドバイスありがとうございました。
41Now_loading...774KB:2007/08/19(日) 21:57:10 ID:MLctj2zj
>>39
fmtPo2>txt2_lenがtrueと評価されているなら
breakされるから無限ループにはならない。
4237:2007/08/19(日) 23:52:32 ID: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を引いた数以上で判定させました。
43Now_loading...774KB:2007/08/20(月) 06:32:33 ID:qNinbgOq
ActionScript3.0はJavaに似てる、って聞いて飛んできたのですが
JavaアプレットをActionScriptにすぐ移植できるぐらいなんでしょうか?
C++ → Javaアプレットへの移植ぐらいだと助かるんですが。
44Now_loading...774KB:2007/08/20(月) 06:45:58 ID:Uasgpnme
JavaとAs3.0の両方に精通していれば楽に移植できるでしょう
どちらも中途半端な場合は悲惨な結果になるでしょう
45Now_loading...774KB:2007/08/20(月) 06:51:03 ID:qNinbgOq
>>44
ありがとうございます!
希望が出てきたので本格的にActionScript勉強してみます
やっとアプレットから逃げ出せそうな予感が
46Now_loading...774KB:2007/08/20(月) 11:18:59 ID:IGoV6Jt8
単純なものなら Java→AS2でも割と簡単に移植できるよ。
47Now_loading...774KB:2007/08/20(月) 11:24:09 ID:XQnOjEb+
>>45
でもJava程柔軟かって言われるとそうでもないから、かなりの確率でがっかりすると思う
48Now_loading...774KB:2007/08/20(月) 22:34:23 ID: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のパスのせいだと思うのですが。
49Now_loading...774KB:2007/08/20(月) 23:41:31 ID:Uasgpnme
>>48
拾ってきたのか書籍のサンプルのかわからんが、完成されている
ソースの一部分をコピペされてどうなのと言われても困る
50Now_loading...774KB:2007/08/21(火) 00:16:48 ID:R9e+YG2d
ActionScriptで同じディレクトリのテキストファイルは読み込めるようですが
バイナリファイルも読み込めるんでしょうか?
51Now_loading...774KB:2007/08/21(火) 04:32:57 ID:R9e+YG2d
色々調べてURLStreamでreadByte、readIntなどを使って読み込んでいけることが
分かりましたが、読み込むことができるファイルがSWF、TXT、GIFなど限られている
ようなので、例えばJPGにデータを詰め込んでおく・・・とか?
52Now_loading...774KB:2007/08/21(火) 06:50:15 ID:np2L7+ij
日本語でおk
53Now_loading...774KB:2007/08/21(火) 10:38:02 ID:eQMxDHhK
フレームアクションの変数を、シンボルにリンケージしたクラスから参照するのってどうやるの?
_root
nt=10;

.as
class myClass{
function myClass(){
trace(nt);
}}
54Now_loading...774KB:2007/08/21(火) 11:33:52 ID:7HCVWyPt
_rootに書いたなら_root.ntじゃね?
55Now_loading...774KB:2007/08/21(火) 15:28:12 ID:ERTsYJLH
>>50
一番手っ取り早いのは loadVariables() を使う方法。
「Flash MX ActionScript 実践技&ウラ技大全」(C&R研究所)ナツメ社 p144
「Flash ActionScript 逆引き大全550」(ITフロンティア 著)秀和システム p132
56Now_loading...774KB:2007/08/21(火) 21:06:07 ID:R9e+YG2d
>>55
ありがとうございます!
さっそく逆引き大全を買ってみます
57Now_loading...774KB:2007/08/23(木) 01:49:09 ID:eoOlJ0cq
fuse kit の勉強がしたいのですが
詳しく解説しているサイトか書籍はありませんか?
58Now_loading...774KB:2007/08/23(木) 07:06:18 ID:lEsqcOve
FLVファイルからデータベース接続って可能ですか?
外部ファイルを読み込ませてつかっていたのですが
外部ファイルの更新頻度が高いのでDB化したいのですが・・・
59Now_loading...774KB:2007/08/23(木) 18:12:42 ID:ItKCb7FJ
>>58
FLVはビデオファイルなので無理
swfからならphpやcgiを介せば可能
6058:2007/08/23(木) 19:30:51 ID:lEsqcOve
あ。。swfからです。。。汁
できるのですねーありがとうございました!
61Now_loading...774KB:2007/08/23(木) 19:38:27 ID:xQJLCoy/
しる?
62Now_loading...774KB:2007/08/23(木) 19:50:41 ID:lEsqcOve
× 汁
○ 汗
63Now_loading...774KB:2007/08/24(金) 12:05:56 ID:uesSMLIk
onClipEvent(load){
Mouse.hide();
this.startDrag(true);
}

上記をイベントハンドラメゾットで記述する場合はどうするのでしょうか?

_root.pointer.load=function(){
Mouse.hide();
_root.pointer.startDrag(true);
}

としてみましたがダメでした・・・。
64Now_loading...774KB:2007/08/24(金) 12:18:31 ID:vW2YLMXV
質問です。
SWFからASを抽出できるソフトってあるんですか?
あったら教えてください。宜しくお願いします。
65Now_loading...774KB:2007/08/24(金) 12:50:03 ID:MMRc6Rmv
>>63
インスタンスにpointerってのがあるの?
それなら、ターゲットパス一覧にも有りそうだが。
66Now_loading...774KB:2007/08/24(金) 15:43:52 ID: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();
}

どうしたら良いでしょうか?
67Now_loading...774KB:2007/08/24(金) 15:47:17 ID:KbsGqjNP
>>66
親MCっていうのは、あらかじめタイムラインにおいてあるムービークリップ?
それとも、attachMovieとかでスクリプトから追加したムービークリップ?
前者だとしたら、それだと消えないと思うよ。
68Now_loading...774KB:2007/08/24(金) 15:48:58 ID: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のように出力されるのですが・・・
これは何が原因だと考えられるのでしょうか?
69Now_loading...774KB:2007/08/24(金) 15:53:25 ID:q4uBGDUr
>>67
レス有り難うございます。
設定は前者の方です。ということは消えませんね・・・・ 別の方法を探します。
70Now_loading...774KB:2007/08/24(金) 16:10:12 ID:7VdQ4Kxu
>>68
loadした時にはまだenterFrameのイベントは実行されてないからでは?
loadをenterFrameにしてtrace()結果の2行目以降に値が表示されるなら、そうだと思う。
71Now_loading...774KB:2007/08/24(金) 16:20:29 ID:1OwmfRka
>>68
onClipEvent(enterFrame){
   hour = dateobj.getHours();
trace("hour= "+hour);//確認用
}
一杯出てくるけどw
72Now_loading...774KB:2007/08/24(金) 16:41:32 ID:7hCp+LC2
>>70
ありがとうございます。
trace()を繰り返してみると、2行目以降に値が表示されました。
同じフレームでの実行だったので、どうやらmyMCの方が先に実行されてたようです・・・。

他のプログラミング言語でいう、Sleep()とかwait()みたいな関数って用意されてないのでしょうか?
73Now_loading...774KB:2007/08/24(金) 17:37:31 ID:4NYpyoJF
>>69
depthが1以上なら消えるはず。attachしてもdepthが1以下なら消えないはず。
7469:2007/08/24(金) 18:28:02 ID:MJ2AZXwL
>>73
有り難うございます。消えました。
75Now_loading...774KB:2007/08/24(金) 22:05:24 ID:bFIOJMpP
サウンド(ボタンアクション)について質問です。

ボタンアクション(再生ボタン)

on(release){
SoundA.stop();
SoundA = new Sound(_root);
SoundA.attachSound("AAA");
SoundA.start();
}

//ライブラリ内のサウンド(識別子"AAA")

このScriptの書き方ですと、再生ボタンを押すとサウンドの重複は回避できますが
再生ボタンを押すたびにサウンドの頭からスタートしてしまいます。
出来れば、再生中は再生ボタンを押しても反応しない(無効)書き方にしたいんですが。
停止ボタンを押すことによって再び再生ボタンのアクションを有効にするやり方を教えてください。
76Now_loading...774KB:2007/08/24(金) 23:42:50 ID:JML/IxYr
>>75
Sound.onSoundComplete = function(){
再生するフラグ = true;
}
77Now_loading...774KB:2007/08/24(金) 23:53:36 ID:gMg4Xk8A
>>75
いちいちattachしないでstopとplayだけしてればいいんじゃないの。
78Now_loading...774KB:2007/08/24(金) 23:56:30 ID:S+yTP2Up
>>76
さっそくの回答ありがとうございました。
これをどこに記述すればいいのですか?あとフラグとはなんですか?
すみません素人で。
79Now_loading...774KB:2007/08/25(土) 00:08:33 ID:hE6Fefjg
>>78
真面目かつ良識的にに書くと、flagとはif文などで
勃起(準備OK) = true 
萎縮(今はダメなの) = false
80Now_loading...774KB:2007/08/25(土) 00:15:52 ID:fQZyWmzZ
>>78
どこに書くかはプログラム全体を見ないとわからない。
81Now_loading...774KB:2007/08/25(土) 00:23:11 ID:WMOJ/8D9
>>77
ご回答ありがとうございます。
もしよろしければ、一時停止ボタンの作成を教えていただたけませんか?
82Now_loading...774KB:2007/08/25(土) 02:32:03 ID:fQZyWmzZ
>>81
//再生再開
on(release){
SoundA.start(SoundA.position/1000, 0)
}

//停止
on(release){
SoundA.stop()
}
83Now_loading...774KB:2007/08/25(土) 09:27:48 ID:jah+z/np
JavaからActionScriptに移ってきてJavaに似てるって喜んでたんですが、
もしかしてActionScriptでは画面の部分更新(領域を指定して画面に転送)は
できないんでしょうか?
addChildの処理は重いみたいなので画面サイズのスプライトの中で処理して
部分更新なんて考えてたんですが無理なのかな・・・。
84Now_loading...774KB:2007/08/25(土) 09:30:08 ID:dAihp5hQ
スプライトって何?
85Now_loading...774KB:2007/08/25(土) 09:52:50 ID:Me+/y7tq
paraflaかも
86Now_loading...774KB:2007/08/25(土) 09:55:58 ID:aSG+OSFh
>>83
画面サイズのBitmapData用意してそれを直接書き変えれば?
というか、addChildで重いって、どんな物を作りたいの?
87Now_loading...774KB:2007/08/25(土) 09:59:03 ID:5jsZChmw
>>83
ムービープレビューで右クリ、再描画領域を表示をしてみそ
88Now_loading...774KB:2007/08/25(土) 10:58:46 ID:yP6Bwp/a
>>84
Sprite AS3.0で使うクラス

>>83
毎回グラフィック用のSpriteを作ってaddChildしてるとか?
うろ覚えだがENTER_FRAMEのイベントで
Spriteの中のオブジェクト(RectとかCircle)を操作したら勝手に部分再描画になったような。
89Now_loading...774KB:2007/08/25(土) 11:28:41 ID:hM6+qsn1
>>83
ビットマップの話なのかベクターなのかはっきりしてから質問した方がいい。
90Now_loading...774KB:2007/08/25(土) 14:08:12 ID:LbNq99D/
MCが、0〜30フレームまでの間でrollout時に、逆再生させたいのですがわかりません。
9183:2007/08/25(土) 14:31:11 ID:jah+z/np
すみません、明らかに勉強不足のようなので出直します。
addChildでかなり時間がかかるという記事を見たので、部分更新が出来る
か気になって質問してしまいました。

>>86さんの書き込みを見て希望が出てきたので、まずはしっかり勉強します。
92Now_loading...774KB:2007/08/25(土) 14:35:43 ID:dAihp5hQ
>90
mc.onRollOver = function() {
this.onEnterFrame = function() {
this.prevFrame();
}}
これを基本にいじってみる
93Now_loading...774KB:2007/08/25(土) 21:38:51 ID:LRHJXgIf
>>91
希望が出てきたというか、>>87>>88の言ってることが全てだとオモ
レイヤー構造と、全てのオブジェクトが固有のタイムラインを持てることを知ればいい
94Now_loading...774KB:2007/08/26(日) 00:11:54 ID:J2+eBKoQ
>>93
でも>>91の言うこともなんとなく分かる。
AS3.0始めた頃は
「SpriteにDrawして書く」
「MovieClipをClassにしてattachMovieみたいに使う」
「JCanvas使ってJavaみたく描画メソッド作る」
くらいの3パターン、どれがいいのか・・・と迷ったもんだ。
今でも処理効率で言えばどれが一番なのか分からんしね。
再描画領域指定できそうな3つ目かなと思ってたりするけど・・・
一度テストしてみようかと思った。雑談すまそ。
95Now_loading...774KB:2007/08/26(日) 01:00:34 ID:y5uVf7Gu
その3つの選択肢なら使い分け用途がかなりはっきりしてるから迷うまでもない。
ビットマップなんていつでもコンバートできるんだから処理によって変換すりゃいいし。
96Now_loading...774KB:2007/08/26(日) 10:59:10 ID:1nX11mtB
>>95
速度は?
97Now_loading...774KB:2007/08/26(日) 16:47:37 ID: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]));
}
98Now_loading...774KB:2007/08/26(日) 17:55:04 ID:E9ow17w7
>>97
他の関数に渡すとかいう時点で、可変長引数使う意味ないだろw
99Now_loading...774KB:2007/08/26(日) 18:56:54 ID:VDOPw4zH
Fla6 AS1.0書き出しです。
ムービークリップをドラッグして投げられ、マウスを放すとだんだん減速して止まるようなスクリプトを書いています。

そこで問題です:
ものすごい速さでマウスをドラッグしてリリースするとstopDragが効かず、MCがマウスに張り付いたままになってしまう。
かといってreleaseのほかにonDragOutも付けるとものすごい速さでマウスを動かすとdragOutが反応してしまい
マウスを離さなくても飛んでいってしまう。

MCに書いているスクリプトは下記です。
100Now_loading...774KB:2007/08/26(日) 18:57:41 ID: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;
}
}
101Now_loading...774KB:2007/08/26(日) 18:59:13 ID:VDOPw4zH
改行が多くてERRORになるので分割しつれいします。
statは現在の状態を示す変数で、0のときは何もしていないかドラッグ中、
1の時は惰性で飛んでいる状態を示しています。
102Now_loading...774KB:2007/08/26(日) 19:06:29 ID:V6E00enf
一定間隔でマウスボタンが押されているかどうかを判定すればいいんじゃね?
10399:2007/08/26(日) 20:04:06 ID:VDOPw4zH
>>102
なるほど。。。

マウスに追随する透明のMCをつくってそれがhitしてるか
enterFrameで判定してやってみます。
10499:2007/08/26(日) 20:28:56 ID:VDOPw4zH
むー。うまくいきません。
領域外に出たとき「マウスが押されていない」というのをどう判定すればいいものか。。。
10599:2007/08/26(日) 20:59:14 ID:VDOPw4zH
ttp://www.mother.co.jp/04_recruiting/diary/

このサイトなんですが、なんでブラウザ枠からカーソルが出ているのに
ドラッグが継続されるんでしょうか?
startDragでMCをドラッグした場合、ブラウザからはみ出たらMCが固まっちゃいますよね?
そもそもstartDragを使わない方法なんでしょうか・・・
106Now_loading...774KB:2007/08/26(日) 21:03:54 ID:1nX11mtB
>>98
printf()系に渡すんなら意味があるんじゃないか?
C言語ならva_listを使うんだけど。AS3でどうやるかは知らん、すまん。
107Now_loading...774KB:2007/08/26(日) 21:17:30 ID:YaiKwi7D
>>99
話もどしてしまうけど。。。
>releaseのほかにonDragOutも付けると
releaseOutsideは試した?どちらかというとこっちじゃないか?
10899:2007/08/27(月) 00:01:42 ID:/tJVCQPd
>>107
releaseOutsideなんてあったんですね・・・
超基本的なことでしたね。解決しました!ありがとうございます!
109Now_loading...774KB:2007/08/27(月) 19:52:03 ID:+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 の参照を使用して呼び出しました。

エラー内容がいまいちピン来ず、ヘルプを呼んでも直せませんでした。
間違いのある箇所を指摘していただきたいです。
110Now_loading...774KB:2007/08/27(月) 19:52:53 ID:+KoBV6ub
追記

実行方法は
B.test1() B.test2()を実行しました。
111Now_loading...774KB:2007/08/27(月) 20:35:46 ID:/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 が返ってきます。
112Now_loading...774KB:2007/08/27(月) 20:37:10 ID:pACmOEd0
classBに
static function test1(){
 A.test1()
}
がないとエラーになんじゃないかなそれは。
113Now_loading...774KB:2007/08/27(月) 20:41:29 ID:pACmOEd0
>>111
moviecliploaderのonloadinitをヘルプで調べるんだ
読み込み開始後すぐにはそ見込み後のサイズは取得できないはず
114Now_loading...774KB:2007/08/27(月) 21:03:03 ID:+KoBV6ub
>>112
継承してもBからはAの静的関数は実行できない仕様、と捉えて良いのでしょうか

AS2.0と同じように扱えると思っていました、解答ありがとうございます。
115111:2007/08/27(月) 21:13:41 ID:/CIW+tvt
>>113
早速のレス有り難うございます。ヘルプを読み、ましたが
「ロード対象クリップの先頭フレーム上のアクションが
実行されたときに呼び出されます。」

の意味が分かりません。別の表現だとどうなるのでしょうか?
116Now_loading...774KB:2007/08/27(月) 21:21:13 ID:pACmOEd0
>>115
「完全に外部ムービーが読み込まれ、画面に表示され、幅や高さなどをスクリプトから取得できる
準備ができたら、このイベントハンドラに指定しておいた処理が実行されます。」ってこと。
つまり、このイベントが起きる前に幅や高さを取得しようとしても、まだ読込中なのでundefinedになるってこと。
イベントハンドラって何?ってのはがんばって勉強してくれ、としか言えない。
117111&115:2007/08/27(月) 21:22:57 ID:/CIW+tvt
>>116
さんきゅうです。引き続き、やってみます。
とりあえず、画像は表示されます。
118111&115:2007/08/27(月) 22:11:29 ID:/CIW+tvt
(連投すいません)
MC:stageMのイベントハンドラとして
this.onLoadInit = function() {
trace("-OK-");
};

を書きました。JPGの読み込みが終了したら出る筈なのですが、
5秒位待っても -OK- が出ません。
119Now_loading...774KB:2007/08/27(月) 22:23:15 ID:AajI9Cl/
>>118
onLoadInitはMovieClipLoaderクラスのリスナーだから
そのASでは何秒待っても-OK-はでません。
ヘルプでMovieClipLoaderを調べるんだ。そしたら例が載ってるから。
120Now_loading...774KB:2007/08/28(火) 00:10:30 ID:LKGdZc2X
121111&115:2007/08/28(火) 01:16:14 ID:erJeZUhX
>>119
度々ありがとうございます。
ヘルプと本を見てrootのイベントハンドラとして下の様に書きました。

myJpg = new MovieClipLoader();
mcListner = new Object();
mcListner.onLoadInit = function(stageM) {
trace("-OK-");
};
myJpg.addListener(mcListner);

相変わらず画像は出ますが、まだOKが出ません。
重ね重ね申し訳ありません。間違いをご指摘願います。
122Now_loading...774KB:2007/08/28(火) 01:35:20 ID:hlBUaXHU
>>121
画像を読み込みたかったんじゃないの?そのASは何を読み込んでるの?
ヘルプに載ってる例をまるまるコピーすればいいと思うんだけど。
あと試すときはローカルじゃなくてweb上でね。
123Now_loading...774KB:2007/08/28(火) 01:38:13 ID:hlBUaXHU
>>121
あ、ごめん画像は出んだ。
web上で試すときはtrace()使えないからテキストフィールドとかに出力。
124111&115:2007/08/28(火) 02:48:43 ID: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が出ない。

改めて、問題点のご指摘を願います。
125Now_loading...774KB:2007/08/28(火) 03:08:18 ID:hlBUaXHU
>>124
myJpg.loadClipが無いんじゃない?
試すときはローカルじゃなくてweb上で。
126111&115&124:2007/08/28(火) 04:01:21 ID: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
の横幅が得られました。

重ねて御礼申し上げます。
127Now_loading...774KB:2007/08/28(火) 14:24:19 ID: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を複製できるのでしょうか。
128Now_loading...774KB:2007/08/28(火) 18:08:07 ID:Dv9/WtcH
>>127
_rootにsubMCがない
MCにsubMCという名前がついていない(プロパティ)
生成するMCの名前が同じ

気になるのはこんなところ。
129Now_loading...774KB:2007/08/28(火) 23:10:41 ID: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);
130Now_loading...774KB:2007/08/29(水) 12:16:15 ID:UEebW6WD
AS初心者ですが質問させてください
WinXP,FlashMX2004使ってます

ゲームを作っていて、LANで繋がれたパソコン同士でハイスコアを表示させたいと思っています。
loadVariablesでテキストファイルから変数を読み込んで、(hscore=1000のように)
それをhiscore=parseFloat(hscore); で変換するとhiscore=NaNになってしまいます。
変数のリストアップをするとhscore="1000"は読み込めています。
恐らく面倒なことをやっているような気がするのですが、
何かいい方法は無いでしょうか?
お願いします。
131130:2007/08/29(水) 12:19:35 ID:UEebW6WD
連投すいません。訂正でパソコン同士ではなくてローカルサーバーに繋がっています
132Now_loading...774KB:2007/08/29(水) 12:32:39 ID:si3eNAOb
>>130
Flash単体では書き出しが出来ないので、CGI(PHPとか)をLoadVarsで使って、
サーバーのテキストファイルに書き出し、読み込みをする。
133Now_loading...774KB:2007/08/29(水) 13:07:53 ID:Vvfpu2qg
>>130
スコアが整数のみなら、
hiscore=Number(hscore);
でもいいと思うけど。
ただ、parseFloat関数でも
hscoreに"1000"が入ってれば数値に変換されるはずだから、
関数呼び出し位置に問題があるような気がする。

試しにテキストの内容に関わらず、parseFloat関数呼び出す直前で
hscore="1234";
hiscore=parseFloat(hscore);
とhscoreに直接文字列突っ込んだ後parseFloatするなりして、その結果を見てみたら?
134Now_loading...774KB:2007/08/29(水) 18:59:09 ID:ryuPbw4d
厨房みたいな質問で悪いんだが、ホンキで気になったので質問させてほしい

ニコニコ動画のコメントのID割り出しツールがあるけど、あれって一体どういう仕組み・・・?
コメントCSVやチャットサーバからのレスポンスに、実はIDも記述されてて、
それを取得するような改造版FLVPlayerを、標準Playerとすり替えてUIにしてるのかな?

予想で構わないので何かレスポンス希望
135Now_loading...774KB:2007/08/29(水) 19:05:28 ID:2eY6RUaR
超能力に米俵一票
136Now_loading...774KB:2007/08/29(水) 19:45:13 ID:I2MUZift
>134
IDも送ってくんだよ。ツールに解説あるんじゃね?
137Now_loading...774KB:2007/08/29(水) 20:15:57 ID:lfB2oEQ3
すいません、ひとつ質問させてください。

AS3.0で、Javaサーバーとソケット通信するFlashを作成していて、確立するためのポリシーファイルについて質問です。

function start_connect(address,port) {
Security.loadPolicyFile("xmlsocket://" + address + ":" + port);
socket.connect(address,port);
}

上記の様なコードの時、loadPolicyFileでポリシーファイルを受け取る前に.connectメソッドが動いてしまいそうなのですが、大丈夫なのでしょうか?
loadPolicyFileの戻り値も無いみたいですし・・・。

138130:2007/08/29(水) 20:35:09 ID:UEebW6WD
>>132 >>133
レス遅れてしまいましたが答えて下さりありがとうございます!
まず133の方法で試してみたのですがNumberでもだめでした。NaN
直前に hscore="1234"; を入れてみると1234になったのですが
同じ位置に試しにparseFloat入れてもダメでした…

そこで132さんのCGIについて調べてみた所、それっぽい記述があったので
CGI全く触ったことありませんが、ちょっとがんばってみます。
どこかにサンプルがあればそれを参考にしようと思います。

ありがとうございました
139Now_loading...774KB:2007/08/29(水) 22:06:31 ID:ryuPbw4d
>>137
ポリシーファイル系の処理はLoader系と違って完了するまで優先的に処理されるから大丈夫
140Now_loading...774KB:2007/08/30(木) 00:00:23 ID:obah/Nnl
>>139

なるほど、安心しました。
どうもありがとう!

ネット対戦ゲーム作ってる人って自分以外にこのスレでいますかな。
141Now_loading...774KB:2007/08/30(木) 01:38:51 ID:F5vZDKIg
>>140
むしろ、ゲー製板があるがな。
http://pc11.2ch.net/gamedev/
142Now_loading...774KB:2007/08/30(木) 01:45:37 ID:g1hvaqqN
>>141
その板のFLASH系もう過疎ってだめぽ
143Now_loading...774KB:2007/08/30(木) 13:22:29 ID:ljrzh0lg
FlashCS3 AS3

クラスから
stage.addEventListener(KeyboardEvent.KEY_UP, keyCheck);
とかするとstageがnullとかエラーが出てしまいます。

stageなしだとフォーカスが必要とのことですが、
"マウスクリックしてフォーカス"とかなしで
キー入力対応させるにはどうしたらよいですか?
144Now_loading...774KB:2007/08/30(木) 14:06:05 ID:fxDqXm13
意味がよくわからんけど、stageプロパティ使いたいならそのクラスに
DisplayObject含むクラス継承させときゃいいんじゃね?
145Now_loading...774KB:2007/08/30(木) 14:07:55 ID:fxDqXm13
あと、ムービーにフォーカスが無い時のキーボードイベント拾う事は不可能。
それできたらパスワードの入力の時とかにキーのログ拾われるから禁止になった。
146Now_loading...774KB:2007/08/30(木) 14:35:40 ID: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);とかにしても同じでした。
147Now_loading...774KB:2007/08/30(木) 15:06:42 ID:udV3bP6I
そもそもそのクラスは何を継承してるの?
148Now_loading...774KB:2007/08/30(木) 15:32:11 ID: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();
}
}
}
149Now_loading...774KB:2007/08/30(木) 15:33:20 ID:fxDqXm13
うごかすにはこんなじゃね?

var t=new TimePanel()
addChild(t)
t.setEvent()
ようするに、stageまで辿りたいなら表示リストに乗っけないと駄目なんでない?
150Now_loading...774KB:2007/08/30(木) 15:36:42 ID:fxDqXm13
あとは、FlashCS3だったらドキュメントクラスにしときゃ、stageで確実にStage拾えるんじゃね?
151Now_loading...774KB:2007/08/30(木) 16:09:44 ID:ljrzh0lg
>>148-150
これの追加でいけました!ありがとうございます。

stopwatch.setEvent();

public function setEvent() {
if (stage) {
trace("画面に追加されてます");
stage.addEventListener(KeyboardEvent.KEY_UP, keyCheck);
} else {
trace("画面に追加されてません");
}
}
152Now_loading...774KB:2007/08/30(木) 16:19:13 ID:zj2bgIKw
FLASHでflvファイルを消音状態で表示したいと思い、ググッてみたらこの情報を見つけたのですが
ttp://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=1195&forum=8

>MovieClip.attachAudio()メソッドを使って、音源のNetStreamインスタンスを、コントロール対象のMovieClipに接続する必要があります。
> // サウンドコントロールの対象にするMovieClipをmy_mcとした場合
> var my_sound:Sound = new Sound(my_mc);

の辺りがよく分かりません、new Soundのカッコ指定用にストリーミングビデオをMCシンボルに変換が必要?
と思い、ビデオをmy_mcにシンボル変換してみましたが、やはり音は消えませんでした
現状ではムービーは普通に再生されますが、消音できてない状態です
因みにrootの階層にストリーミング形式のmy_videoを配置しています
どなたらアドバイスをお願いします・・・
153Now_loading...774KB:2007/08/30(木) 16:19:16 ID:upfWoDgo
ずっとhtml+JSは書いていて、
最近フラッシュを始めました。
質問ですが、ASでは、

(function(){ trace("asdf") })()

と書いても動かないものなのでしょうか?
環境は、Flash8Pro + MacOSX です。
よろしくお願いします。
154Now_loading...774KB:2007/08/30(木) 16:50:12 ID:udV3bP6I
>>152
変換じゃなくて適当なMCが必要なだけだから空のMC作って指定してあげれば
いいだけ。
155Now_loading...774KB:2007/08/30(木) 16:58:02 ID:zj2bgIKw
>>154
消音されるようになりました!どうもありがとうございます!
156Now_loading...774KB:2007/08/30(木) 17:09:12 ID:fxDqXm13
>>153
8(AS2.0)だとそれは動かなかった気がする。
いまCS3(AS3.0)で試したら動いた。
157153:2007/08/30(木) 17:44:40 ID:upfWoDgo
>>156
ありがとうございました。
うpでーたん買いに行ってきます!
(((;;;:: ;: ;;          ;; ;:;::)) ::)
   ( ::: (;;   ∧_,∧   );:;;;)) )::: :; :))
    ((:: :;;  (´・ω・)っ;;;; ; :))
     ((;;;  (っ ,r どどどど
ど・・・・・
          i_ノ┘
158Now_loading...774KB:2007/08/31(金) 00:27:00 ID: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でパブリッシュ中に不具合でもあるのでしょうか。
159158:2007/08/31(金) 00:44:58 ID:zmW3hsvO
すいません、Zキーを押すと拡大ツールになるみたいでした。

キーボードのショートカットをオフにしたら反応しました。
しかし、キー全部使うような場合はどうするんでしょう・・・全部オフにするのかな。
160Now_loading...774KB:2007/08/31(金) 01:23:20 ID:3OIPOoFY
>159
糞仕様です。プレビューでショートカットの無効を試してください
この回答で問題は解決しましたか?
161158:2007/08/31(金) 07:59:21 ID:zmW3hsvO
>>160
回答ありがとうございます
ツールのキーショートカットを全部削除したものを作りました。

その質問に「はい、解決しました」を選べた試しがないです(笑)
162Now_loading...774KB:2007/08/31(金) 15:08:43 ID: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);//これが無いとテキストフォーマットが解除されてしまう

質問の仕方が下手で申し訳ない・・・
163Now_loading...774KB:2007/08/31(金) 15:12:45 ID:xAIasgsE
setNewTextFormat
164Now_loading...774KB:2007/08/31(金) 15:17:26 ID:bEb8PNaZ
素早い回答ありがとうございます!
試してみましたがこれでかなり処理が軽くなりそうです
165Now_loading...774KB:2007/08/31(金) 16:00:46 ID:hscyW3hW
CS3 AS3で作ってるんですが
Timerで3分のカウントダウンタイマーを作ってるんですが
OSの時計より5秒も遅れてしまいます。
これって普通なんでしょうか?
166Now_loading...774KB:2007/08/31(金) 16:31:25 ID:hyV6m2mV
>>165
タイマー開始は、ボタンのon(press)/on(release)で動作?
on(press)なら押した瞬間からだからね。
1分や10秒のタイマーも試した?

マシンのパワーによっては動作(反応)が遅くなることがあるけど。
167Now_loading...774KB:2007/08/31(金) 17:28:05 ID:Zygq0bfq
もしかして1秒たったら+1するイベントを実行していたりして。
168Now_loading...774KB:2007/08/31(金) 17:39:16 ID: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);
}
169Now_loading...774KB:2007/08/31(金) 17:40:00 ID: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);
}

です。
170Now_loading...774KB:2007/08/31(金) 18:42:39 ID:xAIasgsE
>>168
currentCountはハンドラが呼ばれた回数だから、それを時間計算につかうのはどうかと。
秒以下なりの端数の丸めが生じるから、表示が秒単位ならずれは1秒のずれは出る。
timerをストップするタイミングとスタートするタイミングでもずれは生じるよね。
171Now_loading...774KB:2007/08/31(金) 18:49:54 ID: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が許すまで気にならないレベルに落とせば良いと思う。
172Now_loading...774KB:2007/08/31(金) 23:08:28 ID: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;
}

としても、解決できませんでした。
どうすれば、別フォルダにあるクラスを利用することができるのでしょうか?
173Now_loading...774KB:2007/09/01(土) 02:37:23 ID:fOe1T35u
FLASH5使ってます
ムービークリップのアクションに記述した変数の中身を
別のフレームのムービークリップやフレームのアクションから
読み込みたいのですが、可能ですか
174Now_loading...774KB:2007/09/01(土) 07:00:10 ID:8k8KBU5/
>>172

パブリッシュ設定画面でActionScriptのバージョンリストの横にある設定、
そこでクラスフォルダを指定できる場所があると思うからそこに
MCControlとManagementフォルダパスを指定すればいける、かも。
175Now_loading...774KB:2007/09/01(土) 11:10:06 ID:lM5AHOi+
>>172
パッケージとして使うなら class MCControl.Cursor {
176Now_loading...774KB:2007/09/01(土) 12:30:56 ID:+bO+o6yA
>>173
パスを使う。例えば、MC名がxxxで変数がyyyなら、
絶対パスでは、_root.xxx.yyy
177172:2007/09/01(土) 12:48:19 ID:or8PVano
ご解答ありがとうございます。

>174
相対パス指定、絶対パス指定の両方をためしたのですが、状況は
変わりませんでした。

>175
class MCControl.Cursor {
var condition:Condition;
}
としてみたのですが、状況は変わりませんでした。
また、念のため

class MCControl.Cursor {
var condition:Management.Condition;
}
および、Condition.asを
class Management.Condition{
//処理
}
として試してみたのですが、同様に状況は変わりませんでした。

なお、エラーは「シンタックスチェック」ボタンを押したさいに出ます。
FLA精製時には、エラーメッセージは出ません。
※クラスファイルで別クラス読み込むさい、「../」といった方法あればいいのですが……
178Now_loading...774KB:2007/09/01(土) 12:57:01 ID:5nF/Lifr
>>177
環境設定のクラスパスに追加汁
179172:2007/09/01(土) 13:17:41 ID: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{
//処理
}
です。
180Now_loading...774KB:2007/09/01(土) 13:36:28 ID:lM5AHOi+
クラスパス追加するからエラーがでるんだろ。
追加するのはクラスのルートディレクトリだけな。でコンパイルするときはASO
削除してから。
181Now_loading...774KB:2007/09/01(土) 13:47:57 ID:+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ファイルが増えることを想定して、ディレクトリ名で管理したいと思っています。
182172:2007/09/01(土) 14:05:18 ID:or8PVano
ご解答ありがとうございます。

>180
ルートディレクトリを「フルパスで」設定したところ、エラーが出ずに
無事表示されました。ありがとうございました。

ただ、一つ疑問なのですが、環境設定ではすでに
クラスパスとして「.」が登録されていました。
これは、FLAファイルがおかれているディレクトリを指すのだと
思うのですが、なぜ改めてフルパスで指定しなければ
うまく動かなかったのでしょうか?

※今後、複数のFLAファイルを作っていく際に、「そのFLAのある
 ディレクトリがクラスのルート」という指定ができてくれれば
 編集のたびにいちいち環境設定を変更しなくても良くなるのですが……。
183Now_loading...774KB:2007/09/01(土) 14:44:20 ID:/szJRb7p
>>182
ファイルからの相対パスじゃなくて
実行プログラムからの相対パスだからじゃね?
よく知らんけど
184172:2007/09/01(土) 15:09:44 ID:or8PVano
ご回答ありがとうございます。

>183
私は実行ファイルを「appli」フォルダに入れていたので、そこからの
相対パス「..\」をクラスパスに設定したところ、問題なく動作いたしました。
ありがとうございました。

>172からの質問は、これにて終了いたします。
皆様、本当にありがとうございました。
185158:2007/09/01(土) 15:20:03 ID:e1mE+muK
>>181
ディレクトリ操作は無理じゃないかと。
FLASHから勝手にフォルダ作られちゃ困るでしょ
186Now_loading...774KB:2007/09/01(土) 19:10:34 ID:5nF/Lifr
>>181
第2引数で指定すりゃいんじゃねーの
187Now_loading...774KB:2007/09/01(土) 19:53:32 ID:or8PVano
FlashMX2004 Professionalです。
私は>172ですが、別件の質問をさせていただきます。

アニメーションするマウスカーソルを作ろうとしているのですが、
このアニメーションを、複数の外部JPEGを読み込むことで
実現しようと考えています。(いわゆるパラパラ漫画のようにする)

ぱっと思いつくのは、setIntervalを使って、短い時間に次々と
MovieClipLoader.loadClip()でJPEGファイルをロードする方法ですが、
アニメパターンごとにloadClipするのは明らかにまずいように思いますw

あらかじめ画像全体をメモリに読み込んでから、表示時jにメモリへ
アクセスするとか、そう言った「外部ファイルのアニメ表示」のアイデアには
どういうものがあるのでしょうか?
188Now_loading...774KB:2007/09/01(土) 19:58:31 ID:0t02gU5O
>>181>>186
"/"で指定できるのはswfのurlに含まれるディレクトリ
C:\Documents and Settings\hoge\test.swf
の場合
"/Documents and Settings"でlocalhost内にDocuments and Settingsと言うフォルダが出来る。
(webでも大体同じ)
残念ながら任意の名前は指定できない。
189Now_loading...774KB:2007/09/01(土) 20:06:21 ID:5nF/Lifr
/以下の任意のディレクトリ構成は可能じゃなかったっけ?
190181:2007/09/01(土) 20:16:42 ID:/2GjwLFq
>>185,186
ありがとうございます。第2引数では駄目でした。
やはり、ディレクトリはlocalhost固定のようです。
191181&190:2007/09/01(土) 20:20:26 ID:/2GjwLFq
>>181-189
すいません。このスレをリロードせずに書き込んでいました。
一応、下に1個は作成できるということですか?
192Now_loading...774KB:2007/09/01(土) 20:37:41 ID:5nF/Lifr
>>191
ああ、第2じゃなかった
第1引数の方で"savedir/savedata"とかでやってみてちょ
193181&190:2007/09/01(土) 21:47:09 ID:/2GjwLFq
>>192
有り難うございます。
path1 = "subhost/";
localSO = SharedObject.getLocal(path1+saveName1, "/");
とすると、#subhostフォルダ(シャープが付く)が作成され、その中に
saveName1.solが保存されました。

なお、第2引数 "/"が無い場合は、path1で指定した名前に関わらず
Flashで勝手に ##EE6383F9C6・・・・ などというフォルダが作られ、
その中に00000001.solというものが出来ます。 よって第2引数も
必須のようです。
194Now_loading...774KB:2007/09/01(土) 22:47:04 ID:/9LeuBUy
>>187
試してないから出来ないかもしれないけど

       1 2 3 4
レイヤー1:mc1
レイヤー2:  mc2
レイヤー3:    mc3

ってMC置いといて
4フレーム目でそれぞれのMCに画像読み込んで
1〜3フレームをループすればできそう。
195188:2007/09/01(土) 23:14:26 ID:0t02gU5O
>>192
おお、気が付かなかった、勉強になった。
196Now_loading...774KB:2007/09/01(土) 23:28:54 ID:GOhTES9R
>>187
それ、一枚ごとに読み込まなきゃいけないの?
アニメにするつもりなら、swfとかflvみたいなひとかたまりにしておいた方がよくないか?
197Now_loading...774KB:2007/09/01(土) 23:46:13 ID:Apz3GuwA
標準カーソル隠してカーソルの位置にアニメーションするMC、だけで済むだろうに・・
まさかFlexで作ってるとかじゃあるまい?
198187:2007/09/02(日) 00:03:21 ID:JKrAf2BC
ご回答ありがとうございます。

>194
ありがとうございます。あらかじめ複数配置しておくのは盲点でした。
ただ、loadClipするときは、そのフレームで対象となるmcが配置されて
いる必要があるので、下のレイヤーを前のフレームに配置し
後のフレームを上に重ねるようにすればできそうです。
(この場合、複数のmcがカーソルの中で重なっているので
 のちの仕様変更(透過PNGを使うなど)の歳にもう一度考えないと
 いけないとは思いますが、当分はこの手でしのげそうです)

>196>197
発注元からの指示が「Flashがなくても絵柄を変更できるように
PhotoShopで扱える画像で頼む」とのことでしたので、こんな方法を
取っています。Flash8以降ならPNGを使えれば透過もできて最高なのですが
開発環境がMX2004なので、やむなくJPEGで納得してもらっています(´・ω・`)
199Now_loading...774KB:2007/09/02(日) 04:28:56 ID:o3hqjAWm
プロジェクターについて質問なのですが、
例えばウィンドウのクローズを押された時に『終了しますか?』というようなダイアログを出したいのですが
FLASH側でクロ−ズを取得するコマンドってありますか?
200Now_loading...774KB:2007/09/04(火) 16:40:25 ID: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でした。
201Now_loading...774KB:2007/09/04(火) 20:32:37 ID:5sDI9kzh
無理じゃないの?
てかそれ目的はなに?
202Now_loading...774KB:2007/09/04(火) 20:47:43 ID:5sDI9kzh
ちなみにプレーヤーの設定画面でローカル記憶領域を0にすれば
該当ドメインのsolをフォルダごと消せるけど
それではだめなの?
203Now_loading...774KB:2007/09/04(火) 21:16:53 ID: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がカーソルのところで止まってくれません、
どこがいけないんでしょうか?
204Now_loading...774KB:2007/09/05(水) 00:25:26 ID:E+VHtrAA
サウンドプレーヤー作成にて質問です。

目的はループ再生(もしくは“100回”など)なんですが、一時停止後

//再生再開
on(release){
Sound1.start(Sound1.position/1000, 0)
}

と、ボタンアクションに記述すると、一時停止したその曲で終わってしまいます。
この記述のどこに変更、もしくは足せばループ再生的な事ができますか?
ループの回数は30回もあれば十分なので。よろしくおねがいします。
205Now_loading...774KB:2007/09/05(水) 00:46:02 ID:n30z77if
>>203
MCの移動量が10刻み、1にしたら多少マシになるかも

>>204
onSoundComplete = function(){ Sound1.start();}
206Now_loading...774KB:2007/09/05(水) 01:00:45 ID:STXMbf8o
>>203
MCの位置とマウスの位置が10(移動量)以内なら、
MCの位置にマウスの位置を代入するようにする。
207Now_loading...774KB:2007/09/05(水) 01:01:52 ID:Lv8sVb/D
眠くて頭が回んないので、気づいたとこだけ答えると、

>203
int()はMath.int()のまちがいじゃまいか。
あと、そのスクリプトは構文エラーなので、括弧の閉じ方とか
予約語などをもう一度見直した方がいい。
なお、そのスクリプトでどういう動きをしたいのかが分からないが、
「遅れてついてくるMC」なら、俺はこうする

onClipEvent ( enterFrame ) {
_x -= (_x - _root._xmouse) / 10;
_y -= (_y - _root._ymouse) / 10;
}

>204
ボタンアクションにそーゆーことを記述するのはめんどいのでオススメしない。
(つーか「クリップアクション」自体、なるべく避けた方がいいと思う。迷子になりやすいし)
とりあえず、そのスクリプトの「Sound1」を_rootから始まる場所に書き換えてみよう。
そのままだと、ボタンが置かれたMCで定義したSound1に対して
あれこれ仕様という意味になるから、もっと上で定義していたら、とうぜん空振りする。
208200:2007/09/05(水) 01:08:38 ID:l+jAGjWi
>>201
目的は、GUIとまでは行きませんが、solファイルを含むフォルダ操作です。
フォルダの作成に加えて変更・削除が出来れば、かなり自由度が増えると思いました。


>>202 ローカル記憶領域を0
試してみます。
209Now_loading...774KB:2007/09/05(水) 01:20:11 ID:/9kyThfX
>>208
Flashでフォルダ操作やファイル操作は出来ません。
210Now_loading...774KB:2007/09/05(水) 01:39:27 ID:Lv8sVb/D
>208
localSO.data.rootfolder.savedata1=保存内容
とかじゃだめ?
これならdataプロパティ以下の要素を、色々いじれるが。

ファイルを直接作ったり消したりしたいなら、あきらめたほうがいいかも。
211200:2007/09/05(水) 02:25:57 ID:l+jAGjWi
>>209-210
複数のフォルダ内の複数のsolファイルに色々な項目(例:身長,体重,年齢など)を
詰め込みたいので出来れば、フォルダ単位で消去・変更したいです。

なお、「ローカル記憶領域を0」は、まだ試していません。
212Now_loading...774KB:2007/09/05(水) 02:48:47 ID: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ファイルの有り無し検索してみよう。
自分で実験するヒマを惜しんではいけない。
213Now_loading...774KB:2007/09/05(水) 02:50:53 ID:Lv8sVb/D
申し訳ない、>212の1行目var root = new Object(); は不要です。
・・・ダメだ、頭が働かないのでもう寝る。
214200:2007/09/05(水) 03:30:38 ID:l+jAGjWi
>>212-213
てんきゅう
215202:2007/09/05(水) 04:11:35 ID:oq2Wn5BF
>>200
「ローカル記憶領域を0」は無視でいいよ
話が良くわかってなかった。
フラッシュからASでやれることじゃないし。
216Now_loading...774KB:2007/09/05(水) 14:11:01 ID: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());
217Now_loading...774KB:2007/09/05(水) 14:18:34 ID:8MQmnQEW
待ってないから
218Now_loading...774KB:2007/09/05(水) 15:33:36 ID:be+ocy7a
>>216
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
219203:2007/09/05(水) 22:41:07 ID:v6ZxKUeG
ご回答ありがとうございました

>>207
Math.int() にしたらエラーが出ましたが、

onClipEvent ( enterFrame ) {
_x -= (_x - _root._xmouse) / 10;
_y -= (_y - _root._ymouse) / 10;
}

の方法で解決しました。
なぜ、うまくいくのか
じっくり考えたいと思います。
220Now_loading...774KB:2007/09/05(水) 23:06:49 ID:bqmYmjyS
paraflaでFLASHを作っています。
左クリックでのボタン処理ができるように、
右クリックを押すことでアクションをしたいのですが、
どうすれば出来るでしょう?
221Now_loading...774KB:2007/09/05(水) 23:13:09 ID:Oadww5zB
コントロールパネルで左利き用マウスに設定すればいいよ
222Now_loading...774KB:2007/09/06(木) 01:00:17 ID:M+Pv+M6l
>219
自分自身の座標と、目標の座標の10分の1づつ接近していく。
近づけば近づくほど、「10分の1」の値は小さくなる=近づき方が遅くなる
ただし近づいてはいるので、いずれある時点でその差は1を下回る=目標値点で止まる

ただ、止まっているときでも常にカーソルへの移動を試みているので
無駄を省きたいので有れば「マウスカーソル移動でMC移動開始」と
「移動距離が1を切ったらonEnterFrameをやめる」を
実装してもいい(必要ないと思うならしなくてもいいが)。

>220
Macのことを考えてみよう。
(じつは、右クリックはコンテクストメニューなら割り付けられる。方法は勉強してちょうだい)
223Now_loading...774KB:2007/09/06(木) 02:08:02 ID:9lIbtxB2
>>220,222
AS3.0限定かもしれないけど右クリックのアクションも可能だと思うよ。
前に見た解説サイト見つけられないけど・・・

paraflaでもできないわけじゃないかも。
224Now_loading...774KB:2007/09/06(木) 05:53:23 ID:ARIbZD1C
>>216
きちんとヘルプを読めばサンプル載ってるし、そんな書き方しないと思う。
適当に書いて動きませんなんとかして、はひどすぎ。
225Now_loading...774KB:2007/09/06(木) 10:56:05 ID:IA+i6VgC
>>224
いや、適当というつもりはなかったです。
return datB;のところでtrace(datB)するとテキスト取得の確認ができたので、
関数に型名つけてreturnで返そうと思いました。
public function completeHandler(evt:Event):Array {...}
だけだとundefinedとでたので、public function textloading() {...}のほうにも
型名つけないとまずいのかと思ったのですが、そうするとエラーが出てしまい、
どうすればよいのか解らなくなり質問しました。
226Now_loading...774KB:2007/09/06(木) 11:03:19 ID:ARIbZD1C
>>225
ん、まず、なんでArrayから派生させてるのかがわからん
ハンドラのreturnって何が受け取るの?
227Now_loading...774KB:2007/09/06(木) 12:57:09 ID:IA+i6VgC
>>226
swfのタイムラインに以下を記述してtrace結果でテキストの内容を出そうとしました。
var playerdata:Array = new Textload();
trace(playerdata.textloading());

228Now_loading...774KB:2007/09/06(木) 13:09:51 ID:ARIbZD1C
>>227
答えがそれかよw。Classを使ってどうこなら
まず、Javaなりの入門書を一冊やって、OOPを勉強してからだな。
229Now_loading...774KB:2007/09/06(木) 16:14:27 ID: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です。
230Now_loading...774KB:2007/09/06(木) 16:18:27 ID:eVJwwHFF
そんなもんクラスじゃねーだろ
好きに読み込め
231Now_loading...774KB:2007/09/06(木) 16:20:16 ID:eVJwwHFF
なんだか頭の不自由な奴が自分ルールでクラスだのなんだのを勝手に
定義してわけわからん質問してるのが多いな。同じ奴か?
基本的な本1冊読めよ。馬鹿すぎる。
232229:2007/09/06(木) 16:47:32 ID:DwFYQP3i
すみません。
普通のアセットクラスだと思うのですが、どの辺りが間違っているのでしょうか。
233Now_loading...774KB:2007/09/06(木) 16:59:08 ID:ARIbZD1C
>>232
Flexでの書き方はしらんが、知ってる人でもその質問では答えられんと思う。
何をやりたいのかを書いて、具体的なソースを提示しないとわからんよ。
234Now_loading...774KB:2007/09/06(木) 17:04:44 ID:ARIbZD1C
だいたい
>バイナリデータを埋め込んで動的に読み込みたいんですが、
埋め込んで動的にって。。。どういうことだよw
235229:2007/09/06(木) 17:36:43 ID: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画像などでも同様でした。
別の方法でも構わないのですが、同様のことを実現するにはどういったやり方が
あるでしょうか。宜しくお願いします。
236Now_loading...774KB:2007/09/06(木) 17:44:14 ID:ZRyepadd
だからそれのどこがクラスだよ
今のあんたに何説明しても無駄
237229:2007/09/06(木) 18:08:28 ID: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にも書きましたが、私の書いたやり方がよりも良いやり方が
あれば、お教えいただけると幸いです。
238229:2007/09/06(木) 18:12:32 ID:DwFYQP3i
バイナリデータを読み込む部分ですが、popforgeというサウンドライブラリの
SoundFactory.classを参考にしました。Classと指定することについては、そう
いうものだと思って、あまり深く考えていませんでした。
239Now_loading...774KB:2007/09/06(木) 18:17:06 ID:ZRyepadd
埋め込む必要があるなら文句いわねーで列挙しろ
めんどくさかったらコードを書くマクロを作れ
実行時に読み込むだけで事が足りるならクラス化しねーでファイル読み込め
240229:2007/09/06(木) 18:45:02 ID:DwFYQP3i
列挙するのを避けたいというのは面倒だという理由ではなく(それこそマクロ等で
処理すれば良いので)、保守性や可読性の観点から現実的ではないと判断しました。
そこで調べた結果行き着いたのがgetDefinitionByName()でしたが、意図した通りに
動作させることはできませんでした。

そもそもgetDefinitionByName()はこのような用途には使えないのか、使い方が悪いのか。
他のやり方があるのか、あるいは列挙以外に方法はないのか…というのが、私の知りたい
ことです。宜しくお願いします。

# 外部ファイルから読み込む案もご提示いただきましたが、今回はデータを埋め込む場合で
# お願いいたします。
241Now_loading...774KB:2007/09/06(木) 18:50:49 ID:ZRyepadd
使い方というより頭が悪いな
242229:2007/09/06(木) 18:59:27 ID:DwFYQP3i
正直、頭は悪いほうなので、独力では解決できずに助言を求めている次第です…。
内容の無い、悪意の回答はご遠慮いただけると幸いです。
243Now_loading...774KB:2007/09/06(木) 19:38:29 ID:wXAs/28X
var classRef:* = new getDefinitionByName("GameData"+ stage)()

var GameData: *= new (classRef)()
じゃね?知らんけど
244229:2007/09/06(木) 20:02:42 ID:DwFYQP3i
>>243
ありがとうございます。
早速試してみましたが、「getDefinitionByName()をコンストラクタとして
呼び出すことはできません」とのエラーが出てしまいました。
型宣言を「*」にする部分を参考にさせていただいて以下のようなコードも
試してみましたが、>>229同様の定義されていないエラーとなってしまいました。

var classRef:* = getDefinitionByName("Sound1");
var GameData:* = new (classRef)();
245Now_loading...774KB:2007/09/06(木) 20:18:08 ID:wXAs/28X
間違えた
var classRef:* = new (getDefinitionByName("GameData"+ stage))()

246229:2007/09/06(木) 20:26:33 ID:DwFYQP3i
>>245
ありがとうございます。
やはり、定義されていないエラーになってしまいます。
getDefinitionByName()に渡している文字列が悪いのかもしれませんが、
traceを見ても「GameData1」になっているので、間違ってはいないと
思うのです。。。

すみません。
>>244では「Sound1」になっていますが、効果音読むところをコピーして
しまいました。正しくは「"GameData"+ stage」と書いてあります。
247Now_loading...774KB:2007/09/06(木) 22:05:25 ID:Ggf2GCKz
>>246
var classRef: Class = getDefinitionByName("GameData1") as Class;
var gameData: GameData1 = new classRef();
これでどう?
GameData1がパッケージ内にあるなら、パッケージ名も書かなきゃだめだよ。
248229:2007/09/06(木) 22:24:58 ID: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;
        ...
       
    }
}
---
249Now_loading...774KB:2007/09/06(木) 22:57:16 ID:IvtJX8zy

っ getDefinitionByName("Sample01_GameData1") as Class;
250Now_loading...774KB:2007/09/06(木) 23:20:52 ID:IvtJX8zy

っ var GameData:* = new (getDefinitionByName("Sample01_GameData1") as Class);
251229:2007/09/06(木) 23:31:26 ID:DwFYQP3i
>>249
うああ、できました!ありがとうございますっ…!
クラスの中のクラス(どう呼ぶのか分かりません)名は、そのように
記述するのですね。勉強になりました。

>>249さん、答えていただいた皆様、本当にありがとうございました。
252216:2007/09/07(金) 10:21:44 ID:/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で返したかったんですがなにが問題なのでしょうか?
問題点だけでも教えていただけませんか。
253Now_loading...774KB:2007/09/07(金) 14:46:11 ID:QESz89NL
>>216
関数の外にreturn置いてるのとか継承と型指定を取り違えてる風な書き方
3個以上間違いがあると誰も答えてくれないだろうから質問するときは問題点を
絞り込むように単純化した方がいいよ。


254Now_loading...774KB:2007/09/07(金) 17:27:19 ID:G6/Ml+Up
>>252
Arrayから派生してるのは何故?
returnは何が受け取るの?
レスしても、ちゃんと答えない質問者にはレスする気にならん。
255Now_loading...774KB:2007/09/08(土) 22:27:58 ID:rf8QzVNl
WinXP-ProでFlash8-Pro(Ver8.0)を使っています。

lineStyle()で線を点線(あるいは破線)にすることは可能でしょうか?
一応ヘルプを見ましたが、分かりませんでした。
256Now_loading...774KB:2007/09/08(土) 23:10:39 ID:gH/pK9oI
257Now_loading...774KB:2007/09/09(日) 01:52:20 ID:46xyRfSe
環境はWin, CS3, AS3です。

これまでは_urlでswfの置かれているパスを取得できたと思うんですが、
AS3の場合はどうすればいいでしょうか。

よろしくお願いしますm(_ _)m
258Now_loading...774KB:2007/09/09(日) 02:38:29 ID:lVJTecGh
>>257
_url → flash.display.Loader.contentLoaderInfo
AS2と比べると使い方はちょっと面倒かもな。

AS3ではどうするの?という質問はまず↓を見てみよう。
ttp://livedocs.adobe.com/flex/2_jp/langref/migration.html
259Now_loading...774KB:2007/09/09(日) 04:21:40 ID:oX5rL85l
>>257
trace(loaderInfo.loaderURL);
260255:2007/09/09(日) 04:54:02 ID:DAvWqwjE
>>256
有り難うございます。
なるほど、細かい点(線分)の集合ですね。


あー、お腹の調子がおかしい・・・ ←独り言
261Now_loading...774KB:2007/09/09(日) 14:28:39 ID:AciRr+jo
Javaをちょこっとかじってて、ActioScript初めてなんですけど、

flaファイル上のMovieClipにASファイルのクラスを適用することって出来るんでしょうか?出来れば軽くサンプルを書いてもらえるとありがたいんですが…

ASで定義したクラスのメソッドでMovieClipの操作を行ってみたいんですが・・・
262Now_loading...774KB:2007/09/09(日) 14:35:15 ID:oX5rL85l
>>261
できる
263Now_loading...774KB:2007/09/09(日) 19:15:13 ID: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が出て読み込みエラーが出るようです。
これは何故でしょうか…詳しい方お願いします。
264257:2007/09/09(日) 20:12:11 ID:46xyRfSe
>>258-259

ディモールトグラッツェ!!!!
ありがとうございました、助かりました。
265Now_loading...774KB:2007/09/09(日) 20:55:39 ID:itq/IsYb
>261
俺も最初は苦労したくちなので、丁寧におしえちゃうぜ。
でもな、バージョン名くらいは書いて下さい。頼むから。

ライブラリウィンドウで、ムービークリップの
リンケージ名称設定をしてから・・・

MXの場合:
function クラス名(){プロパティを列挙}
クラス名.prototype=new MovieClip();
クラス名.prototype.メソッド名=function{処理}
クラス名.prototype.メソッド名=function{処理}
          :
Object.registerClass(リンケージ名,クラス名);

MX2004の場合:
ムービークリップのリンケージ名の下に
AS2クラスの項目があるので
そこにクラス名を記入。
※ちゃんとクラスはMovieClipをextendsしてるよね?
266Now_loading...774KB:2007/09/09(日) 23:46:14 ID: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の方法を試してみます。
267Now_loading...774KB:2007/09/09(日) 23:54:50 ID:BVXAhwVo
>266
var hoge:Hoge=new Hoge(引数(インスタンス名とかな));
インスタンス名.onPress=function(){
hoge.ghgh();
}
既述通り、リンケージが楽

つーか、基本はggrば?
268Now_loading...774KB:2007/09/09(日) 23:58:35 ID:itq/IsYb
>266
俺は>265だが、8かー。MX2004使いだから的はずれかもしれんが
一応>266で気になったことは、

「MovieClipはattachで生成するのであって、newで生成しない」
(ただしFlexはnewで生成するが……)

という、基本ルールを知っているかどうか。
269Now_loading...774KB:2007/09/10(月) 00:04:53 ID:IlxYGmqe
>268だけだと意地悪なので、いちおうコードも載せておくよ。

_root.attachMovieClip("リンケージ名", "MC名",深度, {プロパティ名:値});

この「リンケージ名」に、さっき定義したリンケージ名をいれればOK。
ちなみに俺が良くやる方法は、

for (i=0; i<個数; i++){
MC[i]=_root.attachMovieClip("リンケージ名", "MC名"+i,i);
}

と、イコールつなぐことで、「参照」を取得できる。こうすると、いちいちパスを書かなくても
MC[2]._alpha=50; なんてことができて、スゲーらくちんw
270Now_loading...774KB:2007/09/11(火) 12:54:39 ID:Ln/IIDsc
デザイナー初心者です。
フラッシュ制作で、キューブが回転して奥から転がってくるものを依頼されました。
回転するものはあっても転がってくる様なものは探しても見つかりませんでした。
その様なサイトかスクリプトがあれば教えて下さい。
よろしくお願いします。
271Now_loading...774KB:2007/09/11(火) 13:01:55 ID:UA9VZCW1
272Now_loading...774KB:2007/09/11(火) 13:35:00 ID:Ln/IIDsc
>>271
有難うございます
そちらに行ってみます(`・ω・´)
273Now_loading...774KB:2007/09/11(火) 16:27:25 ID: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}, {……}, {……}
]

などと言うことも考えたのですが、どのように処理していいのかが
まるで思いつきません。
どのようにするのがよいでしょうか?
274Now_loading...774KB:2007/09/11(火) 20:31:38 ID:yONnbTi8
>>273
javascriptでできるならASから呼んでやればいいんじゃない?
275Now_loading...774KB:2007/09/11(火) 21:44:44 ID:4GLdl+a5
>>273
言ってることがいまいちよくわからんが、
>式の書かれた外部テキストファイルを読み込ませ
の部分はASで実装できてるの?
276273:2007/09/11(火) 21:57:50 ID: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");

です。
277Now_loading...774KB:2007/09/11(火) 22:51:35 ID:b9HnqLsx
javascriptに投げてevalで計算した結果をexternalinterfaceで貰えばいいんじゃ?
278Now_loading...774KB:2007/09/11(火) 23:28:26 ID: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]に残る
279Now_loading...774KB:2007/09/12(水) 01:24:39 ID:t0Nd0J4u
>>273
なんかそれ最近、どこぞの誰かのBlogで読んだような気が・・・。
これかな?
ttp://d.hatena.ne.jp/flashrod/
280273:2007/09/12(水) 12:14:04 ID:g8zl/LOd
皆様、ありがとうございます。

>>277
調べたところ、それはFlash8の機能のようです。またいずれにしても
WEBブラウザの力は借りたくないと考えています。

>>278
逆ポーランド記法は初めて知りました。
ただ運用面を考えると、あまり馴染みがない記述方法になるので
カッコなどをつかう記述を、その処理に落とし込めればベストです。

>>279
試しにソースをコピーしてみると、エラーが出たのですが、
オブジェクト定義で、要素の部分に'*"といった文字列を与えているためと
思われます(Flash8ではこの書き方は許されているのでしょうか?)
ただ考え方はソースからなんとなく見いだせましたので、
これでカッコに対応していれば、MX2004風味に書き直せるかも知れません。
281Now_loading...774KB:2007/09/12(水) 12:55:34 ID:HtdHDwog
>>280
やりたいことを明確に言わないとよくわからん
ASでの数式パースのロジックを知りたいって事か?
282273:2007/09/12(水) 23:48:17 ID:g8zl/LOd
>>281
やりたいことは、
「FlashMX2004を使って、
 テキストファイルに記載された論理式を解釈して結果を得る。
 ただし、WEBブラウザなどは使わず、swf単体で行う」
です。
正直、そのために何をどうすればいいのかが全く分からなかったので
こういう書き方をしました。
(正直、ここまで大がかりなものとは思っていませんでした……)

皆様の解答を見ていて、数式(論理式)のパース(構文解析と言う意味で
いいでしょうか?)ができれば、上記の目的は達成できると分かりましたので、
その方法を教えていただけると有り難いです。
(別の方法がある!というのであれば、そちらでもけっこうです)

目下のところは、>>278で紹介されている方法が逆ポーランド記法でなく、
通常の論理式対応のものであればベストです。
283Now_loading...774KB:2007/09/13(木) 01:59:06 ID:beX3qIXs
なんで逆ポーランドなのか考えた方がいいんじゃまいか?
284Now_loading...774KB:2007/09/13(木) 02:50:33 ID:wqdou11I
>>282 WEBブラウザなどは使わず、swf単体で行う

スタンドアローンなら、Exeでパブリッシュという方法もある。
但し、1.5MB以上になる。
ちなみに、俺も同じような文章解析(出力データ解析)をやっているが、
対象の文章の内容と解析目標によってStirigクラスのメソッド&プロパティを
ひたすら使い分けることでしか解決は無いと思う。

まずは、簡単な特徴的な文章(1行程度)を試しにパースしてみよう。
285Now_loading...774KB:2007/09/13(木) 02:52:46 ID:wqdou11I
284だ。
Stirigクラス → Stringクラス
286Now_loading...774KB:2007/09/13(木) 13:13:43 ID:ZpQ1BVYO
下記のアクションをムービークリップで動かしました
テンキー1・3で(座標変化で)速度をリアルタイムで変化させたかったのですが、fpsが低い設定の場合キー入力しても再描画時にムービーの速度に変化がないことが
多々でした。(試しにfps1で試したところ再描画までに入力したキー分の加速が反映されていませんでした)

onClipEvent (load) {
x_move = -1;
kasoku =10;
function movetxt() {
if (Key.isDown(97) == true) {
x_move -= kasoku;
}
else if (Key.isDown(99) == true) {
x_move += kasoku;
}
else {

}
_x += x_move;
}
}
onClipEvent (enterFrame) {
movetxt();

}
試しにキー押しの回数を調べるASを配置してみたところ、そちらは再描画までに押した回数が反映されていました。
この時も速度のほうは再描画までに反応を受け付けない時間(偶然や読み込みラグなどではなく)もあり結果は反映されませんでした。
読みづらい文・説明で申し訳ありません。
速度のキー入力リアルタイム変化について良い方法などありましたらお願いします。

環境はMacromedia Flash Pro8
AS2・WindowsXP・IE6です
287Now_loading...774KB:2007/09/13(木) 15:38:55 ID:BG4RnXCc
>>286
要は左右方向の加速度を変化させたいということか?
movetxt();内で結果位置を指定するのではなくて、(外に出して)
onClipEvent (enterFrame)内で指定したら?
288Now_loading...774KB:2007/09/13(木) 15:43:32 ID:hmnUxqDU
人間の色んな動作のアニメーションを作成しているんですが転ぶアニメーション
の参考になるサイトとかないでしょうか?
例えば歩くアニメーションだったらこんな感じで
http://www.training.co.jp/flash/walk.html

転ぶ以外にも人間の基本動作のアニメーションで参考になるものがあったら教えてください
289Now_loading...774KB:2007/09/13(木) 15:46:24 ID:HEunF0E/
>>288
マルチは氏んでください
290Now_loading...774KB:2007/09/13(木) 16:18:07 ID:BG4RnXCc
>>286
setInterval() を使い、fpsに関係なく描画させる場合には updateAfterEvent() もある。
291Now_loading...774KB:2007/09/13(木) 16:39:47 ID:cYxdeUwj
>286
単純に変数操作はon()でやればいいんじゃないの?
292Now_loading...774KB:2007/09/13(木) 16:52:43 ID:JtxDSMb2
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)

キーコードの認識で質問です。

2つのキー:BackSpaceとShiftを同時に押した時のアクションをキーリスナーで指定
したいのですが、上手く出来ません。
下は第一目標として、traceで "Back/Shift" を出力させるものですが何も出ません。

myKey = new Object();
myKey.onKeyDown = function() {
if (Key.getCode() == 8 && Key.getCode() == 16) {
trace("Back/Shift");
}
};
Key.addListener(myKey);

どうしたら良いでしょうか?

動作はプレビュー上で行い、『キーボードショートカットを無効』にチェックを入れて
います。なお、BackSpace,Shift各単独のキー動作はOKです。
293286:2007/09/13(木) 17:02:05 ID:ZpQ1BVYO
とても早い書き込みありがとうございます。
>>287さん
>加速度の変化
そうです。ただ、何故かわかりませんが1fpsで動作させ、1s内にテンキーで加速を2回押しても一回分しか受け付けていない。
という状況に困っていました。
実際のところ1fpsという低速で動かすことはないのですが、より正確な方が良いと思いまして。

enterFrameにて指定してみましたが低速だと同じ結果になってしまいました。
OnClipEvent(enterFrame)では難しいのですかね。
説明不足な点が多くてすいません。

>>290さん
描画のタイミングを上げ判定の隙間を減らすことが出来るんですね。
これなら限りなく処理が自然になりそうです。早速試してみようと思います。

お二方レス大変感謝です。

OnClipEvent(enterFrame)の判定の落とし穴の方も解決したら書き込みさせて頂きます。
294Now_loading...774KB:2007/09/13(木) 17:47:45 ID:X66+axMg
>>282
数式解析のプログラムは結構出回ってる。
swfだけで完結させたいというなら、そのコードをActionScriptにパースすりゃよい。

ただし、ものすごく面倒
ちなみにそういう処理は、昔の死に言語が活躍してる時代の処理。
斜め上な開発をしていることに気づき、設計を考え直した方がよい。
295286:2007/09/13(木) 17:54:29 ID:ZpQ1BVYO
>>290さん
すいません更新忘れて見落としていました。

クリップイベントにしなければ上記のようなことにならないんでしょうか。
ご指摘ありがとうございます。
296Now_loading...774KB:2007/09/13(木) 18:09:50 ID:tNNYUyG0
>>292
getCode() の値が8かつ16ってあんまりだろw

if (Key.isDown(8) && Key.isDown(16)) {
trace("Back/Shift");
}
297292:2007/09/13(木) 18:23:52 ID:JtxDSMb2
>>296
有り難うございます。
getCode()の値は1つなんですね。
298Now_loading...774KB:2007/09/13(木) 18:45:14 ID:3nDCCNF9
>>297
trace()すればわかることだし、ヘルプにも書いてあるよ。
戻り値は数値; 最後に押したキーのキーコードを表す整数。
299273:2007/09/14(金) 02:28:42 ID:IuUz1TI2
お返事が遅くなってしまいすみません。

>283
やはり「難しいから」なんですね。取り組んでみて実感しました。

>284-285
>まずは、簡単な特徴的な文章(1行程度)を試しにパースしてみよう。

こちら、>278のソースを参考に作ってみようと思います。
方針としては、文字列を先頭から1文字づつバッファーに貯めて行き:

・数字が出現したら、演算子か英文字(プロパティ)が出るまで連続して読み込み、
 そのバッファーを「項」の配列にスタック
・演算子が出たら、数字か英文字が出るまで連続して読み込み、そのバッファーを
 「演算子」の配列にスタック
・それ以外はプロパティ。演算子が出るまで連続して読み込み、そのバッファーを
 「項」の配列にスタック
・演算子の文字列に優先順位をつけ、その優先順位の高い演算子を
 挟んでいる項を演算し、後ろの項をスプライス(削除)し、この項とその次の項を……
 を繰り返して行全体を処理
・優先順位が0になるまで、着目優先順位を1づつ下げながら繰り返す
・項が1つになったとき、それが解

カッコの処理は、開きカッコがでたら、その後の開きカッコの個数を数え、同数の閉じカッコが出たら
バッファーの内容を引数にして再帰呼び出しするようにしてみます。

>294
最悪、上記のことで実現できなければ、JSONで
[ { "left" : "a", "fugou" : "==", "right" : "1", "renketsu" : "||"}, {式}, {式} …… ]
等の記述をするように、仕様を考えてみます。
300Now_loading...774KB:2007/09/14(金) 10:01:05 ID:j38Gt5NV
>>299
XMLでやった方が早いんじゃねーの?
301286:2007/09/14(金) 15:42:25 ID:RvW1gVaf
setInterval()で無事それらしく出来ました。ご指導感謝します。
ありがとうございました!
302Now_loading...774KB:2007/09/14(金) 20:39:48 ID:LYhDOI8p
回転させるには_rotationを使えばいいんですよね?
でも、回転するにあたって中心位置指定をするASはあるのでしょうか?
rootを回転させたいので・・・
303Now_loading...774KB:2007/09/14(金) 21:13:33 ID:y9xVRtWv
>302
無い。それと、_rootは回転しないじゃろ?
全体を回転させたいなら、1つのMC(中心が回転軸)に全部ぶっこむ
中心を左上等にする必要があるなら、mcの中心を回転軸とした円運動の式を組む
304Now_loading...774KB:2007/09/14(金) 21:28:34 ID:Vf34kzq9
>>303
_rootもMCなので、回転します。
305Now_loading...774KB:2007/09/15(土) 02:40:22 ID:u0PubEBn
質問です。Flashをメールクライアントとして使いたいと思っています。
受信したデータなどをローカルに保存したいんですが、ファイル入出力
ができません。
ここで質問なんですがFlashとCなどを組み合わせてFlashにない機能を
Cなどで補うことは可能でしょうか?
たぶんアプリケーションにFlashをのせたらなんかできそうな気がするんですが
調べてもなにもでてこないのでご教授願えれば幸いです。
306Now_loading...774KB:2007/09/15(土) 03:34:56 ID:B3bx7q3w
>>305
Cのことはわからないんだけど、vb2005やC#2005ではフォーム上にFlash貼って
fscommandでやり取りできる。

C#だけど。
ttp://web.sfc.keio.ac.jp/~shokai/archives/2006/09/cflash.html

でもそういう使い方すると
>Flashにない機能を Cなどで補う
っていうよりもCで作ったアプリにFlashで色づけするって感じになると思う。
307Now_loading...774KB:2007/09/15(土) 03:55:10 ID:ngWHqH2K
ローカルファイルの読み書き程度ならAIRとかZincで十分できるけどな
308Now_loading...774KB:2007/09/15(土) 05:00:27 ID:U1a+GSCe
FLASHってXML出力ならできたよな確か
309Now_loading...774KB:2007/09/15(土) 07:14:13 ID:0mhcD0mY
>>305
ヘルプでExternal APIあたりを参照する
>>308
出力というのが、ファイルとしてという意味なら不可能
310273:2007/09/15(土) 09:35:24 ID:bmSbVgmK
お返事が遅れて、申し訳有りません
(仕事が忙しかったもので……)

>300
最初はXMLも考えたのですが、それよりはJSONのほうが
記述もデバッグもしやすいだろうと考え、フリーのJSON for ActionScript2を
使用しています。

なお、>>284の「1行のパース」は成功し、きちんと演算ができました。
ただし、カッコの部分で手間取っているので、らちが明かないようなら
設計を見直し、>>278の逆ポーランド記法を参考にさせていただこうと思います。

目処がつきましたので、これにて>>273の質問は終了とさせていただきます。
皆様、ありがとうございました。
311Now_loading...774KB:2007/09/15(土) 09:40:06 ID:bmSbVgmK
>309
余談だが、FlashCommunicationServerは、「flv形式なら生成できる」
という仕様を利用して、ログファイルを生成していたりする。

ファイル書き込みができないのはセキュリティ面では意義のあることだが、
アプリ作成側にとっては、けっこう頭が痛い。
312Now_loading...774KB:2007/09/15(土) 15:34:15 ID:U1a+GSCe
力を貸して欲しい。どうしても出来なくて困ってるorz

環境:FlashCS3 ActionScript3.0
目的:niconicoやYoutubeのFLVを、ローカル環境でストリーム再生する

現在、niconicoでテスト中。
手動でCookieを取得し、FLVのURLを渡しているが、開けないとのエラーが出る。

ルートタイムライン(StageにFLVPlaybackを配置)
import fl.video.*
//var FLVPlayer:FLVPlayback
FLVPlayer.source = "http://smile-com32.nicovideo.jp/smile?v=188420.86636"

また、FLV再生コンポーネントのFLVPlaybackが「?」を含むURLや「.flv」を含まないURLを
弾く仕様になっていたので、NCManagerの下記個所を修正

NCManagerクラスの変更箇所(614行:条件分岐をコメントアウト)
//if ( parseResults.streamName.indexOf("?") < 0 && parseResults.streamName.slice(-4).toLowerCase() == ".flv" ) {
 canReuse = canReuseOldConnection(parseResults);
 _isRTMP = false;
 _streamName = parseResults.streamName;
 return (canReuse || connectHTTP());
//}
313Now_loading...774KB:2007/09/15(土) 16:05:53 ID:jSpkWWWt
>>312
ニコニコは外部アクセス遮断してるかと思われ
314Now_loading...774KB:2007/09/15(土) 16:20:25 ID:0Z2nAOxw
Flash CS3 (ActionScript 2.0)

外部ファイルで、下のような、回転を制御する簡単なサンプルを作っているんですが、
class Rect {

private var mc:MovieClip;
private var mc1:MovieClip;

function Rect(base:MovieClip) {
mc = base;

mc1 = mc.attachMovie("rect", "rect", mc.getNextHighestDepth());

mc1.onEnterFrame = function() {

this.rotationMovie();
};
}
function rotationMovie():Void {

mc1._rotation++;
}
}
をつくり、flaファイルのフレームアクションで
var rect:Rect = new Rect(_root);

という感じで記述しているんですが、何も起きませぬ;
どこかマズいんですかね・・・

ステージ上のMCのMC名・リンケージ名は共にrectです。
315Now_loading...774KB:2007/09/15(土) 16:24:59 ID:U1a+GSCe
SWFがクライアント側で動くから、サーバーが遮断してるわけじゃないと考えてたんだけど違うのかな?
再生ページのタグをそのままコピってローカルで動かしても正常に動くから、
自作のFLASHからFLVへアクセスできないのは、自分のソースが間違ってるか、
デフォルトのプレイヤーにASからIDか何かを送るような処理いれてるかだと思うのだけれど。。。
316Now_loading...774KB:2007/09/15(土) 16:32:10 ID:0mhcD0mY
>>314
>this.rotationMovie();
この前にtrace(this);してみる
317314:2007/09/15(土) 17:52:33 ID:0Z2nAOxw
>>316
手直ししたら、動きました。リンケージ名の登録忘れと、
var scopeという変数を利用して、

function Rect(base:MovieClip) {
mc = base;
var scope = this;

mc1 = mc.attachMovie("rect", "rect", mc.getNextHighestDepth());
mc1._x = 200;
mc1._y = 200;

mc1.onEnterFrame = function() {
//trace(this);
scope.rotationMovie();}
}
のようにしたら、動きました。

でも、scope.rotationMovie()の部分は、this.rotationMovie()にすると動かないんですが、thisはダメなんですかね・・・
318Now_loading...774KB:2007/09/16(日) 00:40:31 ID:Yqhe3f+A
305です。回答ありがとうございます。

>306
それはヘルプにのってたんでしってるんですが、fscommandの引数として巨大なデータを。
渡せるんですかね?バイナリとかも。
データ取得とかはFlashでして、それをCに渡して保存とかはやっぱり
無理だと考えたほうがいいですかね。
どうもありがとうございます。

Airはつくったのをインストールしてもらわないと使えないので
今回は使おうと思っていません。
319Now_loading...774KB:2007/09/16(日) 01:02:43 ID:NgBRFJ+T
>317
クラスファイルでのスクリプトと、FLAファイルでのスクリプトでは
入れ子にした場合のthisの指すものが変わるんだよねぇ……。

FLAファイルでは、thisをつけると入れ子、つけないと「スクリプトを
記述している部分」を指すので、スマートな記述ができたんだが
クラスだとそうならない。
なんで、こんな仕様にしたんだろう。
マクロメディア(アドビ)は、おそらく意味があってやってるんだろうけど。
320Now_loading...774KB:2007/09/16(日) 01:51:38 ID:/j12KesV
>>319
mc1のonEnterFrameの中じゃ this が指すのは mc1 になる
それだけの話じゃね? と思ったんだけど

何かよく分からんないので
もう少し詳しく説明してほすぃ
321Now_loading...774KB:2007/09/16(日) 10:21:25 ID:NgBRFJ+T
>320
ああ、言われてみれば>317の挙動はたしかに正しかった。
俺が言おうとしていたのは、thisをつけるかつけないかの
挙動の変わり方が、タイムラインとクラスファイルで
異なってしまうってこと。
>317の例で言うと、

var scope=this;
mc1.onEnterFrame = function() {
scope.rotationMovie();
};
}
の部分は、タイムラインでの記述のようにこう書かせて欲しい。

mc1.onEnterFrame = function() {
rotationMovie()
};
}
クラスファイルでは、thisが無くてもthisを記述したようにふるまってしまうが
タイムラインでは、thisが無ければ(非公式テクニカルガイドで言う)デフォルト参照をする。
で、おれはこっちの書き方のほうが、thisの有り無しで処理を分けられるので
スマートに思えるわけ。いちいち外側から参照を渡すってのは気持ち悪いんだな。
322317:2007/09/16(日) 10:39:57 ID:saZ5CG3k
>>318 >>319

ああ、分かってきました。
scope.rotationMovie();はRect自身のメソッドだけど、
スコープの範囲でthisだと(function内なので)ダメってことですかね。

mc1.onEnterFrame = function() {
rotationMovie()
};
}
と書くほうが分かりやすいですな

323317:2007/09/16(日) 10:40:55 ID:saZ5CG3k
スコープの範囲で > スコープで
324Now_loading...774KB:2007/09/16(日) 12:15:10 ID:/j12KesV
>>321
なるほど ややこしいんだな thx
325Now_loading...774KB:2007/09/16(日) 13:29:42 ID:DCj6dDCu
AS2は付け足しだからレガシー仕様引っ張ってるからな。
そういう意味では初心者にこそむしろAS3をおすすめしたい。
326Now_loading...774KB:2007/09/16(日) 15:58:04 ID:s1MthOZf
>>325
それはない
327Now_loading...774KB:2007/09/16(日) 23:19:16 ID:ESTiE0oe
MovieClipのインスタンスを複製したいんだけどどうやるの?
328Now_loading...774KB:2007/09/16(日) 23:41:52 ID:pMx+rz+m
>>327
duplicateMovieClipを使う
329Now_loading...774KB:2007/09/16(日) 23:43:32 ID:5aMPC9TN
>>321 >>322 >>324
なんかおまいら言ってることおかしくないかー?
この場合、onEnterFrameをmc1のメンバにしてるのが変
this.onEnterFrame = function()にすりゃ良い
「rotationで影響を及ぼしたい場所=Rectインスタンス自身」なのに何故、mc1の中に入れ込んじまうんだw

あとthisの有り無しで処理を分けるなんてことやめた方がいいぜ?
読みにくいスクリプトの見本みたいなもんだよ。

thisは省略しない方がいいとか色んな本に書いてるけど、
あれは「参照をちゃんと記述しないとスパゲッティコードになる」って意味だよ
330Now_loading...774KB:2007/09/16(日) 23:43:37 ID:ESTiE0oe
すいません。>>328
ActionScript3.0と書くのわすれました。
331329:2007/09/16(日) 23:59:15 ID:5aMPC9TN
ごめw ミス

>>thisは省略しない方がいいとか色んな本に書いてるけど、
>>あれは「参照をちゃんと記述しないとスパゲッティコードになる」って意味だよ

シンタックスを使ったオブジェクトのメンバメソッド内でのthis省略、ね
書籍などには「thisは省略しない方がいい」などとは書いてないので注意
まぁ普通にドットシンタックスを把握してる人にとっては、デフォルト参照は分かりにくいのではって話です。
332Now_loading...774KB:2007/09/17(月) 00:17:23 ID:Y5dZ1OyR
>>330
this.addChild(new MCのクラス名()) クラスは自動生成されるから別に作らなくてもおk
333Now_loading...774KB:2007/09/17(月) 00:18:36 ID:2hvSJKkL
>>326
プログラム言語として言えばAS3.0の方がスマートだしわかりやすいよ。
まあ、AS2.0しか知らない人には、今まで苦労して理解したのに。。
っていういうことはあるかもしれんけど。
334Now_loading...774KB:2007/09/17(月) 00:26:43 ID:2jshZNy/
AS2->AS3の移行で戸惑う人はほとんどいないだろ。
AS1しか書いてなかったからAS3が理解できないってんなら分かるが。
335Now_loading...774KB:2007/09/17(月) 00:29:23 ID:Y5dZ1OyR
そうだな。
ていうかJavaや.NETから入った俺からすれば、AS2.0を覚えれたのはすごいと思うけどな。
ワケ分からん仕様多いしさ。2.0理解したんなら3.0理解するのなんてすぐだろう
ていうか2.0にどっぷりはまっちゃうと正直危ないと思う

>>322
あんた危ない方向に進んでるよw
336Now_loading...774KB:2007/09/17(月) 00:30:25 ID:2hvSJKkL
>>334
AS1.0-->AS2.0は普通に拡張な感じだけど、3.0へはちと、、、
移行するにしても、相当コーディングし直さなきゃならないとおも
337Now_loading...774KB:2007/09/17(月) 00:41:40 ID:2jshZNy/
AS2からAS3への書き換えは何度かやったがそんなに大変じゃなかったな。
むしろonClipEventとか使ってるAS1をAS2でOOP化するほうが手間だよ。
338324:2007/09/17(月) 00:50:23 ID:lLsXrzzj
>>331
>「rotationで影響を及ぼしたい場所=Rectインスタンス自身」なのに

これは質問主にしか分からない事だと思うよ。
掲示されたのがonEnterFrameをmc1のメンバにしているソースなのだから
それをベースに答えるしかないよ。効率や正しい書き方を聞かれたのなら
まったくおっしゃる通りだと思うけど。

僕は デフォルト参照なんてものを初めて知ったので
「ややこしいんだな」と思ったんだ。
339Now_loading...774KB:2007/09/17(月) 01:14:20 ID:iNf8t6Bu
OOPなんて言葉まだあったんか。

別にAS3自体を否定する訳じゃないけど、初学者が学ぶには
言語だけでなく概念を理解しなければならないから途中で
投げてしまう人口を増加させてしまうと思う。

エスペラント語ってすっきりしていて便利だよね、みたいな話だと思う。
340Now_loading...774KB:2007/09/17(月) 01:17:35 ID:6k7bATPM
>>338
ん? 横から入って悪いけれど、それは違うんじゃない?
もいっかいソースやレス見直してみたらどーかな

俺にも、onEnterFrameをmc1のメンバにしてる意味がわからないよ。
そしてソースが動かない原因も、onEnterFrameをmc1のメンバにしてるせいだしね。
提示されたソースが間違ってたから動かないんだよ。見当違いな解決策だすより、そこを指摘するのが妥当でしょ。
341322:2007/09/17(月) 02:13:05 ID:6fW/4BX0
んーんと、ちょい混乱してるわけですが。

まず、Javaちょこっとかじって来ました。AS始めたばっかりです。
で、指摘されてる部分は、mc1.onEnterFrame...でいいんですよね?

この場合
MovieClip(flaファイルに慣れてないので)をあんまり弄らなくても、いい手法かなと思ったんで、こう書いてみたわけですが、異端な書き方なんですかね?
あくまで、MovieClip側に何かアクションを起こしたいわけです。

サンプルでMovieClipにextendsさせる方法も見ましたが、そっちのほうが主流なんでしょうか?
342Now_loading...774KB:2007/09/17(月) 03:43:08 ID:lLsXrzzj
>>340
ソースとレスを見直した結果
僕は間違っていました。申し訳ない。


MovieClip を extends するなら

/// 外部ファイル
class Rect extends MovieClip{
function Rect() {
this.onEnterFrame = rotationMovie;
}

function rotationMovie():Void {
this._rotation++;
}
}

//fla メインタイムライン
var rect = _root.attachMovie("rect", "rect", mc.getNextHighestDepth());
rect._x = 200;
rect._y = 200;

みたいな感じかな。
343Now_loading...774KB:2007/09/17(月) 06:02:05 ID:Y5dZ1OyR
てかなんでみんなクラス内でENTERFRAME使うの?
俺はIntervalの方が、関数名指定するだけで出来るから好きなんだけどなー
ENTERFRAMEと違ってスレッド削除にも殆ど制約ないし
344Now_loading...774KB:2007/09/17(月) 09:32:00 ID:N8Y+FRzQ
>343
俺もsetInterval派。
onEnterFrameで行う部分は、setIntervalにしたほうが色々と便利だし。
(ただ俺は、そこに匿名関数を記述するんではなく、関数名をこしらえて
 その関数に処理を渡していくのが好き)

でも、onハンドラから匿名関数をつないでいくって言うイベント記法は
ActionScriptに馴染みのない人でも分かりやすいんだよ。
「対象MCが.どうなったら=処理する{その内容は……です}」
と、一つの塊を見れば一目瞭然だし、
enterFrameだけでなく、loadやpressなどでも同じ書き方ができるので
応用範囲も広い。

イベントを直接管理する記法が主流になれば、いずれ廃れる
書き方かもしれないが、現時点では悪くないと思ってる。
345Now_loading...774KB:2007/09/17(月) 13:26:00 ID:1rQVYVzg
>>342
この場合はthisだからいいけどAS2の場合は関数に処理渡すのもDelegate使う
のが基本と覚えといた方がいい。そうすりゃsetIntervalもonハンドラも使用感は大して変わらん。
>>339
初心者が途中で投げてしまうのは難解さじゃなくてレガシー対策のイレギュラーな処理やバグで
思い通りに動かないからだろ。
346Now_loading...774KB:2007/09/17(月) 18:56:51 ID:rqoIZ334
毎フレーム処理したい のと 一定時間ごとに処理したい の違いじゃないの?
347Now_loading...774KB:2007/09/17(月) 19:14:22 ID:1rQVYVzg
>>346
そうだよ。setInterval派とかいう派閥はない。処理に応じて使い分ければいいだけ。
348Now_loading...774KB:2007/09/17(月) 20:13:22 ID:6k7bATPM
どちらの状況でもないときに使う方の話をしてるんだと思うが。”連続して実行させたい”とか。実際コレが一番多い罠
349Now_loading...774KB:2007/09/17(月) 21:21:42 ID:yNgKhKTu
こういう話になるとがぜんはりきる俺様を見てくれって奴が多いんだよ。ほっとけ。
350Now_loading...774KB:2007/09/17(月) 21:22:08 ID:N8Y+FRzQ
>347
>348の言うとおり、大半の人は「MCを動かす」目的で使う。
そのアプローチが「clipEvent(enterFrame)派」、「onEnterFrame派」
あるいは「setInterval派」などに分かれているのが現状。

他の処理系の人から見れば噴飯ものの分類だろうけど、
これらは「MCを動かす」という目的のもと、同じ分類になっている。
それぞれの意味の違いが分かって、最適のスクリプティングができれば
AS使いとしては上級の部類になるだろう。

個人的には、”デザイナー上がり”の人たちも、これらの奥深さに
触れてもらえればと思っている。プログラマと話が通じると楽しいし、
「絵筆」が増えることで、よりアーティスティックな表現もできるはずだから。

・forループで100個のMCをいちどきにattachMovieするのでなく
 10分の1秒ごとにわらわらとattachMovieしたい……setIntervalでattachMovieし
 100個になったらclearIntervalする
・ボタンクリックを、ムービーの状態によって違う動きにしたい
 ……同じイベントトリガを、別のイベントリスナに登録しなおし、各処理は
 そのリスナのメソッドとして定義しておく

”プログラマ”には簡単すぎるこうした処理も、”デザイナー”には高難易度。
このスレッドは、彼らの架け橋になってくれたら嬉しい。
351Now_loading...774KB:2007/09/17(月) 21:24:23 ID:Mfkvi56+
OOPってもう古い概念なの?
352Now_loading...774KB:2007/09/17(月) 21:25:38 ID:yNgKhKTu
勝手に奥深いとか難しくて高度な事と位置付けたい馬鹿に踊らされてるだけ。可愛そうに。
353Now_loading...774KB:2007/09/17(月) 21:27:11 ID:yNgKhKTu
>>351
全然古くない
ただ「OOPとはこれ」「OOPやらなきゃ馬鹿」とか大上段に構えてる奴らが笑い物になってるだけ
普通に使う考え方
354Now_loading...774KB:2007/09/17(月) 21:31:39 ID:Mfkvi56+
>353
それは良かった。今更ながらFLASH OOPを読んで歓心してた所だ
355Now_loading...774KB:2007/09/17(月) 21:38:20 ID:yNgKhKTu
>>354
あの本は悪くないけど気を付けた方がいい。
よく日本人の英語学習の笑い話で「外資系の会社に、英語は完璧ですという入社希望者が来た
、で、その希望者に『なるほど、じゃああなたはウチの業務がどういうものがご存じですか』と聞い
たら黙ってしまった」というものがあるけれども、あの本はまさにその典型。

FlashOOPが〜とか言う奴は実際にやらせてみるとコードひっかきますだけで、成果だすまでに
以上に時間かかるという事が結構あった。そうならないように、あれはあくまで文法の本だってことを
キモに銘じておいた方がいい。
356Now_loading...774KB:2007/09/17(月) 22:14:51 ID:N8Y+FRzQ
>352
さっきから気になってるんだが、きみはまさか
「AS=簡単、気軽な言語」とかおもってないかい?
キミが相当の知識があることは>355を見てもわかるし、きみにとっては
ピクニック気分の言語なんだろう。そこは尊敬する。

でも違う。大半の開発者にとっては、イベントとかクラスとかスコープとかは
いまだ「大上段ニ構える」概念だよ。
なぜって、開発者の大半はきみのようなプログラマじゃない。
アーティストだのデザイナーだのと呼ばれる、絵描きさんだからだ。
専門的な訓練をろくに受けていない頃なら、概念を理解するのは
一大事だってことは分かるだろ。
だから、このスレが有るんじゃないのかい?(ちょい脱線気味だけど)
357Now_loading...774KB:2007/09/18(火) 00:55:05 ID:2sKulJ4Y
Flashみたいなちょこっとスクリプト書く程度の物に
わざわざオブジェクト指向を持ち出してくる輩は哀れ。
358Now_loading...774KB:2007/09/18(火) 01:27:36 ID:cAw2l+pm
それは規模によるでしょ。

フルFLASHのサイトで5000行を超えるASを書いたりしていると
開発技法とデザイナとのやり取りについてあれこれ考えないと
いけないなと思うよ。

でも、気にせずクラスなんて使わずにコーディングするけどな!
それがActionScriptのお気軽お手軽なところなんだし。
359Now_loading...774KB:2007/09/18(火) 01:48:13 ID:pAUTaWBv
>>357
ちょこっとしか書けないんだろw
360Now_loading...774KB:2007/09/18(火) 02:34:22 ID:fRxYsA1E
>>358
ゲームならまだわかるけど、フルFlashサイトで5000行もいくものなの?
ていうかオブジェクト指向にするかどうかは行数で決めるの?
361Now_loading...774KB:2007/09/18(火) 02:46:56 ID:qkhusDJy
プログラムは最終的に思った通りに動けばいい。
過程や…方法なぞ…!どうでもよいのだァーッ!
362Now_loading...774KB:2007/09/18(火) 11:08:56 ID:MvRIbmuP
ウボァ。すごい勢いで挫折しそうなんでエロい人教えて。

1.外部テキストを読み込む
2.読み込んだ文字列をMCに入れる
3.MCのアルファを変化させる

って事がやりたいんですが、MCのアルファは変化してもMC内テキストのアルファが変わってくれません。
flash内で事前にテキストを分解(アウトライン化?)しておけばアルファを弄れるのですが、
なるべく、"テキストデータのまま"で処理したいのです。

現在は応急処置として、マスクレイヤーを追加してMCを無理やり透過させていますが、
他の良い方法でなんとかならんでしょうか。
363Now_loading...774KB:2007/09/18(火) 12:15:23 ID:CPBdjEuF
>>362
基本的には、デバイスフォントではアルファ変化とかはできない。
その場合は、テキストを分解じゃなくて、テキストフィールドに必要な文字を埋め込む。
必要な文字数が膨大だと、ファイルサイズも膨大になる。
364Now_loading...774KB:2007/09/18(火) 12:16:32 ID:d/VnrghS
>>362
アルファベットくらいなら全部埋め込みフォントにすれば透過できたと思う。日本語あるときっついね。
Fla8以降なら一旦bitmapdataにdrawして、それを透過表示するとかでできるんじゃないかな?
365Now_loading...774KB:2007/09/18(火) 12:18:35 ID:bWu2MPRH
システムフォントはアルファ変更できない。
上レイヤに背景色をかぶせてアルファを変えるか
フォントを埋め込みにすれ。
366Now_loading...774KB:2007/09/18(火) 12:49:59 ID:pAUTaWBv
>>360
ステップ数は規模の大きさの判断の指針として使える
100行のプログラムと5000行のプログラムが同じコストがかかるとは思えないよね
367Now_loading...774KB:2007/09/18(火) 13:52:30 ID:AAm22yJ7
>>360
俺は仕様追加や更新するかどうかでOOPにするか決めるな。
最初多少手間でも後から相当楽できるから結局楽をしたいことには変わらん。
368Now_loading...774KB:2007/09/18(火) 20:51:57 ID:MvRIbmuP
>>363-365
ありがとごじます。なんと。埋め込みフォント。知らなかったです。
日本語を使わないので英数字のフォントを埋め込んで解決しました。

BitmapData.draw()でフォントを画像データにする方法でも無事透過出来ました。
日本語をダイナミックテキストで扱う場合はこちらの方法が良さそうですね。

ASスレのはずなのにスレチで失礼。
369Now_loading...774KB:2007/09/20(木) 20:18:26 ID:Rm1sHKpH
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)

セキュリティについて質問です。

現在swf内部の記述(AS)が読めるソフトが出回っていますが、今のところ
『最も中身が見れない(バレない)方法』にはどのようなものがあるのでしょ
うか?

つまりは、プロテクトを掛けたいと思っています。
この辺りの技術はイタチごっこでいずれ破られるとは思いますが、一時的に
せよ保護したく思っています。

一応、「Flash便利帖」(インフォメディア著 毎日コミュニケーションズ)のp202で
パブリッシュ設定 → 読み込みプロテクト は勉強しました。
370Now_loading...774KB:2007/09/20(木) 20:26:49 ID:YnUhWzLm
371369:2007/09/20(木) 23:30:37 ID:Rm1sHKpH
>>370
有り難うございます。
372Now_loading...774KB:2007/09/21(金) 13:19:47 ID:RC2nJwul
for文でカウントにiを慣例で使うと思いますが
複数入れ子にする場合も、何か文字があるのでしょうか?
for(var i=0〜
 for(var ii=0〜
  for(var iii=0〜

ii,iiiやi,j,kだとjが見難かったりしますよね?
373Now_loading...774KB:2007/09/21(金) 15:37:21 ID:iyDIO6ly
教科書なら慣例でi,j,kだと思うが、実際には用途に合わせて名前つけたほうがいいんじゃね?
page,line,wordとか
374Now_loading...774KB:2007/09/21(金) 19:10:51 ID:RC2nJwul
>373
なるほど。名前試して見ます。ありがと。
375Now_loading...774KB:2007/09/22(土) 10:36:04 ID:KZSU70kv
>374
あくまでも俺のやり方だが、>373だと、すでにそのクラスの
プロパティとして使う名前とかぶってしまう場合があるので、
ループに使う変数名は自分の中で決めてしまうのも手だ。

たとえば、i、j、k……ときたら間違いなくループカウントだと
ルール付けしてしまえば、あとからソースを見たときに
視線がまごつかなくてすむ。
反面、その変数が何を表しているのかは、ソースを読まないと
分からなくなるわけだが。
376Now_loading...774KB:2007/09/22(土) 14:55:45 ID:M/Y5Y738
昔は>>373みたいな意見も多かったけどねー
今はループ用一時変数は統一されてるのが殆どじゃない? 下手につけると衝突するでしょ
377Now_loading...774KB:2007/09/22(土) 17:12:11 ID:BHL4zl0l
ループカウンタはカウンタとしてわかる無意味な短い変数名ならば良いと思う。
一般的に使われているi,j,kとかx,y,zとか。3次元以上のループはわかりにくいので
設計をデータクラス(レコード)にしたりして次元を落として見やすくする方が良いと思う。
ソースを読んでいてfor文の中にrow,colとか書いてあるとカウンタではなく、
なにか意味のある、スコープが大きい変数かなと思って思考が一時停止しちゃう。
378Now_loading...774KB:2007/09/23(日) 10:19:37 ID:wCi0nQ10
LoadVarsのonLoadで困っているのだが、知恵をお貸しいただきたい。

LoadVarsのsendAndLoadで読み込んだ結果を、関数の結果として返したいのですが
onLoadが完了する前に関数の結果がnullとして返ってしまう。

function hoge(str)
{
 var re = new LoadVars();
 var se = new LoadVars();
 se["msg"] = str;
 se.sendAndLoad(URL, re);
 
 re.onLoad = function(success)
 {
  if(success)
  {
   //ここがreturnされてほしい
   return re["result"];
  }
 }
}

test = hoge("aaa");
trace(test); //null

うまく関数の結果を返す方法が分かる方、ご教授ください。
379Now_loading...774KB:2007/09/23(日) 10:38:01 ID:V2WFfrq8
メインの方でsetIntervalを使って処理待ちすればいいのではないかな
380Now_loading...774KB:2007/09/23(日) 11:27:40 ID:VB6Lvfzs
読み込み待ちできない奴多すぎるな
>onLoadが完了する前に関数の結果がnullとして返ってしまう。
これ自分で書いてて当たり前だと思わないんだろうか?
381Now_loading...774KB:2007/09/23(日) 11:48:04 ID:QIjd3skm
>378
詳しくソースは追い掛けてないけど、ひとつ気になったことは、
なんでイベントハンドラの処理を定義する前に
sendAndLoadを実行しちゃってるのかな、ってこと。
定義前に結果が帰ってきたら、結果の行き場がない。
それじゃー空振りするでしょ。
382Now_loading...774KB:2007/09/23(日) 13:00:25 ID:wCi0nQ10
>>379
その方法でうまくいきました。
setIntervalとか、意外と使いやすいですね。

>>380
いやぁ、薄々は感じていたのですが、じゃあどうすれば、というところで
躓いていたわけです。

>>381
確かに。順序を入れ替えました。
383Now_loading...774KB:2007/09/23(日) 15:37:27 ID:2FSlMhjA
え、ちょっと待て。
setInterval使わないとロード待ちできないなんてことないだろ?
なんのためのLoadVarsだよ。
384Now_loading...774KB:2007/09/23(日) 17:06:04 ID:b4lv3C7V
>>378
非同期読み込みなんだからコールバックにしたほうがいい
385Now_loading...774KB:2007/09/23(日) 19:00:28 ID:QIjd3skm
>378の問題点は、関数の中にコールバックを作った上で、
その処理結果を戻り値としたことだな。
test = hoge("aaa");
trace(test);
で、イベントを待ってtraceしてくれるわけではないから
戻ってきたときにはすでにtraceは終了してるわけだし。

でも正直、俺も「関数の戻り値」として、こういう結果を取得したいと
よく思う。いちいちルートにコールバックを書くのはなんかダサく見えるし、
かといってコールバック内に処理(この場合はtrace)を入れるのも
見づらいし。

みんなは>378みたいなことをしたいとき、どうやって書いてる?
386Now_loading...774KB:2007/09/23(日) 19:14:59 ID:+wLcGl6I
function hoge(str){
 var se:LoadVars = new LoadVars()
 var re:LoadVars = new LoadVars()
 se["msg"] = str
 
 re.onLoad = function(success){
  (success) ? re["LoadFin"]() : false
 }
 se.sendAndLoad(URL, re)
 return re
}

var test:LoadVars = hoge("aaa")
test.onLoadFin = function(){
 trace( test["result"] )
}

普通にコールバックしかねぇだろw
387Now_loading...774KB:2007/09/23(日) 19:18:00 ID:+wLcGl6I
re["LoadFin"] → re["onLoadFin"] のミスス(´・ω・`)

ASにスレッド同期処理があればいいんだけどね。
388Now_loading...774KB:2007/09/23(日) 20:16:13 ID:r6NmunPI
AS2.0まではデコンパイラもそれを防ぐソフトもあるようですが、
AS3.0では同様のツールはまだ出ていないんでしょうか?
もしくは根本的に必要がなかったりするのでしょうか。
389Now_loading...774KB:2007/09/23(日) 23:12:39 ID:ZV3VxgoD
remoteProxy系は2も3もDispatcher使うのが普通だろ。ツールなんかいらんはずだぞ。
390Now_loading...774KB:2007/09/24(月) 00:01:05 ID:ZV3VxgoD
ゴメン酔っ払ってたから読み間違えた
391Now_loading...774KB:2007/09/24(月) 15:04:25 ID:GtWrn8iA
>>388
すでにAS3仕様書が公開されてるから何をやっても無駄。
392Now_loading...774KB:2007/09/24(月) 16:03:31 ID:aQ9jWDUm
>>392
つーことは、AS2.0は仕様書が公開されていないから、デコンパイラを防ぐソフト
が出来たということ?
393392:2007/09/24(月) 16:04:24 ID:aQ9jWDUm
いかん、自問してもうた。

392は391への質問です。
394Now_loading...774KB:2007/09/24(月) 23:28:55 ID:GtWrn8iA
>>392
バイトコードをアセンブラのごとく読めば
何やってるのか普通にわかるって事。
ASも8以前のswf仕様書も全部公開されてる
395Now_loading...774KB:2007/09/24(月) 23:47:05 ID:tWcvQwzk
>>394
レス有り難うございます。
デコンパイルに対するプロテクトといっても、結局は一時的なものなんですね。
396Now_loading...774KB:2007/09/25(火) 03:05:53 ID:TBCw7Ifp
質問です。
波の動きをさせようと以下のスクリプトを組み込んだが、
1回再生したっきり何も起こりません。

コードを記載してあったhttp://hakuhin.hp.infoseek.co.jp/main/as/move.html#MOVE_03のサンプルは連続再生出来ています
何がおかしいのでしょうか?

onClipEvent (load) {

length = 30; // 波の幅
rot = 0; // 角度(位相)

dx = 5 // x方向移動量
posy = 150; // 元となるy座標
height = 100
}
onClipEvent (enterFrame) {

_x = _x + dx; // x方向移動
rot = rot + 10; // 0〜360まで一定の速度で増やし続ける
if(rot > 360) rot -= 360; // 360を過ぎると0に戻す
rad = rot * Math.PI/180; // 角度からラジアンに変換
_y = posy + Math.sin(rad) * height; // y方向移動

}
397Now_loading...774KB:2007/09/25(火) 03:41:41 ID:TBCw7Ifp
永遠にx軸+方向に波打ってる。ステージから消えたときにでも_xをリセット
398Now_loading...774KB:2007/09/25(火) 03:43:01 ID:TBCw7Ifp
うお、ID同じだ。初体験w 自演じゃないからねw
399Now_loading...774KB:2007/09/25(火) 03:52:03 ID:/JBjbjXA
可能性は否定しないけど
これは自演ですね
400Now_loading...774KB:2007/09/25(火) 03:52:07 ID:TjOZ2AMF
はいはい自演自演
401Now_loading...774KB:2007/09/25(火) 03:57:38 ID:yRCc23vB
>>398
俺も経験あるから、
じぇんじぇん気にすることないよ。
402Now_loading...774KB:2007/09/25(火) 04:38:33 ID:mp9864L/
>401
この勇者にActionScriptの女神の加護があらん事を
403397:2007/09/25(火) 05:26:45 ID:TBCw7Ifp
じぇんじぇん気にしてないよ。
取り合えず今日1日は初心者を装って色々デキル訳だな。
ちょうどいい機会なんで悩んでたこと質問してみる。XMLを拾って解析するコードです。

var XmlLoad = function(e:MouseEvent):void{
 var myLoader:URLLoader = new URLLoader( new URLRequest(XMLのURL) );
 function XmlLoadFin(e:Event):void{

  /*var root_MC:MovieClip = this.root as MovieClip;
  root_MC.addChild(myXML)*/  ←質問2を試してみた残骸

  LoadXmlNode( XML(myLoader.data) );
  ↑質問1の箇所。ターゲットパス(thisやMC化したroot)を付けると動かなくなる。何故・・・
 }
 myLoader.addEventListener(Event.COMPLETE, xmlLoadFin);
}
XmlRead_btn.addEventListener(MouseEvent.CLICK, XmlLoad)

var LoadXmlNode = function(myXML:XML){
 for each (var Node:XML in myXML.Person.(@id==2).*){
  Node_txt.text += Node.name() + ":" + Node + "\n"
 }
}

AS3.0です。ごちゃごちゃ書いてますが、したいことは
1.もしLoadXmlNodeの呼び出しにターゲットパスを付けるとしたら…、一体何を?(root_MCやthisでは動かず)
2.もしもmyXMLを引数でなく、どちらの関数からも直接参照できる、フィールド変数(?)として、
「関数XmlLoadFinの中から」宣言するにはどうすれば?(2.0ではverを省略すれば出来た。見辛いソースになるし廃棄された?)
3.myLoaderのListenerは、ステートメントから出て、myLoaderが消えた時に一緒にデリートされてるのかな?

動くには動くので特に困っているわけではないのだけれど、分からないので何となくスッキリしなくて。。
良ければ誰か教えてほしい、長文スマン
404Now_loading...774KB:2007/09/25(火) 08:19:01 ID:w7qxoptu
何で無名関数なのか、また2.0のxmlNodeなのかよくわからんな
MC化したrootとは↓みたいなことかな。できないかな。
var rootas:MovieClip = this.root as MovieClip;
リスナーは明示的にremoveするか、弱い参照にしておくと良いと思う。

いずれにせよclassと3.0のxml,xmllistを使った方がスマートにできるよ。
405Now_loading...774KB:2007/09/25(火) 08:26:48 ID:w7qxoptu
ああ、XmlNodeって名前のxmlか、、、
406Now_loading...774KB:2007/09/25(火) 08:30:00 ID:w7qxoptu
関数名とか変数名は大文字で始めないでほしいなあクラスかと、、、あ、もう書きませんすみません。
407Now_loading...774KB:2007/09/25(火) 13:59:08 ID:gqhvmMp6
どどんまい
408Now_loading...774KB:2007/09/25(火) 20:36:12 ID:HFb2puJu
なんでIDが同じだと
>今日1日は初心者を装って色々デキル訳だな。
になるんだ?
409Now_loading...774KB:2007/09/25(火) 21:53:50 ID:TBCw7Ifp
ノリで言ってみただけだよ。マジにとらえないでくれ
410Now_loading...774KB:2007/09/25(火) 22:13:51 ID:HFb2puJu
あぁ、そうなの。
IDが同じじゃなくても初心者を装えるだろって思ったから
どういう意図で言ったのか知りたかったの。
411Now_loading...774KB:2007/09/26(水) 10:54:39 ID:Rr04CYhD
CS3は持ってるんですがしばらく使えない環境に行くことになりました
その間にもAS3の勉強をしたいのですが、どうにも本を読んでいるだけでは頭に入ってきません
実際いじりながら覚えていこうと思うんですが
AS3対応のフリーのFlashソフトなどありますか?
412Now_loading...774KB:2007/09/26(水) 11:15:42 ID:sqrU35UX
マウスを動かすと、ball(mc)が動くASでaddListenerで質問です

myObject=new Object();
myObject.onMouseMove = function() {
ball._x +=1;
};
Mouse.addListener(myObject);

or

ball.onMouseMove = function() {
this._x +=1;
};

どちらでも動きますよね
なんでmcだとaddListenerは不要なんでしょうか?
413Now_loading...774KB:2007/09/26(水) 13:26:09 ID:KXUCHuTQ
>>
414Now_loading...774KB:2007/09/26(水) 13:26:13 ID:zl06CDKy
>412
そんな理屈は考えたことがないなあ。動けばOKなんだし。
しいていえば、Mouse.addListener()はMouseオブジェクトで、
MovieClip.onMouseMove()はMovieClipオブジェクトだからだろうな。
アーキテクチャの違いってやつだろ。好きな方を使えば良いんじゃね?
415Now_loading...774KB:2007/09/26(水) 13:49:14 ID:KXUCHuTQ
>>411
Flex 2 SDK
416Now_loading...774KB:2007/09/26(水) 14:16:16 ID:KXUCHuTQ
>>403
コード書いて動かしてみたがワカランカッタ(´・ω・`)
なんでターゲットパスつけると動かなくなるんだコレ。何か3.0の階層構造にまだ慣れないわ
取りあえず3つ目の質問だけになるが、ハンドルしてるObjectが消えたらハンドラも消えたはず。by.NET

>>404
無名関数にするとブロック内でカプセル化されるんじゃなかったっけ
3.0じゃどうかしらんけど、2.0のときは衝突避けるときに使ってた希ガス
てかローダー部分は置いといて、XML読み込みの部分はE4X使ってるみたいだし十分スマートだと俺はオモ
417Now_loading...774KB:2007/09/26(水) 14:56:56 ID:VGxwHg04
質問です。

AS3で、SharedObjectを使ってFlash Communication Serverとデータの送受信
をするときの挙動なんですが、AS1のときは

共有オブジェクト.data.xxx = 1

のような書き方でサーバーの共有オブジェクトにデータが送信されたんですが
AS3で同じ書き方をしてもデータがいかないようなんです。

サーバーサイドASで共有オブジェクトを更新するときに使う、
setPropertyメソッドを使えばいけたんですが、ヘルプを見ても、それは
サーバーサイドで使うメソッドだと書いてあります。

AS3ではsetPropertyを使わないと送信できない仕様になったんでしょうか。
どうかご教授ください。

418Now_loading...774KB:2007/09/26(水) 15:30:00 ID:f57mUZHx
winXP・flash8使用です。

actionscriptをある程度使える人になりたいと思って
早1年が過ぎましたが
未だに、ボタンにgotoAndPlayつけたりとか
そんなのしか出来ません。
力技でアニメーションを作るのは得意ですが
AS使わないと出来ない事も出来るようになりたいです。

何をどう勉強すりゃいいの?状態なんですが
おすすめの参考書籍教えてください。
419Now_loading...774KB:2007/09/26(水) 15:38:13 ID:/udwhN6y
本なんて頼りに出来ない
知らないものは自分で触って感覚的に覚えるのが一番
420Now_loading...774KB:2007/09/26(水) 15:41:43 ID:V0/aBcXj
421Now_loading...774KB:2007/09/26(水) 15:45:53 ID:V0/aBcXj
>>403
その書き方だとfunctionのスコープがたぶんglobalになる。よってrootは無意味。
ターゲットを書かないその方法が一番楽なはず。つーっか汚なすぎ。
通信専用のクラス作ってそこに処理まとめればいいじゃん。
422Now_loading...774KB:2007/09/26(水) 15:48:04 ID:V0/aBcXj
>>412
MovieClipクラスにはonMouseMoveという名前のイベントハンドラがあるから。それだけ。

2.0では、addEventlistenerはイベントハンドラ無いオブジェクトでもイベントをハンドリングできるために用意されているもの。
あとは、違う名前の関数を使ってハンドリングしたい時に使うもの。
423Now_loading...774KB:2007/09/26(水) 15:49:00 ID:Ayy9C01V
>>415
ありがとうございます
424412:2007/09/26(水) 16:03:50 ID:sqrU35UX
>422>412
MovieClipクラスに用意されてんのね
何かのクラスでextendsした場合は楽なんかな
処理がaddListenerより早いし
納得した。thx
425418:2007/09/26(水) 19:12:04 ID:f57mUZHx
>>419
勉強する取っ掛かり?みたいなのが欲しいんですよね。
でも言い得てるレスだと思います。

>>420
とりあえず、その本買ってみて
全部理解できるように頑張ってから、次考えてみます。
ttp://www.amazon.co.jp/gp/aw/d.html/ref=aw_mp_1/?a=4881664573&uid=NULLGWDOCOMO
こっちもいいのかな?
426Now_loading...774KB:2007/09/26(水) 21:56:16 ID:zl06CDKy
>417
クライアントサイドで、
SO.data.foo=1;
SO.setDirty('foo');
をためしてみて。
427Now_loading...774KB:2007/09/26(水) 22:40:33 ID:wY4KIGeW
質問しにきました。
Flashの背景色をASで変えたいのですが、描画メソッドしか方法ないですか?
直接弄れたら楽だろうなと思って・・もしそういうASあるなら教えてもらえますか?
428Now_loading...774KB:2007/09/26(水) 23:21:06 ID:d/6D0Tgc
>>427
回答するために書き込みます。
AS2.0ならColor クラスや flash.geom.ColorTransform クラスがあります。
ただしFlashの背景色ではなくムービークリップの色を変えるものです。
429Now_loading...774KB:2007/09/27(木) 20:22:24 ID:84OqS0wk
actionscriptで日付フォーマットができる関数って無いですかね?

trace(dateFormat(new Date(),"yyyy/mm/dd"); //2007/09/27
とか。
430Now_loading...774KB:2007/09/27(木) 21:03:07 ID:z4JJWENT
>>429
エクセルのセル書式設定のようなのは無いよ。自作汁。
431Now_loading...774KB:2007/09/27(木) 21:13:35 ID:1lNoZk5Y
createEmptyMovieClipもattachMovieも
for文内で複数作ると最後の奴しか表示されないんですが、
これはなぜですか?
432Now_loading...774KB:2007/09/27(木) 21:16:05 ID:AktNaF/L
>>431
関数引数の深度が全部同じだからだろう。
同じ深度に存在できるMCは1つだけ。
433Now_loading...774KB:2007/09/27(木) 21:44:50 ID:1lNoZk5Y
>>432
解決しました。ありがとうございました。
434Now_loading...774KB:2007/09/28(金) 00:44:31 ID:Wb48mEx6
再び質問お願いします。

矩形ツールでムービークリップをつくり、
その1フレーム目にイベント(onRollOut,onRollOver)を記述してるんですが、
思うように動いてくれません。

画像をロードする前ならちゃんと記述したとおりに動いてる事はわかったんですが、
ロード後になるとイベントの関数も呼ばれてないようです。

マウスが上に行ったら画像を表示(_alpha = 100)し、マウスが離れたら非表示(_alpha=0)
としたいです。

よろしくお願いします。
435Now_loading...774KB:2007/09/28(金) 00:52:05 ID:Ndx6R9i0
>>434
矩形ツールによるMCと画像とのパスの関係は?
とりあえず、trace(This)などであちこちチェックしよう。
436Now_loading...774KB:2007/09/28(金) 00:53:19 ID:Ndx6R9i0
435です。訂正。
trace(this)です
437Now_loading...774KB:2007/09/28(金) 00:55:16 ID:/cBcPpAg
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)

hitTest()のヒット先MC枠ついて質問です。

root上に2つの円形MC(en1, en2)があり、en1をドラッグさせ、en2の座標を使って
en2へのhitTest()をさせています。ASは、

on (rollOver) {
if (this.hitTest(_root.en2._x, _root.en2._y, true) == true) {
trace("en2塗り内の点にHit中");
}
}
※ on (press) と on (release) で、en2をstartDrag()とstopDrag()をする。

これは目的の通り動作したのですが、次に
if (this.hitTest(_root.en2._x, _root.en2._y, false) == true) として、en2の枠を対象に
hitTest()判定を試みましたが何の反応もありませんでした。変更部分のASは下の
通りです。
on (rollOver) {
if (this.hitTest(_root.en2._x, _root.en2._y, true) == true) {
trace("枠にHit中");
}
}

目的通りなら、「枠にHit中」と出る筈ですが何も出ません。
アドバイス願います。
438437:2007/09/28(金) 00:59:10 ID:/cBcPpAg
上記、訂正します。

下段の変更部分は、正しくは
on (rollOver) {
if (this.hitTest(_root.en2._x, _root.en2._y, false) == true) { //hitTestの第3引数は、true じゃなく false
trace("枠にHit中");
}
}
439437再:2007/09/28(金) 01:10:05 ID:/cBcPpAg
すみません。質問文中に他に細かい間違いがあるので、改めて質問します。
((以下の質問文でお願いします))

----------------------------------------------------
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)

hitTest()のヒット先MC枠ついて質問です。

root上に2つの円形MC(en1, en2)があり、en1をドラッグさせ、en2の座標を使って
en2へのhitTest()をさせています。ASは、

on (rollOver) {
if (this.hitTest(_root.en2._x, _root.en2._y, true) == true) {
trace("en2塗り内の点にHit中");
}
}
※ on (press) と on (release) で、en1をstartDrag()とstopDrag()をする。

これは目的の通り動作したのですが、次に
if (this.hitTest(_root.en2._x, _root.en2._y, false) == true) として、en2の枠を対象に
hitTest()判定を試みましたが何の反応もありませんでした。変更部分のASは下の
通りです。
on (rollOver) {
if (this.hitTest(_root.en2._x, _root.en2._y, false) == true) {
trace("枠にHit中");
}
}

目的通りなら、「枠にHit中」と出る筈ですが何も出ません。
アドバイス願います。
440Now_loading...774KB:2007/09/28(金) 07:08:28 ID:lHJbwdHV
>439
枠って矩形?
this.hitTest(_root.en2);

円の重なりなら
ttp://hakuhin.hp.infoseek.co.jp/main/as/collide.html#COLLIDE_00
441434:2007/09/28(金) 14:36:18 ID:Wb48mEx6
だめでした。
onPressイベントで画像のロードとtraceをやったんですが
画像ロード後にはonPressイベントが呼ばれません。


flash professional 8です。
442Now_loading...774KB:2007/09/28(金) 15:21:26 ID:xlWELBUc
>>441
画像読み込んだら基本的にフレームに書いてたスクリプトは無効になるよ。
読み込み完了後にあらためてイベントハンドラ設定しなおすか、
その矩形上でさらに画像読み込み用のMCか、createemptymovieclipで作ったMC用意して
そこに画像読み込めばいいんじゃないかな。
443437再&439:2007/09/28(金) 15:48:06 ID:UTLPObPc
>>440
そうです。矩形(境界ボックス)です。Flash8のヘルプを読み直すと

 shapeFlag: Boolean は、指定したインスタンスのシェイプ全体を評価するか (true)、
 境界ボックスだけを評価するか (false) を指定するブール値です。このパラメータは、
 x 座標と y 座標のパラメータでヒット領域を指定する場合にのみ指定できます。

ということなので、
if (this.hitTest(_root.en2._x, _root.en2._y, false) == true)
という判定には意味が無いようです。

つまり、このif文の記述は、en2の境界ボックスを判定基準に使っているので、実質
this.hitTest(_root.en2) と同じと考えてよろしいでしょうか?
444Now_loading...774KB:2007/09/28(金) 17:46:13 ID:lHJbwdHV
引用に座標でしか機能しないって書いてアンジャン
445Now_loading...774KB:2007/09/28(金) 20:16:01 ID:x25CWzzO
acl=2.5;
brk=1.5;

n=1;
rmt=100;

function copy(){
ball.duplicateMovieClip("ball"+n,n+10);

for(i=1;i<=n;i++){
this["xRnd"+i]=Math.random()*rmt-rmt/2;
this["yRnd"+i]=Math.random()*rmt-rmt/2;

this["xm"+i]=_xmouse+this["xRnd"+i];
this["ym"+i]=_ymouse+this["yRnd"+i];
}

this["ball"+n].onEnterFrame=function(){
this._x+=((this["xm"+n]-this._x)*acl)/brk;
this._y+=((this["ym"+n]-this._y)*acl)/brk;
}
n++;
}

st.onRelease=function(){
copy();
}

のonEnterFrame内のthis["xm"+n]とthis["ym"+n]にfor内のthis["xm"+i]とthis["ym"+i]を渡したいのですが、
onEnterFrame内でthis["xm"+n]をtraceするとundefinedが出ます。どうしたらいいでしょうか?
446Now_loading...774KB:2007/09/28(金) 20:22:52 ID:ybBbtSQv
酷いなこりゃ
447Now_loading...774KB:2007/09/28(金) 20:24:27 ID:x25CWzzO
>>446
どういった具合にひどいんでしょか?
448Now_loading...774KB:2007/09/28(金) 20:53:35 ID:1PbB8mYe
>>447
パスが違うんだろ。とりあえずtrace(this);
449Now_loading...774KB:2007/09/28(金) 21:29:08 ID:x25CWzzO
>>448
ball+iの変数にアクセスするのにはどう指定したらいいんでしょうか?

↓こんなんありえないですし…。
this["ball"+n]["xm"+n]
450Now_loading...774KB:2007/09/28(金) 21:39:42 ID:1PbB8mYe
>>449
おまえ、なんでレス無視して自分思考してるんだよ
レスする意味無いじゃん
traceしたのならその結果どう思うかとか書けよ
451Now_loading...774KB:2007/09/28(金) 21:46:23 ID:x25CWzzO
>>450
すみません。

onEnterFrame内のtrace(this)は_level0.ball1、
for内のtrace(this)は_level0、
ということでonEnterFrame内のthis["xm"+n]を_root["xm"+n]に変えてみたのですが
undefinedです。

もう少しヒントを…
452Now_loading...774KB:2007/09/28(金) 22:07:17 ID:SXV0X6Oy
>>445
ballをduplicateMovieClipして、それぞれにメソッドを割り当てたいの?なら、
ball.duplicateMovieClip("ball"+n,n+10);
を1回しかやってない以上、ムリだ。
同時に、thisの理解に不十分なところがある。むしろこっちがマズイ。
いま手元にflashがないので検証はできないが、次のを参考にしてみて。

var acl=2.5;
var brk=1.5;
var n=1; //何を表現したいのかを良く考えて、妥当な値にすること
var rmt=100;
function copy(){
for(i=1;i<=n;i++){
//thisにballというMCがあると仮定
this.ball.duplicateMovieClip("ball"+i,i+10);//「ball1」等の名称でデュプリケートする
var xRnd=Math.random()*rmt-rmt/2;
var yRnd=Math.random()*rmt-rmt/2;
this["ball"+i].xm=_xmouse+xRnd;
this["ball"+i].ym=_ymouse+yRnd;
this["ball"+i].onEnterFrame=function(){
this._x+=((this.xm-this._x)*acl)/brk;
this._y+=((this.ym-this._y)*acl)/brk;
}
}

このスクリプトでやりたいことが良く分らなかったから、n回のデュプリケートおよび
おのおののプロパティ、メソッドを定義する例を示したが、君のやりたいこととは
異なる可能性もあるので、そこは自力でやってほしい。
まずはthisの意味、とくにonEnterFrame内のthisとその外側のthisとの違いを、
もういちど勉強しなおしてみよう。
453Now_loading...774KB:2007/09/28(金) 22:44:16 ID:x25CWzzO
>>452
解決しました。
ありがとうございました。
454Now_loading...774KB:2007/09/28(金) 23:00:48 ID:SXV0X6Oy
>453
それはよかった。でも、なぜさっきのがダメで今のがいいのかという
理屈を理解しないと、また同じことをしようとしたときに行き詰まるから、
面倒がらずに勉強して欲しい。
あと、こういうことをやるので有れば、クラスというものを勉強して
そこで各MCの挙動を一気に定義した方が、のちに繋がると思う。
455Now_loading...774KB:2007/09/29(土) 03:00:34 ID:1NUzXdGg
ttp://www.s-grant.co.jp/ここのサイトの下部のように
DirectLink : を押すとtextフィールドのURLが選択されてコピーも自動でされている方法を
ご存知な方はおられませんか?
456437再&439:2007/09/29(土) 04:23:29 ID:VQczcND3
>>444
あっ、そうだった・・・・
457Now_loading...774KB:2007/09/29(土) 04:37:05 ID:hT9x5Zjr
>>455
System.setClipboard()
Selectionクラス

で可能。
458Now_loading...774KB:2007/09/29(土) 11:54:01 ID:BikqFSV8
onMouseDown()でクリックを感知するMCの上にボタンを配置する、という状況で、
そのボタンを押した時に onMouseDown() の処理をさせないようにするには
どうしたら良いでしょうか?
459Now_loading...774KB:2007/09/29(土) 12:15:36 ID:ck3NS+A7
>458
Button._enabled=false;
460Now_loading...774KB:2007/09/29(土) 13:09:26 ID:BikqFSV8
>>459
ありがとうございます。
ボタンを無効化ではなくて、ボタン領域内で、
下のMCのonMouseDown()を無効化させたいのですが、これは無理でしょうか?
461Now_loading...774KB:2007/09/29(土) 13:40:37 ID:BikqFSV8
460ですが自己解決しました。
ボタンのマウスオーバーを監視してフラグを立て、
onMouseDownでそのフラグを参照して分岐処理するようにしました。
462Now_loading...774KB:2007/09/29(土) 18:22:42 ID:teUbErkq
FLASH5です
loadMovieで外部ファイル(png)を読み込みたいのだけども読んでくれない。
試しに同階層のjpgで試した所問題無く読めたのですが、PNGってサポートしてない?
ちなみにプレビューでも特にエラーは吐き出されていない。
463Now_loading...774KB:2007/09/29(土) 18:26:00 ID:mmaP319h
>>462
Flash5では無理。確か8以降対応ではなかったかな
464Now_loading...774KB:2007/09/29(土) 18:30:29 ID:teUbErkq
>>463
そうかありがとう。
でも8以降って随分後回しな扱いなんだな。。
465Now_loading...774KB:2007/09/29(土) 19:00:55 ID:mmaP319h
>>464
そうだね。
PNGを読み込んだswfを作ってそれを読み込むことで代用できなくもないけど、どうかな。
466Now_loading...774KB:2007/09/29(土) 19:24:58 ID:teUbErkq
>>465
いいアイデアだけど
定期的に自鯖から自動生成されるpngを読込みたいので固定じゃないんだ。
convertコマンドで同時変換して読込む事にしたよ
467Now_loading...774KB:2007/09/29(土) 19:32:07 ID:Rixkm1ET
FLASH5って、、何年前のソフトだよwww
Flash5-->FlashMX-->FlashMX2004-->Flash8-->FlashCS3
468Now_loading...774KB:2007/09/29(土) 19:46:18 ID:teUbErkq
>>467
1. 古くて対応してない、困った
2. どうせ買うなら最新
3. 値段的に手が届かない or 踏ん切りがつかない
4. あ、少し工夫すればなんとかなるじゃん

以下1から繰り返し
でも流石に新しいのほしいお
469Now_loading...774KB:2007/09/29(土) 21:12:55 ID:x75dQQB8
MXでいいと思うよ
470Now_loading...774KB:2007/09/29(土) 22:54:25 ID:1NUzXdGg
>>457
遅くなりましたがどうもありがとうございました。
471Now_loading...774KB:2007/09/30(日) 11:38:10 ID:Uzv0anZG
質問です。環境はWIN2000, FlashMX2004Professionalです。

マルチウィンドウのRPGゲームを作ろうとしています。
その際、マウスではなくキーボードによる操作で行わせたいのですが:

・通常のフィールド移動なら、主人公を動かす(正確にはマップをスクロールさせる)
・コマンドウィンドウを開いたら、カーソルを動かし、ボタンで決定
・メッセージパネル表示中は、ボタンで次の文に進む
・戦闘中は、戦闘用のウィンドウからコマンド決定。メッセージ用パネルに実況文を表示。ボタンで次の文章を読む

などと言ったように、キーボード操作を受け付ける対象が頻繁に変わります。
またウィンドウやフィールド、メッセージパネルは、それぞれ「dialogue_mc」「fileldMap_mc」「message_mc」の中に
attachMovieClip()することで、管理しやすくしようとしています。

この切り替えを、Key.addListner(ウィンドウ、マップもしくはメッセージパネルのMC)で行なおうと思っていますが、
オブジェクト指向を考えて、ウィンドウ自体の操作とリスナーの切り替えは、分離しようと考えています。
しかし、それをどのように実現して良いのか、思いつきません。例えば、

1.各ウィンドウ等に、「決定ボタンを押したとき()」「カーソルキーを押したとき()」のメソッドと、「どのウィンドウ等
  から操作を受け渡されたのか」のプロパティを用意
2.初期設定では、「fieldMap_mc.マップ」がリスナーである
3.コマンド表示ボタンが押されると、「開くウィンドウ」「自分自身」を、_rootのリスナー管理用メソッドに渡す
4.リスナー管理用メソッドは、「開くウィンドウ」に示されたMCをattachMovieClip()しそれをあらたなリスナーとし、
  今までのリスナーを削除

とした場合、ウィンドウなどは別々の階層構造を持っているので、階層情報ごと「_root.リスナー管理用メソッド」に
渡さねばなりません。そうなるとウィンドウごとに対象ウィンドウの階層構造を既に持たなくてはいけなくなり、
ウィンドウとリスナー管理の分離が難しくなってしまいます。

こうした場合は、どのように管理するのが妥当でしょうか?
472Now_loading...774KB:2007/09/30(日) 16:21:43 ID:zkpY0an3
そんなもん普通にウィンドウごとにイベントハンドラメソッド作っとけよw
考えすぎのOOP中毒患者だな。お大事に。
473Now_loading...774KB:2007/09/30(日) 20:03:10 ID:fQQ1lFrp
>>471
もう一歩先の考え方を取り入れないとだめ。
状態遷移とか、タスクシステムとか。
474Now_loading...774KB:2007/09/30(日) 20:04:01 ID:Uzv0anZG
>472
実は最初はそう考えていたんですが、
その時に操作を受け付けたくないウィンドウ等(=操作対象)も
複数存在します(たとえば、マップにウィンドウを1枚重ねたとき等)
この場合でも、「カレントではない操作対象のイベントを無視する」
ようにしなくてはなりません。

そうなると、例えば「fieldMap_mc.マップ」から「dialogue_mc.コマンドウィンドウ」を
表示させる際、fieldMap_mc.マップ.イベントハンドラ=null」としたうえで
dialogue_mcに内にattachMovieClip()することになりますが、
このコマンドウィンドウは必ずしもマップから開かれるとは限らないため、
ここにイベントハンドラを記述すると、消したときの制御の戻し先が
1つに限定されてしまいます。
「開きもとによって、イベントハンドラ内でswitch等を使い処理を分岐させる」
ということも、のちのデバッグや仕様変更の妨げになるので避けたいところです。

以上のように煮詰まってしまい、Selectionクラスのようなフォーカスを管理する
クラスを使う方を考えたのです。なので逆に、ウィンドウごとに管理できれば
それで他の操作対象との分離は果たせると思いますので、うまい方法をご存じの
肩がいれば、教えていただきたいと思います。
475471:2007/09/30(日) 20:16:01 ID:Uzv0anZG
(>474も>471です)

>473
わかりました、取り急ぎそのキーワードで検索してみます。
ありがとうございました。
476Now_loading...774KB:2007/09/30(日) 22:58:09 ID:G0c/8C0p
>>475
473も言ってるがタスクに乗せたら簡単に出来る
477Now_loading...774KB:2007/10/01(月) 01:14:51 ID:MzPSHq+U
突然なんですが、このスレってWikiないですよね?
状況別のTipsみたいな感じでまとめるようにしたら需要ありますかね?
478Now_loading...774KB:2007/10/01(月) 01:24:57 ID:WcJXrPf3
案件別の事例の解決法
何をどうしたら良いか分からない人へアドバイス
これ以外はググレば分かるし、これをどうやってwikiにするんだる?
479Now_loading...774KB:2007/10/01(月) 01:29:28 ID:HbBblWBZ
>>477
それってASの解説サイトみたいになるんじゃないる?
480Now_loading...774KB:2007/10/01(月) 06:38:35 ID:t4z8/HR/
質問の解答は、大抵リファレンスやGoogleにある。

それに乗ってない解答は、プログラムの組み方等、概念的な質問が多いので、
Tips化は難しい。OOPやアルゴリズム系の本を嫁。としかいえない。
481Now_loading...774KB:2007/10/01(月) 16:19:13 ID:ZxTzfNCI
●質問をする前に、Googleで↓のように検索をかける。FLASH系の過去ログ全体からレスを検索できます。

「"質問したい内容" site:f9.aaa.livedoor.jp/~fcafe/index.php/2chlog/test/read.cgi/」
その後、引っ掛ったページから、Ctrl+Fなどのページ内検索を利用し、該当項目を探し出す。

例:getURLコマンドについて調べたい場合
getURL site:f9.aaa.livedoor.jp/~fcafe/index.php/2chlog/test/read.cgi/


こんなのがあってもいんじゃね? 過去に同じ質問がなかった訳ではないし。たまーに俺も利用してたりする。
482Now_loading...774KB:2007/10/01(月) 16:24:29 ID:ZxTzfNCI
あ、ちなみに上のコマンド使って検索すると、時々Googleさんに

「申し訳ありません・・・ウィルスまたはスパイウェアが自動的にリクエストを送信しており〜〜」

みたいな感じのこと言われるけど、Google側の問題なんで気にしないでね
483Now_loading...774KB:2007/10/01(月) 20:58:19 ID:tySUn27l
>>477
ある。絶対にある。

でも大変だと思うよ。
484477:2007/10/02(火) 04:35:41 ID:qTEiSYTO
なるほど・・自分自身質問はしないまでも、スレを流し見してて「あ、これ試してみようかなー」っていうことが多々あったので
Wikiを思いついたのですが、とりあえず今回は見送りということにしてみます。
485Now_loading...774KB:2007/10/02(火) 10:19:19 ID:vdSGIAYB
>484
いや、やるんだ!人の意見に流されていたらチャンスを逃すぞ
君がやりたいと思ったことをやらないと後悔が待ってるぞ
486471:2007/10/02(火) 22:51:38 ID:SFJCwra1
>>473>>476
あれからタスクシステムについて調べたのですが、
シューティングゲームを例に出している物が多く、よく理解が
できませんでした。今のところの理解は:

・タスク管理をするクラスを_rootに作成
・初期のタスクは、ある操作対象(例えば「_root.fieldMap_mc.マップ」)にセットしておく
・マップから呼び出す出すウィンドウを「コマンド」および「システム」にする場合は、
 「マップ」のポインターを「コマンド」と「システム」としておく
・決定ボタンが押されたとき、ポインターをたどって、「コマンド」ウィンドウを表示
・この時、コマンドは戻り方向のポインターとして「マップ」を持っている
・「コマンド」ウィンドウが消滅したとき、戻りポインターをたどって「マップ」に
 制御を移す

という程度なのですが、おそらく根本的に理解が足りていないと思います。
どのようにアプローチしていけばいいのか、あるいはどこか解説している
サイトがありましたら、教えていただければと思います。
487Now_loading...774KB:2007/10/03(水) 00:13:54 ID:l6/jlcJA
>>486
ウィンドウを子タスクとして生成すれば処理しやすいかなぁ。
子タスク動作中は親タスクの実行を停止するようにしたら
再帰的にウィンドウを何個でも作れるし。
488Now_loading...774KB:2007/10/03(水) 04:59:28 ID:hMF8jjqW
質問です!
体験版のCS3を使っています。

現在、Flash上で外部画像を読み込み、その読み込んだが像に落書きをしたり拡大・縮小できたりするツールを作成しています。
最初からつまづいているのですが、質問させてください。
xmlを使ってFlash上で画像(jpg)を読み込みました。
それをビットマップに変換したいのですが、どのようなActionScriptの記述をしたらいいのか分かりません。
Flash上でJPGをビットマップに変換する事は可能でしょうか?
質問です!
体験版のCS3を使っています。

現在、Flash上で外部画像を読み込み、その読み込んだが像に落書きをしたり拡大・縮小できたりするツールを作成しています。
最初からつまづいているのですが、質問させてください。
xmlを使ってFlash上で画像(jpg)を読み込みました。
それをビットマップに変換したいのですが、どのようなActionScriptの記述をしたらいいのか分かりません。
Flash上でJPGをビットマップに変換する事は可能でしょうか?
質問です!
体験版のCS3を使っています。

現在、Flash上で外部画像を読み込み、その読み込んだが像に落書きをしたり拡大・縮小できたりするツールを作成しています。
最初からつまづいているのですが、質問させてください。
xmlを使ってFlash上で画像(jpg)を読み込みました。
それをビットマップに変換したいのですが、どのようなActionScriptの記述をしたらいいのか分かりません。
Flash上でJPGをビットマップに変換する事は可能でしょうか?
質問です!
体験版のCS3を使っています。

現在、Flash上で外部画像を読み込み、その読み込んだが像に落書きをしたり拡大・縮小できたりするツールを作成しています。
最初からつまづいているのですが、質問させてください。
xmlを使ってFlash上で画像(jpg)を読み込みました。
それをビットマップに変換したいのですが、どのようなActionScriptの記述をしたらいいのか分かりません。
Flash上でJPGをビットマップに変換する事は可能でしょうか?
489Now_loading...774KB:2007/10/03(水) 05:07:55 ID:pjGVRKft
ワロタw
490Now_loading...774KB:2007/10/03(水) 05:12:47 ID:3AbZX5i5
http://pc11.2ch.net/test/read.cgi/swf/1184667056/
の753だろ。
何?スルーされて切れてんの?
491Now_loading...774KB:2007/10/03(水) 05:51:01 ID:TK0Rhve5
>>488
xmlを使ってjpgを読み込むってどうやったんだよw
まず自分がどうやってjpgを読み込んだのかのソースを書け。
話はそれからだ。
492Now_loading...774KB:2007/10/03(水) 07:54:58 ID:cGWCv3xx
JavaとActionScriptの違いってなんですか?
493Now_loading...774KB:2007/10/03(水) 08:26:28 ID:TK0Rhve5
>>492
犬と猫の違いって何ですか?って言ってるのと同じだぞw
494Now_loading...774KB:2007/10/03(水) 08:30:19 ID:8Ff4h+/n
いい得て妙だな
ある段階まではまったく同じなわけだし
495Now_loading...774KB:2007/10/03(水) 10:50:48 ID:0wfXYpRK
>492
双方ちも:
・ECMAという規格(EUにおけるJIS規格みたいなもの)に
 基づいているから、ある程度似通ってるし、テクニックも
 ある程度通用する
・オブジェクト指向の書き方ができる。原則としてプロトタイプベース

ActionScript:
・フレーム(処理レート)の概念がある
・MCという表示単位(処理単位でもある)が基準
・インスタンスの生成に独特のスタイルを持つクラスがある
 (SharedObject.getLocal、attachMovieClipなど)
・クラスベースのオブジェクト指向の記述ができるようになった

JavaScript
・HTMLの要素(エレメント)が、すべてインスタンスとして準備されていて、
 そのプロパティを変更することで表示を変更できる
・ブラウザごとの方言がかなり大きいので、複数のブラウザに
 対応させるのは大変(フレームワークを使い、軽減は可能)

さいきん、JavaScriptも脚光を浴びているので、勉強してみると面白い。
496Now_loading...774KB:2007/10/03(水) 10:57:57 ID:nZ2O8iAm
>>495
レスには敬服するが、一応突っ込んでおくw

492はJavaとActionScriptなのだが。
497Now_loading...774KB:2007/10/03(水) 11:07:11 ID:pjGVRKft
まぁ未だにJavaScriptのコトをJavaって言う人は多いからなw
このスレで「Java」って言われると、本人の質問レベルにもよるが、どっちか分からん場合が多い
498Now_loading...774KB:2007/10/03(水) 13:23:16 ID:pjGVRKft
(゚д゚)

ttp://hobby9.2ch.net/test/read.cgi/av/1189497104/

634 名前:名無しさん┃】【┃Dolby[] 投稿日:2007/10/03(水) 07:54:04 ID:gnEnTDei0
JavaとActionScriptの違いってなんですか?
499Now_loading...774KB:2007/10/03(水) 18:05:10 ID:fAta8ByA
テキスト文字をテキスト色とは違う色で縁取りしたいんだけど
ASでできますか?
500Now_loading...774KB:2007/10/03(水) 21:16:00 ID:BIo1p0Q3
ムービーが終わったら、指定したURLへ飛ぶようにする記述を教えてください。
501Now_loading...774KB:2007/10/03(水) 21:25:53 ID:7zUuXylz
>>499
文字を分解して、インクボンドツールで縁取りするのは駄目か?
502Now_loading...774KB:2007/10/03(水) 23:53:16 ID:36EYCXki
>>500
最後のフレームに
getURL("http://〜");
503Now_loading...774KB:2007/10/04(木) 00:18:06 ID:/gnLzFBM
>>502
ありがとうございます。
504Now_loading...774KB:2007/10/04(木) 00:37:37 ID:/gnLzFBM
>>502
シーンにレイヤーを追加して、最後のフレームをキーフレームにして

getURL("http://〜"); を記述したのですが、上手くいきません。。。
505Now_loading...774KB:2007/10/04(木) 03:39:44 ID:tk3jOMPZ
>>504
最後のフレームいくまえにstopしてるとか何か心当たり無い?
506Now_loading...774KB:2007/10/04(木) 05:18:16 ID:/gnLzFBM
>>505
stopは無いです。むしろstop ():を書いてないので、ムービーがループします。。。
507Now_loading...774KB:2007/10/04(木) 05:32:39 ID:/gnLzFBM
自己解決しました。

stop();
getURL("http://www.yahoo.co.jp");

stopと併記したら、飛んでくれました。なぜstopがいるのでしょうか。。。
508Now_loading...774KB:2007/10/04(木) 09:15:51 ID:cJVG4P9M
>>507
getURLをFPSが30なら1秒間に30回呼んでるわけだろ?
それが、ずーっとループしてるならどうなるかわかるだろ。
509Now_loading...774KB:2007/10/04(木) 11:26:40 ID:v5miPgjM
Flash CS3 を使ってます。
ActionScript3の質問です。

テキストフィールドを任意の個数作りたいのですが、
コンストラクタとFunctionでの使い方がよくわかりません。

var mesFld:TextField; ←コンストラクタ
var i:Number;

関数内
for (i = 0; i <=3; i++) {
  mesFld[i] = new TextField();
}

こんな感じで3つのテキストフィールドを作りたいんですが
TypeError: Error #1009: null がでてダメです。
どうやったらいいんでしょうか?
510509:2007/10/04(木) 11:34:46 ID:v5miPgjM
訂正:上記の場合は4つのテキストフィールドでした。
511Now_loading...774KB:2007/10/04(木) 15:33:21 ID:cJVG4P9M
>>509
何で配列じゃないんだよw
512Now_loading...774KB:2007/10/04(木) 16:24:26 ID:v5miPgjM
>>551
private var mesFld:Array; ←コンストラクタ

にしてもダメなんですが、どうしたらいいんでしょう?
513Now_loading...774KB:2007/10/04(木) 16:25:02 ID:v5miPgjM
未来レスしちゃった。
>>511 へのアンカーっす。
514Now_loading...774KB:2007/10/04(木) 16:52:19 ID:TG+YqKG0
var mesFld:Array = new Array();
515Now_loading...774KB:2007/10/04(木) 17:54:35 ID:v5miPgjM
それだと配列が4つ出来るだけで型が違うらしい。

var i:Number;
var messagE:Array=["メッセージ1","メッセージ2","メッセージ3"];
var mesFld:Array = new Array();

for (i = 0; i >=2; i++) {
mesFld[i] .y = 20*i;
mesFld[i] .text = messagE[i];
addChild(mesFld);
}

TextFieldを並べて、メッセージを表示したいだけなんだよ…
516Now_loading...774KB:2007/10/04(木) 18:14:13 ID:cJVG4P9M
>>515
基本的なことが何も出来てないじゃん。そのfor文の終了条件とかよく考えろ。


var messagE:Array=["メッセージ1","メッセージ2","メッセージ3"];
var mesFld:Array = new Array();

for (var i:uint = 0; i <3; i++) {
mesFld[i] = new TextField();
mesFld[i] .y = 20*i;
mesFld[i] .text = messagE[i];
addChild(mesFld[i]);
}
517Now_loading...774KB:2007/10/04(木) 19:27:07 ID:c5eLT4pF
知識もないのに背伸びするとこうなるんだな、と思った・・・
せめてコンストラクタの使い方くらい理解してからオブジェクト配列に進んだ方がいいぞ
518Now_loading...774KB:2007/10/04(木) 21:54:46 ID:sYfm0mAE
>>516
>mesFld[i] = new TextField();
mesFldはまだlengthが0だと思うんで、
mesFld.push(new TextField());
かな
519Now_loading...774KB:2007/10/04(木) 21:57:48 ID:sYfm0mAE
>>518書いて思ったが、
mesFld[i] = new TextField();
でも自動的に配列伸びてくれるんだっけ?
520Now_loading...774KB:2007/10/04(木) 22:07:27 ID:cJVG4P9M
>>519
var mesFld:Array = new Array();
mesFld[256] = "256のめっせ";
trace(mesFld);
521Now_loading...774KB:2007/10/04(木) 22:32:56 ID:a3pcYCHN
>519
mesFldは配列で、その配列の各要素がインスタンスになっている
ということじゃないかな。
mesFld:Array で、 nesFld[n]:TextField ということ。
522Now_loading...774KB:2007/10/04(木) 23:47:18 ID:sYfm0mAE
>>521
それはわかってるけどね
配列のサイズ指定してなくて[i]とかいいんだっけと思ってさ

>>520からすると、大丈夫なのか
523515:2007/10/04(木) 23:56:15 ID:pDhMSZxc
>>516-521
色々とありがとう。
実際、コンストラクタとかの知識が全然無いので見よう見まねでスクリプトを書いてる状態です。
教えてくれたスクリプトを見て少し理解が進んだかなって感じです。

ActionScriptって難しい。
524Now_loading...774KB:2007/10/05(金) 05:02:28 ID:CFI1QzYY
>>522
[i]はキーを作ってるだけ、ハッシュ表と同じような感じだが
525Now_loading...774KB:2007/10/05(金) 16:04:22 ID:0bKQBS6U
(i) (())
526Now_loading...774KB:2007/10/05(金) 16:07:32 ID:qdXfoWhh
ωつ  (i) (())
527Now_loading...774KB:2007/10/05(金) 16:15:11 ID:EfOsco5h
(+"="+)
528Now_loading...774KB:2007/10/05(金) 16:40:38 ID:ILpEDvrE
    ∩_∩
   ( ・( ェ)・)

529Now_loading...774KB:2007/10/05(金) 17:34:43 ID:EfOsco5h
クマはerrorだろw カワイイからいいけど
530Now_loading...774KB:2007/10/05(金) 23:05:21 ID:MbYqf4iv
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)

MC内に連続して出現するオブジェクト(MC)の色で質問です。

MC(インスタンス名:XY)内にattachMovie()でmarkAというドット状のMC(識別子名:markA)
をrootのonEnterFrameで

newMark = "markA"+id;
_root.XY.attachMovie("markA", newMark, id, prop);

によって円を描く様に並べる前に、出現するmarkAの色を、このフレームアクション

my_color = new Color(this);
this.onEnterFrame = function() {
my_color.setRGB(_root.cn_r << 16 | _root.cn_g << 8 | _root.cn_b);
・・・
・・・
}

のcn_rなどで指定しようとしています。

作成したASを実行すると、確かにmarkAの色は希望した色で出現し、また円を
描いている途中でも色の変更は可能ですが、先頭のドットだけが初期設定の
色(青)のままです。
つまり蛇に例えると、胴体,尾の色は変えられるが、頭の色は変えられない状態
です。考えられる原因は何でしょうか?
アドバイスを願います。
531Now_loading...774KB:2007/10/05(金) 23:58:31 ID:OAHwSxYT
>530
先頭のドットをアタッチするとき、
_root.cn_r等には、何が入っているか調べてみて。
trace()を使えばできるはずだ。

未定義なら、定義のタイミングをかえてみた方がいい。
532530:2007/10/06(土) 00:26:41 ID:GxwfyOES
>>531
レス有り難うございます。1個目の色を調べるためにtrace()を以下のように
したところ、 色= 128, 128, 128 となり、希望の(設定した)灰色にはなっていま
すが実際は、やはり青色です。
if (id == 1) {
trace("色= "+cn_r+", "+cn_g+", "+cn_b);
}

引き続き、調査と細工を試みます。
533Now_loading...774KB:2007/10/06(土) 00:45:27 ID:iGOdbPbG
>>532
文字型になってるのかも試練から足してみて
trace(_root.cn_r + _root.cn_g + _root.cn_b)
534Now_loading...774KB:2007/10/06(土) 00:48:48 ID:h+XnUfIk
すみません。↓のURL先のFlash内でYoutubeのインタフェースを含んだ
動画を表示してますが、これってインタフェースは自作しているんでしょうか?
http://www.itmedia.co.jp/news/articles/0706/22/news061.html
535Now_loading...774KB:2007/10/06(土) 00:50:36 ID:+D8Od/X0
境界条件調べるだけだろ。idの範囲は?
536Now_loading...774KB:2007/10/06(土) 03:49:39 ID:gn4a/fSp
>534
記事を見る限りでは「別のウィンドウが開いて」となってるから
その中に自作のインターフェースを表示させてるんでしょ。
で、そっからNetConnectionとNetStreamでムービー取得と。
537Now_loading...774KB:2007/10/06(土) 03:56:21 ID:irfaKOH+
YouTubeってクロスドメイン許してんの?
538Now_loading...774KB:2007/10/06(土) 04:07:55 ID:gn4a/fSp
>537
予想だけど、そう言う契約をそこの企業としてるんじゃないか。
FCSでは、ドメイン単位で許可する事はできるはずだから。
539Now_loading...774KB:2007/10/06(土) 17:03:19 ID:MqQBbmkL
Adobe Flash で作成した fla や swf をactionscriptファイルに書き出す方法ってあるのですか?
540Now_loading...774KB:2007/10/06(土) 18:22:21 ID:+D8Od/X0
>>539
flaのMCなどをASスクリプトに書き出すという機能は、CS3であるけど、たぶん539の思ってることとは違うと思う。
リバースエンジニアリングがしたいのでしょ。
541530:2007/10/07(日) 00:00:50 ID:wBXoAs42
>>531, 533
原因箇所が分かりました。出現させるmarkAのイベントハンドラで
my_color = new Color(this);
this.onEnterFrame = function() {
my_color.setRGB(_root.cn_r << 16 | _root.cn_g << 8 | _root.cn_b);
trace("色markA= "+_root.cn_r+_root.cn_g+_root.cn_b);
・・・
・・・
}

としていたのですが、my_color.setRGBの行をthis.onEnterFrameの前に置いた
ところ、先頭のMCが希望した色に変わりました。
どうやら、this.onEnterFrameでmy_color.setRGBが呼び出せた際には元の色で
呼び出され、その後に希望色に変わるようです。

ただし、この場合もその前の場合も trace("色markA= "+_root.cn_r+_root.cn_g+_root.cn_b);
は、128128128で、文字列のままです。
542Now_loading...774KB:2007/10/07(日) 00:00:55 ID:+hy5b/9S
>>540
すんません。
Flash作成 初心者なので根本的に間違ってるかもですが、

現在、Flash MX 2004 で作成したflaファイルが数個あるのですが、
これを asスクリプトに書き出す方法ってあるのかなって思ったのです
今後は asスクリプト にして Flex2 SDK でswfにしたいと思ってます。

flaファイル を 完璧に as化 する事って出来るのでしょうか?
画像等のリソースも出てくるのでしょうか?
CS3でしか無理なのでしょうか?
質問ばかりですいませんがよろしくお願いします。
543Now_loading...774KB:2007/10/07(日) 00:12:01 ID:o0ygbS31
>>541
trace("色markA= "+(_root.cn_r+_root.cn_g+_root.cn_b));

これで128128128と表示されるならどっかで文字列型化してるんだろう。
_root.cn_r = Number(_root.cn_r);
で一度数字型に変換汁。
544530:2007/10/07(日) 01:39:51 ID:QXoVJzdr
>>543
さんきゅうです。
545Now_loading...774KB:2007/10/07(日) 06:01:58 ID:Yu09fKPf
なんかムカツク礼だな・・・w
546Now_loading...774KB:2007/10/07(日) 08:20:56 ID:cZziyoLl
trace()の仕様と+演算子の仕様ぐらい解れやw
型チェックはtypeofあたりを使え。

aa=1250;
trace(typeof(aa));
aa="1250";
trace(typeof(aa));
547Now_loading...774KB:2007/10/07(日) 08:35:46 ID:sMY37Gcx
>>546もtypeofを関数だと勘違いしてる気がする
548Now_loading...774KB:2007/10/07(日) 08:39:03 ID:cZziyoLl
>>547
何で?根拠は?
549Now_loading...774KB:2007/10/07(日) 08:57:07 ID:sMY37Gcx
>>548
typeofは前置演算子なので typeof(aa) は ++(aa) と書くくらい不自然だから。
例えばこんなコードで"number"の1文字目の"n"は取れない。
aa=1250;
trace(typeof(aa).substr(0,1));
550Now_loading...774KB:2007/10/07(日) 09:01:08 ID:cZziyoLl
>>549
それはかまわんが、aaのタイプを知りたいときに、上記では間違ってるってことかい?
正解はどうなの?
551Now_loading...774KB:2007/10/07(日) 09:09:10 ID:cZziyoLl
ちなみに
trace((typeof(aa)).substr(0,1));
としなければだめなのでは?
552Now_loading...774KB:2007/10/07(日) 13:26:25 ID:gIQ5Oqpw
自分も>>550へのID:sMY37Gcxレスが見たい。
演算子だというのはわかるが、シンタックスは「typeof(expression) 」とヘルプにあるけど
それが間違いってことか?
でもtrace(typeofaa)じゃ、aaの型はわからない。
実際どうすべきなのかを教えてほしい。
553Now_loading...774KB:2007/10/07(日) 14:00:33 ID:8LOsNyLt
trace(typeof 10)
trace((typeof 10).substr(0,1))
554Now_loading...774KB:2007/10/07(日) 14:09:49 ID:gIQ5Oqpw
>>553
なるほど、理解した。thx
では、()を使うのは邪道ってこと?
そういう記述よく見るけど、実は正しくないのか?
555Now_loading...774KB:2007/10/07(日) 16:03:10 ID:XgtjyR+y
typeof(aa)とtypeof aaって理解しとかないとマズイ時ある?
ムービークリップアクションのボタン系、on(press)なんかだと
thisあるなしでターゲット変わるみたいな

trace((typeof 10).substr(0,1))は括弧つきでも
けっかは変わらんからいいけど
556Now_loading...774KB:2007/10/07(日) 20:40:29 ID:K/3Ic+Cu
環境 win2000 flash8
質問です、以下のようなコードで変数 videoList を function(a){} の中で作った場合に
 function(a){} の外でも使用する為にはどのように書いたらいいのでしょうか?
 function(a){} の外側に書くと配列の値が消えているようです

----ここから-----
System.useCodepage = true;
txtVars = new LoadVars();
txtVars.load("data.txt",txtVars,"GET")
txtVars.onData = function(a){
videoList = a.split(",");
}
------ここまで------
557Now_loading...774KB:2007/10/08(月) 00:20:53 ID:RBY5Oq8v
>>557
videoListをfunction(a){}の外に宣言する。
558Now_loading...774KB:2007/10/08(月) 00:46:52 ID:kVg3lbT6
>>556
loadの引数はurlじゃないのか?
取得できているのかどうか、aの値をチェックしてないじゃん。
559556:2007/10/08(月) 00:56:46 ID:qlH8uS6u
------ここから------
System.useCodepage = true;
txtVars = new LoadVars();
txtVars.load("data.txt",txtVars,"GET")
txtVars.onData = function(a){
videoList = a.split(",");
trace(videoList[0]);
}
trace(videoList[1]);
-----ここまで-----
このような書き方で videoList の値を確認しています
trace(videoList[0]); では適切な値が表示されますが
trace(videoList[1]); では値が入っていません
560Now_loading...774KB:2007/10/08(月) 01:01:01 ID:kVg3lbT6
>>559
trace(videoList);
して配列全部をチェックしてみ。
561Now_loading...774KB:2007/10/08(月) 01:04:38 ID:kVg3lbT6
ちなみにaの値(生の値)をチェックしろと書いたわけで、加工後の
videoListをチェックしろとは言ってないよ。
562556:2007/10/08(月) 01:23:39 ID:qlH8uS6u
trace(a);とtrace(videoList);の結果は同じで data.txtの中身が表示されています
function(a){} の外では共に undefined になっています
563Now_loading...774KB:2007/10/08(月) 01:28:48 ID:kVg3lbT6
>>562
それなら>>557でしょ。
System.use....の下行にでも
var videoList:Array;
としてみれば。
564556:2007/10/08(月) 01:38:49 ID:qlH8uS6u
563の方法も試しましたがダメなようです
function(a){} の中の変数名と外の変数名が同じでも別の変数として値を持っていると思うのですが
ちょっと判りません
565Now_loading...774KB:2007/10/08(月) 01:55:37 ID:kVg3lbT6
>>564
onMouseUp = function(){
trace(videoList);
}
でクリックしてみ。
もしくはテキストフィールドを作ってそこに表示。
566Now_loading...774KB:2007/10/08(月) 01:59:37 ID:EXT3QTW+
>>564
すごく大雑把で分かりにくいだろうけどとりあえず説明すると

txtVars.onData〜trace(videoList[0]);の処理はイベントハンドラ言うて
data.txtの読み込みが完了したというイベントが
通知されて初めて実行されるから、多分>>564の思っている
処理順番とは違う。

>>559だけの処理の順番としては

txtVars.loadでtxtVarsオブジェクトにdata.txtを読みに行ってらっしゃいと命令
(この時点では読み込み自体はしていない)

txtVars.onDataにdata.txtを読みに行ったtxtVarsオブジェクトの読み込みが完了した時に実行させる
処理の内容を設定(この時点では処理内容の設定だけでonDataの中の処理が走らない)

trace(videoList[1]);※videoListなんて変数ここでは初めて出てきて知らないからundefined
この下でいくらvideoListの内容をtraceしてもundefined

 :※アクションフレームを抜けてtxtVarsオブジェクトがdata.txtを読み込みに行って、それが完了するまで
 :Flash上でいう1フレームか数フレームか詳しく分からないけど待つ

txtVarsオブジェクトがdata.txtの読み込みを完了したので、
ここでonDataに記述してある処理を初めて実行する。
videoList = a.split(",");でここで初めてvideoListという変数が現れて
かつ代入処理で特に注釈とかないから自動的にvideoList変数を_rootに定義。
trace(videoList[0]);は先に変数が定義されているので普通に表示される。

てな感じ。
>>559のtrace(videoList[1]);の位置でいくらvideoListの中身を確認しても
その時点ではonDataの中の処理が走ってないから値は入らないよ。
567556:2007/10/08(月) 02:22:52 ID:qlH8uS6u
>>566
trace(videoList[0]);とtrace(videoList[1]);の表示が逆になっていたのはそういうわけなのですか
解説ありがとうございます
問題は判ったのですが解決方法がわかりません、1フレーム目に上記コードを書いてgotoAndStop(2);で2フレーム目に飛ばし、2フレーム目でtrace(videoList);するもやはり値は入っていません
568Now_loading...774KB:2007/10/08(月) 02:49:03 ID:EXT3QTW+
>>567
色々方法はあるし、セオリーとか自分も良くわかって無いけど
とりあえず簡単な方法としては
1フレーム目の最後のgotoAndStop(2);は無くても勝手に2フレーム目に行くから削除して、
2フレーム目を空白フレームまたは空白キーフレームにでもして
3フレーム目のアクションに

if(videoList != undefined){←読み込み完了したかの判定。videoList変数の定義の仕方で判定式が変わるかも
trace(videoList);← 一応確認用、配列として読み込まれていたら(1,2,3とデータ毎に中身がカンマ区切りになっているはず)
gotoAndPlay(4);←4フレーム目に飛んで、そこから読み込み完了後の処理を行う
}else{
gotoAndPlay(2);←読み込みが完了してない場合、2フレーム目に飛ぶ
}

とでも書けば、いけるはず。
data.txt読み込み完了まで、2フレーム目と3フレーム目を行ったりきたりする感じ。
読み込み完了すれば自動的に4フレーム目に飛ぶと。
if(videoList != undefined)の部分はあくまで読み込みが完了したかどうかの判定で
>>559の処理でいけば読み込み完了時にvideoList変数が定義されることを利用してるだけで、
読み込み完了フラグ用変数を用意しておいて
先のonDataの中で読み込み完了フラグ用変数に値を入れて、その値かどうかの判定とかでもOK。
とりあえずこんなとこ。
569556:2007/10/08(月) 03:07:10 ID:qlH8uS6u
無事動きました

>>565>>568
ありがとうございました、今度一緒に呑みましょう(ぇ
570Now_loading...774KB:2007/10/08(月) 12:52:37 ID:Bwx4NhwV
(なぜコンプリートイベントでフレーム移動しないのだろう・・・?)
571Now_loading...774KB:2007/10/08(月) 20:27:33 ID:Tcjbzrlf
>>570
まだ初期化されて無いから
572Now_loading...774KB:2007/10/08(月) 20:51:44 ID:Bwx4NhwV
>>571
他意はないんだが、何が初期化されてないんだ?
「なんだまた読み込み待ちか」と思って>>378-386と書き込もうと思ったんだが、
まったく別のレスが連なってたんで少々驚いてる
573Now_loading...774KB:2007/10/08(月) 22:08:23 ID:LH+UT/54
外部ドメインにある画像にドロップシャドウをつけようと思っています。
サーバにswfを置かずに、ただswfを実行した際にはきちんと影がつくのですが、
サーバにアップしたとたん影が付かなくなってしまいます。
原因がどこにあるのか調べたのですが分かりませんでした。
どうしたらサーバにアップしたときにも影が付くのでしょうか?
よろしくお願いいたします。
574Now_loading...774KB:2007/10/08(月) 23:22:13 ID:Bwx4NhwV
>>573
FlashPlayerのバージョンあげてみたら?
575Now_loading...774KB:2007/10/09(火) 00:06:55 ID:kVg3lbT6
>>572
なんでファイル読み込みのときにエラーチェックしないんだろうか。
そういうサンプルソースとかが普通に出回ってるのかな。ということで。
あとloadの引数は1つでurlだしsendAndLoadの引数とは違う。
ヘルプのonLoadのサンプルソースでは引数3つで書いてあるけどw
内部的にどのように処理されてるかは解らないけど、第一引数だけ有効で後は無視なのかなw
576Now_loading...774KB:2007/10/09(火) 00:35:49 ID:g3z4xR9N
>>575
あーいや、ID:kVg3lbT6のレスの内容は何となく的を得てたから分かるんだけど、それ以外がちょっと分かりづらくてね。
てか>>575が言ってる「エラーチェック」ってのは「デバッグ」のことか?
確かにエラーチェックと言えなくもないが、大抵それで思い浮かべるのは例外処理のコトなんで少し困惑した。

つーか「loadの引数は3つ」ってのは俺も未だに謎だが明らかに本人のミスだと思ったのでスルーした(´・ω・`)
577573:2007/10/09(火) 03:04:40 ID:9Y7ORIFH
>>574
言葉が足りませんでした。
外部ドメインにある画像以外にはドロップシャドウが付くんです。
なので余計に分からなくて…
578Now_loading...774KB:2007/10/09(火) 11:10:43 ID:Kam84+8Q
>>573
>どうしたらサーバにアップしたときにも影が付くのでしょうか?

Flash8と9の両方で試したけど、ローカルとサーバーでドロップシャドウの違い
というのは発生しませんでした。
というか、ドロップシャドウ機能は画像がローカルかサーバーかを区別していないはず。

サーバーからの画像読み込みは時間がかかるから、画像を読む前に画像サイズを決め打ちした
処理が入ってるのかなと想像しますが、プラットフォームもコードも示さないんでは
適切な答えは返ってこないと思うよ。

579Now_loading...774KB:2007/10/09(火) 11:23:21 ID:w5b/Yavn
>>577
>外部ドメインにある画像以外にはドロップシャドウが付くんです。
セキュリティサンドボックスが適用されるから同じドメイン以外のものはbitmapdataとして扱えないよ。
読み込んで表示するまでができることの限界。
580Now_loading...774KB:2007/10/09(火) 14:59:54 ID:C8j8AshE
画面の左上にEnterFrameの度に増えるメーターのようなものを
描きたいんですがそれをすべてActionScriptでやるにはどうすればよいのでしょうか?
581Now_loading...774KB:2007/10/09(火) 15:22:40 ID:ggeyDQc0
>580
mc._xscale=0;
mc.onEnterFrame=function(){
this._xscale+=1;
}
582Now_loading...774KB:2007/10/09(火) 18:08:38 ID:rU2+dtCL
Fla8です。

ブラウザに縦横100%表示でフル画面表示できるようにswfを配置し、
ブラウザの大きさによって拡大縮小できるようにしています。

特定の縮尺以上に小さくしたくない(1024*768)のときは
ブラウザにスクロールバーを出す方法はありませんでしょうか。
100%表示だと無限に縮小されてしまいスクロールバーも出ません。
583582:2007/10/09(火) 18:12:23 ID:rU2+dtCL
追記
ASは下記のように記述することで必要以上に縮小できないようにできました。
w = Stage.width;
h = Stage.height;
if (w<=1024) {
w = 1024;
}
if (h<=768) {
h = 768;
}
ただし、ブラウザを1024*768以下に小さくするとFlash部分が縮小されないが
画面から切れてしまい、スクロールバーも出ないので困っております。
584573:2007/10/09(火) 19:00:40 ID:awnazd73
>>579
ありがとうございます。
サーバにアップさえしなければ影がつくのはなぜなんでしょうか?
585Now_loading...774KB:2007/10/09(火) 20:22:51 ID:QlW6ft08
>>582
そんなのはユーザにとって迷惑で使いづらい
586Now_loading...774KB:2007/10/10(水) 00:02:18 ID:UaeyZ6Um
>>584
ローカルはサンドボックスの対象外だから
587Now_loading...774KB:2007/10/10(水) 01:28:40 ID:EmibyRHS
>>572
onLoadInit
このイベント使え
588Now_loading...774KB:2007/10/10(水) 09:33:54 ID:290Y5orQ
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)

CGIによるメール送信で質問です。

「Flash ActionScript 逆引き大全550」(ITフロンティア著,秀和システム)のp563を参考に
メールを送信を試みましたが出来ませんでした。getURL内の abc@xxx は宛先です。
何処が間違いか見当がつきませんので、とりあえずボタンMC内のASを全て書きます。

なお、タイトルはmailSubjectTで、本文はbodyMsgTです。

on (release) {
System.useCodepage = true;
//エンコード方式をShift-JISに変更
mailSubjectT = escape(mailSubjectT);
bodyMsgT = escape(bodyMsgT);
//タイトルmailSubjectTと本文bodyMsgTを一旦URLエンコードする
this.getURL("abc@xxx/cgi-bin/mailtome.cgi", "_blank", "POST");
//メール用信用デーモンにPOSTでパラメータを送る
mailSubjectT = unescape(mailSubjectT);
bodyMsgT = unescape(bodyMsgT);
//URLエンコードを元に戻す
}

アドバイス願います。
589Now_loading...774KB:2007/10/10(水) 13:02:35 ID:gXRoVw8Y
>588
>試みましたが出来ませんでした

これだと、問題をどう特定していいのかが分からない。
「出来ない」とは、どういう状態になっているの?
たとえば、

・サーバにデータが送信されない
・サーバに送信されているが、結果が帰ってこない
・予期しない○○という結果になる

などなど。
詳しく分からなくても、画面がどう変化したとかは分かるでしょ?
答える側は、そう言う情報から答えを探るから、出来るだけ
「出来ない」ではなく「どうなったか」を伝えて欲しい。

で、ソースを見て判断すると、
this.getURL("abc@xxx/cgi-bin/mailtome.cgi", "_blank", "POST");
でthisをつけているなら、変数にもthisをつけた方がいいんじゃないか。
(ボタンアクションはthisの扱いにレガシを引きずってるから、これが
引っ掛かっている可能性がある)
もし理解できるなら、LoadVarsクラスを使うことを、強くオススメしとく。
590Now_loading...774KB:2007/10/10(水) 13:14:08 ID:25V476Oo
TextInputの境界線を消すにはどういうスクリプトを書いたらいいのでしょうか?
setStyleとか調べたんですが、方法が見つからなかったです。
591_:2007/10/10(水) 13:50:54 ID:FtRfQ8y8
ActionScriptだけを使用してで座標(100,100)に縦横80,50の長方形を
MCというムービークリップとして描くにはどうすればよいのでしょうか?
592Now_loading...774KB:2007/10/10(水) 14:13:14 ID:25V476Oo
>>591
import flash.display.*;

var mc:MovieClip = new MovieClip();
var bitmapData:BitmapData = new BitmapData(80, 50);
bitmapData.fillRect(new Rectangle(0, 0, 80, 50), 0xffff0000);
mc.addChild(new Bitmap(bitmapData));
this.addChild(mc);
593Now_loading...774KB:2007/10/10(水) 19:56:20 ID:mS0tRZaZ
>>590
setStyle('borderStyle', 'none'); じゃね?
594Now_loading...774KB:2007/10/10(水) 20:26:56 ID:25V476Oo
>>593
無理でした
595588:2007/10/10(水) 21:15:56 ID:vLjJ+vOU
>>589
レス有り難うございます。ここでの「出来ない」とは、『宛先(PHS)にメールが届かない』
という意味です。その後、変数のパスに問題がありましたので、修正したところ、以下の
JPGのエラーメッセージが現れました。

http://vista.crap.jp/img/vi9201734354.jpg

黒塗りの後から cgi-bin/mailtome.cgi の部分があり、その後に送りたい文字列が現れ
ています。文字列中に%が頻出するのは、元の送信データを、提案頂いた LoadVars() 
でUTF-8にコーディングしているからです。

※元の送信文の構成:
UIコンポーネントによるチェックボックスのtrue/false,数字(1994),アルファベット(fukuda)
漢字氏名(福田),題名(TestCGI)。 これらは、myLV = new LoadVars(); でmyLVオブ
ジェクトを作り myLV = new LoadVars(); でエンコードしています。

LoadVarsによるUTF-8へのエンコードは『逆引き大全550』に載っていますが、これによる
送信方法は分かりません。引き続きアドバイス願います。

※チェックボックとテキスト入力によるアンケートなどの結果を、UTF-8変換し、CGIでPHS
のメアドに送信するのが最終目的です。
596Now_loading...774KB:2007/10/10(水) 21:34:46 ID:iawLxwa7
そもそも、メール送信CGIは用意してあるの?
そのCGIはFlash経由じゃない場合、きちんとメールが送信できるの?
597Now_loading...774KB:2007/10/10(水) 21:55:03 ID:KI4ImEBG
>abc@xxx/cgi-bin/mailtome.cgi
なんでメールアドレスとcgiが一緒になってんの?
こんなことできたっけ?
598588&595:2007/10/10(水) 23:01:13 ID:Woeg7VRk
>>596
基本的なところに立ち返りますが、通常はメール送信CGIというのを別個に
用意しなけれればならないのでしょうか?


>>597
「逆引き大全550」のSmple545をそのままコピペすると
this.getURL("○○@××.com/cgi-bin/mailtome.cgi", "_blank", "POST");
//メール用信用デーモンにPOSTでパラメータを送る
です。
この部分を含め、ほとんどをそのまま利用しました。このflaファイルそのものをUpしたいの
ですが、著作権上問題があるとみて躊躇しています。

なお、別のプロバイダのメアドを ○○@××.com の部分に使いましたが、同じような
エラーが出ました。
599Now_loading...774KB:2007/10/10(水) 23:06:03 ID:m6g40JCr
>>598
> 通常はメール送信CGIというのを別個に
> 用意しなけれればならないのでしょうか?

しなければなりません。
600597:2007/10/10(水) 23:27:03 ID:KI4ImEBG
>>598
>>588をよく見たら
>メール用信用デーモンにPOSTでパラメータを送る
って書いてあったね。ごめん。メール用信用デーモンってなにか知らないけど
abc@xxx/cgi-bin/mailtome.cgiで送れるようになってるんだろうね。きっと。

cgiを用意できるなら
mailto = "○○@××.com";
msg = "メッセージ";
this.getURL("./cgi-bin/mailtome.cgi", "_blank", "POST");
で送ってcgi側でmailtoとmsgを取得。

用意できないなら
mailto = "[email protected]";
subject = escape("件名");
body = escape("本文");
this.getURL("mailto:"+mailto+"?subject="+subject+"&body="+body);
で我慢。
601588&595:2007/10/11(木) 00:21:04 ID:WmXwhj7I
>>599-600
有り難うございます。現在プロバイダにCGIの可否を問い合わせています。(先行して)600さんの
方法で実行しましたが、何の変化(応答)もありません ・・・本来はメーラーが立ち上がって送信
されるのでしょうか?

念のため、ボタンMC内のASを全て書きます。

on (release) {
System.useCodepage = true;
//エンコード方式をShift-JISに変更
mailto = "abc@xxx";
mailSubjectT = escape(_parent.mailSubjectT);
bodyMsgT = escape(_parent.bodyMsgT);
trace("Data= "+_parent.mailSubjectT+", "+_parent.bodyMsgT);
//
this.getURL("mailto:"+mailto+"?subject="+mailSubjectT+"&body="+bodyMsgT);
//
mailSubjectT = unescape(mailSubjectT);
bodyMsgT = unescape(bodyMsgT);
}

間違いをご指摘下さい。
それと、msg = "メッセージ"; で件名と本文が自動的に区分けされるのでしょうか?
602Now_loading...774KB:2007/10/11(木) 01:16:42 ID:x8KYzIaC
>>601
うちではそれでメーラーが立ちあがるよ。
プレビューじゃなくてブラウザ経由で確認してますか?

メールフォームのようにサーバからメールを送るには、CGIが必要でそれは自分で
用意しなくてはなりません。
CGIについての知識が皆無な場合、自分で多少なりとも勉強する必要もあるでしょう。
とにかく、Flash単体でメールを送信することはできません。
ただし、OSに依存する機能ですがメーラーを立ち上げることはできます。
それが、上で解説されているgetURLで"mailto:"を指定する方法です。
ただし環境によって動作が変わったりしますので、件名や本分がきちんと入らないケースも
あるようです。
603Now_loading...774KB:2007/10/11(木) 01:32:44 ID:n4LYUyeu
>>588
その mailSubjectT と bodyMsgT は何にも使ってないようだね。
他の部分に問題がありそう。
そのサンプルの頭に「Sample544の続きです」とか
その章の頭に「環境を整える方法」とか書かれてない?
604Now_loading...774KB:2007/10/11(木) 01:34:50 ID:if9OzS9V
同じ機能でラベルだけ変えたボタン(movieclipで作成)を複数並べたいとき、
スマートな作りってどんな感じのがありますか?
ラベルにテキストフィールドを使ったら簡単だったんですけど、
絵でやろうとしたら、いいアルゴリズムが思いつきませんでした。
最悪、必要なボタンを個別に作ればいいんですけど、その前に
定番のやり方とか、いいアイデアがあれば教えてくださいませ。

ちなみに、やりたいことは単純で、
ボタンを押すとファイルを読んでその内容が表示される。
ボタンごとに割り当てられたファイルは異なり、ラベルの絵も異なる。
読み込みおよび表示用の関数は完全に同じ。
ボタンのラベルは、マウスのon/off、現在表示中、で絵が切り替わる。
これだけです。
605Now_loading...774KB:2007/10/11(木) 02:24:02 ID:n4LYUyeu
>>604
個人的にそういうMCにコード入れたくないので、
MC側は差の発生する最低限必要な絵だけ作って置いて、
AttachClickEvent(mc1, "file1.jpg");
AttachClickEvent(mc2, "file2.jpg");
こんな感じで対応が一覧で見えるようにして、関数側にメインの処理書く。
function AttachClickEvent(targetmc, filename){
    targetmc.onRelease = function(){
        this.textbox.text = filename;
    };
}

この3行目を別の関数にする時クロージャ関係でちょっと苦労するかも。
606588&595&601:2007/10/11(木) 08:52:59 ID:Imv5jEPW
>>602
すいません。プレビューでやっていました。


>>603
「環境を整える方法」は書かれていません。さも当然のように(誰でも)
メールCGIが使えるような記述です。ただし、手元の本は2005年4月版
なので最新版は分かりませんが。
607_:2007/10/11(木) 15:20:17 ID:8j07Lqtw
>>592
すいません.それを全部貼り付けて実行したのですが何も出てこないのですが・・

どういうことなんでしょうか?
608Now_loading...774KB:2007/10/11(木) 16:44:00 ID:4NtPYZv5
>>607
ActionScript3で書いてるので、パブリッシュ設定をActionScript3にしないと動かないです。
609Now_loading...774KB:2007/10/11(木) 17:15:14 ID:iSfms2At
>607
this.createEmptyMovieClip("box", this.getNextHighestDepth());
box._x=100;
box._y=100;
box.beginFill(0xFF6600);
box.moveTo(0,0);
box.lineTo(0, 80);
box.lineTo(50, 80);
box.lineTo(50, 0);
box.lineTo(0, 0);
box.endFill();
610Now_loading...774KB:2007/10/11(木) 22:40:12 ID:yzDtfjxL
aというムービークリップを配列mc_a[0],mc_a[1],mc_a[2]に入れて、場所を変えようとしたのですが、うまくいきません。
as3.0です。以下、ソースです。

.fla内
var aaa:contents = new contents(a);
aaa.dot();

.as内
package {
import flash.display.*;
import flash.events.*;

public class contents {
var my_mc:MovieClip;
var mc_a:Array = new Array();

public function contents(mc:MovieClip) {my_mc = mc;}

public function dot():void {
for (i=0; i<3; i++) {
mc_a[i] = my_mc;
}
mc_a[0].x = 35;
mc_a[1].x = 135;
mc_a[2].x = 335;

}}}
611Now_loading...774KB:2007/10/11(木) 23:14:33 ID:yzDtfjxL
addChildとかをやっていたら、できました。
ご迷惑おかけしました。
612588&595&601:2007/10/11(木) 23:18:35 ID:VySIJ5K4
(FlashでCGIを使ってメールを送る質問の続き)

プロバイダに問い合わせたところ、CGIはそのプロバイダが用意したHtmlによる
掲示板とアンケート用CGIしか利用できないそうです。従って600さんの2番目の
ASを使うことにしました。

仕組みは若干変更して、root上に置いたボタン内に
on (release) {
System.useCodepage = true;
//エンコード方式をShift-JISに変更
mailto = "abc@xxx";
subject = escape(subjectT);
body = escape(cgiDataT);
this.getURL("mailto:"+mailto+"?subject="+subject+"&body="+body);
}

としました。一応、メーラーは立ち上がり、宛先も希望の abc@xxx になっていまし
たが、件名と本文は空白でした。これは602さんのコメントのように、環境依存で入
らないのかも知れません。

とりあえず、LoadVarsクラスによるエンコードは成功していますので、アンケート自体
のAS作成は続けます。

色々、有り難うございました。
613Now_loading...774KB:2007/10/12(金) 07:51:51 ID:la7NNrTi
>>594
スキンを変える。もしくは、テキストフィールドを使って.border=false;にするとか。
614Now_loading...774KB:2007/10/12(金) 11:08:05 ID:Hf3zl0dE
クラスについて勉強中なのですが、いまいちクラス&インスタンスメンバがハッキリ理解できません
↓はタイムラインに書いていたflvビデオ再生のスクリプトをASファイル用にしてみたのですが
一応動きますがstaticなど使わずつらつらと全部コンストラクタに書いてしまって、これでいいのかなとちょっと不安です
クラス&インスタンスメンバ+コンストラクタな正しい形への修正箇所があればご指摘お願いします

class FlvPlayer {
var connect_obj:NetConnection;
var stream_obj:NetStream;
var videoSound:Sound;
//コンストラクタ
function FlvPlayer(flv_video:Object) {
connect_obj = new NetConnection();
connect_obj.connect(null);
stream_obj = new NetStream(connect_obj);
flv_video.attachVideo(stream_obj);
videoSound = new Sound(dummy_mc);
dummy_mc.attachAudio(stream_obj);}
//ビデオ消音
function volumeStop() {
videoSound.setVolume(0);}
//ビデオ再生
function videoPlay() {
stream_obj.setBufferTime( 5 );
stream_obj.play( "video.flv" );}
}
↓タイムラインのスクリプト
var flvPl:FlvPlayer = new FlvPlayer(flv_video,dummy_mc);
flvPl.volumeStop();
flvPl.videoPlay();
615Now_loading...774KB:2007/10/12(金) 13:38:19 ID:yQkbsrTW
AS3の質問です。
ムービークリップが終わってから、
次のムービークリップに行きたいのですがどうすればいいのかわかりません。

var _01:mc_01=new(mc_01);
var _02:mc_02=new(mc_02);
addChild(_01);
addChild(_02);
_01.gotoAndPlay(1);
_02.gotoAndPlay(1);

mc_01(フレーム数は未知)が終わってから、mc_02を始めたい。
616Now_loading...774KB:2007/10/12(金) 17:06:02 ID:y7UWNVJI
>615
AS3って、varでいきなりオブジェクトのプロパティを宣言できるの?
AS2なら、「var _01:MovieClip=new Object();_01.mc_01〜」って、
2段階に分けないといけないけど。

あと、_01が終わったら云々の場合、AS2ならこうなる。
※フレームアクションでの記述例。クラスファイルだと
イベントハンドラ内部のデフォルト参照に自動的にthisがつくので
意味が変わってしまう。

var _01;MovieClip;
var _02;MovieClip;
_01.onEnterFrame=function(){
if (this._currentFrame>=this.totalFrame){
_02.gotoAndPlay(1);
}
}
617Now_loading...774KB:2007/10/13(土) 19:58:17 ID:3y0DHD2R
Actionscript勉強中です
環境 Flash8 winXP
FLVPlaybackコンポーネントを使用してflvを再生する時に
マニュアルにて
import mx.video.*;
my_FLVPlybk.autoPlay = false;
my_FLVPlybk.contentPath = "http://www.helpexamples.com/flash/video/water.flv";
my_FLVPlybk.seek(3);
my_FLVPlybk.play();
と書いてあります
自動再生はmy_FLVPlybk.autoPlay = false;を書けば設定できますが、swfファイルを表示した時にファイルを取得(seek)しないでplayボタンを押した時にファイルを取得する設定にするにはどのように書いたらいいのでしょうか?
(youtubeのような動きで)
618617:2007/10/14(日) 03:12:14 ID:zWroxzVw
>ファイルを取得(seek)しないで
バッファリングの間違いだと思います
619Now_loading...774KB:2007/10/14(日) 03:27:48 ID:D7S7QXwg
>617
ボタンにイベント設定すればいいんじゃね?たとえば

var my_FLVPlybk;
 |
スクリプト書く
 |
myButton_btn.onRelease=function(){
my_FLVPlybk.seek(3);
my_FLVPlybk.play();
};
620617:2007/10/14(日) 13:18:33 ID:WOvlYYa8
レス有難う御座います
ボタンにイベントを設定する場合、skin(SteelExternalAll.swf)を使っているとそのskinのflaファイルを編集するという事ですか?
FLVPlaybackコンポーネントの再生ボタンを指定するにはどうしたらいいのでしょうか?
621Now_loading...774KB:2007/10/16(火) 22:07:35 ID:qXpyYf9M
質問です。
環境:winXP Flash8pro
書出し:ver.8 AS2.0

オープニングムービーを初回訪問時のみ再生し、
次回から表示させないようにするため、
SharedObjectクラスの使用を考えています。

ユーザーがセキュリティの設定でローカルへのデータ保存をOFFに
設定している場合は有効になりませんが、それ以外ブラウザ等で、
環境によってSharedObjectが使えないといったことはあるのでしょうか?

知っている方おられましたら、情報お願いします。
622Now_loading...774KB:2007/10/17(水) 00:32:27 ID:QRs4mHQ+
スクリプトの書き方(2.0)の事で質問させて下さい
class Bottons {
var MC1:MovieClip;
var MC2:MovieClip;
var MC3:MovieClip;
var MC4:MovieClip;
var pressN:Number
function Bottons(m1:MovieClip ,m2:MovieClip ,m3:MovieClip ,m4:MovieClip) {
MC1 = m1;
MC2 = m2;
MC3 = m3;
MC4 = m4;
}
function bottonP(pressN:Number) {
if(pressN == 1) {
MC1.gotoAndStop(2);
MC1.enabled = false;
MC2.gotoAndStop(1);
MC3.gotoAndStop(1);
MC4.gotoAndStop(1);
MC2.enabled = MC3.enabled = MC4.enabled = true;
}
if(pressN == 2) {
MC2.gotoAndStop(2);
MC2.enabled = false;
(以下略)
1フレーム目に押される前の絵、2フレーム目に押された時の絵のmcボタン(botton1〜4)を配置し、一つのmcボタンを押した時に
押したmcボタンに付いた数字をbottonP関数の引数に送りチェック
押したボタン自体を押せなくしてフレームを2に移動、その他のmcボタンのフレームを1に&押せるようにする、といった事を打ったのですが
↑のように、変数指定やメゾットをどうもだらだらと書いてしまう書き方しかできません・・・
もっとスッキリとした効率の良い書き方があれば勉強の為にも教えて下さい
623Now_loading...774KB:2007/10/17(水) 00:50:25 ID:lKIBMR2h
>>622
class Bottons {
 private var _mcList:Array;
 function Bottons():Void {
  _mcList = new Array();
 }
 public function addItem(mc:MovieClip):Void {
  _mcList.push(mc);
 }
 public function bottonP(pressN:Number):Void {
  for(var i=0; i<_mcList.length; i++) {
   var mc:MovieClip = _mcList[i];
   if(pressN == i) {
    mc.gotoAndStop(2);
    mc.enabled = false;
   } else {
    mc.gotoAndStop(1);
    mc.enabled = true;
   }
  }
 }
}
624Now_loading...774KB:2007/10/17(水) 08:39:22 ID:E55ld3QG
>>622
状況に合わせて少数のボタンの有効無効を設定するなら、ベタに書いた方が
解りやすいし、後々修正するときにも簡単にできる。

短いコーディングがスマートというわけではなく、解りやすくて修正しやすいコーディングの方が良いよ。
625Now_loading...774KB:2007/10/17(水) 14:05:25 ID:vEXp6IqN
質問です。
テキストフィールドに、stylesheetとtextformat両方を指定した場合
片方しか有効にならないのですが、これは仕様なんでしょうか?

環境は WinXP, Flash8, AS2 です。
626Now_loading...774KB:2007/10/17(水) 14:46:45 ID:UWqk762w
Bottonってボットン?
627Now_loading...774KB:2007/10/17(水) 14:50:13 ID:eGxIedqm
フレームラベルを指定して飛んだときに、1つ前のフレームから再生されるのですが
これはそういう仕様なんでしょうか?それともなにかミスが考えられるのでしょうか・・

MX2004です
628Now_loading...774KB:2007/10/17(水) 14:57:53 ID:mvIPS4vV
>>627
そんな仕様はない。
ひとつ前のフレームから再生しているように「見えている」だけ、とか
別のASが邪魔してるとか、移動先のフレームがまだ読み込まれてないって可能性はない?
629622:2007/10/17(水) 16:34:00 ID:QRs4mHQ+
>>623-624
レスありがとうございました、624様のお言葉も頭に置きつつ、623様の書かれたスクリプトも参考にさせて頂きます
630Now_loading...774KB:2007/10/17(水) 17:43:44 ID:jLB/9o3N
>>626
Buttonがぶっ飛んだ
631Now_loading...774KB:2007/10/17(水) 18:44:30 ID:7wtQRXo1
フラッシュを再生したら自動で1度だけ書いたスクリプトを実行させる
文って何?
632Now_loading...774KB:2007/10/17(水) 19:13:41 ID:6kNNesfq
>627
そのフレームにtrace("通過")とか書いて確認汁。

>631
ルートのフレーム1に
onLoad = function(){
)
とか
633Now_loading...774KB:2007/10/17(水) 20:00:11 ID:LCTz3iR8
>>632
それうまくいかない時がある
634Now_loading...774KB:2007/10/17(水) 20:05:16 ID:7ignNLKe
>>632
それは1フレしか無いときか? それなら俺は
this.onEnterFrame = function() { } 内にフラグ=Trueで実行されるASを書いて、更にonEnterFrame内
の最後にフラグ=Falseとしている。

1回しかTrueの機会がないので、onEnterFrameでも1回しか実行されない。
635627:2007/10/17(水) 20:14:50 ID:6IAwvrDI
>>628
>>632

traceで確認すると、やはりずれていたので何かscriptを間違えてるみたいです。
いろいろ試してみます。有難うございました。
636Now_loading...774KB:2007/10/17(水) 20:53:02 ID:SZT5WKlR
>>632
つか、onLoadはそういう使い方しないと思う。
フレームアクションで使うもんじゃなくてクラス内での特定の処理用って
野中氏が書いてた希ガス。

>>634
onEnterFrame使うなら、実行の後にdeleteすればよくね?
毎回onEnterFrameで判定させ続けるのは無駄に思えるんだが。
637Now_loading...774KB:2007/10/18(木) 01:41:52 ID:CcUX8g3U
無駄っていうか、負荷がかかるから、
delete this.onEnterFrame;
だな。
638Now_loading...774KB:2007/10/18(木) 18:37:05 ID:2UT4DSWD
>>632-37
今北産業
よく分からないからまるごとAS書いてクレパス
639Now_loading...774KB:2007/10/18(木) 18:56:03 ID:dcmeTTin
超基本的な質問なんですが、何か処理を常にループさせておきたい時って
皆さんどうされてるんですか?私はいつもsetIntervalを使うのですが、
もっと一般的な方法があるのかと思って質問しました。
640Now_loading...774KB:2007/10/18(木) 19:22:38 ID:0201MtKR
>>639
そこでonEnterFrame
641Now_loading...774KB:2007/10/18(木) 21:43:31 ID:dcmeTTin
>>640
onEnterFrameってムービークリップを用意する手間がかかりませんか?
642Now_loading...774KB:2007/10/18(木) 21:46:23 ID:Q9e0+u1z
>>641
ASで空のMCをつくるだけならそんなに手間かからんと思う
643Now_loading...774KB:2007/10/18(木) 21:47:43 ID:dcmeTTin
>>642
なるほど。
で、それはsetIntervalよりも一般的に用いられている方法なのでしょうか?
644Now_loading...774KB:2007/10/18(木) 21:55:45 ID:ZIfnorVb
少しスレ違いかもしれないんですが、
ニコニコ動画みたいにコメントをリアルタイムで更新して表示したいんですが、
どうやればいいんでしょうか?
setIntervalとかで一定時間ごとに読みに行く以外の方法は。。。?
645Now_loading...774KB:2007/10/18(木) 23:06:33 ID:Q9e0+u1z
>>643
現在それが一般的かどうかは知らん。
MXより前は、setInterval()なんてものは片鱗すらもなく
onClipEvent(enterFrame)しかなかった。
それをひきついだ形でonEnterFrameを使う人はいるだろう。
もともとはフレームアニメーションのソフトだったし
マシンスペックが低い時代には
高頻度な描画更新が期待できなかったこともあり、
フレーム単位で設計を考えることが「昔は」一般的であったと思う。
646Now_loading...774KB:2007/10/19(金) 00:54:36 ID:W79YCVwl
>>639
待機時間を簡単に変えられるsetIntervalの方が都合良い場合が多いと思う。

>>644
Flash側からリクエスト投げた状態で
サーバ側でわざと出力せずにSleepしておくとか。
なんにしろサーバ側の実装が大変なはず。
647Now_loading...774KB:2007/10/19(金) 01:12:01 ID:i7Xv9cX6
>>643
普通描画と同期させたいからonEnterFrameを使う
むしろsetIntervalは予期せぬタイミングでよばれてクラッシュを引き起こす恐れがあるイメージがある
648Now_loading...774KB:2007/10/19(金) 01:23:52 ID:tuMxnnGk
setIntervalはプロセッサの負荷に応じてと玉突き状に遅れていくから特殊用途にしか使わないな。
649Now_loading...774KB:2007/10/19(金) 01:43:11 ID:O6fMLnRZ
>>647
>>648

予期せぬタイミングって、しかもクラッシュって、、設計自体がおかしいからじゃないのそれ。
特殊用途ってなんだよw
650Now_loading...774KB:2007/10/19(金) 01:57:20 ID:46rUnYyO
自分は使わなかったから知らなかったけど
setIntervalで実行される関数の間隔は
onEnterFrame、つまりswf自体の描画フレームレートより
早い間隔に設定しても内部ではsetIntervalの関数が間隔通りに
実行されるみたいね。

てことは描画はあくまで30fpsだけど
入力精度や内部処理が60fps相当なゲームも作れるのか・・・
色々と面倒そうだけど。
651Now_loading...774KB:2007/10/19(金) 02:04:53 ID:fRuXf06C
>>649
確かに設計に問題がなければ大丈夫だろうが、
問題を起こしにくいにこしたことがない。
要は、fpsに同期して考える方が設計が楽ってことだと思う。
Flashはどうしても描画に負荷がかかりやすかったから
fpsが出なければsetIntervalが正確でも意味がないということもあるし…。
652Now_loading...774KB:2007/10/19(金) 04:55:37 ID:dqfD4AMd
極端に負荷のかかるループを実行する時は、
setIntervalでsleepの変わりを実現してる。

例)100万回のループ処理がある場合、
  for文で100万回まわさずに、
  1万ループx100回に分割し、
  setInetrval(loopFunc, 10); な感じで実行してる。




653Now_loading...774KB:2007/10/19(金) 08:00:11 ID:O6fMLnRZ
>>652
いわゆる待ち時間をつくるのはsetIntervalで普通だけど、
その例は最悪だなw
forループ処理とsetIntervalでのコード実行のコストを考えれ。
654Now_loading...774KB:2007/10/19(金) 16:14:41 ID:dqfD4AMd
>>653
実行コストではなく、
他言語に用意されるシステム割り込み『sleep関数』の代わりと書いているのだが?

例えば1forループ10秒かかる処理があったと過程した場合、どう組むのが最適?
setInervalでループ分割する事でブラウザ&Flashのフリーズを阻止する。
なんてのは、中級者以上なら常套手段だと思うのだがw

実行コスト厨っぽいから先に言っとくけど
「そんな負荷かかる処理はロジックが悪い!」とか言う答えは無しな。
655Now_loading...774KB:2007/10/19(金) 16:32:12 ID:O6fMLnRZ
>>654
分散処理で負荷軽減はできるが、その例は良くないってことを言ってるのよん。
forループ10秒かかるってのもすごいが、1万ループを100回に分割って、、、、
サーバー側の処理じゃないんだから、クライアント側ではそんなことは普通しないでしょ。
656Now_loading...774KB:2007/10/19(金) 16:34:42 ID:fpwmazCs
おはようございました。

Windows2000、FLASH MX 2004を使っています。
LoacalConnectionに関して質問させてください。

//受信側
rcv_LCon = new LocalConnection();
rcv_LCon.connect("receiver");
rcv_LCon.rcvTitle = function(a) {
 //30行くらいの処理
}

//送信側
send_LCon = new LocalConnection();

スクリプトで生成したボタン.onRelease = function() {
 _root.send_LCon.send("receiver","rcvTitle",this._name.substr(5,1));
}

上記のような形で初めてLoacalConnectionを使って作ってみたのですが、送信側のswfで生成した5つのボタンの中でどのボタンを押しても、
一度だけ受信側のswfで関数が呼び出されるのですが、二度目はどのボタンを押しても受信側の関数が呼び出せなくなってしまいます。

プレビューで変数を見てみても、受信側のrcv_LConと、送信側のsend_LConはきちんとずぅっと残っているのですが、
なぜ一度通信した後、以降通信出来なくなるのかが分かりません。

解決方法、または解決方法が記されたページがありましたら、教えていただけないでしょうか?
よろしくお願いいたします。
657Now_loading...774KB:2007/10/19(金) 16:47:43 ID:tuMxnnGk
>>655
分散処理って具体的にどういう事?
Javaかなんかとごっちゃに考えていない?
658Now_loading...774KB:2007/10/19(金) 16:53:53 ID:O6fMLnRZ
>>657
たとえば、MCを100個attachする。それぞれのスレッドで動くよね。
for文を分割してsetIntervalを100個作ってそれを動かす。そんな必要あるんかw
ごっちゃというか、OOPそのものなんだけどなw
659Now_loading...774KB:2007/10/19(金) 16:56:03 ID:dqfD4AMd
>>655
>>forループ10秒かかるってのもすごいが、1万ループを100回に分割って、、、、
処理内容と動作スペックでは十分想定の範囲。

>>サーバー側の処理じゃないんだから、
>>クライアント側ではそんなことは普通しないでしょ。
これは、クライアントだからこそするんじゃね?
古いマシンだと、Flashに全てのリソース奪われてブラウザがフリーズ状態になる事だってある。
だからこそ細かめにループ分割しておくことで、ユーザの割り込み=キャンセル処理が可能な実装をしておくべきなのでは。
660Now_loading...774KB:2007/10/19(金) 17:05:59 ID:O6fMLnRZ
>>659
古いマシンってどんだけ古いんだよw
ってのはさておき、その例では「setInterval使えばfor文が早くなるんだぜ」な感じで
あんまし表現が良くないってこと。そこがきになったんよ。
661Now_loading...774KB:2007/10/19(金) 17:09:36 ID:8bxNeY9T
>>658
いつからムービークリップはマルチスレッドで動くようになったんですか?
私の知っているFlashではforループがどこかで回っていると、他の処理は
並行的に実行されなくなるんですが?

ムービークリップの数だけスレッドができてしまったら、スレッドの切り替え
にえらいコストがかかりそうですね。synchronize機構も無い言語で、
知らないうちにマルチスレッドで動いてるなんて怖い時代になったものですね、と。


for分けたほうが速いなんていってる人はここにはいねぇだろ。よく読めや
662Now_loading...774KB:2007/10/19(金) 17:10:34 ID:DcvvAsvL
>644
NetSterem.send()またはSO.onSync()
FCSのスクリプトだ。
ただし、ニコ動は一定時間ごとに更新が働いていそうだから
ストリームからの同期ではなく、setIntervalで
SOの状態を反映させている可能性もある(負荷軽減のため)

たしかAS3からは「setDirty()」で、同期を制御することができるんだっけ?
それも使ってるかも知れない。
663Now_loading...774KB:2007/10/19(金) 17:12:27 ID:O6fMLnRZ
>>661
例が悪いって言ってるのが解らない奴がいたw
664Now_loading...774KB:2007/10/19(金) 17:14:19 ID:8bxNeY9T
釣られましたごめんなさい
665Now_loading...774KB:2007/10/19(金) 17:18:40 ID:dqfD4AMd
>>658
>>for文を分割してsetIntervalを100個作ってそれを動かす。そんな必要あるんかw
って時点で意味を全く理解していない事がわかったw
あとFlashにスレッドに該当するものは存在しないよ。何をスレッドと思い込んでるん?

>>659
最近のマシンでも1,2秒フリーズするような処理はあるだろ?
それを体感させないくらいの処理に分割する。って事だ。
666Now_loading...774KB:2007/10/19(金) 17:20:05 ID:dqfD4AMd
穴だらのコードだけど、分割例あげとく。

var ONE_TIME_MAX:Number = 10000;
var stateObj:Object = {i:0};
stateObj.intervalID = setInterval(this, "loopFunc", 10, stateObj);

function loopFunc(stateObj:Object):Void
{
var sTime:Number = getTimer();
for (var i:Number = 0; i < ONE_TIME_MAX; i++) {
stateObj.i++;
}
trace("loop:" + stateObj.i + " time:" + (getTimer() - sTime));
if (stateObj.i > 1000000) clearInterval(stateObj.intervalID);
}


ONE_TIME_MAX; の値を下げれば、
クライアント側のマシンは体感的にはフリーズしないが、全体の処理時間は多少伸びる。

ONE_TIME_MAX; の値を上げれば、
クライアント側のマシンは体感的にはフリーズするが、全体の処理時間は早くなる。

用途と想定環境で調整しろってこった。
667Now_loading...774KB:2007/10/19(金) 17:29:27 ID:O6fMLnRZ
>>665
スレッド処理といえば解るのかな?スレッド自体プログラムで処理してるわけでしょ。
スレッドが無いじゃんというのはかまわないけど、実際そうだからしょうがないしw
668Now_loading...774KB:2007/10/19(金) 17:36:43 ID:O6fMLnRZ
>>666
多少伸びるとか、体感的とか、、ちゃんとベンチマークしたんかいw
たまたま、そんとき常駐ソフトがうごいたとかじゃねーのかw
669Now_loading...774KB:2007/10/19(金) 17:44:17 ID:8bxNeY9T
普通に考えればこんなアホいるわけないんだから、釣りに決まってる。
みんなも釣られるなよ!
670Now_loading...774KB:2007/10/19(金) 17:46:13 ID:O6fMLnRZ
>>669
典型的なゆとりの捨て台詞だなw
671Now_loading...774KB:2007/10/19(金) 17:46:30 ID:dqfD4AMd
>>668
わざわざtrace()つきでサンプルあげたんだから実行してみろよww


・C2D 2.4Ghz / 1ループ100万処理 
 1.2秒間で完了。処理中は他の処理全てが停止。

・C2D 2.4Ghz / 1ループ5万処理 x 20
 1.4秒間で完了。同時(擬似)に他の処理が可能


俺だったら、後者を取る。
672Now_loading...774KB:2007/10/19(金) 17:51:36 ID:O6fMLnRZ
>>671
だからさ、そんなの意味無いっていってるじゃん。
純粋なPCで、せめて1000回試行して、、ってつか、1.4秒間に他の処理って何なんだそれ?w
673Now_loading...774KB:2007/10/19(金) 17:56:17 ID:46rUnYyO
              / ̄ ̄ ̄ \  ホジホジ
            / ―   ― \
           /   (●)  (●)  \
           |     (__人__)      |  動けばどうでもいいよ
           \   mj |⌒´     /
              〈__ノ
             ノ   ノ
674Now_loading...774KB:2007/10/19(金) 17:57:13 ID:dqfD4AMd
ポカーン(゜Д゜)
純粋な技術の話が、ゆとり論点「そんなの意味ない」に変わったので、もういいやw

制作の現場でんな事言ったら、
「お前の存在のが意味ねーよw」って言われちゃうんだから(><
675Now_loading...774KB:2007/10/19(金) 17:58:51 ID:O6fMLnRZ
>>674
ゆとり発言にはゆとりで返答したんだけど、、、、
676Now_loading...774KB:2007/10/19(金) 18:01:42 ID:tuMxnnGk
膨大にfor,while回す場合は最低限、FlashPlayerに無限ループフラグを建たせない程度に分割する必要はあると思うよ
677Now_loading...774KB:2007/10/19(金) 18:01:50 ID:O6fMLnRZ
厳しいようだけどホントにそうだからね
678Now_loading...774KB:2007/10/19(金) 18:02:54 ID:tuMxnnGk
>>677
え?何が?
679Now_loading...774KB:2007/10/19(金) 18:04:34 ID:8bxNeY9T
だから釣られんなって
680656:2007/10/19(金) 18:24:12 ID:fpwmazCs
すいません。分かる方いたら>>656お願いします。
681Now_loading...774KB:2007/10/19(金) 18:31:22 ID:EXfWcKY4
>>680
それだけじゃわからんから、flaとHTMLをUpしたら?
682Now_loading...774KB:2007/10/19(金) 18:44:27 ID:8bxNeY9T
>>680
その「30行くらいの処理」に問題があるんじゃないのかな?
trace(a);だけで実験したけど何の問題も起きんよ。
683Now_loading...774KB:2007/10/19(金) 18:54:49 ID:bT3V+drs
だよなあ。他の言語ならともかく、Flashはループでプレーヤーからブレーキかけられるからなあ。
良く使い慣れてる人ほど、分割する仕組みを考えるわな、常識的に考えて。
脳内の人はどうかしらんけど。
684656:2007/10/19(金) 19:05:16 ID:fpwmazCs
>>681-682
返信ありがとうございます。

仕事でクライアント企業のために作っているホームページなのでうpする事は出来ないのですが、
>>682の発言から、テストでLocalConnectionを実験するためだけのSWFを作って実行してみたところ、
何の問題もなく何回でも通信出来ました。

「30行くらいの処理」の中に外部テキストファイルを読みに行ったり、onEnterFrameを作ったりと色々やってるので、
その中の何処に問題があるのか自分なりにテストして調べてみたいと思います。

すいません。ありがとうございました。
685Now_loading...774KB:2007/10/20(土) 13:41:10 ID:imkaZe3i
ttp://www.kisekae.jp/free/makeup01/index.html

ここの壁紙を作るゲームのようなことをやりたいのですが、
どのように作ってるのかわかりません。
無数の壁紙を用意してるようでもなさそうですし、サーバーで壁紙を
作ってるとは思いますが、どうすればできますか?
winXP FLASH8です
686Now_loading...774KB:2007/10/20(土) 13:49:05 ID:2Mx4Dfp7
質問です。
Flashを表示した時に、はじめからテキストボックスにキャレットを表示させて
おきたいのですが、どうすれば良いでしょうか。私で調べたところ、
Selection.setFocusでフォーカスを与えられるようですが、
1フレーム目にSelection.setFocus("_root.textFild1");と記述しても
キャレットは表示されません。。(文字を打ち込むことだけは出来るようですが)
一般的な方法を教えていただけると助かります。
687Now_loading...774KB:2007/10/20(土) 23:20:33 ID:+I8Fy8oj
class Book1 {
var vol:Number = 20;

class Book2 {
function Book2() {
trace(vol);

var titleS:Book1 = new Book1();
var titleJ:Book2 = new Book2();

クラスBook2でBook1のvol変数を参照したい場合どうすればいいのでしょうか?読み込みテストでtraceをしています
調べたらpublicを付ければ他のクラスからもアクセス可能とあって、
実際にpublic var vol:Number = 100としても「'vol' という名前のプロパティはありません。」とエラー
ただ試しにとtrace(Book1.vol);としてみたら「参照されているプロパティには、静的属性がありません。」とエラーが出ます
どうすれば読み込む事ができるのでしょうか?AS2.0です
688Now_loading...774KB:2007/10/20(土) 23:35:43 ID:/VMUh1e8
public function getVol():Number{
return vol;
}

でどうだ
689Now_loading...774KB:2007/10/20(土) 23:36:14 ID:0hjIJdd/
>>687
そこはBook1.volじゃなくて、titleS.volじゃない?
Book1、Book2てのはあくまでクラスという殻の名前で、
そのクラスの殻をかぶった実体はtitleS、titleJという
クラス変数なのだから。

変数の中身はBook2中のtrace(vol);のとこを
trace(titleS.vol)にすれば多分いける(クラスの宣言の仕方・位置によってはできないけど)。
690Now_loading...774KB:2007/10/21(日) 01:10:29 ID:z6nWa6iZ
>>687
場合によってはclass Book2 extends Book1 として継承すべきところかも知れないし、
public static var vol:Number = 20;と静的メンバにすべきところかも知れないし、
Book2のコンストラクタでfunction Book2(b1:Book1)として持たせておいてb1.volと参照べきかも知れない。

正解は687しか分からない。
691Now_loading...774KB:2007/10/21(日) 14:45:22 ID:ac0oRU+C
ものすごい初歩的な質問かもしれんが
ステージに自分でMCを配置して
そのMCのリスナーをドキュメントクラス(main.as)から登録ってどうやるんですか?

var MC_A:MovieClip;
MC_A.addEventListener( MouseEvent.MOUSE_DOWN, ふぁんくしょん );

エラー
「null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」

みたいな事になります。

ちなみに、Windows CS3のAS3.0です。
ご教授お願いします。
692Now_loading...774KB:2007/10/21(日) 15:01:11 ID:B82okr/G
FLash Lite1.1でボタン機能を無効にする方法を教えてください。

AS2.0だと
button.enabled =false;
でボタン機能がむこうになりますが、こんな感じでボタンを作動させない方法は
LITE1.1にありますか?
_visibleで非表示にもできませんよね?
693Now_loading...774KB:2007/10/21(日) 15:15:13 ID:wjACHB4b
外部ファイルの読み込みがうまくいきません。

FLASHで写真アルバムのようなページを制作しています。
読み込む方のphoto.swfを単独で開いたらうまくいくのですが、
親のmain.swfにload_□□mc.loadMovie("photo.swf");
でphoto.swfを読み込ませると最初のstop();まで読み込み、
次の写真へは送りボタンを押しても機能しません。
これはどういったことが問題なのでしょうか。
分かる方ぜひともお教えください。お願いします。
694Now_loading...774KB:2007/10/21(日) 15:20:45 ID:ac0oRU+C
>>693
たぶん、photo.swfのASに_root何チャラって書いてないか?

mainの中のphotoだからRootはmain.swfになるのよ

っで、AS2.0だよね?
695Now_loading...774KB:2007/10/21(日) 15:28:20 ID:ac0oRU+C
>>693
ちなみに、Rootの設定がAS内でできたような。。。
すまん、わすれた
696Now_loading...774KB:2007/10/21(日) 15:33:41 ID:wjACHB4b
>>694
ご回答ありがとうございます。
最近はじめたものであまりAS1.0とAS2.0の違いも分からないのですが
多分2.0です。
photo.swfの中のボタンに_root記述してありました。
photo.swfのシーン1のタイムラインに飛ばしたいのですが
_rootの代わりに何と記述すれば良いでしょうか?
697Now_loading...774KB:2007/10/21(日) 15:37:19 ID:ac0oRU+C
this.gotoAndPlay( )
だな
698Now_loading...774KB:2007/10/21(日) 15:40:42 ID:e47dlEKS
>>691
ドキュメントクラスってのがよくわからんが、オーサイズ時にインスタンス名付ければ
そのままそれが使えるけど。
>>692
FlashLite1.1はas1レベルだっけ?ヘルプ見て無ければ無いのでしょう。
>>694
パス指定が合ってるかどうか確認。_lockrootあたりをヘルプで調べてみ。
699Now_loading...774KB:2007/10/21(日) 15:43:41 ID:ac0oRU+C
>>698
あ、ほんまや。。。
ありがとう。

いちいち、宣言しなくてもいいですね。orz
700Now_loading...774KB:2007/10/21(日) 16:10:33 ID:wjACHB4b
693です。
みなさまありがとうございました!
_lockrootで解決いたしました。
701Now_loading...774KB:2007/10/21(日) 16:20:09 ID:wjACHB4b
もうひとつ質問です。
親swfからloadMovieで読み込ませている外部ファイルswfの
任意のタイムライン(ラベルをつけてある)に親swfからリンクできますか?
702Now_loading...774KB:2007/10/21(日) 16:29:04 ID:ac0oRU+C
インスタンス名.gotoAndPlay("ラベル名")
でいけんじゃね?

親SWFの子SWFにちゃんとインスタンス名を指定してあげること
703Now_loading...774KB:2007/10/21(日) 16:48:04 ID:wjACHB4b
>>702
ご回答ありがとうございます。
親swfに配置してあるボタンに
on (release) {
_root.load_shoppingmc.gotoAndPlay("tee");
}
と記述したのですが、やはり飛びません。う〜む
704Now_loading...774KB:2007/10/21(日) 17:06:24 ID:jBT9Iizq
>>703
親swfのバージョンと、子swfのバージョンは?
あと、trace(_root.load_shoppingmc) でちゃんと配置されてるか試してみた?
705Now_loading...774KB:2007/10/21(日) 17:30:21 ID:wjACHB4b
ご回答ありがとうございます。
パブリッシュの設定はそろえてあります。
trace(_root.load_shoppingmc) はどこに記述すれば良いのでしょうか?
706Now_loading...774KB:2007/10/21(日) 17:40:45 ID:jBT9Iizq
>>705
on(release) に
707Now_loading...774KB:2007/10/21(日) 17:43:49 ID:wjACHB4b
出力画面にはundefinedとでました。
708Now_loading...774KB:2007/10/21(日) 17:48:31 ID:jBT9Iizq
パスが間違ってる可能性があるので、見てみてください
709Now_loading...774KB:2007/10/21(日) 17:59:45 ID:ac0oRU+C
load_shoppingmcはインスタンス名ですか?
load_shoppingmcを選択して左下のプロパティに「load_shoppingmc」ってでてますか?
710Now_loading...774KB:2007/10/21(日) 18:47:14 ID:QezD4BGt
setIntervalの話が出てたんでついでに質問。

http://www.adobe.com/cfusion/showcase/index.cfm?event=casestudyprint&casestudyid=89534&loc=ja
↑の、
>切り替えタイミング単純にをsetIntervalアクションで制御すると、時計と映像がずれる場合があり、
>時間と時計の動きを正確に合わせるという所も注意を要しました。

って具体的にどうやってのかね?
俺も1秒間隔で実行するスクリプトを組んだんだがたまにずれてくんのな。
711Now_loading...774KB:2007/10/21(日) 18:55:56 ID:ac0oRU+C
setIntervalで実行されるファンクション内で時間を取得してるんでは?
setIntervalでコンマ単位で実行
その中のファンクション内で1秒たったら実行

みたいな感じかな〜

なんか、力技っぽいけど
712Now_loading...774KB:2007/10/21(日) 19:04:09 ID:ac0oRU+C
またまた質問で申し訳ないんですが。

Flash.swf?a=12
みたいな感じでGETで渡した値ってメインフレームの「a」に入るけど
AS3.0のドキュメントクラスを使って作ってるFlashの場合どうやって取得するの?

一応、自分の書いたAS張っておきます。

■ドキュメントクラス
package {
public class main extends MovieClip {
var a:Number;
function main(){
trace( a );
}
}
}
■メインフレームアクション
なし

■結果
null

orz...
713Now_loading...774KB:2007/10/21(日) 19:18:51 ID:wjACHB4b
>709
load_shoppingmcはインスタンス名です。
プロパティのところに表示されてます。
714Now_loading...774KB:2007/10/21(日) 20:01:03 ID:ac0oRU+C
>>713
すまん。わからん。
とりあえず、trace(_root.load_shoppingmc)でundefinedって出たなら
そんなインスタンスねえよってことだから
アクションスクリプト書くところの上部分「ターゲットパスを挿入」でみてみたら?
715Now_loading...774KB:2007/10/21(日) 20:18:35 ID:wjACHB4b
>>714
ありがとうございます!
なんとかやってみます。
716Now_loading...774KB:2007/10/21(日) 20:28:32 ID:zqyeyAul
>>712
trace(LoaderInfo(loaderInfo).parameters.a);
かな?

>>710
>>711の言う通り。setIntervelは結構いい加減。FPSによってもズレるから
時間とかカウントダウンは都度、PCの時間をチェックした結果を使った方がよさげ。
717Now_loading...774KB:2007/10/21(日) 20:45:31 ID:sgZ6F/K5
>>710
>>711
>>716
getTimer(); が楽だぜ。
718Now_loading...774KB:2007/10/21(日) 21:09:08 ID:ac0oRU+C
>>716
おお!!
助かる!!

ありがとう!
719Now_loading...774KB:2007/10/21(日) 23:56:42 ID:ac0oRU+C
またまたまた質問で申し訳ない
現在動的にPOSTデータを生成してるんですがうまく動きません。
ご教授お願いします。

動作環境:AS3.0

package {
 import flash.net.*;
 public class main extends MovieClip {

  var PostRequest:URLRequest = new URLRequest();

  public function main() {
   test1();
  }
  function test1(){
   for ( var N:Number in PostArray ){
    myCString = "c"+N+ "_";
    PostStr = myCString + "test";
    PostRequest[PostStr] = N;
   }
  }
 }
}

結果-----
flash.net.URLRequest のプロパティ c0_test を作成できません。

わかりくいソースですが、よろしくお願いします。
720Now_loading...774KB:2007/10/22(月) 00:03:15 ID:LJ9icd3x
環境 OSはWinXP-Pro,ソフトはFlash8-Pro

root(ステージ)上のマウスの位置を把握したいのですが出来ません。ASはrootの
フレームのイベントとして下を書いています。

this.mouseDown = function() {
trace("mouseX= "+_root._xmouse);
};

traceが表示されません。どこが駄目なのでしょうか?
721Now_loading...774KB:2007/10/22(月) 00:06:10 ID:qfpgHYn7
>>720
this.onMouseDown = function() {
trace("mouseX= "+_root._xmouse);
};
722720:2007/10/22(月) 00:28:41 ID:LJ9icd3x
>>721
ああ、そうだった。
さんきゅう。
723Now_loading...774KB:2007/10/22(月) 01:20:02 ID:eOPDElNt
>>719
URLRequestはdynamicじゃない
724Now_loading...774KB:2007/10/22(月) 01:54:34 ID:8gzli1sS
725724誤爆:2007/10/22(月) 01:57:03 ID:8gzli1sS
おかしいな、スレタイ確認してから書き込んだのに(ノ∀`)
726Now_loading...774KB:2007/10/22(月) 02:38:42 ID:+xTs4Kq3
>>723
え!!
そうなんですか!?

でも、どうやって動的な変数を作るんですか?
727Now_loading...774KB:2007/10/22(月) 03:15:52 ID:+xTs4Kq3
>>726
URLVariablesですね。。。

自己解決しました。
>>723
ありがとうございました。
728Now_loading...774KB:2007/10/22(月) 14:55:07 ID:J3FeIoLe
>>711>>716>>717
なるほど時計と同期とればいいのか、
当たり前の話だけど目から鱗だった。

ありがとう。
729Now_loading...774KB:2007/10/22(月) 16:09:21 ID:MLLh9Prc
間違って 兆速で答えるスレ に書いてしまったのですがこちらにもポストさせて頂きます、申し訳ありません。


AS2におけるMovieClipLoaderについて質問です。
例えば、
_root
 -testMC
 -loadingMC

という構成でMCを2個置くとします。
testMCには単純に矩形を描画して、とりあえず試しに
this.onEnterFrame = function(){
 this._rotation += 10;
}
とか書いて回しとくとします。

で、loadingMC内でMovieClipLoaderを使い、
jpgやswfを何かのタイミングで読み込むと、
ファイルのロード中(onLoadProgressが呼ばれている間)に
testMCの回転も止まってしまうのですが、自分の環境だけでしょうか?
ロードが終わればtestMCの回転も再開します。

onLoadProgress以外の処理が全てストップしているように見えるのですが…
読み込むswfやjpgのファイルサイズが小さい場合には気にならないのですが、
大きくなると止まっているのがよく分かる状態です…。

どなたかこの対処法などご存知ないでしょうか…?
730Now_loading...774KB:2007/10/22(月) 16:25:01 ID:gP/TdxM1
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)

マウスポインタの動きについて質問です。

root内あるいはMC内でオリジナルデザインのマウスポインタを動かす際に
マウス(分解能は変えない)を20cmくらい動かしてもroot内あるいはMC内に
収めるにはどういう方法が考えられますでしょうか?

当方で試した仕組みは、オリジナルデザインのマウスポインタMCをnewMouseM
として、このイベントを(すいませんAS全部書きます)
onClipEvent (load) {
Mouse.hide();
moveRate = 50; //比率を50%に
}
onClipEvent (mouseMove) {
this._x = 0.01*_root._xmouse*moveRate;
this._y = 0.01*_root._ymouse*moveRate;
//moveRateが100の場合、動きが一致する
updateAfterEvent();
}

としました。これで一応は本物のマウスの半分の動きが実現できますが、本物
のマウスポインタがディスプレイ(15インチ,10024*768)の端に到達すると動か
なくなります。

マウス自体の分解能は変えれば一番手早いのですが、同じPCを他の用途にも
使うのでマウスの設定はなるべく避けたいです。なお、マウスポインタ自体の座標
を変えようと _root._xmouse = _root._xmouse/10; などとしましたが駄目でした。

アドバイスを願います。
731Now_loading...774KB:2007/10/22(月) 18:08:55 ID:vxixU9N4
Flash CS3Pro WinXPsp2 を使ってます。ActionScript3について質問します。

MovieClipを順番に並べて各MCにアクセスしたいんですが、
AS2でやってた方法が使えず困ってます。
var cnt:int;
var mc:MovieClip;
for (cnt=0; cnt<3; cnt++) {
mc= new bt();
mc.name = "bt"+cnt;
mc.y= cnt * 30;
container.addChild(mc);
}
これでリンケージされたムービーbtを配置することは出来たのです。
しかし、各MCにアクセスすることが出来ません。
例えば2個目のmcをvisible=falseにしたりとか、mc.visible=false でも bt1.visible=falseでもダメでした。

AS2の頃はmc[cnt] = new bt();みたいにして、
オブジェクト名を付けられた気がするんですが、AS3ではどうすればいいのですか?
732Now_loading...774KB:2007/10/22(月) 18:19:03 ID:qMJFNePx
>>729
そもそも、フレームレートはどの位?
速すぎるのは駄目だから、1fpsでは試した?
733730:2007/10/22(月) 18:47:05 ID:qMJFNePx
(訂正)
マウスの分解能は通常のマウスでは調整できないですね。
失礼しました。

代わりに コンパネ → マウス → マウスポインタ → ポインタの速度を選択する
で調整できますが、さっき書いた通り、他の用途を考えるとこれは避けたいです。
734Now_loading...774KB:2007/10/22(月) 18:54:58 ID:9lhBhZOc
>731
俺はAS2しかわかんないから違うことを言うかも知れないけど、例えば

mc[i]=this.attachMovie("myMC","mc_"+i,i);

としたとき、参照名である mc[i] と、インスタンス名である ["mc_"+i] は
別物だと言うことは理解できるよね?
きみはどうも、「オブジェクト名」という言葉に、参照名とインスタンス名の
両方をごっちゃにして意味を当てているように思える。

>731のソースで、変数mcに3回、別の意味を与えているけれど
ソレだと最後の1つしか、意味を成さなくないのかな?
735Now_loading...774KB:2007/10/22(月) 19:03:04 ID:/GsMCeXm
>>731
cs3でもできるcontainer["bt1"].visible=false
736Now_loading...774KB:2007/10/22(月) 19:52:20 ID:3U1uYhkA
>>731
735のでもいいしgetChildByName使ってもいいし配列に入れてもいいしいろいろ
やり方があるよ。個人的にはgetChildByNameを結構使う。
737729:2007/10/22(月) 20:00:25 ID:MLLh9Prc
>>732
試してみたのですが…
他にEnterFrameなりTweenなりのアニメーションが
動いている状態で外部読み込みをしたいので、結局1fpsにしてしまうと意味が無いというか…
1fpsの間にファイル読み込みが終わってしまって結局現象の確認もしづらいので。
ちなみに初めは30fpsでやっていました。
読み込むファイルの、描画的負荷が高い方が止まる率が高いように思います…。
サイズの大きいjpgであったり、それを配置してあるswfだったり。

でも、それほどサイズの大きくないjpgでも1瞬カクっとなる事もあり、、

loadMovieではこんな風になった記憶は無かったのですが…
738Now_loading...774KB:2007/10/22(月) 20:40:00 ID:w//pZjr4
>>737
10°単位なら力技で36フレームに分割するという手もある。
739Now_loading...774KB:2007/10/22(月) 20:58:59 ID:LM6crXUA
>>737
onLoadProgressで、ループ回してたりとか何か複雑な描画をさせてたりとかはないの?
onLoadProgressリスナーを使わなくても、描画が止まるの?
740729:2007/10/22(月) 21:28:41 ID:MLLh9Prc
>>738
回転させているMCは確認用に置いてあるだけで…回転しているMCはそれほど重要ではないんです、、申し訳ありません…

>>739
以下にソースを書きます。onLoadProgressにはtraceだけ入っていましたがコメントアウトしても変わりませんでした。

var mcLoader:MovieClipLoader = new MovieClipLoader();
var objListener:Object = new Object();

objListener.onLoadStart = function(target_mc:MovieClip){
target_mc._visible = false;
}

objListener.onLoadProgress = function(target_mc:MovieClip, nLoadedBytes:Number, nTotalBytes:Number){
//trace(Math.floor(nLoadedBytes/nTotalBytes*100));
}

objListener.onLoadInit = function(target_mc:MovieClip){
target_mc._visible = true;
}
mcLoader.addListener(objListener);

function loadingStart(){ mcLoader.loadClip("sample.jpg", MCLoader_target); }

で、外からloadingStart();を呼ぶと、onLoadInitの部分に来るまでストップしてしまう状態です。
テストで読み込んでいるsample.jpgは1MBちょっとありますが、それほどパフォーマンスに影響が出るサイズとも思えません、、。
というか737でも書いたのですが、処理が止まるタイミングがブラウザによって違うような挙動が見受けられました…。OSはMac OS Xで、
Safari→onLoadInitのtarget_mc._visible = true;のタイミングで1瞬止まる
Firefox(最新)→ロード開始〜target_mc._visible = true;の間止まっている
これはFlashというよりブラウザのパフォーマンス(かwebエンジン)がFlash Playerの挙動に影響してると考えた方が良いのでしょうか
741Now_loading...774KB:2007/10/23(火) 00:06:45 ID:bmsGLdDw
>>734-736
ありがとう。

>>734
AS2ならattachMovieでなんとか出来るのは知ってるんだけど、
それをAS3に書き直そうとして混乱してる状態です。

>>735-736
まだAS3は全然馴染めてないので、教えてもらった方法で色々試してみます。
742Now_loading...774KB:2007/10/23(火) 05:43:55 ID:rIGy1SeP
連想配列を列挙するにはどうすればいいのか。

this._hash = new Object();
_hashに色々登録
for(var key in this._hash) {
}

とやっても列挙されない。
743Now_loading...774KB:2007/10/23(火) 06:41:52 ID:4gII7L/z
var hash:Object = new Object();

hash.s1 = "ABC";
hash.s2 = "DEF";
hash.s3 = "GHI";

for(var key in hash) {
trace(key + ":"+hash[key]);
}
744Now_loading...774KB:2007/10/23(火) 06:46:04 ID:rIGy1SeP
_hash[name]

と参照したいんだよね。
745Now_loading...774KB:2007/10/23(火) 06:53:34 ID:4gII7L/z
>>744
列挙って言ってるじゃんw
trace(hash["s1"]);
あとcじゃないんだから_つけるのやめれ。
746Now_loading...774KB:2007/10/23(火) 07:47:15 ID:rIGy1SeP
意味が分からん。
traceしてどうすんだよ。
747Now_loading...774KB:2007/10/23(火) 09:45:12 ID:kcpsvox1
なんでtraceに目がいっちゃうんだろうね、この子は
748Now_loading...774KB:2007/10/23(火) 10:15:55 ID:vmkXA1Uz
>>744
>>745に補足すると、要素名を引用符を付けない形で
指定したい場合は、 _hash.name と記述する。
foo["bar"] と foo.bar は同じ意味。
749Now_loading...774KB:2007/10/23(火) 11:04:06 ID:rIGy1SeP
name = "bar";
_hash[name]
とやりてぇんだよ。

_hash.name
はただのプロパティnameじゃねぇか。
750Now_loading...774KB:2007/10/23(火) 11:19:28 ID:vmkXA1Uz
>>749
そのとおり。じつはASに「連想配列」なんてものはないんだ。
オブジェクトのプロパティを代用しているに過ぎない。
だからそのルールに従ってくれ。
751Now_loading...774KB:2007/10/23(火) 11:43:52 ID:lvJbSOUs
3.0ならfor each in使うかdictionaryクラス使えばいいよ
752731:2007/10/23(火) 11:51:22 ID:1xuCy3hW
たびたび、すまんけど教えてください。

for (cnt=0; cnt<5; cnt++) {
var mc[cnt]:MovieClip = new MovieClip();


という感じをAS3にするにはどうしたらいいの?
mc0〜mc5を作りたいだけなのに…
753Now_loading...774KB:2007/10/23(火) 13:12:12 ID:lvJbSOUs
>>752
いまいちわからんけど
var mc:Array = new Array()
for(cnt=0;cnt<5;cnt++){
mc[cnt] = new MovieClip();
addChild(mc[cnt]);
mc[cnt].name = "mc" + cnt;
}
trace(mc[0].name)
ってことかな?それとも
var _mc:MovieClip
for(cnt=0;cnt<5;cnt++){
_mc = new MovieClip()
_mc.name="mc"+cnt;
addChild(_mc);
}
trace(getChildByName("mc0").name);
ってことかな?
754731:2007/10/23(火) 13:28:46 ID:1xuCy3hW
>>753
ありがとう。
最初ので出来ました。

var mc:Array = new Array();

var mc:Array;
の違いがいまいち理解出来てない。
755Now_loading...774KB:2007/10/23(火) 13:34:15 ID:8DpBRXr5
>>754
変数宣言しているだけか、変数宣言と同時に初期化しているだけの違い。
756Now_loading...774KB:2007/10/23(火) 13:46:06 ID:4gII7L/z
初期化でなくインスタンス作成だべ
757Now_loading...774KB:2007/10/23(火) 17:24:49 ID:SA2GJuLv
//Etude.as
package{
import mx.core.*;
import mx.containers.*;

public class Etude extends Application{
public function Etude(){
addToCreationQueue( new Panel());
}}}


これ実行時にエラーになるんですが何ででしょうか?
758Now_loading...774KB:2007/10/23(火) 17:48:13 ID:4gII7L/z
>>757
エラーメッセージがでるならそれを書く。
出ないなら、自分が期待する状況とどう違うのかを詳しく書く。
759Now_loading...774KB:2007/10/23(火) 18:39:08 ID:SA2GJuLv
>>758
エラーメッセージが二つでます
エラーが出るだけで一応意図した通りの画面にはなってます

TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at mx.core::UIComponent/getStyle()
at mx.core::Container/::isBorderNeeded()
at mx.core::Container/mx.core:Container::createBorder()
at mx.core::Container/styleChanged()
at mx.core::Application/styleChanged()
at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::addingChild()
at mx.managers::SystemManager/::initializeTopLevelWindow()
at mx.managers::SystemManager/::docFrameHandler()
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at mx.core::UIComponent/getStyle()
at mx.core::Application/mx.core:Application::layoutChrome()
at mx.core::Container/mx.core:Container::updateDisplayList()
at mx.core::LayoutContainer/mx.core:LayoutContainer::updateDisplayList()
at mx.core::Application/mx.core:Application::updateDisplayList()
at mx.core::UIComponent/validateDisplayList()
at mx.core::Container/validateDisplayList()
at mx.managers::LayoutManager/::validateDisplayList()
at mx.managers::LayoutManager/::doPhasedInstantiation()
at Function/http://adobe.com/AS3/2006/builtin::apply()
760Now_loading...774KB:2007/10/23(火) 18:44:26 ID:SA2GJuLv
ついでに言うとas3です
761Now_loading...774KB:2007/10/23(火) 19:22:15 ID:VpHSj7ab
AS3.0
動的にライブラリから読み込みたいのですが、どうやるんですか?

AS2.0ならこんな感じだったかと
var tmpStr:String = "Class"+ event.target.name ;
tmpObj = new [tmpStr];

おねがいします。
762Now_loading...774KB:2007/10/23(火) 19:47:37 ID:rIGy1SeP
var hash = this._hash;
for(var key in hash) {
trace(key);
}

どういう理屈か知らんがローカル変数にコピーして回したらできたわ。
763Now_loading...774KB:2007/10/24(水) 00:03:32 ID:GQiP6Itg
>>759
意図している動作なのなら良いと思うがw
>>762
よかったねw
764Now_loading...774KB:2007/10/24(水) 00:07:39 ID:GQiP6Itg
>>761
AS2.0でそんなことするの初めて見たw
3.0なら普通にnewすればいいんだけどなw
まあ、どうせつりだろw
765Now_loading...774KB:2007/10/24(水) 00:16:45 ID:wpQfbzCf
ローカルのswfをdebugフォルダに入ってるSAFlashPlayer.exeで開くと、
「Flash 8 オーサリングツールはどこで実行されていますか」
っていうダイアログが延々出るんでうざったいです
このダイアログってどうやってでないようにすればいいんでしょうか?
うまく設定すると出ないようになるらしいんですがどうにもわかりません
お願いします
766Now_loading...774KB:2007/10/24(水) 00:48:03 ID:2VhgWVSn
>>764
そりゃたんにお前がド素人なだけだ
767Now_loading...774KB:2007/10/24(水) 06:26:59 ID:GQiP6Itg
>>766
そりゃ失礼しました。どうぞ、先生の回答をお願いします。
768Now_loading...774KB:2007/10/24(水) 06:44:49 ID:GQiP6Itg
>>765
CS3だけど、そんなメッセージ出ないよw
769Now_loading...774KB:2007/10/24(水) 06:52:05 ID:uRrCiYtD
GQiP6Itgから漂うオーラ
770Now_loading...774KB:2007/10/24(水) 06:57:02 ID:I9aNxL8h
>>761
getDefinitionByNameかな。こんな感じ。

var str:String = "Hoge"
var c:Class = getDefinitionByName(str) as Class
addChild(new c())
771Now_loading...774KB:2007/10/24(水) 06:57:10 ID:GQiP6Itg
>>759
エラーメッセージのままでしょ。実体化されてない、または初期化されていない
オブジェクトを参照しようとしたとか。
772Now_loading...774KB:2007/10/24(水) 07:00:24 ID:GQiP6Itg
>>769
くさくてごめんよっw
773Now_loading...774KB:2007/10/24(水) 08:07:52 ID:64F7xZqC
イライラ棒のような、コースに触れたらゲームオーバーといった物を作っているのですが
右クリックを禁止にする方法ってありますか?
右クリックをしたら指定したフレームに飛ばすというような

やり方があれば教えてください。ちなみにFLASH8を使用しております。
774Now_loading...774KB:2007/10/24(水) 10:31:39 ID:96cApCeQ
>>773
右クリックじゃなくて、右クリックによって可能になる特定の動作を
無効にしたいんじゃないのか?
AS2以前ならStage.showMenuでコンテキストメニューを制御できる。
あとは作り方次第。
うっかり右クリックしただけで特定のフレームに飛ばされたり警告出すような
クソ仕様はおすすめしない。
775752:2007/10/24(水) 15:29:30 ID:n2r5SaOW
またまた、お世話になります。
>>753で教えてもらったスクリプトにイベントリスナーをつけたんだけども、
引数の渡し方が良くわかりません。

var mc:Array = new Array()
for(cnt=0;cnt<5;cnt++){
mc[cnt] = new MovieClip();
addChild(mc[cnt]);
mc[cnt].name = "mc" + cnt;
mc[cnt].addEventListener(MouseEvent.CLICK, clickHandler); //ここで[cnt]を渡したい
}

function clickHandler(event:MouseEvent):void {
trace("クリックしたのはmc"+cnt);  //何番目のmcをクリックしたか知りたい
}

かなり初心者的な質問だと思いますがよろしくお願いします。
776Now_loading...774KB:2007/10/24(水) 15:31:42 ID:Unkk+PUd
>774
いや、「イライラ棒」をやりたいと言っているんだから、
コンテクストメニューを出して、その間に(OSのフォーカスがムービーに当たっていないうちに)
ショートカットされるのを防ぎたいと言っているんじゃないかな。

俺は、「イライラ棒スタート!」の時に、ムービーをユーザーにクリックさせる
ことで、ムービーがフォーカスされていることを保証した上で、
フォーカスが外れたときに「ズルすんなバーヤ」と割り込めばいいと思う。
777Now_loading...774KB:2007/10/24(水) 15:36:10 ID:Unkk+PUd
>775
AS3には、MCのイベントにonPress()はないんだろうか。
俺ならMCのイベントで管理する。

そう言えばAS3のイベントは、イベントリスナーをaddする方法に
統一してるんだよねぇ。さぞかし面倒くさかろう。
778752:2007/10/24(水) 16:25:33 ID:n2r5SaOW
>>777
残念ながらAS3では、onPress()は使えないです。
779Now_loading...774KB:2007/10/24(水) 18:13:49 ID:b0Ww0dA7
>>775
cntを渡さなくても、event.targetを参照すればおk
780Now_loading...774KB:2007/10/24(水) 19:00:07 ID:lYVhsjTE
あ〜
ックスしてぇ、まじでックスしてぇ
アスでックスしてぇ
781Now_loading...774KB:2007/10/25(木) 00:28:17 ID:KgbHXGW/
http://www.takopus.ru/swf/lcdghost.html

↑のブラーかける前の処理はどうやってるんでしょうか?
透明度下げたコピーを複数配置してるだけ?
782Now_loading...774KB:2007/10/25(木) 00:35:02 ID:SN5ZQWTW
>>781
おしい。
配置するのではなくビットマップにブレンドする。
783Now_loading...774KB:2007/10/25(木) 02:34:47 ID:TzFr2+vP
外部に定義したクラス(たとえばTest.asに記述したclass Test)は
一度読み込むと変更不可?

コンストラクタに描いたTraceが消しても出てきてるんですが。
わざと文法間違えてもエラー出ない。

784Now_loading...774KB:2007/10/25(木) 02:35:48 ID:TzFr2+vP
ちなみにFlashProfessional8です。
785Now_loading...774KB:2007/10/25(木) 02:53:03 ID:6yVvSMIH
君に罪悪感がある限り、いくら消しても消えないんだよ
786Now_loading...774KB:2007/10/25(木) 03:14:51 ID:T6GVh0dz
質問させて下さい。
フラッシュ(使用ソフトはFLASH MX2004)で単純なゲームを作っているのですが、
敵の出現テーブルを作った後プレビューしたら、敵が一回画面に出たら何回も無限に出てきてしまいます。
これを消す方法は無いのでしょうか?
787Now_loading...774KB:2007/10/25(木) 03:40:51 ID:whJwIs1L
>786
マルチ禁止
いくつの掲示板に書き込んだか知らないけど、
全部取り下げて、1つだけにしな
788Now_loading...774KB:2007/10/25(木) 06:12:52 ID:jZxOtniy
>>783
ASOファイルを削除して実行するとか。
まあ、Test.asセーブしないで実行したとかが大だけどね。
789Now_loading...774KB:2007/10/25(木) 06:16:17 ID:p03kdx1/
環境)OS:XPSP2 ソフト:Flash 8

もしかして、ライブラリに置いてある MC 等を使用→削除してもメモリは開放されない?
デカイ画像を使用しててメモリ使用量がすごい事に…

そのライブラリを持つ SWF を loadMovie 等で別の SWF に変えるとメモリが
開放されるんで上記のように思ったんだけど、教えてください。
790783:2007/10/25(木) 06:57:53 ID:TzFr2+vP
うーむ。
多分ファイルの更新日時が関係してそうです。
VMで実験してるんですが、ローカル上でやってる限りは問題ないようなので。

791Now_loading...774KB:2007/10/25(木) 07:03:57 ID:jZxOtniy
>>790
ブラウザのキャッシュクリアしてみ。
792Now_loading...774KB:2007/10/25(木) 09:16:54 ID:okiGzzI4
>>789
何を教えればいいのか俺には分からないんだが
変に重くなったりしない限りはそういうもんなので心配しないで大丈夫
793Now_loading...774KB:2007/10/25(木) 09:27:10 ID:a7tUtpms
テキストボックスに入力したものをボタンを押すと
他のテキストボックスに入力される っていうASってある?
あれば教えていただきたい
794Now_loading...774KB:2007/10/25(木) 10:46:06 ID:7B7qaW8b
>>782
dクス
795Now_loading...774KB:2007/10/25(木) 12:01:44 ID:TzFr2+vP
MovieClipの_widthを設定すると表示されなくなってしまうんですが、
これは仕様ですか?
LoadMovieの後です。
_xとか_yは設定してもちゃんと反映されて表示するんですが。
796Now_loading...774KB:2007/10/25(木) 12:44:32 ID:T6GVh0dz
>>787
すいません。カキコしたのはこことflash質問スレのみです。
flash質問スレの質問取り下げてきます。
797775:2007/10/25(木) 14:18:39 ID:DzABpMvh
>>779
ありがとう。
ちょっと思ったのと挙動が違うのですが、(MC上のobjectが参照されてしまうので)なんとなく理解できました。
も少し試行錯誤してみます。

>>795
AS3の.widthなら普通に反映されましたよ。
798Now_loading...774KB:2007/10/25(木) 17:25:51 ID:1wgJvXC7
mcの中にloadMovieしたswfに含まれるmcをアクセスする方法が分かりません。

まず、_rootに配置したmc「aaa」の中に配置したmc「bbb」にアクセスするには
_root.aaa.bbb
と記述すればオケ。

_rootに配置したmc「aaa」の中に読み込んだ外部swf「bbb.swf」の中にあるmc「ccc」にアクセスするにはターゲットパスはどう記述すればいいのでしょう。

通常通り
_root.aaa.ccc
と記述しても、上手く動いてくれません。

_nameをtraceしようとしてもundifinedと言われて困ってしまっています。

誰かヘルププリーズ。
799Now_loading...774KB:2007/10/25(木) 17:35:04 ID:1wgJvXC7
>>798
>mcの中にloadMovieしたswfに含まれるmcをアクセスする方法が分かりません。

mcにアクセスする方法が分かりません。
800Now_loading...774KB:2007/10/25(木) 17:49:00 ID:eGg7yBOp
>>798
MovieClipLoder.loadClipとonLoadInitでヘルプれ
801Now_loading...774KB:2007/10/25(木) 18:59:45 ID:TzFr2+vP
矩形ツールで四角を描いて、それをムービークリップとリンケージを適応し、
それをダブルクリックして編集状態にすると、矩形が出てきますが、
編集でのAlpha値はいじれるんですが、ActionScript上からいじる方法が見つかりません。
this._alphaだと上に置いたムービークリップも消えてしまうので、
シェイプ(?)のみにAlpha値を適応したいんですが、何か方法はあるんでしょうか?
802Now_loading...774KB:2007/10/25(木) 19:01:47 ID:whJwIs1L
>801
アルファ弄りたい部分だけMCにする
803Now_loading...774KB:2007/10/25(木) 23:03:09 ID:iHmsOFFX
質問です。
actionscript内部で、動的に wmode を設定することは可能なのでしょうか?
"transparent" と "設定無し" を、必要に応じて切り替えたいのです。
どなたかご教授下さいませ。
804Now_loading...774KB:2007/10/26(金) 01:48:27 ID:ox21ABYY
>>803
後ろに目隠し用の長方形を置いといて出したり消したりするんじゃダメなの?
805Now_loading...774KB:2007/10/26(金) 02:04:02 ID:j5u9foMZ
>>804
アドバイス有難うございます。
今回は、Firefoxでコンテキストメニューを利用するタイミングで"設定無し"にして、
swfの上に画像を重ねて表示するタイミングで"transparent"にしたいのです。

そもそも、WindowsのFirefoxでwmode="transparent"な状態で、
コンテキストメニューを利用することが出来れば万事解決なのですが・・
806Now_loading...774KB:2007/10/26(金) 06:48:36 ID:qTQMF/kN
>>798
ローディング完了する前にtraceしてるから出ないのでは?
↓みたくクリックで表示すりゃでるんじゃないかな。
onMouseUp = function(){
trace("ローディングしたMCのプロパティ");
}
807Now_loading...774KB:2007/10/26(金) 12:14:16 ID:/rQqTkUm
LoadVarsを継承したクラスを作ったんですが、
var setting:Setting = new Setting();
とやってもコンストラクタが呼ばれません。
なぜ?

class Setting extends LoadVars {
function Setting() {
trace("!");
}
}
808Now_loading...774KB:2007/10/26(金) 12:20:35 ID:qTQMF/kN
>>807
セーブしてないとか、パスが通ってないとかだろ。
普通に出るよ。
809Now_loading...774KB:2007/10/26(金) 12:29:30 ID:/rQqTkUm
>>808
そのとおりでした。
810Now_loading...774KB:2007/10/26(金) 16:40:10 ID:QdzB5lke
初歩的な質問かもしれませんがAS3.0でわからないことがあります。
var MCArray:Array = new Array();
var MC:MCClass;

function A {
 var i:Number = 0;
 for ( i ; i< 10 ; i++ ){
  MC = new MCClass();
  addChild( MC );
  MCArray.push( MC );
 }
}
function B {
 var i:Number = 0;
 for ( i ; i< 4 ; i++ ){
  removeChild ( this[MCArray[i]] );
 }
}
こんな感じで、10個MCを作り、あとで配列に登録されているMCを消そうと思ったのですが、
「main にプロパティ [object MCClass] が見つからず、デフォルト値もありません。」
というエラーがでます。

配列で、MCの管理のしかたをおしえてください!!
811Now_loading...774KB:2007/10/26(金) 16:45:51 ID:ZZOKQYYB
removeChild (MCArray[i] );
試してないけどこうか?
812Now_loading...774KB:2007/10/26(金) 17:08:22 ID:QdzB5lke
>811
成功したけど、こんなエラーが出る
「指定した DisplayObject は呼び出し元の子でなければなりません。」
。。。

違うところを間違えてるのかな
813Now_loading...774KB:2007/10/26(金) 17:13:47 ID:QdzB5lke
あ、すまん、

全然違うところ間違えてた

すまんかった。
814Now_loading...774KB:2007/10/27(土) 02:06:11 ID:2EAWWJ7o
vistaでtrace関数が動作してる人っていますか?
debugplayerインストールして環境変数HOMEDRIVE,HOMEPATHをきちんと設定して、mm.cfgも置いてるんですが
なんにもログを吐き出してくれません…
困ったー
815Now_loading...774KB:2007/10/27(土) 02:27:08 ID:USNFYVrk
してるよ。お前の設定がウンコなだけだろ。
816Now_loading...774KB:2007/10/27(土) 10:29:43 ID:uty+q7Nf
どういう名前の技術だったかわすれましたが

var _this = this;
myVars.onLoad = function (bSuccess)
{
if ( bSuccess )
{
_this.ary = new Array();
_this.ary['test'] = "hoge";
_this.test = "hoge";
}
}
こんな感じの処理ってできないんすかね?
関数は呼べてるんだけど、変数への値の格納が出来なくてundefinedになる。

817Now_loading...774KB:2007/10/27(土) 10:52:28 ID:5OdwBMgR
>>816
何のためにbSuccessをif文で判定してるんだよw
818Now_loading...774KB:2007/10/27(土) 11:48:30 ID:P8dJTKxJ
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)

MC内のテキストフィールドの背景色で質問です。

デジタル時計内の数字が指定した数字になったとき、時報として数字(青色)の背景が
オレンジ色に変わるようにしたいのですが変わりません。
例えば、12時になったとき _root.setTimeF = true; として onClipEvent(enterFrame) で

if (_root.setTimeF == true) {
trace(" Path= "+_root.clockM.ji_ins); //パス確認用
_root.clockM.ji_ins.backgroundColor = 0xFF6600; //root内のclockMのji_insの背景をオレンジに
}

と書いてたところ、12時にはif内のtraceは実行されますが、背景は白のままです。
考えられる原因は何でしょうか?
パスは正しくつながっているようですが。。。。
819Now_loading...774KB:2007/10/27(土) 11:57:45 ID:5OdwBMgR
background = true;
820Now_loading...774KB:2007/10/27(土) 12:05:15 ID:P8dJTKxJ
>>819
ありがとう
821Now_loading...774KB:2007/10/27(土) 12:21:38 ID:6rLIjjih
プルダウンメニューやチェックボックスをASで生成できる?
822Now_loading...774KB:2007/10/27(土) 12:47:57 ID:w5TP6DGc
>>821
できる
823821:2007/10/27(土) 19:18:17 ID:6rLIjjih
ごめん、やり方が分からないんだ…
824Now_loading...774KB:2007/10/27(土) 19:21:52 ID:5OdwBMgR
>>823
そうかい。日記は自分のBlogに書けよ。
825Now_loading...774KB:2007/10/27(土) 20:47:43 ID:I8lQaoZK
質問です。
flash8で、
ここのサイトのように
ttp://www2.nissan.co.jp/OTTI/H92/0610/STYLE/main1.html
スクロールして画面が切り替わるようなものを作りたいです。

次がフェードインしながら切り替わって、
その画面のムービークリップ(又は外部swf)が再生される、といった流れです。
戻った時もムービークリップ(又は外部swf)が最初から再生されるようにしたいのですが、
このようなサンプルがある情報サイトなど、どなたかご存知でしょうか。

すみません、あまりAction Scriptに詳しくないので
ご助力の程よろしくお願いいたします。
826Now_loading...774KB:2007/10/27(土) 21:32:33 ID:rPnQTKdU
>821
まず、質問スレッドで「出来る?」って聞き方はやめろ。
たとええ自明であっても、「できるかどうか」の質問と見なされるから
>822や>824みたいな意地悪をされても、きみが悪いことになる。

>824
でも、いくらそうだとしても、質問スレで「できる?」ってのは
「やり方教えてくれ」の意味だってことくらいいちいち言わなくても分かれよ。
諭した上で応えてやれ。わかんなかったらそれこそこそ自分のブログで毒でも吐いてろ。
助けを求めて伸ばした手に小便かけて楽しいか?

さて、>821への解答。UIObjectクラスを使う。
あらかじめ、プルダウンメニュー(コンボボックス)やチェックボックスを
ライブラリに入れておくこと。

プルダウンメニュー(コンボボックス)……
createClassObject(mx.controls.ComboBox,"インスタンス名",深度)

チェックボックス……
createClassObject(mx.controls.CheckBox,"インスタンス名",深度)

深度は数字で指定すること。
作成したら、インスタンス名で、任意のメソッドなりプロパティなり定義すれ。
(各々のやり方は、ヘルプを見た方が早いからそっち見れ)
827Now_loading...774KB:2007/10/27(土) 21:46:46 ID:nhSLsmaS
うぜえな
828Now_loading...774KB:2007/10/27(土) 21:58:22 ID:2bJ+7WCC
>>825
適当にサンプル作ったから、あとは適当に理解してくれ
var page = 0;
leftButton.onRelease = function() {
 page--;
 slideAction();
}
rightButton.onRelease = function() {
 page++;
 slideAction();
}
function slideAction() {
 var targetX = -page * 720;
 var x = contentMC._x;
 var dx = ( targetX > x ) ? 20 : -20;
 this.onEnterFrame = function() {
  x += dx;
  if ( Math.abs( x - targetX ) < 20 ) {
   x = targetX;
   delete this.onEnterFrame;
  }
  contentMC._x = x;
 }
}
829Now_loading...774KB:2007/10/27(土) 22:00:15 ID:7RhKx9wu
826は煽り
830Now_loading...774KB:2007/10/28(日) 02:09:02 ID:ZY1/X5OH
>>826
確かに君の言っている事は正論だが、ここは2ちゃんなので821が全部悪い。以上。
831Now_loading...774KB:2007/10/28(日) 03:24:59 ID:WTcBVQTq
>>>826
>確かに君の言っている事は正論だが、ここは2ちゃんなので821が全部悪い。以上。
キモ過ぎ
832821:2007/10/28(日) 03:31:51 ID:c6SSyPco
いやーーーーー、私のために喧嘩しないでっ!!><
833Now_loading...774KB:2007/10/28(日) 06:42:39 ID:dtCmVtfr
>>826
回答だけ提示しろよw
おまいが一番読めてないw
834Now_loading...774KB:2007/10/28(日) 09:53:25 ID:rjyaoXXD
まあ、これでも見て落ち着けよw

http://vista.crap.jp/img/vi9353267243.jpg
835Now_loading...774KB:2007/10/28(日) 11:02:19 ID:YPc6n8ko
ガンバ懐かしい
836Now_loading...774KB:2007/10/28(日) 11:28:00 ID:psm+XskH
日経予想スレを思い出す絵だな
837Now_loading...774KB:2007/10/28(日) 11:47:31 ID:lUPeAHBd
ライブチャットのようなシステムを作りたいのですが、
最短で学ぶための覚えるべきことをいくつか挙げてください。
お願いします。
838Now_loading...774KB:2007/10/28(日) 11:51:09 ID:YPc6n8ko
>>837
「自分で調べる」
これにつきる
839837:2007/10/28(日) 12:09:41 ID:lUPeAHBd
>>838
現在、Fles2SDK + ActionScript + それようの鯖
までわかったのですが、レールはそれてないでしょうか?
840Now_loading...774KB:2007/10/28(日) 13:54:44 ID:iK4x5l4L
>>839
まずはFlash Media Serverを買え
あとは知らないから自分でがんばれ
841837:2007/10/28(日) 14:12:12 ID:lUPeAHBd
>>840
それに代わるフリーの物があるようです。

しかし、Webカメラ接続あたりのソースがまったく見つからなかったりと
予定していた一週間では作れそうにないので、おとなしくシステム買い取ります。
もし作れる方がおられましたら、金額提示してください。
ありがとうございました。
842Now_loading...774KB:2007/10/28(日) 16:18:43 ID:WHI3Jum8
>>841
亀レスだけど
・RED5 Server
・続FlashActionScriptバイブル
あたりでも調べてみれ。
843Now_loading...774KB:2007/10/28(日) 17:03:53 ID:MG2mk1Cp
つか、調べてんなら質問する間にそういうのも書き込めよ
なに、回りくどい質問の仕方しやがって
844Now_loading...774KB:2007/10/28(日) 18:50:05 ID:qj0S80ZQ
>>826
すいません。Flashの使い方を1から10まで教えてください。
もちろん無料で。




























とか言われたらムカつくだろ。
845Now_loading...774KB:2007/10/29(月) 08:56:19 ID:XKEkGmDx
var topMenu = new ContextMenu();
topMenu.hideBuiltInItems();
topMenu.builtInItems.quality = true;
topMenu.customItems.push(new ContextMenuItem("Noise", this.onSelect));
topMenu.customItems.push(new ContextMenuItem("PerlinNoise", this.onSelect));
this.menu = topMenu;

ビルトインメニューの変更はできるがカスタムメニューの表示がされない。
もうこれバグなんじゃねーの
846Now_loading...774KB:2007/10/29(月) 09:29:20 ID:G2yEOS7J
>>845
どうせ、function onSelect(){}作ってねーとかだろw
847Now_loading...774KB:2007/10/29(月) 09:53:48 ID:xtK4/3Kg
FLASHでバナーを作成するのですが、そのリンクのジャンプ先が定期的に変わります。
getURLでFLASH内でスクリプトとして書いてしまうと、リンク先が変更するたびに.flaデータを修正することになりますよね。
これを、クライアント側で不定期に修正可能なように、外部テキスト(xml)として用意したいのです。
リンク先を外部読み込みにするようなスクリプトを書きたいのですが、よくわかりません。。
方法もしくは参考サイト等をご存知の方がいらっしゃいましたら、教えて頂けないでしょうか。
初歩的な質問で申し訳ありませんが、どうぞよろしくお願いいたします
848789:2007/10/29(月) 09:58:17 ID:otg4St3W
>>792
返事が遅くなって申し訳ない

// ここからフレーム スクリプト
var ids:Array = new Array();
ids.push("MC00"); 〜 ids.push("MC99");
var mc:MovieClip = null; var cnt:Number = 0;

var listener:Object = new Object();
listener.onKeyUp = function(){
  if (Key.getCode() == 90){
   if (mc != null){
    mc.removeMovieClip();
    mc = null;
  }
  mc = _root.attachMovie(ids[cnt], ids[cnt].toLowerCase(), _root.getNextHighestDepth());

  cnt++;
  if (cnt == 100){ cnt = 0; }
 }
}
Key.addListener(listener);
// ここまで

画像等をメモリに展開してるから表示するとメモリ使用量が増えるのは分かるけど、
MCを削除したのに前の状態に戻らないのが何故なのかがわからない
849Now_loading...774KB:2007/10/29(月) 10:15:48 ID:G2yEOS7J
>>847
ヘルプを検索すればサンプルコードあるし、ググればいくらでも参考サイト出てくる。
>>848
メモリ解放はGCが行います。いつ行われるかはわかりません。
850789:2007/10/29(月) 10:39:59 ID:otg4St3W
>>849
> メモリ解放はGCが行います。いつ行われるかはわかりません。
それは知ってるんだけど、メモリ使用量が400MBを超えても
GCが起動しないのは変だなぁと思って。


ちなみにAS3では
1.新しくメモリの割り当てが要求された
2.空いているブロックの残りが少ない
の条件でGCが起動するらしい↓
http://weblogs.macromedia.com/akamijo/archives/2007/05/flash_player_9_7.cfm

AS2では上記の条件は当てはまらないけれど…(っていうかAS2での条件が知りたい)
851789:2007/10/29(月) 11:17:01 ID:otg4St3W
ちょっと質問がずれたので修正

MCを attachMovie して作成後 removeMovieClip でMCを削除後→GCが起動した(と仮定)場合、
増えたメモリ使用量分減るのか?ということが知りたい。

自分でサンプル(>>848)作って試した場合減らなかったので。
852Now_loading...774KB:2007/10/29(月) 13:55:31 ID:36s2B32s
>>851
849のサイトを読めば分かる
853Now_loading...774KB:2007/10/29(月) 16:35:01 ID:/zyyAfPu
>>850
どっかに参照残したままにしてんじゃね?
854789:2007/10/29(月) 17:20:20 ID:otg4St3W
>>853
> どっかに参照残したままにしてんじゃね?
うーん…スクリプトは >>848 だけなんですけどね


もう今日はこれの検証をずっとやって疲れた…

検証して思ったけど、画像分のメモリ使用量だけ解放されないっぽい
Flash がそういう作りになってるとしか思えない
それならそれで構わないけど、そうであるというソースが欲しいw
855Now_loading...774KB:2007/10/29(月) 19:20:14 ID:YgzI3nrd
>>854
BitmapDataなら明示的にdispose()しないと開放されないけど、それはちがう?
856Now_loading...774KB:2007/10/29(月) 20:45:44 ID:1nvXQReF
質問です。
FLASHの操作で、ライブラリからシンボルをドラッグ&ドロップして
ステージに配置するようなものを、
まんまFLASHで作りたいのですが、どうにもこうにもできません。

ステージ上でない途中の所で指を離してしまうと
キャンセルと見なして元の場所に戻るようにもしたいです。
ただドラッグ&ドロップで移動させるのではなく、複製するというか、
アイコンを操作するあの感じにしたいのです。
わかりにくい質問ですみません。
何か解法がありましたら教えてください。

MAC]でソフトはFLASH8です。
857Now_loading...774KB:2007/10/29(月) 20:55:14 ID:1G8Tdd+A
>>856
startDrag でググる。
858Now_loading...774KB:2007/10/30(火) 00:47:38 ID:C89C5gsB
質問です。

環境:WinXP CS3

やりたいことというかアドバイスしていただきたい事
「プレビューではしっかりと読み込まれて表示されるのにパブリッシュ後のファイルは、読み込まれる物と読み込まれないものが発生します。
回避方法等原因のアドバイスをいただけますでしょうか?


やっていることは
メインで複数の外部SWFをバイトで読み込み、配列に格納

MovieClipを継承した自作クラスを8個生成してメインに配置。

自作クラスのコンストラクタは、メインで読み込んだ外部SWFの配列からSWFをLoaderでコピーしてクラス内の配列(SWFとして)に格納
読み込み終了後、配列からランダムでSWFを選び、再生


といった感じのプロセスです。

プレビューですと、全てのクラスで正常に読み込みが終わり再生されるのですが、パブリッシュですと再生されない物ができてしまします(全て読み込まれるときも在りますが、ほとんどの場合1,2つ再生されずに止まっています)
途中までは読み込まれているようですが、それ以降エラー等をはかずに止まっている(私が見つけられていないだけかもしれませんが)

これは、クラスを同時に作成して、そのまま読み込みをやっているため発生してしまう問題なのでしょうか?
やはり一つづつクラス作成→読み込み終了→次のクラス作成 といった手順を踏む方がいいのでしょうか?

アドバイスをよろしくお願いいたします。
859Now_loading...774KB:2007/10/30(火) 00:49:38 ID:ssZpqJVt
そもそもドメインは同じ?
860858:2007/10/30(火) 00:57:06 ID:C89C5gsB
とりあえず ローカル内で動かしているので多分大丈夫だと思います。
861Now_loading...774KB:2007/10/30(火) 01:01:55 ID:CkvGGeq+
>>858
読み込み終了のイベントは何使ってる?
読み込み完了後、1フレーム目の実行(初期化)が完了しないと
命令を受け付けないよ。
862858:2007/10/30(火) 01:12:14 ID:C89C5gsB
>861 contentLoaderInfoのEvent.COMPLETEを使ってます。
メインの配列全てをcopyして使いたかったので、

function completeHandler(evt:Event):void {
クラス内のSWFとして格納する配列[b]=loader.contentLoaderInfo.content;

if(クラス内のSWFとして格納する配列.length<メインのバイトデータが入った配列.length){

try{
i++;
loader.loadBytes(メインのバイトデータが入った配列[i]);
}catch(e:Error){
trace("Error");
}else{
trace("ALL Load");
SWF再生処理
}

}

といった感じです。
863858:2007/10/30(火) 01:14:09 ID:C89C5gsB
訂正:クラス内のSWFとして格納する配列[b]=loader.contentLoaderInfo.content;
→クラス内のSWFとして格納する配列[i]=loader.contentLoaderInfo.content;

ですorz
864Now_loading...774KB:2007/10/30(火) 07:42:49 ID:lNu/bZaa
>>862
各swfを読み込んだかどうかのflg=0の配列を用意。
それぞれのCOMPLETEで該当flgを1に。
メインではtimer使ってその配列をチェックし、
全部1なら次処理に移行するとか、ボタン有効するとかに。
865Now_loading...774KB:2007/10/30(火) 09:11:23 ID:zKzoaZLG
読み込んだswfのサウンドについて質問があります。
以下のように、外部swfを読み込み、用が終わりremoveした後も
読み込んだswfのサウンドが流れてしまいます。以下ソース
*************************************************************************
// ローダーオブジェクトを作成し配置
var loader_obj : Loader = new Loader();
this.addChild (loader_obj);

// ローダーインフォを取得
var info : LoaderInfo = loader_obj.contentLoaderInfo;

//ボタンクリックで削除
function deleteObj(){
info.removeEventListener(Event.OPEN,LoaderInfoOpenFunc);
info.removeEventListener(ProgressEvent.PROGRESS,LoaderInfoProgressFunc);
info.removeEventListener(Event.INIT,LoaderInfoInitFunc);
info.removeEventListener(Event.COMPLETE,LoaderInfoCompleteFunc);
info.removeEventListener(IOErrorEvent.IO_ERROR,LoaderInfoIOErrorFunc);

this.removeChild(loader_obj);

info = null;
loader_obj = null;
}
*************************************************************************

対策方法をご存知の方、ご教示頂けないでしょうか?
つたない文で、申し訳ありませんが、よろしくお願いいたします。
866Now_loading...774KB:2007/10/30(火) 13:23:15 ID:hFAHlylr
AS2しか理解できない厨房でも読めるOOP解説した本ってないですか?
JAVAで解説されても分からん。
867Now_loading...774KB:2007/10/30(火) 14:02:03 ID:LKu7ySAf
>>866
FLASH OOP
868Now_loading...774KB:2007/10/30(火) 20:20:37 ID:0+kTDyJy
1.38777878078145e-16って何?
869Now_loading...774KB:2007/10/30(火) 20:26:52 ID:mTjvJPix
>>868
0.000000000000000138777878078145のこと。
ここで聞くな。
870Now_loading...774KB:2007/10/31(水) 02:29:23 ID:23/PKNiq
var request:URLRequest = new URLRequest("introMovie.swf");
var loader:Loader = new Loader();
(中略)
loader.load(request);
addChild(loader);
という感じで外部SWFを読み込んで配置したいのですが、0,0の位置じゃなく、上から200pxのセンターの位置に配置したい場合はどのように記述すればいいでしょうか?
よろしくお願いいたします。
871Now_loading...774KB:2007/10/31(水) 02:48:14 ID:qCjPV/N4
loader.y=200;
872Now_loading...774KB:2007/10/31(水) 07:29:01 ID:3W/9t0ol
>>865
Loader.unload()でヘルプを検索。先に子のsoundを停止する。
873Now_loading...774KB:2007/10/31(水) 09:26:50 ID:U/MvHL3p
>>872
ありがとうございました。
解決いたしました。
874Now_loading...774KB:2007/10/31(水) 12:19:33 ID:23/PKNiq
>>871
ありがとうございます!
875Now_loading...774KB:2007/10/31(水) 13:48:48 ID:TMViN7IU
>>867
これってOOPを一から理解するには良書じゃないって言われたんだけどどう?
876Now_loading...774KB:2007/10/31(水) 15:46:43 ID:ICmQjwRF
rascut便利すぎワロス

普段使わないRuby入れたりと導入が面倒くさかったけど
877Now_loading...774KB:2007/10/31(水) 20:13:12 ID:qoeOHWh/
一定時間たつと消えてしまうのをなんとかしたいのです。

ある空のMCの1フレーム目に
loadMovie("aaa.swf",this);
と外部swfを読み込んで表示させています。
しかし、このswfが5分くらい?たつと消えてしまいます。

この外部swfは
単なるアニメーションで最終フレームには
stopを書いているのですが…

もうひとつloadMovieで読み込んでいる所は問題なく
ずっと表示されるのですが、なぜ消えるのかわかりません。
初心者の質問で見当違いでしたら申し訳ないですが
どなたかお答えいただければ幸いです。
878Now_loading...774KB:2007/10/31(水) 21:30:30 ID:cfUSy/NY
質問があります、

http://www.nutrigloss.jp/special/
の画面右側で動いているblogパーツをクリックすると、
画面外に飛び出すような動きをするのですが、
これってどう作っているんでしょうか?

javascriptでウインドウを作って、
そこで新規swfを再生って感じでしょうか?

作り方を解説しているようなサイトが有れば、
ぜひ教えて下さい先輩方・・・
879level0:2007/10/31(水) 21:41:53 ID:UKE8dAE5
先生方、質問です。

出力エラーで、

**エラー** シンボル = Symbol 14, レイヤー = actions, フレーム = 5 :行 16:')' または ',' が必要です。
duplicateMovieClip('move', 'move' add mc, mc);

**エラー** シンボル = Symbol 14, レイヤー = actions, フレーム = 5 :行 17:')' または ',' が必要です。
setPropert("move" add mc, _x, 230+Number(x*4));

ActionScript エラー数 :2 報告済みエラー :2


と、出ます。

この場所に行きどのように修正すればよろしいでしょうか。

すみませんが、よろしくお願いします。
880Now_loading...774KB:2007/10/31(水) 22:02:52 ID:XBREvtF8
>>879
>**エラー** シンボル = Symbol 14, レイヤー = actions, フレーム = 5 :行 16:')' または ',' が必要です。
>duplicateMovieClip('move', 'move' add mc, mc);

>**エラー** シンボル = Symbol 14, レイヤー = actions, フレーム = 5 :行 17:')' または ',' が必要です。
>setPropert("move" add mc, _x, 230+Number(x*4));


Flash 5以降のActionScriptの文法を学ばれた方がよいように思われます。
Flash Player 7以前でパブリッシュすれば、エラーは生じません。

Flash 8オンラインヘルプ[ActionScript 2.0リファレンスガイド] >
[使用されなくなったActionScript] >
[使用されなくなった演算子の一覧]より引用:
add
Flash Player5以降では、使用しないでください。
Flash Player 5以降では、コンテンツの作成時に加算(+)演算子を使用することをお勧めします。
この演算子は Flash Player 8以降ではサポートされていません。


あと、setPropertyな
881Now_loading...774KB:2007/10/31(水) 23:05:11 ID:RTx7Bp3x
質問です。
操作対象の絵をカーソルキーの上下左右入力ごとに変えるにはどうすればいいでしょうか?
どうか教えて下さいませ。
882Now_loading...774KB:2007/10/31(水) 23:55:20 ID:haYjhWhN
>>881
具体的に書いてくれ
883Now_loading...774KB:2007/11/01(木) 00:00:37 ID:8H07fvkb
私も質問で悪いのですが、
現在AS3.0を勉強中なんですが、どうしてもテキストフィールドにフォーカスをスクリプトから当てる事ができません。
具体的には
ドキュメントクラス→テキストクラス→テキストフィールド
                           ↑これ
テキストクラスに

mytext_field.setFocus();

と書いたら
[1061: 未定義である可能性のあるメソッド setFocus を、静的型 flash.text:TextField の参照を使用して呼び出しました。]
ってな感じのエラー

MovieClip( mytext_field ).setFocus();

って書いたら
強制変換に失敗。。。

setFocus("mytext_field");

って書いたら
[1180: 未定義である可能性が高いメソッド setFocus の呼び出しです。]

どうしたらいいんでしょうか?
884level0:2007/11/01(木) 00:03:57 ID:rnZVY++G
>>880先生

ありがとうございます。
勉強になります。
885Now_loading...774KB:2007/11/01(木) 00:05:08 ID:8H07fvkb
質問だけでは失礼なので、ちょっと消化します。

>>881
一番、簡単な方法は
操作対象の絵のムービークリップを4つのフレームに分ける
一つずつフレームに名前をつけてあげて(例えば、上下右左)
その対象の絵のムービークリップのフレームアクションに
それぞれの分岐(スイッチ使ったららくじゃね)を書いてあげる

これでOKじゃね?
886Now_loading...774KB:2007/11/01(木) 00:05:10 ID:xLqukwEE
AS3.0のコンポーネントのデータグリッドで選択したもの値を取得するにはどうすればいいでしょうか。
887Now_loading...774KB:2007/11/01(木) 00:05:59 ID:Ei/ODTzl
>>883
stage.focus = mytext_field;
888Now_loading...774KB:2007/11/01(木) 00:07:52 ID:8H07fvkb
>>885
ちょっとわかりにくかったので

   ↓(ここに操作系のアクションスクリプト)
  ルート → 対象の絵
          ↑(このムービークリップをフレームで分けてあげる)
889Now_loading...774KB:2007/11/01(木) 00:08:42 ID:8H07fvkb
>>887
おお!!
ありがとうございます!!!

こんなので5時間も悩んでいたのか。。。。
890Now_loading...774KB:2007/11/01(木) 00:17:08 ID:8H07fvkb
>>886
こんな感じじゃないですか?
myDataGrid.addEventListener( DataGridEvent.ITEM_FOCUS_IN , ファンクション);
891Now_loading...774KB:2007/11/01(木) 00:27:27 ID:8H07fvkb
あ、まちがえたっぽい

なんかお世話になったので、どぞ
import fl.controls.List;
import fl.data.DataProvider;
import fl.events.DataGridEvent;

var dp:DataProvider = new DataProvider();

dp.addItem({label:"Item 1"});
dp.addItem({label:"Item 2"});
dp.addItem({label:"Item 3"});

myDataGrid.dataProvider = dp;
myDataGrid.addEventListener( Event.CHANGE , ファンクション);

function ファンクション(event:Event){
trace( event.target.selectedItem.label )
}
892Now_loading...774KB:2007/11/01(木) 00:34:19 ID:8H07fvkb
>>878
どれかわからないので、再現できなかったです。
IEですか?
893Now_loading...774KB:2007/11/01(木) 00:38:43 ID:8H07fvkb
>>877
空のMCは親の最後のフレームまでいますか?

> 単なるアニメーションで最終フレームには
> stopを書いているのですが…
読み込まれるSWFでは基本的にthisとかrootとかをつけてあげましょう
877さんの場合だと
this.stop();
が一番良い書き方
894Now_loading...774KB:2007/11/01(木) 11:07:37 ID:uRVEbumC
ニコニコ動画のようなタイプのアプリケーションを考えています。
それで、ニコニコはXMLでコメントと再生位置をセットで1つのノードに保持するというデータ構造を持っていますが、
この方式では、いくらがんばっても、ニコニコのように高速な処理が望めません。

はじめ、毎回ノードを取り出して、ifで該当時間のデータを、毎ミリ秒取り出すようにしてたんですが
あまりにも遅いので、予めノードのデータをArrayに取り出して、連想配列のキーに該当時間を入れる事で高速化を図ったのですが
やっぱり遅いです。

何かいい方法はありませんでしょうか?
他の処理をXML形式にあわせてしまったので、今のデータ構造そのものは変えたくありません。

開発環境は、Flex Builder2(AS3)です。
よろしくお願いします。
895Now_loading...774KB:2007/11/01(木) 12:17:30 ID:Uhewvu26
>>894
何万行のデータ解析しようとしてるか分からないけど、XML以外のところに問題があるとおもわれ

896Now_loading...774KB:2007/11/01(木) 13:49:30 ID:4aE+uTMC
>>878
こういうのはJavascript使わないと無理だと思う
Wndowsを作るというより、CSSで全画面になるようなDivなり追加するようにして、その中でSWF再生とか
閉じるときは同じようにJavascriptで消す
897Now_loading...774KB:2007/11/01(木) 14:44:36 ID:KKtMBgTu
>>894
うまくいかないソース提示しろ。話はそれからだ。
898Now_loading...774KB:2007/11/01(木) 21:54:47 ID:CmaTTNfH
>>888
サンクスです。
試してみます。
899Now_loading...774KB:2007/11/02(金) 01:38:55 ID:qoH1//+J
dataXML=new XML();
dataXML.ignoreWhite=true;
dataXML.load("data.xml");
dataXML.onLoad=function(){
init();
}

function init(){
//itemの総数
itemNum=dataXML.childNodes.length;
for(i=0;i<itemNum;i++){
//item内のノードの総数
childNum=dataXML.childNodes[i].childNodes.length;
for(c=0;c<childNum;c++){
//name、urlの値を取得
obj[i+c*childNum]=dataXML.childNodes[i].childNodes[c].firstChild
}
}
}
trace(obj)

で、関数init外でtraceするとobjの中身が空になるんですがなぜでしょう?
objを受け取るためにはどうしたらいいんでしょう?
900899:2007/11/02(金) 01:42:26 ID:qoH1//+J
修正します。

>関数の外でobjを受け取るためにはどうしたらいいんでしょう?

dataXML=new XML();
dataXML.ignoreWhite=true;
dataXML.load("data.xml");
dataXML.onLoad=function(){
init();
}

obj=new Array;

function init(){
//itemの総数
itemNum=dataXML.childNodes.length;
for(i=0;i<itemNum;i++){
//item内のノードの総数
childNum=dataXML.childNodes[i].childNodes.length;

for(c=0;c<childNum;c++){
//name、urlの値を取得
obj[i+c*childNum]=dataXML.childNodes[i].childNodes[c].firstChild
}
}
trace("関数内:"obj)
}
trace("関数外:"obj)
901Now_loading...774KB:2007/11/02(金) 01:51:36 ID:EdvSjx0p
>>894
毎回時間を比較するんじゃなくて
コメントが出るであろうタイミングに
setTimeoutを発動させればいんでない?

>>899
「関数外」の方が先に実行されるんだし空っぽで当然。
obj使う処理はonLoadもしくはinit()側から呼び出しが発生するようにする。
902Now_loading...774KB:2007/11/02(金) 03:52:04 ID:qoH1//+J
>>901
ナルホドあざす
903Now_loading...774KB:2007/11/02(金) 10:50:45 ID:ShAgdDmm
質問させてください
処理おちを回避するためタイムラインに配置されたムービーをあらかじめロードしておきたいのですか、ナウローディングのスクリプトでよいのでしょうか?またナウローディングのスクリプトは読み込むムービーの指定をどこでおこなっているのでしょうか?
904Now_loading...774KB:2007/11/02(金) 11:27:12 ID:ODz2tjDU
ナウローディングでいいんだお
最初からタイムラインに配置してあれば本体に含まれるからムービーの指定はいらない
905Now_loading...774KB:2007/11/02(金) 13:37:05 ID:ShAgdDmm
904さんありがとうございます。
重ねて質問させていただくとナウローディングのサンプルを最初のフレームにおいても機能しない場合、何が間違っていると考えられるのでしょうか?
ターゲット指定が必要ないならおくだけで機能すると考えたのですが、早計でしょうか?
906Now_loading...774KB:2007/11/02(金) 13:51:43 ID:R43aMwp9
>>905
そのスクリプトを拾ってきたサイトに聞いてください。
907Now_loading...774KB:2007/11/02(金) 18:01:50 ID:UeN3JUw0
質問です。
XML.sendAndLoad()でXMLをPHPに投げようと思うのですがPHPでの受け取り方がわかりません。
LoadVars.sendAndLoad()はLoadVars.○○の変数名で$_POST["○○"]で受け取れるのはわかるのですが
XMLの場合は何になるのでしょうか?
908Now_loading...774KB:2007/11/02(金) 18:13:00 ID:R43aMwp9
>>907
XMLにsendAndLoad()っていうメソッドあるんだ。どこから持ってきたの?
909Now_loading...774KB:2007/11/02(金) 18:15:51 ID:MNU/S6Ti
>>907
file_get_contents('php://input')とかでROWデータ取得できるんじゃなかったかな?
そういう質問はPHPの方でしてくれ。
910883:2007/11/02(金) 18:16:19 ID:nt3O37sv
>>887
で解決できなかったです。

だれか助けて〜
911Now_loading...774KB:2007/11/02(金) 18:19:40 ID:MNU/S6Ti
×ROW → RAW
912Now_loading...774KB:2007/11/02(金) 18:23:52 ID:R43aMwp9
>>910
クリックするなり、Timerイベントでアクションしてみそ。
AS3ならFocusManager あたりも見てみると良いかもね。
913Now_loading...774KB:2007/11/02(金) 18:31:39 ID:UeN3JUw0
907です。
PHP中心で調べたところ
$_GLOBAL["HTTP_RAW_POST_DATA"]

file_get_contents("php://input");
でいけるようです。
ありがとうございました。
914Now_loading...774KB:2007/11/02(金) 23:02:08 ID:7fq5/wQb
Flex2のAS3について質問させていただきたいのですが、
ある領域に対してテキストを領域を超えないように幅を縮小したいと考えています。
今手元にちょっとソースが無いのですが
テキストの幅を取得するメソッドと領域の幅を出して、その比率から
scaleXとscaleYを設定したのですが、うまくいきませんでした。
(scaleX=scaleYだとうまくいったように見えるときもあるけど、
scaleY=1で、scaleXを可変にしたい。)
文字列を幅だけ縮小といったことは不可能でしょうか?
915Now_loading...774KB:2007/11/03(土) 01:41:07 ID:V9WoIR7Z
>914
システムフォントの表示はFlashのグラフィックエンジンの外にあるので
回転すると表示されないしスケールもガクガク。
埋め込みフォントならうまくいくものが多いけど、自分の記憶ではスケールのタテヨコは
連動するソースになってた気がするのでダメかも。

まあ、システムフォントしか使えませんというのであれば、
いったんBitmapDataに書き出してしまえばやりたい放題。

でも忠告しておくと、縦長の文字はかなり違和感があるしキタナイので
素直にレイアウトを考え直すべき。
916Now_loading...774KB:2007/11/03(土) 13:20:18 ID:RL8VH2Mg
質問させてください
1024 768で作ったフラッシュを起動時に縮小表示させて表示させたいのがどのようなスクリプトを用いればいいのでしょうか?
917Now_loading...774KB:2007/11/03(土) 16:42:16 ID:zEA+ozhV
質問です。
var labelArray:Array;
//複数回呼び出される
function addLabel(){
var label:Label = new Label();
labelArray.push(label);
}

function delLabel(){
for earch(var label in labelArray){
delete label;//ここでエラー
}
}
このようにどんどん追加されていくコントロールを削除したいのですが
動的に作られたものしか削除出来ないとエラーが出ます。
このような処理を行うには、どうすればいいのでしょうか?

Flex2(AS3)です。よろしくお願いします。
918Now_loading...774KB:2007/11/03(土) 19:25:24 ID:7WmIRf/1
>>917
for each
919Now_loading...774KB:2007/11/03(土) 20:06:11 ID:TdumaJ9J
>>915
ありがとうございます。
このぐらい簡単にできるもんかとおもいきや案外ややこしいんですね
920Now_loading...774KB:2007/11/03(土) 22:33:38 ID:IFaPQ6Yl
フォーカスが当てれなくて困っています。
全体の動作はには、マウスクリックした場所にテキストフィールドを生成するっていう
ごく単純なActionScript、テキストフィールドは生成するんですが、フォーカスがあたりません。
たぶん、簡単な間違いをしてると思うのですが。。。
package {
 public class TextChildren extends MovieClip {
  var mytext_field:TextField;
  function addWord( thisM ){
   mytext_field = new TextField();
   mytext_field.x = parseFloat( thisM.x );
   mytext_field.y = parseFloat( thisM.y );
   addChild(mytext_field);
   MovieClip(root).setFocus = mytext_field;//フォーカスを与える
  }
 }
}

エラーメッセージ----------
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。

よろしくお願いします。
921Now_loading...774KB:2007/11/04(日) 05:36:32 ID:SrCGAWzA
ラベルコントロールについて質問です。

var label:Label = new Label();
label.horizontalAlign="Center";

このような感じで中央に配置する処理を行いたいのですが、該当のプロパティーがありません。
どのようにすれば、いいのでしょうか?

Flex2です。
922921:2007/11/04(日) 08:41:08 ID:SrCGAWzA
追記です。
label.setStyle("horizontalCenter", "0");
のようにしてもダメでした。

<mx:Label label="test" hosirontalCenter="0" />
だと、正常に真ん中に来るのに・・・。
923Now_loading...774KB:2007/11/04(日) 14:18:59 ID:Ttp8PfZM
924Now_loading...774KB:2007/11/04(日) 15:00:35 ID:TgY20EIp
>922
textAlign="center"じゃないの?
意図しているものと違うかもしれんけど。

hirizontalCenterは親がコンテナのときしか使えないよ。

925Now_loading...774KB:2007/11/04(日) 15:07:22 ID:TgY20EIp
>920
setFocusって関数じゃないの?

それにTextFieldってフォーカス当たるの?
mytext_field.setFocus()はないので
Flexの場合UITextFieldを使う。

Flash8はよく知らんけど
stage.focus = mytext_fieldかも。
926Now_loading...774KB:2007/11/04(日) 17:05:13 ID:7Aaj0Ea5
ActionScript3.0での質問です。

http://www.saturn.dti.ne.jp/~npaka/flash/as30/VideoEx/index.html
にあるflv再生のデモで、

stream.play("robo.flv");

の後にタイマーでNetStream.timeで再生時間を取得しようと思ったのですが
(1秒ごとにtrace(stream.time);という記述で再生時間)、なぜか
「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」
というエラーメッセージが出て再生時間が取得できません。

うまく再生時間を取得する方法はないでしょうか?
927926:2007/11/04(日) 18:34:20 ID:7Aaj0Ea5
自己解決しました。

2回目のvar streamのvarをとったら普通に取得できました。
928Now_loading...774KB:2007/11/04(日) 18:37:07 ID:2f4z9Ilm
ヴぁーか
929Now_loading...774KB:2007/11/05(月) 22:45:40 ID:lHLG3R/O
ウィンドウサイズに合わせて写真やメニューの字が変化するASの書き方はどうすればできますか?
最終目標はこんな感じです!
http://www.hatsuko-endo.co.jp/
930Now_loading...774KB:2007/11/05(月) 23:19:44 ID:O7tszGRo
>>929
イベントリスナーでON_MOUSEじゃね?
931Now_loading...774KB:2007/11/06(火) 00:19:37 ID:wbhk6ctT
>>930
適当なこと言うなw

Stage.scaleMode = "noScale";
Stage.align = "TL";

とかにした上で、随時MovieClipの位置を調整してやればオk。
例えば、左下のWhat's Newだったらこんな感じ。

function onResize():Void {
_y = Stage._height - 150;
}
onResize();
Stage.addListener(this);
932Now_loading...774KB:2007/11/06(火) 08:58:06 ID:JS+5U5uF
>>931

できました!
これをHTMLにのっける場合どのようにHTML書けばできますか?
いつもLayout Tableサイズ考えてのっけてたもんですから。。。
933Now_loading...774KB:2007/11/06(火) 16:07:11 ID:r29zpSb9
その最終目標のHTMLのソースみればいいじゃない
934Now_loading...774KB:2007/11/06(火) 20:11:22 ID:gccZQYS0
円(親)が動けば、それに円(子)が追随してきて、親が止まった位置に止まる

こんなアニメーションを付けたいのですが、円の数が多いと、制御が大変なので、
actionscript等で、自動的に、円(親)に円(子)が追随してくるようにはできませんか?
935Now_loading...774KB:2007/11/06(火) 20:30:12 ID:gccZQYS0
すみません。質問場所を間違えました。。。初心者スレで聞いてみます。
936Now_loading...774KB:2007/11/06(火) 20:33:42 ID:FHAz8Olx
>>934
MCのインスタンス名を、mc0, mc1, ... などとして、for文で
for(i=0; i<10 ; i++){
this["mc"+i]._x +=10; //X方向への移動の場合
}

詳細は本を読んでクレイ
937Now_loading...774KB:2007/11/06(火) 20:39:14 ID:KHlnByyd
HTMLでいうところのラジオボタンとかセレクトボックスなんかを
さくっと作れるAS3のクラスを配布してるありがたいサイトなんて
ないでしょうかねえ?
938Now_loading...774KB:2007/11/06(火) 21:38:24 ID:soieKdPE
mxmlがあんだろーがこのボケナス
939Now_loading...774KB:2007/11/06(火) 22:25:59 ID:j73lbBVV
>>937
オレはFlexじゃなくてmxmlc(フリーのコンパイラ)でFlash作ってるから
Flexだと使えるラジオボタンとかチェックボックスが使えなくて困ったんで全部自作したよ
940Now_loading...774KB:2007/11/07(水) 00:13:27 ID:I6ltFm7I
>934
親が動いたイベントに対するイベントハンドラを作って、
適当にEasingを効かせたMoveエフェクトを
子にかけてやればいい。
目標座標を親の座標にするだけ。
Flex2だけどね。

前に、これでマウスカーソルを追いかけてくる
イヤなバナーを作って遊んだことがある。
コード部分は20行ぐらい?
941Now_loading...774KB:2007/11/07(水) 03:07:07 ID:CET5Nbj3
ActionScriptはFlex Builderでガシガシ書いているんだけど、
Flash CS3でリンケージで子インスタンスを含むMovieClipを使う時に問題。
swf内には取り込まれたasに追加記述されているのでCS3上ではうまくいくのだが
builder内では、MovieClipに含まれる子インスタンスを参照すると(例えばTextField)
「定義されていない可能性のある〜」とエラー表示されてしまう。
何かうまく解決できる方法はないだろうか。
strictを外すとか自動ビルドを外せば回避できるんだが、
根本的なエラーもチェックしてくれなくなるから意味なくなっちゃう。
942Now_loading...774KB:2007/11/07(水) 03:14:39 ID:kvHCwp7e
>>941
あ、俺が居る
943Now_loading...774KB:2007/11/07(水) 03:18:28 ID:CET5Nbj3
同士が居て良かったw
使用するシンボルとか小分けにすると再編集が面倒だからこういう方式取ってるけど
このエラーを解決できないと、あんまりやる意味ないんだよなー。
944Now_loading...774KB:2007/11/07(水) 03:53:47 ID:ERCQ9Nuz
>>938
>>939
ありがとうございます。
私も無料のFlex2SDKでやってます。
結局自作するしかないのか、、、
945Now_loading...774KB:2007/11/07(水) 05:40:46 ID:ERCQ9Nuz
>>938
>>939
自己レス(最初に質問した937です)。
自作しかないのか、、、と思ったら、mxmlって言うの?
XMLで書くやつでできました!
知らなかった〜!!!
mxmlも勉強してみます。
ありがとう!!!!!
946Now_loading...774KB:2007/11/07(水) 07:28:43 ID:6cc0qh9w
>>941
swfはひとつのコンポーネントのようにしてて扱うわけだから、
getter/setterのアクセサメソッドを準備するのが王道じゃないかな。使う側じゃなくて、作る側の問題。
他の人に使ってもらうとしたら、そのtextfield名なんてしったこっちゃないだろうからね。
947Now_loading...774KB:2007/11/07(水) 07:55:58 ID:CET5Nbj3
コーディングルールとかの問題じゃねえよ。
Flashがリンケージ時において自動生成するコードの問題だ。
手動で先にclass作っておいてそこで変数(インスタンス)を書いておくと
コンフリクトする。
書いておかないとBuilderから参照できない。
そういうことだ。
948Now_loading...774KB:2007/11/07(水) 08:08:52 ID:6cc0qh9w
コーディングルール?
で、解決できないわけ?
949Now_loading...774KB:2007/11/07(水) 08:24:05 ID:CET5Nbj3
理解してないなら答えなくていいよ
950Now_loading...774KB:2007/11/07(水) 08:33:10 ID:HvIQivLQ
>>941
AS2だとintrinsic class置いとけば解決できたような気がするが
AS3はシラネ
951Now_loading...774KB:2007/11/07(水) 08:46:46 ID:CET5Nbj3
>>950
ちょっと試してみたが
intrinsicはどうやらAS3ではサポートされていないようだ。残念。
代替えキーワードないんかなー。
952Now_loading...774KB:2007/11/07(水) 09:09:08 ID:CET5Nbj3
お、読み込み先classをdynamic public classにしておくことで解決できたー
感動。
dynamicクラスって理解してなかったけど、今つかめました。
解決の糸口を与えてくれた>>951に大感謝。愛してる。
953Now_loading...774KB:2007/11/07(水) 09:09:41 ID:CET5Nbj3
>>950だったw
954Now_loading...774KB:2007/11/07(水) 09:26:44 ID:vl0Obkyc
intrinsic classって使った事ないんだけど、Flexで作業する時に必要になるの?
955934:2007/11/07(水) 12:09:54 ID:2UEG1Wkj
>>936,940
ありがとうございます。今日一日教えていただいた方法を試して見ます。
956mimi:2007/11/07(水) 16:43:07 ID:8gw1qoGS
index.swfを自分自身が読み込まれるまで待つっていうスクリプトを
教えてください。
ローダーは外部になります
957Now_loading...774KB:2007/11/07(水) 18:08:45 ID:ffO0QxI7
>>956
普通に自分がやりたいことを詳しく書いてくれた方がレス付くと思うよ
その文章だけだと理解できん
958Now_loading...774KB:2007/11/07(水) 19:09:42 ID:nQSEvj8Y
>>952
子インスタンスの名前についてコンパイル時にチェックしなくても十分なら
素直にDisplayObjectContainer.getChildByName()使いなさい
959Now_loading...774KB:2007/11/08(木) 11:45:27 ID:xscr7s/5
AS3についての質問です。

package {
import flash.display.MovieClip;

public class test002 extends MovieClip{
var com_ary:Array;

function test002(){
var i:int = 0;
for (i=0; i<=10; i++) {
com_ary[i] = "st"+i;
trace(com_ary);
}
}
}
}

TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at test002$iinit()

となってしまいます。
何が原因なんでしょうか?
960Now_loading...774KB:2007/11/08(木) 11:47:54 ID:TBjHyoxk
配列をnew Array()してないからでそ
961Now_loading...774KB:2007/11/08(木) 11:50:36 ID:xscr7s/5
>>960
あ、コンストラクタで初期化すればいいんですね。
ありがとうございました。
962Now_loading...774KB:2007/11/08(木) 14:12:54 ID:gC+NNbdE
文字を点滅させて表示させたいのですが、どうやってやればいいですか?
963Now_loading...774KB:2007/11/08(木) 14:32:45 ID:/o4tKTqK
setIntervalかTimerでvisible操作するとか
964Now_loading...774KB:2007/11/08(木) 14:40:35 ID:gC+NNbdE
初心者なもので記述方法が全然わかんないんですが教えていただけないでしょうか・・?><
965Now_loading...774KB:2007/11/08(木) 14:44:50 ID:f3RriJny
>>964
1.文字を点滅させるよりは簡単なASを勉強する
2.文字を点滅させるASを勉強する

これでおk!

まあダイナミックテキストと静止テキストの区別すら付かない初心者なら
適当にタイムラインで文字を出したり消したりするアニメーションを作ればいいと思うよ
966Now_loading...774KB:2007/11/08(木) 14:54:39 ID:TBjHyoxk
基礎を教えるスレではないしな
967Now_loading...774KB:2007/11/08(木) 15:16:39 ID:gC+NNbdE
了解。
ありがとうございました!
968Now_loading...774KB:2007/11/08(木) 16:23:32 ID:4pG4BDi8
CS3を使用しています。

this.onEnterFrame = function(){
this.loadMovie(XXXX.jpg);
}

というように画面内に画像をXMLファイルから読み込みたいと思っています。

------------------------------------------------------------
xmlIndex.blogURL = rootNode.attributes["blogURL"];
------------------------------------------------------------

というような定義をして「xmlIndex.blogURL」に「test.jpg」と出力はできるのですが

------------------------------------------------------------
this.onEnterFrame = function(){
this.loadMovie("test.jpg");
}
------------------------------------------------------------

↑を↓のようにすると画像が出力されません。

------------------------------------------------------------
this.onEnterFrame = function(){
xmlIndex.blogURL = rootNode.attributes["blogURL"];
this.loadMovie("xmlIndex.blogURL");
}
------------------------------------------------------------

何がいけないのでしょうか?ご教授宜しくお願い致します。
969Now_loading...774KB:2007/11/08(木) 16:26:07 ID:4pG4BDi8
CS3を使用しています。

this.onEnterFrame = function(){
this.loadMovie(XXXX.jpg);
}

というように画面内に画像をXMLファイルから読み込みたいと思っています。

------------------------------------------------------------
xmlIndex.blogURL = rootNode.attributes["blogURL"];
------------------------------------------------------------

というような定義をして「xmlIndex.blogURL」に「test.jpg」と出力はできるのですが

------------------------------------------------------------
this.onEnterFrame = function(){
this.loadMovie("test.jpg");
}
------------------------------------------------------------

↑を↓のようにすると画像が出力されません。

------------------------------------------------------------
this.onEnterFrame = function(){
xmlIndex.blogURL = rootNode.attributes["blogURL"];
this.loadMovie("xmlIndex.blogURL");
}
------------------------------------------------------------

何がいけないのでしょうか?ご教授宜しくお願い致します。
970Now_loading...774KB:2007/11/08(木) 16:33:14 ID:Fci9M5UE
>>969
this.loadMovie("xmlIndex.blogURL");じゃなくて
this.loadMovie(xmlIndex.blogURL);じゃないの?
971960:2007/11/08(木) 16:43:37 ID:4pG4BDi8
>>970
早速のご回答ありがとうございます。

>this.loadMovie("xmlIndex.blogURL");じゃなくて
>this.loadMovie(xmlIndex.blogURL);じゃないの?

下のほうでも試したのですがダメでした。

ネットでもかなり調べたのですが、かなり複雑のものが多く、
ただ「XMLに書かれたjpgを出力する」だけというのシンプルなものが
ないんですよね・・
972Now_loading...774KB:2007/11/08(木) 17:25:08 ID:1Lgx9h2Z
>>971
xmlをロードをする。
読み込み完了を待つ。
読み込まれたxmlのなかの値を参照して外部ファイルをロードする。
外部ファイルのロード完了を待つ。

以下の手順をきちんと踏めばできるはず。
それぞれの動作は「シンプルなもの」だ。
そもそもなんでonEnterFrameで読み込んでんの?
ロード終わったらdeleteしてるの?
973Now_loading...774KB:2007/11/08(木) 20:56:23 ID:J/4d1WXC
obj=new Object;
iName="TEXT";
t="test";
obj["item"]={iName: t};

iNameを"TEXT"としてobjに代入したいのですがどうしたらいいんでしょう?
974Now_loading...774KB:2007/11/08(木) 21:00:37 ID:atek++ze
質問の意味がわからないんだけど、こういうことじゃなくて?
obj = { TEXT:"test" }
975Now_loading...774KB:2007/11/08(木) 21:02:01 ID:Yy/Qtw5l
>>973
obj = {iName : "TEXT"};
または、
obj = new Object();
obj.iName = "TEXT";

これでどうでしょ?AS2だけど
976Now_loading...774KB:2007/11/08(木) 21:07:54 ID:J/4d1WXC
AS2の話です。
すみません質問がド下手でした orz

obj["item"]={iName: t};
のiNameの部分を変数iNameとして扱って、
中のTEXTという文字列でラベルを作る。

要するに
obj["item"]={TEXT: t};
のようにしたいということです。
977Now_loading...774KB:2007/11/08(木) 21:29:20 ID:Yy/Qtw5l
むむむ…
objオブジェクトに変数iNameの中身("TEXT")が名前になってるプロパティを作る、てことでいいのかな?
なら、

var iName:String = "TEXT";
obj[iName] = t;

でいけるかな?
力不足でスマン
978Now_loading...774KB:2007/11/08(木) 21:48:12 ID:J/4d1WXC
>>977
最終的に、

obj―item1-TEXT1: "test", TEXT2: "test"
亙tem2-TEXT1: "test", TEXT2: "test"
亙tem3-TEXT1: "test", TEXT2: "test"

こういう構造を作りたいので、
forで{"TEXT"+i: t}などとやってラベルを作りたいんです。

なのでとりあえずobj["item"]に{TEXT: "test"}を放り込みたいんです。
979Now_loading...774KB:2007/11/08(木) 21:49:11 ID:J/4d1WXC
↓こうでした。

obj
亙tem1-TEXT1: "test", TEXT2: "test"
亙tem2-TEXT1: "test", TEXT2: "test"
亙tem3-TEXT1: "test", TEXT2: "test"
980Now_loading...774KB:2007/11/08(木) 21:56:40 ID:+41L94ez
>>978
多次元が分からないだけかな?

iName = "TEXT1";
obj = new Object();
obj["item1"] = new Object();
obj["item1"][iName] = "test";
981977:2007/11/08(木) 22:00:09 ID:6eO0JI+R
そうか、じゃあ、

iName = "TEXT"+i.toString();
obj["item1"][iName] = t;

これでできんかな?
982Now_loading...774KB:2007/11/08(木) 22:05:15 ID:J/4d1WXC
>>980,>>981

なるほど、多次元か。
配列と同じなんですね。

解決しました。
ありがとうございます!
983Now_loading...774KB:2007/11/09(金) 00:01:28 ID:jP3mppC7
ゲーム作りを頼まれたので、ASを学ぼうとしています。
AS2.0についてはりぼてASみたいに説明してるところってありますか?
はりぼてASはAS1.0だって友人が言っていたので…。
984Now_loading...774KB:2007/11/09(金) 00:02:46 ID:TR0en4vS
すいません途中で送ってしまった上上げてました・・・。

ゲーム作りを頼まれたので、ASを学ぼうとしています。
しかし初心者なのではりぼてASで学ぼうとしたんですが、
学ぶからには今主流のAS2.0を学んだ方がいいかなと思ったんです。
今後のためにもなりますし。。。

そこで、AS2.0についてはりぼてASみたいに説明してるところってありますか?
はりぼてASはAS1.0だって友人が言っていたので…。
985Now_loading...774KB:2007/11/09(金) 02:27:43 ID:19MNj7QZ
ActionScriptでぐぐればごろごろ出てくる。

どういうゲームを作ろうとしてるのか知らんが、
そんなことで質問してるようじゃまともにゲーム作れるまで相当時間かかるぞ
986969:2007/11/09(金) 09:07:44 ID:WWPl5JgG
>>972
ご回答ありがとうございます。
初心者というか基本的な部分が分からず、既にあるソースを改変して
作っているので、良くわからないんです。

その後検索したら、Adobeのサイトでよいサンプルが見つかったので
こちらを基に作成したいと思います。

ご回答くださった方ありがとうございました。
987Now_loading...774KB:2007/11/09(金) 16:05:14 ID:qvSjiwjG
今Flashでブロック崩しのゲームを作ってるのですが
携帯で試しにやってみたところ、バーが左右に動きません。
誰か詳しい方教えていただけないでしょうか?

ちなみに今は
onClipEvent (enterFrame) {

// 左キーを押したとき
if (Key.isDown(Key.LEFT)) {
_x = _x - 3; // 左に移動
}
// 右キーを押したとき
if (Key.isDown(Key.RIGHT)) {
_x = _x + 3; // 右に移動

となっています。
よろしくお願い致します
988Now_loading...774KB:2007/11/09(金) 18:21:51 ID:G1pMIVe5
Key.isDown(Key.LEFT) が携帯非対応なんじゃね?
989Now_loading...774KB:2007/11/11(日) 11:16:02 ID:Li0ILN5t
FLEX2勉強中です。
<mx:Script>内のASで

var myimage:Image=new Image();
myimage.load("xxx.jpg");

てな感じで画像を扱う場合、loadがCOMPLETEした後なのに
myimage.width
がなぜか0になってて画像のサイズが得られません。
使い方変ですか?FLEXではこういう使い方はしないの?
990きくりん:2007/11/11(日) 12:40:24 ID:Vj2kc08b
初心者なので教えて欲しいのですが・・・
maskimgx = 500000;
mask._width = maskimgx;
move = 8;
moveb = 0;
onEnterFrame = function() {
moveb += move;
mask._x = moveb;
mask.image._x = -moveb;
mask._xscale = (maskimgx/moveb);
if (mask._x>=400) {
this.onEnterFrame = null;
}
}
stop();

で次のエラーが出ます・・

1152: 継承した定義 flash.display:DisplayObject.mask (名前空間 public) にコンフリクトが存在します。

原因を教えてください。
991Now_loading...774KB:2007/11/11(日) 12:49:51 ID:11XmAJwN
環境書いてないので何とも言えないが、
AS2のソースをAS3でパブリッシュしようとしてるとか。
992Now_loading...774KB:2007/11/11(日) 13:32:31 ID:YeyMZtFJ
ただ単に、"mask" と言う変数を自分で宣言していて、それが継承した所に既に存在していて、変数がかぶっている・・・
993Now_loading...774KB:2007/11/11(日) 13:34:53 ID:V2U5Z1jA
>>989
っmyimage.contentWidth
994Now_loading...774KB:2007/11/11(日) 16:43:41 ID:Li0ILN5t
>>993
contentWidthなんてプロパティあったんだ。
できました、ありがとー!
995きくりん:2007/11/11(日) 20:38:17 ID:NzP66sqR
すみません。素人で・・・
"mask" と言う変数を自分で宣言していて、それが継承した所に既に存在していて、変数がかぶっている
との事ですが、どのように解決すればいいのか解りません・・・教えてください。
996Now_loading...774KB:2007/11/11(日) 21:33:52 ID:CP0yJHzT
きくりんちゃん
997Now_loading...774KB:2007/11/11(日) 21:35:21 ID:CP0yJHzT
maskって名前をやめて、myMaskとかに変えてみたら?
998Now_loading...774KB:2007/11/12(月) 05:31:02 ID:e6njLGzS
.
999Now_loading...774KB:2007/11/12(月) 05:31:33 ID:e6njLGzS
.
1000小倉優子 ◆YUKOH0W58Q :2007/11/12(月) 05:32:33 ID:e6njLGzS
1000ならジュースでも飲むか
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。