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

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

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

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

直前スレ
ActionScript 誰かが物凄い勢いで解答するスレ 9
http://pc8.2ch.net/test/read.cgi/swf/1127814783/l50

関連スレ
Flash製作初心者の質問スレッド レイヤー32
http://pc8.2ch.net/test/read.cgi/swf/1133555936/l50
Flashの超基本的な質問はここでしろ! part25
http://pc8.2ch.net/test/read.cgi/swf/1133004598/l50
サイト、書籍は>>2あたり
2Now_loading...774KB:2005/12/17(土) 22:42:30 ID:VKtsy4sO
2get orz
3Now_loading...774KB:2005/12/17(土) 23:11:22 ID:lMa/NrHD
ASお勉強さいと
FLASH ActionScript Helper (初級〜中級。ASの概念をじっくりと
ttp://homepage3.nifty.com/ginga-b/
はりぼてあくしょんすくりぷと (ホンさんの分かりやすい解説
ttp://www.geocities.co.jp/Milano-Cat/4036/bote/index.html
FumioNonaka.com (AS辞書正誤表なども
ttp://www.fumiononaka.com/

AS書籍
おしえて!!Macromedia FLASH MX Action Script (イラスト入りで分かりやすい
macromedia FLASH ActionScriptバイブル (リファレンス本
続FLASH ActionScriptバイブル MXのツボ (上の続編、MXに対応
Macromedia Flash Mx 2004 Actionscript 2.0 Dictionary
Actionscript for Flash Mx: The Definitive Guide
購入は書籍店か、アマゾンあたりで。

Flash情報交換フォーラム
ttp://www.mediacreator.jp/
ttp://www.flash-jp.com/
4Now_loading...774KB:2005/12/17(土) 23:14:55 ID:lMa/NrHD
AS書籍追加で。

FLASH MATH CREATIVITY(Second Edition)
ASを駆使して数学的アプローチで芸術作品を作ろうというコンセプトの本です。
洋書ですが、ほとんどがソースコードと写真なので大丈夫だと思います。
書籍を購入すると全flaファイルをダウンロードすることができます。
購入はアマゾン洋書が便利。

ttp://www.friendsofed.com/fmc/FMCv2/FMC.html
5Now_loading...774KB:2005/12/17(土) 23:15:52 ID:lMa/NrHD
>>1
乙〜
6Now_loading...774KB:2005/12/17(土) 23:47:58 ID:8tW+o2Qu
>>1
7Now_loading...774KB:2005/12/18(日) 00:09:14 ID:jWmFBrmn
gotoAnd乙(>>1);
8Now_loading...774KB:2005/12/18(日) 02:22:43 ID:u0q6ClqL
もしご存知の方がいらっしゃったら教えてください!

XMLSocketを使ったクラアイアント + PHPで書いたサーバースクリプト間で
ソケット接続して簡単なチャットを作って試してるんですが、しばらく放置
(10分くらいか?)すると反応しなくなるんですね。再度接続すれば繋げる
ので、可能性は
・クライアントが勝手に接続を切ってる
が一番高いのかなぁと今のところ思ってます。
※特にサーバー側ではタイムアウトの処理などはしてません

livedocを調べたら、

------------------
connect() メソッドを呼び出すと、Flash Player はサーバーへの
TCP/IP 接続を開き、次のいずれかのイベントが発生するまでその接続を
開いたままにします。

XMLSocket クラスの close() メソッドが呼び出される。
XMLSocket オブジェクトへの参照がそれ以上存在しなくなる。
Flash Player が終了する。
接続が切れる (モデムの切断など)。
------------------
って書いてありまして。。。

ってことは定期的にダミーのデータでも送ればいいのかなぁ。。

何かご存知でしたらご教示くださいませ。よろしくお願いします。
9Now_loading...774KB:2005/12/18(日) 04:48:12 ID:eg4Yr/JX
>XMLSocket オブジェクトへの参照がそれ以上存在しなくなる。
原因はこれじゃない?
10Now_loading...774KB:2005/12/18(日) 11:10:59 ID:Qwbx3tPM
ゼ○ダみたいなものを作ろうと思って下のようなスクリプトで攻撃を行うよう
にしたのですが。
if (Key.isDown(90)) {
this.gotoAndStop("初期")
if (rot == 0) {
this.gotoAndStop("右へ攻撃");
} else if (rot == 180) {
this.gotoAndStop("左へ攻撃");
} else if (rot == 270) {
this.gotoAndStop("後へ攻撃")
} else if (rot == 90) {
this.gotoAndStop("前攻撃")
}
これだと効果音を入れたときにキーを押したままにするとマシンガンみたいな
効果音になってしまうので、キーを押した瞬間だけ認証し、攻撃中にはキーを
認証しないようにするにはどのようにすればいいのでしょうか?
上記の物にスクリプト追加、もしくは攻撃系フレームにスクリプトを入れる形
でよろしくお願いします。
11Now_loading...774KB:2005/12/18(日) 11:52:03 ID:NEHva1H3
>>10
if(Key.isDown(90)&&attack==0){
   攻撃
   attack=1;
}
ID = setInterval(function(){
   attack=0;
   clearInterval(ID)},1000)
こうしておけば1秒後にattackが0になるまでは攻撃できない
setIntervalについて分からなかったら自分で調べてくれ
12Now_loading...774KB:2005/12/18(日) 11:59:21 ID:4fvTwov4
>>11
setInterval無しでattack=0;だけでいいだろ
attack==0は!attackの方がいい
attack=1;はattack=true;の方がいい
attack=0;はattack=false;の方がいい
13Now_loading...774KB:2005/12/18(日) 12:52:44 ID:NEHva1H3
>>12
まさかレスに対するレスが来るとは思わなかったが
setIntervalの位置がおかしかったので4行目の「}」を一番下にしてくれ、と追記
>>12の下3行は個性。どっちでもいい
強いて言うなら分岐が2通り以上になる場合全部書き換えになるから
試行しながらやってるなら「==」の方が面倒は減るかと
14Now_loading...774KB:2005/12/18(日) 13:38:07 ID:s0ErslKZ
教えてください。
ムービークリップのフレーム1に

testvar=1;
function test(){return 1;}

と書いてtestmvの名前で配置、
rootのフレーム1に

trace(_root.testmv.testvar);
trace(_root.testmv.test());

と書いて実行すると、
1
undefined
となるのはなぜなのでしょうか。
変数が呼び出せて関数が呼び出せないのが不思議でしょうがないのですが…。
15Now_loading...774KB:2005/12/18(日) 13:54:21 ID:SSevcVWW
rootのフレーム2に書いたらどうなる?
16Now_loading...774KB:2005/12/18(日) 14:09:02 ID:s0ErslKZ
>15
何じゃこりゃああああああw背drfてゅじ:;@あせrdftgyふじこlpthx!
17Now_loading...774KB:2005/12/18(日) 14:22:07 ID:wVTS6u6k
SharedObject.clear()ってFLASH MXでは使えないんですか?
18Now_loading...774KB:2005/12/18(日) 15:01:46 ID:Mrjf+qbK
最近俺のPCは30秒規制になったがみんなもそうなのか?
もし俺だけの場合、それはいつか変わるのか?
それと以前アク禁になったのだが次の日は普通にできたのだが変化はあるのか?
それと1回スレを立てると次に立てれるようになるまで何日かかる?
19Now_loading...774KB:2005/12/18(日) 15:29:26 ID:jWmFBrmn
なにこの精子
20Now_loading...774KB:2005/12/18(日) 16:33:19 ID:Qwbx3tPM
>>11,12
返信ありがとうございます。
とりあえずsetIntervalに調べてみてどういう物かなんとなくわかったので
を使ってみたんですけれど、エラーが出まくりですね。
下のがそのスクリプトですが、修正をお願いします。
if(Key.isDown(90)&&attack==0){
this.gotoAndStop("ya")
if (rot == 0) {
this.gotoAndStop("yaright");
} else if (rot == 180) {
this.gotoAndStop("yaleft");
} else if (rot == 270) {
this.gotoAndStop("yaback")
} else if (rot == 90) {
this.gotoAndStop("yafront")
   attack=1;
ID = setInterval(function(){
   attack=0;
   clearInterval(ID)},1000)
}
21Now_loading...774KB:2005/12/18(日) 17:44:02 ID:NEHva1H3
>>20
ただ{}が閉じれてないだけ。
ここは修正してもらうスレじゃなくて間違ってる箇所を指摘してもらう所だから。
直すのも勉強だと思ってまず自分で頑張ってみれ。
22Now_loading...774KB:2005/12/18(日) 22:00:45 ID:Ze0As1LL
Windows98SE、FlashMX2004でFLASHサイトを作成中なのですが、

最初にHTMLで左右にフレーム分けをして、FLASHを置いたmenu.htmlを左フレームに配置し、
main.htmlを右フレームに配置し、左フレームのFLASHの操作で、右フレームのページを切り替える、
といったことはできるのですが

FLASHでサイトの大枠を作り、そのFLASH内にインラインフレームを埋め込み、
そのFLASHの操作でフレーム内のページを切り替える、といったことはActionScriptで可能でしょうか?

サイト構成のイメージとしてはkawachoさんの ttp://orangeage.x0.com/ といったFLASHデータの中に、
htmlファイルを埋め込めるようなインラインフレームを作る方法はありませんか?
宜しくお願いします。
23Now_loading...774KB:2005/12/19(月) 00:31:37 ID:l6amayz4
>>22
Flash内にiframeは埋め込めない。
別窓で開くとかにするしかない。
24Now_loading...774KB:2005/12/19(月) 00:39:46 ID:qDlhpy9g
>>23
解答ありがとうございます!
試行錯誤して前者の方法で作ってみます。
25Now_loading...774KB:2005/12/19(月) 00:40:23 ID:Saedw4Ml
>>22
Flashにインラインフレームを埋め込むんじゃなくて、ふつうはFlashにMCやコンポーネント配置して
そこでHTMLテキスト表示するとか、とにかくフレーム内で表現したいようなことをやるってもんじゃない?
26Now_loading...774KB:2005/12/19(月) 00:43:38 ID:qDlhpy9g
>>25
なるほど。インラインフレームを使わないでHTMLテキスト表示をすればできそうですね。
外部txtファイルを読み込む方法はわかるのですが、htmlも同様のことができるんですか?
27Now_loading...774KB:2005/12/19(月) 00:44:55 ID:9icalPB0
ていうかFlashとHTMLをごっちゃにするのはやめてくれ
28Now_loading...774KB:2005/12/19(月) 00:52:52 ID:qDlhpy9g
>>27
すいません。Flashオンリーで作れるように工夫してみます。ありがとうございました。
29Now_loading...774KB:2005/12/19(月) 01:03:44 ID:m59ktubX
ループ再生のOn/Offを変更するメソッドがありましたら、教えて下さい。
30Now_loading...774KB:2005/12/19(月) 07:35:52 ID:P2ZNpZL1
stop();
31Now_loading...774KB:2005/12/19(月) 11:55:17 ID:tR4mIf1T
質問なのですが、
キャプチャしたパケットデータをリアルタイムでswfに書き出すことってできますか?
32Now_loading...774KB:2005/12/19(月) 13:26:22 ID:CvFsbmD5
dekiruyo
でも質問するような人では作れないよ
33Now_loading...774KB:2005/12/19(月) 17:43:28 ID:XzAMfUoQ
ただの煽りは失せろ
34Now_loading...774KB:2005/12/19(月) 23:05:15 ID:PMukoW+9
>>31
なんでまたそんな事を
35Now_loading...774KB:2005/12/19(月) 23:57:09 ID:F1ynLjjd
--------------
EaseTo.as
--------------
import mx.utils.Delegate;
class EaseTo {
var mc:MovieClip;
var fps:Number = 12;
var px:Number;
var py:Number;
var easeTimer:Number;
function EaseTo(targetMC:MovieClip, n:Number) {
if (n != undefined) {
fps = n;
}
}
function startEase(x:Number, y:Number):Void {
px = x;
py = y;
//clearInterval(easeTimer);
//easeTimer = setInterval(this, "nextPoint", 1000 / fps);
//↓こうしてみた
mc.onEnterFrame = Delegate.create(this, nextPoint)
}
36Now_loading...774KB:2005/12/19(月) 23:58:06 ID:F1ynLjjd
↑のつづき
function nextPoint():Void {
//水平垂直のどちらかの距離が0.3より大きいかどうか
if ((Math.abs(px - mc._x) > 0.3) || (Math.abs(py - mc._y) > 0.3)) {
//距離を1/3だけ詰める
mc._x += (px - mc._x) / 3;
mc._y += (py - mc._y) / 3;
} else {
//インターバルの消去
clearInterval(easeTimer);
//正確な最終位置に移動
mc._x = px;
mc._y = py;
}
}
}
37Now_loading...774KB:2005/12/19(月) 23:59:59 ID:F1ynLjjd
-----------------
EaseTo.fla
-----------------
ballというmcを_rootのステージに配置、
1フレーム目に、

var myBall:EaseTo = new EaseTo(ball);
_root.onMouseDown = function() {
myBall.startEase(_xmouse, _ymouse);
};

と記述。一応ballはクリックした所に移動します。setIntervalでnextPointメソッドを動作させるのがなんか気持ち悪くて、
いろいろ調べてDelegateクラスというものを使ってみたんですが、使い方としてはこれで正しいのでしょうか?
もっと良い方法などありましたらアドバイス下さい。
宜しくお願い致します。連投&長文すまそごめんマルチっぽいけど
38Now_loading...774KB:2005/12/20(火) 00:57:04 ID:ehRUtoBX
>>34
好奇心です
39Now_loading...774KB:2005/12/20(火) 11:08:36 ID:v7X/8+ir
>>37
まず、どういう事をやりたいか、を書かないと誰も答えられないぞ。
しかもマルチっぽいって。。。。>>1
40Now_loading...774KB:2005/12/21(水) 15:57:49 ID:1cGHtbsc
すいません、質問させてください。

Flash8のActionScriptで外部からJPG画像を数十枚読み込むFlashを作り、HTMLの中に埋め込んだのですが、
WindowsのIE6でページ読み込むと、そのページのFlashでないgifなどの画像が多数読み込めなくなります。
リンクも間違ってないので、右クリックで画像を表示を選ぶと表示されます。
FirefoxやOperaなど他のブラウザでは正常に読み込めました。
試しにFlashでの外部からの画像読み込みをなくすと正常に読み込めます。

どうやったら画像をすべて正常に表示させることが出来るでしょうか?
よろしくお願いいたします。
41Now_loading...774KB:2005/12/21(水) 16:13:14 ID:Tz7UsIun
>>40
FirefoxやOperaなど他のブラウザを使う
42Now_loading...774KB:2005/12/21(水) 16:18:03 ID:FCiYNohX
>>40
キャッシュクリアしてみるといいかも。
あと、多数のというのは良くないよ。5枚で多数かもしれないし、
サムネイル100枚かもしれないしね。
4340:2005/12/21(水) 16:49:25 ID:1cGHtbsc
レスありがとうございます。
キャッシュのクリアも何回も試してみましたが無理でした。
読み込める画像の数は毎回変わりますが、GIFが10枚も読み込めていません。
フォーマット変えることも試して見ましたが、画像の容量なども関係なさそうです。

あと、重要な事を書き忘れていたのですが、
同じフラッシュを使ったページをローカルで開いた場合も何の問題もなく表示されます。
インターネット上にアップロードした場合にのみ不具合が発生します。
転送モードも問題ないと思います。
44Now_loading...774KB:2005/12/21(水) 17:36:13 ID:ZSTkq2Je
なんだろうね。画像は全部同じドメイン上にあるの?
45Now_loading...774KB:2005/12/21(水) 18:37:52 ID:rbXL0+tv
症状が再現する小さなプロジェクトを作って、upしないと分からん。
具体的なscriptさえ書いてないし。
46課題でテンパリ:2005/12/21(水) 22:56:48 ID:iztakU39
ボタンの中に下記のようなスクリプトを書いて、動作させていたのですが、
on(press){
_root.flg = 1;
gotoAndStop("main");
}
マウスクリックの変わりにキーボードのaを押した場合にしたくて、
on (rollOver) {
if (Key.isDown(65)) {
_root.flg = 1;
gotoAndStop("main");
}
}
と書いて、スクリプトエラーにならなかったのですが、上手く動きません。
わかる方教えていただけませんか?
47Now_loading...774KB:2005/12/21(水) 23:12:48 ID:mfQnTiRs
on (rollOver) { とあるのでマウス乗っけながらa押したらいけるはずです
キーボードで操作したいならふつうは シンボルをムービークリップにして
onClipEvent(enterframe){
if(Key.isDown(65)){
_root.flg=1;
gotoAndStop("main");
}
}
と書けばいいと思います けど僕は初心者なんで間違ってるかもしれません




48Now_loading...774KB:2005/12/21(水) 23:22:31 ID:LGDUOFg5
>>45
それだとロールオーバしたときにaが押されているかを判定している

MCでキーリスナー使う事を進める
49Now_loading...774KB:2005/12/21(水) 23:25:01 ID:LGDUOFg5
X >>45
O >>46
50Now_loading...774KB:2005/12/22(木) 01:49:26 ID:y7Vg6++g
ASでわからないことが、あるので質問します。
マリオのような、アクションゲームを作ろうしているのですが、
キャラクタと地面の当たり判定がよくわからないのです。

使ってるのはソフトはparaflaです。
知っている方、入ましたら、よろしくお願いします。
51Now_loading...774KB:2005/12/22(木) 01:52:46 ID:3XKqhrrY
質問です。Macromediaの「Flash / JavaScript Integration Kit」を使ってJavaScriptの連携を試みているのですがさっぱり動作しません。
詳しい方おりましたらどなたかご教授ください、お願いします。
1.FlashのダイナミックテキストにJavaScriptの関数を呼び出して"1"を表示
2.次にHTMLからのクリックでFlashの関数を呼び出してダイナミックテキストに"2"を表示
[HTML部分]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>hoge</title><meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<script type="text/javascript" src="JavaScriptFlashGateway.js">< /script>
<script type="text/javascript">
var uid = new Date().getTime();
var flashProxy = new FlashProxy(uid, 'JavaScriptFlashGateway.swf');
function javaHoge(){ var a = 1;return a; }
</script></head>
<body><script type="text/javascript">
var tag = new FlashTag('hoge.swf', 100, 100);
tag.setFlashvars('lcId='+uid);
tag.write(document);
</script><a href="javascript:flashProxy.call('actionHoge', 2);">submit</a></body></html>

[Flash部分]
import com.macromedia.javascript.JavaScriptProxy;
var proxy:JavaScriptProxy = new JavaScriptProxy(_root.lcId, this);
this.createTextField("textBox", 1, 0, 0, 100, 20); textBox.type = "dynamic"; textBox.text = proxy.call("javaHoge");
function actionHoge(a:Number) {textBox.text = a; }
52Now_loading...774KB:2005/12/22(木) 11:39:23 ID:iaKLIsR2
>>50
キャラクタと地面の判定だけならy座標の比較だけで出来る
5340:2005/12/22(木) 13:42:44 ID:AEuypLx9
自己解決しました。
原因はFlashからjavaScriptを実行してHTMLを書き換えていたせいだと思います。
HTMLの読み込み最中にそれが行われたために、正常にHTMLが読み込めなかったのかもしれません。
Flashで読み込む画像が多いせいだと思っていたのですが、見当違いだったようです。
javaScriptで最初にHTMLをすべて読み込んだあとにFlashを読み込むことで正常に表示されました。
ありがとうございました。
54Now_loading...774KB:2005/12/22(木) 16:55:01 ID:Dj1GOhh5
教えてください。
swfをブラウザいっぱいに表示する設定( width="100%" height="100%")
で、伸縮は「すべて表示」となっている際に、実際に表示された倍率を
取得することは可能でしょうか。
55Now_loading...774KB:2005/12/22(木) 20:45:42 ID:Uaw2P7A1
56Now_loading...774KB:2005/12/22(木) 20:59:06 ID:APmWLspU
>>52
レスありがとうございます。
調べて、がんばってみたいと思います。
57Now_loading...774KB:2005/12/24(土) 21:35:11 ID:Ejdc5z/x
JavaScript側で拾った方が早い。
58Now_loading...774KB:2005/12/25(日) 01:44:39 ID:JtIhnSB+
._xscaleと._yscaleでMCの大きさをいじってから
拡大縮小後のMCのwidthとheightの取得って出来ませんかね?
試しに50%に縮小したMCのwidthとheightをtraceしてみたけど
元の大きさが出てきちゃった。
59Now_loading...774KB:2005/12/25(日) 02:08:55 ID:IQu6GSqd
>>58
だめなら計算すればいいんじゃない?

//scaleNumは倍率(単位%
MC._xscale = scaleNum;
MC._yscale = scaleNum;
widthNum = (MC._width/100)*scaleNum;
heightNum = (MC._height/100)*scaleNum;
trace(xnum+","+ynum);
6059:2005/12/25(日) 02:11:17 ID:IQu6GSqd
trace(widthNum+","+heightNum);
だった
61Now_loading...774KB:2005/12/25(日) 02:38:29 ID:JtIhnSB+
>59
thx!
そうか計算か、見落としてた。
その方法で算出出来ました。

が、よくよく最初のソースを見たら
_width、_heightと_x、_yを間違えてたorz そりゃ値変わらねぇはずだよ…
ともあれ答えてくれてありがとうございました。そしてスマソ
62Now_loading...774KB:2005/12/25(日) 14:44:50 ID:Y+aVHtic
flash8を使っています
質問させてください

以前のフラッシュのバージョンでも 雪を降らせたり
雨を降らせたりスクリプトでやってたんですけど
今回ビットマップキャッシュという機能が追加されたみたいなので
雪を積もらせたり出来るのではないかと重い色々検索してみましたが
それらしきサンプルは見つけることが出来ませんでした

雪を降らせて 地面に雪が積もる 積もる量にかかわらず
処理が重くならないようにというのは flash8でも無理でしょうか?
63Now_loading...774KB:2005/12/25(日) 17:24:18 ID:krOr7FJJ
>>62
まず雪を積もらせるのとビットマップキャッシュはほとんど無関係。
何故なら積もってる雪は、ほとんど動かないから。

その程度なら前のバージョンでも十分作ることは可能

むしろ雪が降る方に関係する。
しかし雪の形が複雑でかつ降らす数が多い場合とかでないと効果は発揮しない

ビットマップキャッシュの機能自体を調べなおすことをおすすめする
64Now_loading...774KB:2005/12/25(日) 17:39:49 ID:CcZHr9om
65Now_loading...774KB:2005/12/25(日) 20:17:56 ID:QKjS/Xy9
影響しまくりだろ。お前が調べなおせよマジで。
6662:2005/12/25(日) 21:06:22 ID:SwrESjXN
>>63

なるほど僕はビットマップキャッシュの機能をはきちがえてるかもしれません

>>64

このサイトは僕も見つけたことがあるんですけど関係ないサイトだと
思ってスルーしていました
これが関係あるんですかね
ひょっとしたらこれも役立ちますかね?
ttp://www.rgblaster.de/ff/f8toys3.html
67Now_loading...774KB:2005/12/25(日) 22:22:45 ID:CcZHr9om
cacheAsBitmapに限定して言ってたのか。てかサンプル山ほどあるだろ。
てっきりビットマップクラスとか使ったパーティクル表現のサンプル調べてんのかと思タヨ
68Now_loading...774KB:2005/12/25(日) 23:27:40 ID:ISm2wN6d
製作に行き詰っていろいろなサイトを調べたのですが
どこを調べても解決法が見つかりません
どうかご教授おねがいします

〜〜〜
matrixObj = {matrixType:"box",x:0,y:600,w:700,h:0,r:Math.PI};
m_color = op_txt.firstChild.attributes.fillbgcolor;
colors = [ m_color , m_color ];
_root.fillgroup.beginGradientFill("linear" ,colors, [100,0] , [0.2*5,0.9*150] , matrixObj);
〜〜〜

四角にグラデーションを書くプログラムを作ったのですが
色を指定(m_color)するのに外部XMLの値を使っているのですが

*外部XML*
fillbgcolor="0x00ff00"

外部XMLで指定しても黒色しか表示されません

colors = [ m_color , m_color ]; の部分を
colors = [ 0x00ff00 , 0xff0000 ]; にするとうまくいくようなのですが・・・

真下のラインでtrace( m_color );トレースしても0x00ff00と出力されます
69Now_loading...774KB:2005/12/25(日) 23:59:20 ID:en3Zplt6
問題を切り分けないと。
colors = [0xFF0000, 0x0000FF];
で動かない? XMLを読み込む前に描画してない?
70Now_loading...774KB:2005/12/26(月) 00:12:02 ID:zmgQZvfq
>>69
colors = [0xFF0000, 0x0000FF];
これで普通に動くみたいです
XMLに関しては

m_xml = new XML();
m_xml.ignoreWhite = true;
m_xml.load(page_xml);
m_xml.onLoad = function(ok){
if(ok == true){

のIF文の中にさっきのコードを書いているので大丈夫なはずです
半角全角も一応しらべてみたのですが何の異常もないみたいです。。。
71Now_loading...774KB:2005/12/26(月) 00:15:39 ID:dtzJ3z6w
>>70
trace("0x00ff00"==m_color)
でtrueになる?
72Now_loading...774KB:2005/12/26(月) 00:24:45 ID:zmgQZvfq
コード
〜〜〜
_root.fillgroup.lineTo(0,0);
_root.fillgroup.endFill();
_root.fillgroup.swapDepths(_root.name_obj);
}
trace(m_color);
trace("0x00ff00"==m_color);
}
〜〜〜

出力
0x00ff00
true

なるみたいです。。。
73Now_loading...774KB:2005/12/26(月) 00:46:46 ID:cdVyBbQJ
ストリングに変換してるか。
m_color = m_color.toString()
74Now_loading...774KB:2005/12/26(月) 00:49:01 ID:cdVyBbQJ
colors = [String(m_color), String(m_color)];
これのが分かりやすいか。
75Now_loading...774KB:2005/12/26(月) 00:52:53 ID:dtzJ3z6w
>>72
あ、わかった。数値だ。
m_color = Number(op_txt.firstChild.attributes.fillbgcolor);
76Now_loading...774KB:2005/12/26(月) 00:55:36 ID:zmgQZvfq
m_color = op_txt.firstChild.attributes.fillbgcolor.toString;

colors = [String(m_color), String(m_color)];

m_color = new Number();
m_color = op_txt.firstChild.attributes.fillbgcolor;

m_color = new Number(op_txt.firstChild.attributes.fillbgcolor);

どれをやってみても黒しか出力されないみたいです。。。orz
77Now_loading...774KB:2005/12/26(月) 01:01:41 ID:cdVyBbQJ
俺は動いてるけど。簡単なfla作れる?
78Now_loading...774KB:2005/12/26(月) 01:03:25 ID:cdVyBbQJ
import com.xfactorstudio.xml.xpath.*;
myDoc = new XML();
myDoc.onLoad = function()
{
m_color = XPath.selectNodes(this, "/colors/color/@fillbgcolor");
a(m_color);
};
myDoc.load("a.xml");
function a(m_color)
{
this.createEmptyMovieClip("gradient_mc", this.getNextHighestDepth());
with (gradient_mc) {
colors = [String(m_color), String(m_color)];
fillType = "linear";
alphas = [100, 0];
ratios = [0.2 * 5, 0.9 * 150];
matrixObj = {matrixType:"box", x:0, y:100, w:200, h:200, r:Math.PI};
beginGradientFill(fillType, colors, alphas, ratios, matrixObj);
moveTo(100, 100);
lineTo(100, 300);
lineTo(300, 300);
lineTo(300, 100);
lineTo(100, 100);
endFill();
}
}
79Now_loading...774KB:2005/12/26(月) 01:04:32 ID:cdVyBbQJ
↑一応貼っとく

■XPath
http://www.xfactorstudio.com/ActionScript/AS2/XPath/

■a.xml
<colors>
<color fillbgcolor="0x00ff00"/>
</colors>
80Now_loading...774KB:2005/12/26(月) 01:18:36 ID:dtzJ3z6w
>>76
Flashの場合Number型で宣言しても文字列入っちゃうよ。
trace(typeof (m_color));
で見てStringが返ってきてない?。

>>75と同じ書き方で。 Number(〜〜.fillbgcolor)
newはいらない。
81Now_loading...774KB:2005/12/26(月) 01:36:47 ID:zmgQZvfq
>>78
XPathという指定の仕方があるのですか!
試してみたのですがうまくいかなかったです。。

>>80
どうやらStringで返されてたようです
Numberで囲んだら自分が画いたように表示されました!

自分の勉強不足で時間を食わせてしまいすいませんでした
手伝って頂いて本当にありがとうございました

色々と教えて頂いたので
次はXPathの勉強をしようと思います
82Now_loading...774KB:2005/12/26(月) 05:19:09 ID:ZRsbd1no
64のflashが真っ白の背景しか映らないんだが・・・
83Now_loading...774KB:2005/12/26(月) 10:57:26 ID:UZ/m9RSf
>>82

プレイヤーの8を入れてないのでは?
84Now_loading...774KB:2005/12/26(月) 14:10:57 ID:x+CWw1w5
簡易ペイントを作成しています。黒丸を順次duplicateするタイプの奴です。
質問ですが、シーン1で複製した黒丸の状態をシーン2に引き継いだり出来ないでしょうか?
出来なければ複製座標を配列に保存して再複製するしかないかと考えています。

OS9 FlashMX プレイヤー5書き出しです。

宜しくお願いします。
85Now_loading...774KB:2005/12/26(月) 15:36:08 ID:0kAWk1Rt
>>84
普通にできるよ&シーン使わない方がいいよ&スレ違いだよ
86Now_loading...774KB:2005/12/26(月) 15:37:01 ID:N8zDMsU9
>>84
シーンは使用禁止だと言ってるだろが
8784:2005/12/26(月) 17:13:15 ID:x+CWw1w5
うわあすいませんすいません。シーンを使わないってのが最近の定番なのでしょうか?!
全然知りませんでした。何故だか出来ないんで、配列使うしか思いつきません。
スレ違いって事ですが、スクリプト関係はここかなぁと思ったんですが…(´Д`;)
88Now_loading...774KB:2005/12/26(月) 17:24:11 ID:dE+ADWcZ
>シーンを使わないってのが最近の定番なのでしょうか?!

最近というか、Flash5からだな。
89Now_loading...774KB:2005/12/26(月) 17:36:33 ID:Zg6lw+fY
ご質問です。
メニューボタンにスクロール時に音を付けたのですが
このボタンの上を速くオーバーすると音が大きくなってしまいます。
これの対処法ってありますでしょうか?
9089:2005/12/26(月) 17:56:05 ID:Zg6lw+fY
質問するスレを間違えました。すいませんです。
91Now_loading...774KB:2005/12/27(火) 09:30:34 ID:W3z3Aqly
class hogehoge extends MovieClip {
 var my_lv: LoadVars;
 …
 function piyopiyo() {
  …
  var str = "my_lv.variable1";   // ※
  var foo = eval(str);   // ※
  trace(foo)
  …
 }
 …
}

my_lv でロードを行った後、
hogehoge.piyopiyo() を実行すると、何故か undefined が出力されてしまいます。
variable1 はロードする変数で、my_lv のロードは正常に終了しているはずです。
その証拠に、※の部分を、
 var foo = eval("my_lv.variable1");
としても、
 var foo = my_lv.variable1;
としても、正常に出力されます。(要するに、undefined とは表示されない)
何故か上記のソースのときだけ、foo に正常な値が代入されないんです。原因を教えてください。
92Now_loading...774KB:2005/12/27(火) 09:47:23 ID:V46A8gwQ
my_lv.variable1という文字列をevalしたってそりゃ、そのまま出てくるだろ。
9391:2005/12/27(火) 10:23:19 ID:W3z3Aqly
いえ、

 var foo = eval("my_lv.variable1");
としたり、
 var foo = my_lv.variable1;
としたりした場合は、中身がそのまま返ってくるのですが、
 var str = "my_lv.variable1";
 var foo = eval(str);
とすると、何故か undefined しか返ってこないです。
94Now_loading...774KB:2005/12/27(火) 10:32:52 ID:V46A8gwQ
var str = "my_lv.variable1";
var foo = eval("str");
trace(foo);
9591:2005/12/27(火) 10:38:44 ID:W3z3Aqly
>>93
これでは foo に str の中身が格納されてしまいます。

私が言いたかったのは、
 var str = "my_lv.variable1";
 var foo = eval(str);

 var foo = eval("my_lv.variable1");
は等価であるはずなのに、何故か違った動作をするということですよ。
96Now_loading...774KB:2005/12/27(火) 10:43:20 ID:V46A8gwQ
>>95
evalの引数がstrであるか"str"であるかの違いがわかる?
9791:2005/12/27(火) 10:43:33 ID:W3z3Aqly
訂正。
>>93>>94
9891:2005/12/27(火) 10:47:38 ID:W3z3Aqly
>>96
わかりません。どのようなものでしょうか?
99Now_loading...774KB:2005/12/27(火) 10:52:38 ID:V46A8gwQ
解らないなら調べようね。解らなくて使っててもプログラムはちゃんと動かないよ。

http://livedocs.macromedia.com/flash/8_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001726.html
100Now_loading...774KB:2005/12/27(火) 11:10:59 ID:aSYq7O1u
>>99
横レスだが、正直その記述のなにが、>>95の違いをうむのかさっぱりわからないな。


配列アクセス演算子の場合、

 var str = "my_lv.variable1";
 var foo = this[str];

 var foo = this["my_lv.variable1"];

は等価な動きをしたはずだろ? なんでevalだと等価じゃないねん。
101Now_loading...774KB:2005/12/27(火) 11:14:27 ID:dK0r+5lZ
実験
var my_lv = new LoadVars;
my_lv.variable1 = 1;
var str = "my_lv.variable1";
trace(eval(str));
trace(eval("my_lv.variable1"));
trace(my_lv.variable1);
結果
1
1
1
102Now_loading...774KB:2005/12/27(火) 11:29:08 ID:Emv33iyi
evel()なんて使わなけりゃいいじゃんか
そんな機能のメソッドがない言語出身なので気にしたこともないよ
103Now_loading...774KB:2005/12/27(火) 11:33:31 ID:aSYq7O1u
>>101を受けて、さらに実験。

var my_lv = new LoadVars;
my_lv.variable1 = 2;
var str = "my_lv.variable1";
trace(eval(str));
trace(eval("my_lv.variable1"));
trace(my_lv.variable1);

var foo = eval(str);
trace(foo);
foo = eval("my_lv.variable1");
trace(foo);
foo = my_lv.variable1;
trace(foo);

結果
2
2
2
2
2
2

結論1.>>95の使い方で、やっぱりeval()は等価な動きをしてくれる。
結論2.>>91がやってるのはスペルミスかなにか。
結論3.ID:V46A8gwQは見当違いなレスばかりしていた。
104Now_loading...774KB:2005/12/27(火) 11:39:41 ID:V46A8gwQ
うーん、なんか、変な風に取られてるけど、漏れの言いたかったのは
以下の違いはどうなの?ってことなんだ。見当違いだったらスマン。

var str = "my_lv.variable1";
var foo = eval("str");
trace(foo);
var foo = eval(str);
trace(foo);
10591:2005/12/27(火) 12:36:59 ID:W3z3Aqly
>>99
事前調査をせずに質問するほどバカではありません。
調べても記述されている内容がわからなかったから、「わからない」と申し上げたのですが。説明不足ですみません m(-_-)m
リンク先にはヘルプと同じ内容が書かれていました。

>>100
示されたソースで試したところ、こちらは等価な動作をしました。
こちらで代用できないか検討してみます。

>>101 >>103
その処理をどこに記述したか教えていただけるでしょうか?
なお私は、恐らく、問題はクラス内の関数内に処理を記述したことに起因しているのではないかと踏んでいます。

>>102
eval の使用はできるだけ避けていたのですが、今回は使わざるを得ない状況でした。
今は、>>100 に示していただいた配列アクセス演算子を使った方法で代用できないかと検討中です。
ちなみに私は C 出身です。

>>104
出力結果(my_lv.variable1 = 123 として):
my_lv.variable1
undefined

意図していた結果(123)とは違うようです。
106101:2005/12/27(火) 12:41:47 ID:dK0r+5lZ
>>105
単にフレームにそれだけ書いて実行しただけです。
なので、クラス内での書き方ではなく、
var my_lv = new LoadVars;
という宣言になっています。
10791:2005/12/27(火) 13:11:41 ID:W3z3Aqly
>>106
わかりました。
フレーム内に、示されたとおりのソースコードを記述したところ、>>101 と同じ実行結果を得ました。
やはり、原因はソースそのものではなく、書いた場所にあるのではないかと思います。

念のため、問題のソースコードを載せたサンプルを上げておきます。
私の環境が悪いということも考えられますので、ご自身の目で確かめてください。
 http://simfan.cn1.jp/other/flash/bug_eval.lzh
圧縮ファイル内には、次のサンプルがあります。

- sample_a.fla
>>101 の実験ソースを、>>106 の通りフレーム内に記述したものです。

私の環境での実行結果:
1
1
1

- sample_b.fla , Hogehoge.as
>>101 の実験ソースを、今度は場所を変えて、クラス内の関数内に記述したものです。

私の環境での実行結果:
undefined
1
1

尚、私が使用しているのは、Flash MX Pro 2004 です。
108103:2005/12/27(火) 20:31:44 ID:O1q63UuZ
>>107
function piyopiyo() {
my_lv.variable1 = 2;
var a = "my_lv";
var b = "variable1";

trace(this.my_lv.variable1);
trace(this.my_lv["variable1"]);
trace(this.my_lv[b]);
trace(this["my_lv"]["variable1"]);
trace(this["my_lv"][b]);
trace(this[a]["variable1"]);
trace(this[a][b]);// -------------------注1
trace(my_lv.variable1);
trace(my_lv["variable1"]);
trace(my_lv[b]);

var str = "this.my_lv.variable1";
trace(eval(str));
//trace(eval("this.my_lv.variable1"));// ←このコメントを外すとスクリプトエラー
var tmp1 = "this.my_lv";
trace(eval(tmp1).variable1);
trace(eval(tmp1)["variable1"]);
trace(eval(tmp1)[b]);
var tmp2 = "this";
trace("--");
trace(eval(tmp2).my_lv.variable1);
trace("--");
trace(eval(tmp2)["my_lv"]["variable1"]);
trace(eval(tmp2)[a][b]);// -------------------注2
}
109103:2005/12/27(火) 20:34:59 ID:O1q63UuZ
>>108で書いたやつ、全部通った(出力がすべて2)。

thisをつければいい、という結論ですな。
で、注1や注2みたいな、多段階の変数にして取り扱うのが一番無難じゃないかなと。
eval()は、まあ特に必要ないかもね。
110Now_loading...774KB:2005/12/27(火) 20:36:45 ID:9kx0Jix4
2割くらいしか読んでないけど、
とりあえずスコープの勉強したらいいんじゃね
11182:2005/12/28(水) 05:30:25 ID:Y7Qd0qBM
>>83
あり。

ところで関数から抜け出す exit(); 見たいなのって
ASだとなに?
112Now_loading...774KB:2005/12/28(水) 05:59:09 ID:u83dWrQ1
>>111
多分だけど、「抜け出す」だからgoOut();ジャマイカ?
113Now_loading...774KB:2005/12/28(水) 10:49:26 ID:SLerd0q4
>>111
関数から抜けたいだけなら、returnを活用。
exit()みたいに、完全にPlayerまで落としてしまうような危険なものはない。
114Now_loading...774KB:2005/12/28(水) 12:58:33 ID:LZiC5DtZ
getURL("javascript:window.close()");
これでウィンドウ閉じられるよ
もちろん警告出るけど
11591:2005/12/28(水) 13:10:45 ID:bRITFHxf
>>108 >>109
ありがとうございました。
原因そのものは依然として不明ですが、とりあえず、配列アクセス演算子を使用した手法を用いることで、回避をしたいと思います。
116Now_loading...774KB:2005/12/28(水) 14:32:31 ID:3Vx6d0sh
>>115
evalは、なんか知らないけど上手く動かない時があるよ。
配列アクセスが確実。
117Now_loading...774KB:2005/12/28(水) 16:40:14 ID:dlvmd6kd
おー、なんか豆知識的おばあちゃんなTipsだな。
俺横からだけど検証してくれた人感謝する。
118Now_loading...774KB:2005/12/28(水) 18:12:20 ID:7F4Icg3I

ActionScript初心者です。
次のような配列を作りたいのですが、宣言ってどうやるのでしょう?
また、もっとよいデータの格納方法があったら助言下さい。

top[0].menu[0].title = "top0_menu0";
top[0].menu[0].submenu[0].title ="top0_menu0_submenu0_title";
top[0].menu[0].submenu[0].url ="top0_menu0_submenu0_url_http://";
top[0].menu[0].submenu[1].title ="top0_menu0_submenu1_title";
top[0].menu[0].submenu[1].url ="top0_menu0_submenu1_url_http://";

top[0].menu[1].title = "top0_menu1_title";
top[0].menu[1].url = "top0_menu1_url_http://";

top[0].menu[2].submenu[0].title = "top0_menu2_submenu0_title";
top[0].menu[2].submenu[0].url = "top0_menu2_submenu0_url_http://";
top[0].menu[2].submenu[1].title = "top0_menu2_submenu1_title";
top[0].menu[2].submenu[1].url = "top0_menu2_submenu1_url_http://";


よろしくお願いします。

119Now_loading...774KB:2005/12/28(水) 18:44:14 ID:XO1zpFN1
マニュアル読んでください。
ここで聞くより、正しいことが分かるはずです。。
120Now_loading...774KB:2005/12/28(水) 20:26:39 ID:mYMpeH9T
>>118
オブジェクト指向かなあ
121Now_loading...774KB:2005/12/28(水) 22:00:45 ID:3Vx6d0sh
>>118
人が作ったプロジェクトを修正する事になって、ソースがこれだったら泣くな。
122Now_loading...774KB:2005/12/28(水) 22:28:36 ID:tGlisCRo
>>118
これはまた・・・。119に激しく同意だ、何か本を読んだほうがいい
配列扱う前に基本からじっくり学ぶ事を進める
123Now_loading...774KB:2005/12/29(木) 00:56:00 ID:iLDTtVXY
118です。
ソースは多層に成ってる事を表現したかったので、このまま使うわけではないんです。
3層や4層の入れ子になっているデータって、どのように取り扱うといいんでしょう。
2層まではArrayとObjectつかったものが、本に載ってたんですがそれ以上が見つからなくて。
なんかいい本ありませんか?
124Now_loading...774KB:2005/12/29(木) 00:58:37 ID:ozdQGYKf
>>118
多次元配列とは違うの?
125Now_loading...774KB:2005/12/29(木) 01:15:07 ID:gaLtjZGW
ソフト=FlashMX2004,OS=Win98SE

FlashMX2004で扱えるファイル形式について質問です。
テキスト形式の元ファイル(複数個のTxt:data1.txt,data2.txt,・・・,datax.txt)
を1つにまとめた後、この名前を「txtName」などとして、ボタンアクション
on (press) {
 System.useCodepage = true;
 this.loadVariables(txtName+".txt");
}

で読み込みたく思っています。しかし、元の data1.txt,data2.txt,・・・ を
1つにすると50kBくらいになり、1つのテキスファイルに収まりません(上限が35kB程度)。

仕方なくrtfファイルに纏めようとしましたが、今度はFlashMX2004がrtf形式に
対応してません。
絵柄なしで文字のみのファイルですが、50kB以上でも読み込めるファイル形式は
ありますか? 分割して読み込ませるのは、なるべく避けたいです。
126Now_loading...774KB:2005/12/29(木) 01:27:14 ID:iLDTtVXY
118です。
中身が決まっていない、多次元配列の宣言ってどうやるんでしょう。
ヘルプには
var ticTacToe:Array = [[1,2,3],[4,5,6],[7,8,9]];
というようなのがあるんですが、後から何層になっているか解らない外部データを読み込みたい場合はどうするんでしょう。
127Now_loading...774KB:2005/12/29(木) 01:59:53 ID:ByWEXBKN
ボタンをドラッグできるようにしたくて

on (press) {
this.startDrag ();
}
on (release, releaseOutside) {
this.stopDrag ();
}

と書いたら、背景ごと動いてしまいました。
thisじゃなくてボタンの名前を指定してみたりもしたんですがダメでした。
どうしたらボタンだけ動かせますか?
とんでもなく低レベルなこと聞いて申し訳ありません。
FlashMX・WinME
128Now_loading...774KB:2005/12/29(木) 02:06:48 ID:Wf2f4OH/
>>125
テキストファイルの上限が35kb?そんな訳あるか。
とりあえずloadVariablesじゃなくLoadVars使え。

>>126
オブジェクトを走査して値を取得する
再帰処理の関数作ってforかfor..inでチェックすりゃいい。

>>127
ボタンのままじゃ動かせない。
ボタンをムービークリップにして名前を付ける。
仮にbtn_mcという名前にしたなら、
btn_mc.onPress = function(){ this.startDrag(); }
btn_mc.onRelease = function(){ this.stopDrag(); }
でOK。
129Now_loading...774KB:2005/12/29(木) 02:14:03 ID:ByWEXBKN
>>128
ありがとうございます!ボタンは動かせないんですか・・・。

ちなみに
on (press) { this.startDrag (); }
on (release, releaseOutside) { this.stopDrag (); }
これはどんな時に使うものなのですか?
ムービークリップに書いたら、
マウスイベントはボタンインスタンスでのみ使用できますと出てしまいました。

http://www.geocities.jp/myflashsouko/flash/index4.html#carsol04
ここを見てやってみたのですが・・・
130Now_loading...774KB:2005/12/29(木) 08:31:34 ID:NBrX9drA
>>129
それは古い書き方だな。Flash5の時のだと思う。
もちろんサポートされてるけど、ASも進化してるし、
できたら、128みたいな、フレームワークで最新の書き方を覚えた方がいいよ。
131Now_loading...774KB:2005/12/29(木) 09:34:41 ID:j58wRsQC
>>128
118です。
返答ありがとうございます。

再起処理をした後のデータを多次元に代入したいのですが、その宣言方法がわからないんです。
ActionScriptの多次元配列は使わないほうがいいということでしょうか?
やりたいことは再起処理でムービークリップを子、孫、ひ孫、と複製する方法で解決したのですが、
多次元配列に関することは分からなかったので、ひきつづき質問いたしました。
なにぶん初心者なんで分からない事だらけです。
132Now_loading...774KB:2005/12/29(木) 09:48:02 ID:NBrX9drA
>>131
配列宣言は最初のだけでいいっしょ。あとは、次元増やすごとにnewするだけで。
var aa:Array = new Array();
for (var i = 0; i<10; i++) {
aa[i] = new Array();
for (var j = 0; j<10; j++) {
aa[i][j] = i*100+j;
}
}
trace(aa);
133Now_loading...774KB:2005/12/29(木) 09:51:18 ID:J/+S++i3
>>131
配列の中に配列を作るのが多次元配列。
var array:Array = new Array();
array[0] = new Array();
array[0][0] = "test";
trace("array[0][0] = " + array[0][0]);

>ActionScriptの多次元配列は使わないほうがいいということでしょうか?
ActionScriptに限らず多次元配列を使用するのは
表形式のデータを格納する2次元配列に限定した方がいいよ。(ソースの可読性を上げるため)

3次元4次元になりそうだったら、他の設計を考える。
134Now_loading...774KB:2005/12/29(木) 11:12:59 ID:j58wRsQC
>>132
>>133
ご返答ありがとうございます。ソースまで付けて頂いて感謝いたします。
理解できました。次元を増やそうとする時に宣言し直そうとしていたので、
エラーが出ていたようです。教えて頂いたようにしたら出来ました。

3次元以上になりそうな場合は、設計を考え直したほうがいいんですね。
再考してみます。

重ね重ね丁寧なご返答ありがとうございました。
135125:2005/12/29(木) 14:02:41 ID:AUIJ+vsg
>>128 テキストファイルの上限が35kb?そんな訳あるか。
>>128 とりあえずloadVariablesじゃなくLoadVars使え。

有難うございます。
OSのせいか、30〜35kB位になると必ず「メモリーの上限〜」というメッセージが
現れ、書き込めなくなるためです。LoadVarsを使ってみます。
136Now_loading...774KB:2005/12/29(木) 14:49:21 ID:Wf2f4OH/
>>135
テキストエディタは何使ってる?
メモ帳使ってるならそれ以外でやってみ。
後、拡張子をtxt以外に変えてみるとか。

var dat = new LoadVars()
dat.load("ファイル名")
dat.onLoad = function(s){
if(s){
trace(dat)
}
}

これで読めるから。
137Now_loading...774KB:2005/12/29(木) 16:23:08 ID:NJQyUx5j
txtをまとめる理由ってあるのかな?DLのため?
138Now_loading...774KB:2005/12/29(木) 17:17:25 ID:b3My24KG
すばやく答えてくださいね。






           童貞ですか?



139Now_loading...774KB:2005/12/29(木) 18:04:45 ID:VKdHKNZW
いえ
140Now_loading...774KB:2005/12/29(木) 18:43:22 ID:EJ2gSVfW
素人は・・・
141Now_loading...774KB:2005/12/29(木) 20:29:29 ID:t3yZXdi2
リスナーについて質問です。
リスナーを学んでいて思った事なのですが
keyon.onKeyDown = function(){
if(Z){
Z処理
}
if(X){
X処理
}
if(Y){
Y処理
}
//Z:Key.getCode==90の省略
}
このような処理の場合、3つ同時に押すとfunction内部の処理が3ループしてる事が分かりました。
読んだサイトでは押した場合に処理するという点で処理が軽くなると記述がありましたが
例えばレーシングゲームのように加速ボタンを押しながら左右キーを押すなど
「何かのキー押しっぱなし+移動操作」のようなものだとfunctionを一度に何度も実行するので処理は増えると思いました
こういったものにはリスナーは向いてないのでしょうか?それともキー個別に指定できたりするのでしょうか?
142Now_loading...774KB:2005/12/29(木) 21:27:39 ID:gousqRHb
押しっぱなしを診たいならonEnterFrameでKey.isDown
143Now_loading...774KB:2005/12/29(木) 22:28:40 ID:t3yZXdi2
>>142
レスどうもです。
しかし要点は「同時押しする場合処理の重複がある点(>>141ですと3つ押しでif判定が9回)から
リスナーの一部をいじると対応できるのか」です。
できない場合はリスナーは向いてないという事になりますね。
リスナーのイベント等を検索して調べてるのですが見つからないため質問しました。
144Now_loading...774KB:2005/12/29(木) 23:53:57 ID:zGGbDclA
>>143
CPUがGHzの時代に数回のifのコストを気にしても意味がないと思いますよ
145Now_loading...774KB:2005/12/30(金) 00:49:51 ID:7u1dOAWx
>>144
確かに気にする程の事ではないですね。
処理を気にして・・・というより何かそういう部分が消したい性分みたいです。
調べても出てこないですし_root["func"+Key.getCode]()なんて謎のやり方思いついたので中身を工夫してみる事にします。
変な質問すいませんでした。

関係ないですが>>144氏のIDが「ギガバイトだから」と読めてちょっと和みました(書き込みはヘルツだけどw
146Now_loading...774KB:2005/12/30(金) 11:03:05 ID:CajElk+4
>>145
Windows自体、keydownでイベントを受け取った後、
押したキーで条件分岐してるし、普通そんなもんなんじゃないの。
147Now_loading...774KB:2005/12/30(金) 12:45:31 ID:DQA12USo
(■∋■)
┳⊂ )  あなたの一票が運命を変える!
[[[[|凵ノ⊃
◎U□◎ =3 キコキコキコ

http://vote2.ziyu.net/html/matsu.html
(■∋■)に投票してください
148Now_loading...774KB:2005/12/30(金) 13:24:03 ID:+r9VgjB6
>>147
見た“トキ”ねーよ・・・!?
149125&135:2005/12/30(金) 23:32:16 ID:ZCQB3Q5m
>>136
Thxです。Txtエディタはメモ帳です。


>>137 txtをまとめる理由ってあるのかな?DLのため?

最終目的は、全Txt中から目的の文字列を検索することです。しかし元Txtの作成上、
複数個のTxtが存在し、1つにまとめた後で検索しようと思ったためです。
。。。。あ〜、今気付きましたが、data1.txt,data2.txt,・・・,datax.txt
を1つに纏めなくても、配列やforで順番に検索すればいいのでは?(←自己レス)

とにかくレス有難うございます。
150Now_loading...774KB:2006/01/02(月) 16:46:27 ID:br8ljTDI
ムービークリップBodyがあって、その中にArm,Legがあります。
矢印右キーを押したら"WALK"へ飛んで再生、離すと"STAND"へ飛んで再生、といったように出来るようにしたくて
Arm,Legそれぞれに、

Action=new Object();
 Action.onKeyDown=function(){
  if((Key.getCode()==Key.RIGHT&&_parent.actionMode=="stand"){
   gotoAndPlay("WALK");
   _parent.actionMode="walk";
  }
 }
 Action.onKeyUp=function(){
  if((Key.isDown(Key.RIGHT))==false&&_parent.actionMode!="stand"){
   gotoAndPlay("STAND");
   _parent.actionMode="stand";
  }
 }
Key.addListener(Action);

という風に書いたら、イベントの先にある方しか反応してくれません。
なので、Key.addListener();を1度しか使わずに、かつArm,Legの両方が動くようにするには、どうしたら良いですか?
151Now_loading...774KB:2006/01/02(月) 18:06:49 ID:k9jp02Tz
>>150
リスナーだからそれぞれに書く必要はない。

Action = new Object();
Action.onKeyDown = function() {
if (Key.isDown(Key.RIGHT)) {
_root.gotoAndPlay("walk");
}
};
Action.onKeyUp = function() {
if (Key.getCode() == Key.RIGHT) {
_root.gotoAndPlay("stand");
}
};
Key.addListener(Action);
152Now_loading...774KB:2006/01/03(火) 03:37:33 ID:LlKK8i/a
RPGのマップ移動の処理を作ろうとしているのですが
たとえばBMPのAとBMPのBがあるとします
この二つを横並びに結合したBMPのCをスクリプト側で作成させることは
可能でしょうか

製作にはMXを使用
153Now_loading...774KB:2006/01/03(火) 12:56:31 ID:QQhuWo2a
ステージにcircle_mc1〜circle_mc50があり、
その50個全てのmcを_visible = false;したい場合、どのようなスクリプトを書けばよいでしょうか?
よろしくお願いします。
154Now_loading...774KB:2006/01/03(火) 13:03:53 ID:rtx8B/1g
for(var i=1;i<=50;i++) this["circle_mc"+i]._visible = false;
155Now_loading...774KB:2006/01/03(火) 13:15:12 ID:QQhuWo2a
>>154
this[]を使えばいいのですか。
勉強になりました。ありがとうございます。
156Now_loading...774KB:2006/01/03(火) 16:24:13 ID:AR0U2K1B
b90 = 0;
bars = new Object();
bars.onChanged = function() {
if (b90 == 1) {
bar._alpha = 100;
} else {
bar._alpha = 0;
}
trace(b90);
};
b90.addListener(bars);

b90はボタンを押した時1になり、離した時0に戻る変数です
b90は0や1に変化してるのですがb90が変化した時に
とあるMCのアルファ値を変えようとしたのですが何故か内部のtraceが実行されていませんでした
b90は変化してるのですが関数の中が実行されません・・・おかしな点を指摘お願いします
157Now_loading...774KB:2006/01/03(火) 16:53:15 ID:gWQwxXGQ
>>156
変数にaddListenerってあったっけ?
158Now_loading...774KB:2006/01/03(火) 17:25:52 ID:AR0U2K1B
>>157
http://www.geocities.jp/myflashsouko/flash/index5.html#listen-tsettei
こちらのサイト様kazuやkoumokuといったものをaddListenerしているので使えると思ったのですが
何か勘違いしてるのかも。。。
159Now_loading...774KB:2006/01/03(火) 17:57:20 ID:rtx8B/1g
ボタン押したときと離したときにMCのアルファ変えろよ
数字変数にaddListenerメソッドなんて無い
160Now_loading...774KB:2006/01/03(火) 18:09:37 ID:AR0U2K1B
>>159
>数字変数にaddListenerメソッドなんて無い
どうもです
よく読んでる内にテキストフィールドオブジェクトでやると気づきました

>ボタン押したときと離したときにMCのアルファ変えろよ
抜粋と簡略化したものを張ったので実際はボタンだけじゃ無理な内容なんです

回答どうもでした。
161Now_loading...774KB:2006/01/03(火) 19:38:28 ID:/Sy/4VhV
右クリックで開くコンテキストメニューに、独自のメニューを追加しようと考えています。
menuのonSelectで呼び出される関数内では、何フレーム目で右クリックされたのかを判断し、
それに応じてメニュー項目を変化させたいのですが、「いまタイムラインで何フレーム目か」
もしくは「いま何というラベル名の場面を処理しているか」というのは、どうやれば
取得できるのでしょうか?
もちろん、自作の変数に自分で毎フレーム入力していけばいいのはわかりますが、
その機能が最初から備わっているのかどうかを知りたいです。
162Now_loading...774KB:2006/01/03(火) 19:40:41 ID:gWQwxXGQ
>>161
_currentframe
163161:2006/01/03(火) 20:31:52 ID:/Sy/4VhV
>>162
ありがとうございました。
164Now_loading...774KB:2006/01/04(水) 01:37:51 ID:IDl3/zIE
課題=複数のTxtファイルを1つのrtf形式にまとめ、このrtfを
   テキストフィールドに読み込ませるレスNo.125の続き)
ソフト=FlashMX2004,OS=Win98SE

ni.rtfを読み込ませるため、136さんの
var dat = new LoadVars()
dat.load("ファイル名")
dat.onLoad = function(s){
  if(s){
   trace(dat)
  }
}
をフレームアクションで実行したところ、"ファイル名"の書き方によって、
 1) dat.load("ni"); → Error opening URL "file:///C|/WINDOWS/デスクトップ/Flash/ni"
 2) dat.load("ni.rtf"); → %7B%5Crtf1%5Cansi%5・・・
 3) dat.load(ni.rtf); → Error opening URL "file:///C|/WINDOWS/デスクトップ/Flash/"
となってしまいました。この内、2)が読み取っていそうな感じがしますが、
文字化けを回避するにはどうすればいいでしょうか?

また馬場ぎんがさんの「ActionScriptポケットリファレンス」のp161により
ますと、「=,&,%がある場合にはURLエンコードされた文字列を用います」
ということですが、これはあらかじめ元の文字を%26などと書き換える必
要があるということでしょうか?

なお、複数のTxtを1つにまとめようとすると、ある程度のファイルサイズで
「メモリ不足のためこの作業を実行出来ません。いくつかの・・・・」という警告
が出ます。

 以上、よろしくお願います。
165164:2006/01/04(水) 01:40:33 ID:IDl3/zIE
(課題の部分を若干修正)
課題=複数のTxtファイルを1つのrtf形式にまとめ、このrtfを
   テキストフィールドに読み込ませる(レスNo.125の続き) ←括弧を付けました
166Now_loading...774KB:2006/01/04(水) 01:44:06 ID:arXZABwF
lineToなどで描画したグラフィックを部分的に消す方法はありますでしょうか?

四角形の形で消したい。下に他のMovieClipがあるので、背景色で消す方法が
使えません。透明色を使ったらどうか、と思ったのですが、消えませんでした。
丁度、消しゴムツールのような方法がActionScriptにあることを期待
しているのですが…

お願いします。
167Now_loading...774KB:2006/01/04(水) 03:29:22 ID:9LY0K7dd
>>166
明確なやり方はなさそうですが
背景色で消す事とマスクとブレンドを上手く使えばそれらしくできるのでは?
168Now_loading...774KB:2006/01/04(水) 03:30:45 ID:SwB6h2Hp
>>164
文字化けするなら
System.useCodepage = true;
を書く。
URLエンコードされた文字を直す(デコードする)ならunescapeを使う。

>複数のTxtを1つにまとめようとすると・・・
複数のTxtを1つにまとめるって言ってるけど
どういう処理でやってる?
>125では
>1つにまとめた後、この名前を「txtName」などとして
ってあるからFlash内でやってるわけじゃないの?

あと、rtf形式にするのはなぜ?
169Now_loading...774KB:2006/01/04(水) 09:20:04 ID:lKAN5RPW
>>166
Flash8であれば、DrawAPIを使って描画を行ったMCを、アルファチャネルが有効な
BitmapDataにdrawしておく事で、fillRectなりなんなりで、アルファをゼロにした色で
部分的に消すことが可能です。
(BitmapDataを別のMCにattachBitmapして、MCは_visible=falseにするのを忘れずに)
170Now_loading...774KB:2006/01/04(水) 10:22:42 ID:wU/+5hFx
>>164
突っ込み所がいろいろあり過ぎて、何とも言えない。

ソースごとどこかにupしないと、禅問答のように延々と続きそうな気がする。
171Now_loading...774KB:2006/01/04(水) 13:45:34 ID:OJSF7zAg
>>164
「シンタックス my_lv.load(url:String)」
とヘルプに書いてあるだろうが。
なぜ、1) dat.load("ni"); や3) dat.load(ni.rtf); のような実行をするのか?
正しいURLを入れなければ読み込まないのは当然。
勘違いしてるのかもしれんが、URLの書き方と文字化けとは無関係だよ。

課題とは、rtf形式のファイルを読み込まなくてはならないものなのか?
HTMLのタグつきテキストを読み込みたい程度なのか?
何にしてもエラーの件は、作業として根本的に何かが間違っているように思われる。
どうやってテキストをまとめているのか具体的に書いてみたらどうだろう。
172Now_loading...774KB:2006/01/04(水) 16:14:10 ID:gyrBatc/
「FLASH ActionScript 2.0入門完全ガイド+実践サンプル集」
という本を買って勉強してるのですが
どうしても理解できないところがあるので質問させてください

229ページに下のようなクラスがあるのですが
8行目の
book.blObj = new BooksLine(book);
は何故「book.」を付けるのでしょうか?
blObj = new BooksLine(book);
とするべきだと思うのですが
そうするとロールオーバーのイベントが動作しなくなります。

どなたか理解できた方がいらっしゃいましたら教えてください。
よろしくお願いします。


class InitBook {
  var book:MovieClip;
  var blObj:BooksLine;
  //コンストラクタ
  function InitBook(targetMC:MovieClip) {
    book = targetMC;
    //BooksLineクラスのインスタンスを作る
    book.blObj = new BooksLine(book);
    setEventHandler();
  }
  function setEventHandler() {
    book.onRollOver = function() {
      blObj.startSwing("right");
    };

(以下略)
173172:2006/01/04(水) 16:26:10 ID:gyrBatc/
ちなみに
 book.blObj = new BooksLine(book);
の前後で
 trace(blObj);
とすると undefined になるので
 var blObj:BooksLine;
で宣言した「blObj」には格納できていないと思うのですが
 var blObj:BooksLine;
この変数宣言の行をコメントアウトすると
ロールオーバーの
 blObj.startSwing("right");
のとこで「blObj というメソッドはありません」と
エラーになります。

この動作がどうしても理解できません。
これはflashのバグなのでしょうか?
174Now_loading...774KB:2006/01/04(水) 17:12:23 ID:wU/+5hFx
>>172-173
MovieClip.onRollOver内では、scopeが変わる。
InitBookクラス内に以下のスクリプトを追加&変更して実行すると理解できると思う。

//これに変更
function setEventHandler() {
  trace("onRollOver外 this = " + this);
  book.onRollOver = function() {
    trace("onRollOver内 this = " + this);
    blObj.startSwing("right");
  };
}
//InitBookに追加
function toString():String {
  return "InitBook";
}

ただ確かに、book.blObj = new BooksLine(book);
という宣言はあまり例文として好ましくないね。
このやり方よりも、インナーFunctionを覚えた方が良いと思う。
175172:2006/01/04(水) 17:42:13 ID:gyrBatc/
>>174
ありがとうございます

「book」ムービークリップ内に
変数「blObj」を作ってるということでしょうか?

そうだとするとなぜ InitBookクラスで
 var blObj:BooksLine;
この変数宣言が必要なのかが理解できません。

これはFlashのコンパイラを騙すような裏技的なものなのでしょうか?
それともなにか意味があるのでしょうか?


176Now_loading...774KB:2006/01/04(水) 18:14:37 ID:wU/+5hFx
>>175
>「book」ムービークリップ内に
>変数「blObj」を作ってるということでしょうか?
yes

>これはFlashのコンパイラを騙すような裏技的なものなのでしょうか?
>それともなにか意味があるのでしょうか?
このやり方は初めて見たので、よく分からないけど、
もしコンパイラに弾かれるのなら、その1文がコンパイルを通すために必要なのだと思う。

scopeの違いは、インナーfunctionを使用してカバーするのが普通なので、
そのやり方は忘れて、こっちを使用したほうが良いよ。
ttp://pc8.2ch.net/test/read.cgi/swf/1127814783/429
177Now_loading...774KB:2006/01/04(水) 18:19:40 ID:cBI2kdXF
>>175
例としてあげてるのを見る限り、
var blObj:BooksLine;は使用してないね。
その後のコードで使ってるのか、
作者が勘違いしてるんじゃない?
178Now_loading...774KB:2006/01/04(水) 18:21:55 ID:cBI2kdXF
>>175
ああ、わかった、
  function setEventHandler() {
    book.onRollOver = function() {
      blObj.startSwing("right");
    };

この部分でscope無しでblObjを参照してるからだ。
ていうか>>176の言う通りインナーfunctionにした方がいいかも。
179172:2006/01/04(水) 18:34:43 ID:gyrBatc/
>>176-178
さっそく教えていただいた
インナーfunctionを勉強してみます。
ありがとうございました。
おかげですっきりしました。

この本は他にも間違いが多くて
うんざりしてました。
180Now_loading...774KB:2006/01/04(水) 18:59:57 ID:lOAhX7NL
外部jpgの読み込みにつてお願いします。
ムービー開始とともに画像を読み込むように
on (press) {
test_mc.loadMovie("test.jpg");
}
を、単純に
onClipEvent (enterFrame) {
test_mc.loadMovie("test.jpg");
}
にしてみましたがダメでした。スクロールペインを使用するとできるみたいですが、
上記のボタンアクションのような単純なスクリプトでムービー開始とともに外部jpg
を読み込むにはどうすればよいのでしょうか。
181Now_loading...774KB:2006/01/04(水) 19:15:53 ID:TOkSm15I
>>180
_rootにtest_mcがあるなら
test_mc.loadMovie("test.jpg");
と_rootの1フレにベタに書く。
182Now_loading...774KB:2006/01/04(水) 19:40:54 ID:TTHGiJ7+
>>179
AS2.0オンリー本って、今はまだこの本くらいしかないのが痛いところ。
183180:2006/01/04(水) 20:09:27 ID:lOAhX7NL
>>181
フレームアクションなのにスクリプトの書く場所を間違えていました。
超初心者の質問にお答えくださいましてありがとうございました。
お礼申し上げます。
184164:2006/01/04(水) 21:56:04 ID:aBpfPUSV
>>168,170,171
有難うございます。

事の発端は、「複数のTxt(メモ帳)にまたがって語句を検索後、その語句
を含むセンテンスを抽出したい」ということからでした。一番手っ取り早いの
は、Txtの中身をコピペして1つのTxtにした後に、ここから検索しよう思いま
したが、メモ帳の制限が35kB位なのですぐに上限に達します(Txtの総計
は60kBほど)。

そこでrtfならば100kB位は問題ないので、rtfにまとめてここから検索しよう
と思い、上の質問になりました。149で書いたように、Txtに番号を付けて配
列やfor文で順に検索する方法もあるかなと思いましたが、色々なソフトで
生成したファイル( .out や .pdb など←中身は文字のみ)も読み込みたいの
で、ある意味欲張って「何でも読み込めるAS」を構築する練習としてrtfを読
もうとしてます。

最低限、複数のTxtが読めるか、容量制限が大きいTxtエディタの1つ(rtfな
ど1つのみ)が読めればいいです。
 ※171さんの 「シンタックス my_lv.load(url:String)」 でURL指定を試して
 みます。

ソースをUpしたいのですが、初段の「ファイルの読み込み」では、ボタンアク
ションの
on (press) {
 System.useCodepage = true;
 this.loadVariables(txtName+".txt");  ←txtNameはテキストフィールドの変数
}
しか成功していないのでこれ以上のソースはありません。

文字だらけになりすみませんが、アドバイス願います。
185Now_loading...774KB:2006/01/04(水) 22:09:31 ID:Z8ZQigux
既出ならば申し訳ありません。

テキストファイル(A.txt)を読み込んでその中の「##」という文字列を読み込む。

別のテキストファイルに読み込んだ文字列「##」をファイル名に組み込む。
(B_##.txtという感じです)

ファイル名を換えたテキストファイル(B_##.txt)に記載されている文字列を表示する。

ということをしたいのですが、何か良い方法はありますでしょうか。

宜しくお願いします。
186Now_loading...774KB:2006/01/04(水) 22:18:40 ID:wU/+5hFx
>>184
厳しい事を言うようだが、根本的にテクが足りないと思う。
勝手に壁作って、勝手に苦しんでる。
187Now_loading...774KB:2006/01/04(水) 22:40:05 ID:W5j6WT/m
>>184
メモ帳の制限が35KBなのにどうやって100KB位のrtfを作ったのかが疑問。
っていうかメモ帳の制限が35KBってのがよくわからない。
Win98ってそういうものなの?

で、話は変わってFlashでもrtf形式は読込める
System.useCodepage = true;
var dat = new LoadVars();
dat.onLoad = function(s) {
if (s) {
trace(unescape(dat));
}
};
dat.load("ni.rtf");
188Now_loading...774KB:2006/01/04(水) 22:43:15 ID:W5j6WT/m
>>185
やりたいことがよくわからないが、ASで
ファイルを保存したり、ファイル名を変えるのは不可能。
テキストファイルを読み込みたいなら>>187みたいな感じ。
189185:2006/01/04(水) 22:52:01 ID:Z8ZQigux
>>188
レスありがとうございます。
読み込むテキストファイル(上の例で言うとB_##.txt)のファイル名を擬似的に動的に指定したいと考えたんですが・・・
ファイル名を変えるというかファイルを指定するパスを他のテキストファイルを用いて指定するイメージなのですが・・・
やっぱり無理でしょうか・・・
190Now_loading...774KB:2006/01/04(水) 22:53:06 ID:wit74IG7
JavaScriptとJScript連携でFileSystemObjectでファイル操作できそうじゃね?
191Now_loading...774KB:2006/01/04(水) 23:09:20 ID:hxPgdGWk
>>184
基礎知識が不足しすぎ。正直、いまの貴方はFlash初心者とかActionScript初心者とかじゃなくて、
PC初心者レベル。アドバイスは「もっとパソコンに慣れましょう」としか言えん。

>>185
説明が下手。何言ってるのかさっぱりわからん。
が、>>189でまぁなんとなくわかった。とりあえず、読み込むファイル名を動的に指定するのは可能。
文字列操作をいろいろやってればできる。
ttp://www.game3rd.com/flash/action/string.htm
このへんを読んで勉強しな。

>>187
Win95のころVC++を触ってたとき、OS標準で用意されているテキストエリアの
メモリ制限が64kbだったのは記憶にある。「あー、だからメモ帳も64kb制限なんだ」と
当時は思ったもんだ。なんでいま35kbとか言ってるのかは、さっぱりわからん。
ttp://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%A2%E5%B8%B3
192Now_loading...774KB:2006/01/04(水) 23:17:13 ID:D2T412B3
>>151
レス有り難うございます。
まだいまいち良くわからないですが、自分でやってみます。
193185:2006/01/04(水) 23:22:59 ID:Z8ZQigux
>>191
ありがとうございました。
勉強します。
194184:2006/01/05(木) 00:08:10 ID:5KaMKK19
>>187, 191
レスどうも。
メモ帳のエラーメッセージは、(Win98SEをお持ちの方は)適当に文章をコピペして
頂けたら再現できます(当方のメモリーは256MB)。

つーか、メモ帳自体が意外とメモリーを喰っていて、IEのウインドウを1個追加
するよりもメモ帳を開いた方が断然凍る確率が高いです →これ以上はWin板の
話題なのでメモ帳云々のことはここまでにします。
195Now_loading...774KB:2006/01/05(木) 00:15:11 ID:84qMbqFc
>>194
ていうか、メモ帳以外を使えばって前のレスで言われてるじゃん。
あえて言えば、そのスペックでMX2004を使うのが間違い。
196184:2006/01/05(木) 00:33:11 ID:5KaMKK19
>>195
WordPadとかですか? WordPadは別ソフト専用にしているので
出来るだけ使いたくないです。
197Now_loading...774KB:2006/01/05(木) 00:49:21 ID:lftfokV2
>>196
別ソフト専用ってナニ?
WordPadってソフト別に使うものじゃないと思うけど、違う?
100KBのrtfはどうやって作った?
198Now_loading...774KB:2006/01/05(木) 01:14:03 ID:bU39DVHW
もうなんつぅか、メモ帳からいい加減はなれろっつーか、
メモリの問題じゃなくて実はHDDの空きが10M以下とか
そんなレベルじゃないのかという気がしてくる。

>>184
お前さんの創作意欲はとりあえず1年ほど封印して、
しばらくいろんなサイトでエロ動画でもDLしてたら?
エロへの情熱でアレコレやってる間に基礎知識が
溜まってくと思うぞ。
199Now_loading...774KB:2006/01/05(木) 01:15:39 ID:DFg+N3us
>>196
http://www.forest.impress.co.jp/lib/offc/document/txteditor/
色んなテキストエディタがあるから試してみ。
メモ帳より様々な面で便利だよ。

とりあえずメモ帳以外での保存を試さないうちは次の質問は無しね。
200184:2006/01/05(木) 01:29:06 ID:MBMk1BiJ
>>197 別ソフト専用ってナニ?
分子軌道計算の入力データ作製用です。「この種データを開くときには必ずこの
ソフトを使う」で設定し、アイコン自体はWordPadそのものではありますが、拡張子
自体が違います。非常にデリケートな作業なので、ソフト自体を専用にしています。


>100KBのrtfはどうやって作った?
184の「そこでrtfならば100kB位は問題ないので」の通り、別に100kBを目指
した 訳ではなく、例えると「ビニール袋では入らないからバケツに入れた」程度
の ことです。


>>199
見てみます。


-- 「次の質問は無しね。」ということですが、現状報告 --
ni.rtfを読み込ませるため、136さんの "ファイル名"でURLを指定して読み
込ませたいのですが、URLの表現が
C|/WINDOWS/デスクトップ/Flash/ni.rtf
でも
C:\WINDOWS\デスクトップ\Flash\ni.rtf
でもエラーになります。

187さんの方では読み込めますが、文字化けします。文中に「=」や「&」が入って
いたら 不可なのでしょうか?
201184:2006/01/05(木) 02:09:15 ID:g7JO45gX
199さんのサイトの内、TeraPadをインストールし、試しに66kB(=33x2)ほどの
テキストを作成し、保存に成功しました。
しかし開く際には、「ファイルが大きすぎてメモ帳では開けません。ワードパッド
で開きますか?」ということなので、(チェック用に)ワードパッドを使用し、内容
を確認しました。
とにかくメモ帳よりも大きなサイズが扱えるので、コレで一まとめにしておきます。

サイト紹介有難うございます。
202Now_loading...774KB:2006/01/05(木) 02:16:21 ID:h53DvniE
>>184
解決したみたいだけど一応補足させてくれ。

rtf(リッチテキスト形式)には、プレーンなテキスト以外の情報も含まれている。

>>164の2)の結果は文字化けじゃなくて、そのテキスト以外の情報を読み込んだ結果。
つまりrtfのヘッダ情報、 「{\rtf1\ans・・・・」の部分。{ が%7B、\ が%5Cな。
ためしにワードパッドで2〜3文字程度のrtfファイルを作ってメモ帳で見てみること。

loadVarsはファイルの解析なんてしてくれないから、ヘッダ情報だろうが本文だろうがテキストだろうがバリナリだろうが関係なく読み込む。
自分でrtfのフォーマットを解析できないのなら不用意に使わないこと。

203Now_loading...774KB:2006/01/05(木) 02:18:17 ID:ESBcDz67
質問させてください。
あるボタンインスタンスのon(press){・・・}に書き込んだスクリプトを
そのボタンを押さずに、よそのインスタンス/フレームのスクリプトから呼び出したいケースがあるのですが
どのように処理できるでしょうか?
btn.onPress=function(){・・・}でつくったものはbtn.onPress()で呼び出せるのはわかったのですが
on(press){・・・}の場合の呼び出し方がわかりません。
OSはXPでFLASH8を使っています。
204184:2006/01/05(木) 02:40:03 ID:g7JO45gX
>>202
懇切なアドバイス有難うございます。

蛇足ですが「TeraPad」では、入力欄に常に[EOF]が表示されます。。。。。
EOFという言葉は昔大学の必修でCをやって以来ですうw ←使用上は無問題です
205Now_loading...774KB:2006/01/05(木) 04:52:43 ID:JovfgGyE
>>203
たぶん無理。フレームワークで統一する。ボタンはMCにする。
この方が楽だよ。
>>204
ワードパッドはワープロだから、デフォルトで*.rtfとして保存される。
つまり、よけいな情報が付加されてしまうので保存の時にプレーンテキストで保存する。
EOF表示はエディタ個々の設定でしょ。
206Now_loading...774KB:2006/01/05(木) 05:25:37 ID:uhuspprV
なんだかんだ言っておまいら優しいな
207Now_loading...774KB:2006/01/05(木) 08:06:03 ID:DFg+N3us
>>204
EOFはデータ上には含まれていないから大丈夫。
単にデータの終端を示す為にエディタ上に表示されているだけ。

んで、>>201でメモ帳で開けないと書いてあるけど、
メモ帳の変わりにこういうエディタを使うようにして。
メモ帳の使用感が好きならメモ帳Plusとかでも何でも良いから。

例えば.txtはTeraPadで開くように、とかね。
208Now_loading...774KB:2006/01/05(木) 10:38:12 ID:nyuBUIJw
初心者歓迎パソコン教室みたいになってるな。
209203:2006/01/05(木) 11:47:17 ID:ESBcDz67
>>205
回答サンクスです。
無理ですか。残念です。
こまめにフレームに飛ばして処理したほうがいいのですね。
参考になりました。
210Now_loading...774KB:2006/01/05(木) 12:01:15 ID:OTD9Its0
PV系のFlashでよく使われている、複数の
長方形のMCを上下移動させる方法を
Actionscriptで記述するとどうなりますか?
モーショントゥイーンでやっていたのですが
面倒なのでどなたかご教授お願いします。

OSはXP SP2 Flash MXです。
211Now_loading...774KB:2006/01/05(木) 12:10:48 ID:t4Z+Ukv5
>>210
>PV系のFlashでよく使われている
知らないけど、MCを上下移動させる方法は、
this.onEnterFrame = function(){MC._y += 1;}
とか。
212Now_loading...774KB:2006/01/05(木) 12:31:21 ID:nyuBUIJw
>>210
MX2004以上なら、
mx.transitions.Tweenクラスというのが用意されている。
213Now_loading...774KB:2006/01/05(木) 12:42:05 ID:09oXVr3x
>>210
二次関数のような動きをしたいとか特殊な動きをする、またはよっぽど単純な動作のみの場合じゃないとPVをASで書くのはお勧めしないな
いちいち動作確認にパブリッシュしなきゃいけないのも面倒だしね

一応作り方としては
1.まずムービークリップインスタンス(mc)を作り、リンケージ設定で書き出す
2.そのMCの中でインスタンスの動作をモーショントゥイーンで作る
3.横一直線に8個並べたい場合
for(i=0;i<8;i++){
mc_name = "mc"+i
attachMovie("mc",mc_name,100+i);
_root[mc_name]._x = i*50;
_root[mc_name]._y = 50;
}
こんな感じになる
ある程度ASの基礎勉強しなきゃ分からんと思いますがやるなら頑張ってください
214Now_loading...774KB:2006/01/05(木) 12:43:02 ID:OTD9Its0
>>211-212
ありがとうございます。
215Now_loading...774KB:2006/01/05(木) 12:45:49 ID:OTD9Its0
>>213
なるほど…マスクやトゥイーンがよく使われているのも
そういう理由でですか…。勉強になりました。
216Now_loading...774KB:2006/01/05(木) 15:53:10 ID:cB4SAZv9
ASからcreateEmptyMovieClipで作ったMCの基準点を操作するのって無理?
217Now_loading...774KB:2006/01/05(木) 16:46:58 ID:mZ3lVaEN
調べてもよくわからなかったんですが、
ある変数の中身が変更されたときに1度だけ実行されるリスナーってありますか?

無ければ、そのようにする方法を教えて貰えないでしょうか?
218Now_loading...774KB:2006/01/05(木) 16:49:40 ID:nyuBUIJw
別にリスナーにしなくても、setter作って、setter内で任意の処理を実行すればいいんじゃない?
219Now_loading...774KB:2006/01/05(木) 17:57:28 ID:ESBcDz67
質問です。
あるMC【A】の子として、インスタンス【B】を作った場合(→MC【A】.attachMovie("らいぶらり",インスタンス【B】,1))
MC【A】もインスタンス【B】も消したい場合は、removeMovieClip(MC【A】)を行えば、
インスタンス【B】も一緒に消えてremoveMovieClip(インスタンス【B】)を行う必要はないのでしょうか?
OSはXP、FLASHは8です。
220Now_loading...774KB:2006/01/05(木) 18:24:56 ID:t4Z+Ukv5
>>219
this.attachMovie("mca", "MC_A", 100);
this.MC_A.attachMovie("mcb", "MC_B", 200);

trace(this.MC_A.MC_B);

removeMovieClip(this.MC_A);

trace(this.MC_A.MC_B);

結果
_level0.MC_A.MC_B
undefined

ということかな?
消えてるよ。
221Now_loading...774KB:2006/01/05(木) 18:35:00 ID:ESBcDz67
>>220
回答ありがとう。
なんとなく消える気はしていたのだけれど、確証が持てなくて;
変に残ってメモリ喰ってたらやだな、なんて思ってました。
222184:2006/01/05(木) 23:29:52 ID:0sYz/Dkj
>>205, 207
エディタへのアドバイス有難うございます。
223Now_loading...774KB:2006/01/06(金) 10:18:38 ID:BbYnzH9I
function loadMap(){
  var myTxt:TextField;

  myTxt = new TextField();
  loadVariables ("test.txt",myTxt.text);
  trace( myTxt.text);
}

テキストフィールドmyTxtに外部ファイルtest.txtを
読み込みする処理をしたいのですが
トレース結果はundefinedになってしまいます。
お助けください。
224Now_loading...774KB:2006/01/06(金) 11:11:26 ID:GetRccpB
>>223
traceを少し時間差つけて実行してもundefinedになる?
読み込みを実行した直後にtraceすると読み込みが完了してなくてそうなる時がある
225Now_loading...774KB:2006/01/06(金) 11:27:19 ID:YF0CotYg
>>223
AS2.0は知らないから1.0と折衷になってるけど読み解いてくれ。

//TEXTSTRINGは読み込むテキストに書かれている変数
function loadMap(TEXTSTRING) {
var myTxt:TextField;
myTxt = new TextField();
myTxt.text = TEXTSTRING;
trace(myTxt.text);
}
this.onEnterFrame = function() {
this.loadVariables("test.txt");
if (TEXTSTRING != undefined) {
loadMap(TEXTSTRING);
delete this.onEnterFrame;
}
};
226Now_loading...774KB:2006/01/06(金) 12:38:07 ID:fjaiCRLp
loadVariablesは、昔の名残なので使わん方がいいよ。
227Now_loading...774KB:2006/01/06(金) 13:29:04 ID:TEr3aVzT

ダイナミックテキストA − スクロールバー(UIScrollBar) − ダイナミックテキストB

のように配置しています。中央のスクロールバーはAに吸着させています。
スクロールバーを操作したらBも同時にスクロールさせたいので、

function SameLine(){
 b.scroll = a.scroll;
};

mouse_obj.onMouseDown = SameLine;
mouse_obj.onMouseMove = SameLine;
mouse_obj.onMouseUp = SameLine;

のようにしたのですが、Bの反応が1フレーム遅れてしまいます。
同時に動かすようにするためには、どういうふうにSameLine()を呼び出すように
設定すればいいのでしょうか?
228Now_loading...774KB:2006/01/06(金) 13:31:27 ID:TEr3aVzT
あ、気になったのでついでに。

>>226
loadVariablesが昔の名残なら、その代わりに使うべきものってなんなんですか?
LoadVars クラス?
229223:2006/01/06(金) 13:55:09 ID:BbYnzH9I
レスしてくれた皆さんありがとうございます。
しかし残念ながら上手くはいきませんでした。

そもそもテキストフィールドオブジェクトに入れた値を
traceで確認する方法ってどうやるんですか

myTxt.text="aaa";
trace(myTxt.text);

ってやってもundefinedになりますし
230Now_loading...774KB:2006/01/06(金) 14:23:07 ID:GetRccpB
>>229
myTxt = new String()
って入れたらできるかも?
231227:2006/01/06(金) 14:23:22 ID:TEr3aVzT
自己解決しました。
デバッガ見てたらAに吸着してたUIScrollBarが a.vScrollerとして取得できるっぽかったので、

scroll_obj = new Object();
scroll_obj.scroll = function(eventObject){
 b.scroll = a.scroll;
}
a.vScroller.addEventListener("scroll", scroll_obj)

として、UIScrollBarのスクロールタイミングに処理することで解決しました。
232Now_loading...774KB:2006/01/06(金) 14:44:48 ID:FMZUlK4A
createTextField
233Now_loading...774KB:2006/01/06(金) 17:19:37 ID:NHfTwyXu
質問お願いします。

子SWFなどの読み込み待ちには MovieClipLoader を使えると思いますが
メインSWFの読み込み待ちの場合、このようなものを使って
読み込み終了時にイベントを発生させるようなことはできないでしょうか?

getBytesLoadedとgetBytesLoaded を判定して
ループで待つのでしょうか?
234Now_loading...774KB:2006/01/06(金) 19:48:41 ID:5kFlqYfl
>>229
それまんまコピーしてうまくtrace出来たよ。5だけど。
235Now_loading...774KB:2006/01/06(金) 21:57:39 ID:3x9cVbWq
ステージにテキストボックス(長方形で20文字×8文字くらいの大きさ)を配置して
ASで文章を1文字ずつ表示させているのですが(ドラクエの会話ウィンドウのような感じ。enterframeでreplaceSelを呼び出して1文字ずつ送り込んでいます)
テキストボックスの中で文字が自動で折り返す際に、折り返し端の文字がテキストボックスの境界をまたいだ位置に表示されようとすると
一瞬、境界をまたいでテキストボックスからはみ出た位置に表示されてから、折り返して下の行の先頭にワープします。
これがとても気になるので、テキストボックスからはみ出て表示されない方法はあるでしょうか?
はみ出る位置の文字がはみ出て表示される前に下の行に移って欲しいのです。
236Now_loading...774KB:2006/01/06(金) 22:09:38 ID:kVUGiOdG
>>223
そもそもloadVariablesの使い方間違っていると思うのだが。
237Now_loading...774KB:2006/01/06(金) 22:22:47 ID:kVUGiOdG
>>223
text.txtの中身がどうなっているのか解らないが、まるごと読み込むものと判断するとこんな感じだろうか?

_root.myTxt = new TextField();
_root.load_lv = new loadVars();

_root.load_lv.onData( txt ) {
  _root.myTxt.text = txt;
}

_root.load_lv.load("text.txt");

試してないから動かないかも。


loadVarsもloadVariablesも読み込むまで処理を待ってくれないから、読み込み終了をちゃんと判断する必要がある。
loadVarsならonLoad() かonData()
loadVariablesならonClipEvent( data )
238Now_loading...774KB:2006/01/06(金) 23:29:24 ID:k/MXoRO8
>>218
setterですか…。よくわからないので調べてみます。
ありがとうございました。
239Now_loading...774KB:2006/01/07(土) 00:35:53 ID:JAK0NpMb
TextFieldってnewでなく、createTextFieldを使うと思うんだが。
AS3とかではそうなってるのかな。
JavaとASをごっちゃにしてる気がするぞ。
240Now_loading...774KB:2006/01/07(土) 03:28:59 ID:p44MVeRG
質問ですー。
this.removeMovieClip() と removeMovieClip(this) って同じことですか?
241Now_loading...774KB:2006/01/07(土) 03:46:31 ID:TtNDrc2t
すいません、教えてください。WinXP,FlashMX2004,AS2.0です。
次のようなクラスをつくってで
var HogeHoge = new HogeHoge
HogeHoge.LoadPicture('test.jpg');
と叩いた場合、画像は読み込めるのですが、_widthプロパティが0になってしまいます。
これはどういった原因なんでしょうか。
お願いします。

class HogeHoge {

var a_mc;

function LoadPicture(imgPath:String){

this.a_mc = _root.createEmptyMovieClip('a_mc',1);

var pic_obj:MovieClipLoader = new MovieClipLoader();
var oListener:Object = new Object();

oListener.onLoadComplete = callbackOnLoad();

pic_obj.addListener(oListener);

pic_obj.loadClip(imgPath,_root.pic_mc);
}

private function callbackOnLoad() {
trace(this.a_mc._widht);
}
}

242Now_loading...774KB:2006/01/07(土) 08:54:43 ID:iKXlkYLG
onEnterFrame で trace してみれば分かる。
_root.pic_mc //どこから出てきたのこれ
trace(this.a_mc._widht); //スペルミス
243Now_loading...774KB:2006/01/07(土) 11:11:35 ID:HJOTWsNn
>>235
ちょうど俺もその処理をやろうと思ってたところなのでアドバイス。
例えば「ゲームを買った」のような文章で、

>ゲームを買

>ゲームを
>買っ

みたいになる現象だろ?
上の時点では textFidld.text = "ゲームを買" となってて、
下の時点では textFidld.text = "ゲームを買っ" となってる状態から
textFieldに改行判断をさせてるわけだから、そりゃこういう風になるのも当然だ。
対策は、自前で改行の判断することだと思う。
文字列の長さを判断して、自分で改行位置に"\n"を入れる。
"ゲームを買った" を送り込むんじゃなくて、 "ゲームを\n買った" を送り込む。
これで解決。だと思う。
244235:2006/01/07(土) 11:22:47 ID:p44MVeRG
>>243
そそそ。そうなっちゃうの。
でもそっかーやっぱ元の文章を変えたほうがてっとりばやいのねー。
サンクス!
245Now_loading...774KB:2006/01/07(土) 11:38:28 ID:HJOTWsNn
>>244
てっとりばやいんじゃなくて、もっとtextFieldの立場になって考えてみそ。
自分がtextFieldの作者のつもりで。
元のやり方でデータ渡されて、そんな改行が出来るわけねーだろボケ!
と愚痴たれたくなるから。
246Now_loading...774KB:2006/01/07(土) 13:40:09 ID:iCWVHrvd
XP、MX2004です。
スロットゲームをイメージしてください。
3つのMCを、それぞれ任意のフレームで停止させました。
3つとも停止させた時に、3つとも同じフレーム番号で止まっていたら
(絵柄が揃ったら)メインのフレームが次に進む。
if(_root.hidari._currentframe == _root.naka._currentframe == _root.migi._currentframe == 1){
    gotoAndStop(5);                                     ~~
} else {
    stop();
}
これはちゃんと動くのですが、1行目最後の ==1 を ==5 などの1以外の数字にすると
MCをすべて「5」で止めてもメインのフレームが進みません。
理由がわからないので助けてください。
ちなみに、ひとつずつ止めれば
if(_root.migi._currentframe == 5){
    gotoAndStop(5);
} else {
    stop();
}
これならメインフレームが進みます。
247Now_loading...774KB:2006/01/07(土) 13:58:06 ID:gV6uK7bh
>>245
いや、ちゃんとスクリプト的に(てっとりばやくなく)やるには追加した文字のフォント幅を加算してみて
もう入らなくなったところで改行挿入、とかかなって思ってたからさ。
むしろ言われて「てにをは&句読点」に合わせて改行されていたのに気付いた次第。
248Now_loading...774KB:2006/01/07(土) 14:04:43 ID:JAK0NpMb
>>246
if文の()の中身はtrueかfalseしかない。
1はtrueと見なされるから一応動いたんでしょ。
○○かつ○○の条件判定は&&でつなぐかifの入れ子にする。
249Now_loading...774KB:2006/01/07(土) 14:11:10 ID:DS+YoU9d
論理積でやってみれ
if((_root.hidari._currentframe&_root.naka._currentframe&_root.migi._currentframe) == 5)
説明はめんどくさいから自分で調べて
250246:2006/01/07(土) 15:10:36 ID:iCWVHrvd
ありがとうございます。 =ではなく、&でつなげるのですね。
if((_root.hidari._currentframe & _root.naka._currentframe & _root.migi._currentframe) == 1){
    gotoAndStop(5);
}
if((_root.hidari._currentframe & _root.naka._currentframe & _root.migi._currentframe) == 5){
    gotoAndStop(6);
}
if((_root.hidari._currentframe & _root.naka._currentframe & _root.migi._currentframe) == 9){
    gotoAndStop(7);
} else {
    stop();
}
ところが、これで絵柄が揃ってない状態でも、フレーム5に飛んじゃうようになりました。
何がおかしいんでしょうか?
251Now_loading...774KB:2006/01/07(土) 15:21:34 ID:wXCNMlFR
>>250
全部の演算子の意味覚えて来い
多くないから。
252Now_loading...774KB:2006/01/07(土) 15:21:57 ID:n8FqW4Px
0001 & 0101 = 0001
>>248のやりかたでやってみ
253246:2006/01/07(土) 15:26:06 ID:iCWVHrvd
すいません、出直してきます。
254Now_loading...774KB:2006/01/07(土) 15:26:45 ID:Dfvp1Cax
>>246
比較演算子の使い方が違う。
a == b == c なんて書くと、こんな感じに処理される。
( a == b ) == c

まず( a == b ) の値は、式が成り立つのならtrue、 成り立たなければfalseとなる。
trueとして展開すると、 true == c となる。
結果、c が true と等しいか判断されることになる。

で、ASではtrue が 1なんだろうな。 だから true == 1 は成り立つけど true == 5 は成り立たなくなる。
255Now_loading...774KB:2006/01/07(土) 15:27:22 ID:DS+YoU9d
あーそうか、じゃあ
if((_root.hidari._currentframe<<2+_root.naka._currentframe<<1+_root.migi._currentframe) == (5<<2+5<1+5))
でもこれ無駄に計算多いかもな。
原因はちょっと違うけどだいたい>>248の言うとおりだから、めんどくさがらずに
ひとつずつ比較するのが早いかもなー
256Now_loading...774KB:2006/01/07(土) 15:32:04 ID:BI9IzZnP
>>246
まず、3つが同じかどうかのifでくくって、
その中でどこに飛ぶかの処理をやる方がすっきりするんじゃないのかな?
257Now_loading...774KB:2006/01/07(土) 15:34:40 ID:DS+YoU9d
お、書いてるうちに山ほどレスが。
そうそう、(A==b==c)っていう書き方は((a==b)==c)として計算されるのよ。
代入の(A=B=C=5)みたいにまとめて演算してくれないのな
(つーか、実はこれもちょっとASだと困った処理なのだけれども。というか、行儀悪い書き方なのんだけど)
だから、なんか変だと思ったら、こまかーくひとつひとつ計算してみるのがいいよ。特にASではね。
258Now_loading...774KB:2006/01/07(土) 15:43:58 ID:DS+YoU9d
で、どーすれば楽かっていったらさ、うーん、こんなのどーよ?
a=_root.hidari._currentframe
b=_root.naka._currentframe
c=_root.migi._currentframe
if(a==b&&b==c){
 _root.gotoAndStop((a+b+c)/3)
}
なんか頭悪そうだけど、まあいけるんじゃない?
259Now_loading...774KB:2006/01/07(土) 15:56:13 ID:Dfvp1Cax
>>258
a も b も c も等しいことが解っているんだから
_root.gotoAndStop(a)でいいんじゃね?
260Now_loading...774KB:2006/01/07(土) 16:02:18 ID:DS+YoU9d
お、そうだね。そのほうが妥当だ。さんきゅー。
261Now_loading...774KB:2006/01/07(土) 16:11:59 ID:HJOTWsNn
>>246はもっと演算子について勉強しておくとして、とりあえず>>250みたいな処理のベスト解答。
>>258からの発展系で書いた。

var jumpTable = new Array();
jumpTable[1] = 5;// 1なら5にとぶってことだ。
jumpTable[5] = 6;
jumpTable[9] =7;

a=_root.hidari._currentframe
b=_root.naka._currentframe
c=_root.migi._currentframe
if(a==b&&b==c){

  label = jumpTable[a];
  if (label != undefined){
    gotoAndStop(label);
  } else {
    stop();
  }
}

aに入ってる数字と飛ぶフレーム数が一致するわけじゃないみたいなので、これがベストだろう。
こうやって置けば、「○○なら△△にとぶ」っていう分岐がどれだけ増えても、
テーブルに入れておく数が増えるだけなので、処理が楽。
262Now_loading...774KB:2006/01/07(土) 16:26:13 ID:DS+YoU9d
なんだよその説教系の書き込みはwww
別にどーでもいいじゃんうごけば。説教はぎじゅつこうかんすれででもやってくれ。
つーか「ベスト」なんて軽く書き込めちゃうお前がうらやましー。

で、本題
ASの配列(Array)は割と重いので、使わなくてもいいんじゃない??
単にラベル名にとばすだけでもいい感じ。Flashに慣れてないとわかりにくいかもしれんけど。
(つーか、個人的には>>>261のが奇麗とか思ったけどさ)

っつーわけでさ、難しく考えなくても「どっかのスロットが揃えば」っていう処理でも、
いろいろ考えはあるわけさ。

好きなの使って、面白いもん作ってくれー。
263Now_loading...774KB:2006/01/07(土) 16:27:32 ID:JAK0NpMb
暗号のようなベストだな。
264Now_loading...774KB:2006/01/07(土) 16:31:25 ID:Dfvp1Cax
まあまあ。
思ったとおりに動いて面白い物が出来たらそれでいいじゃん。

>>246がんばれよー
265Now_loading...774KB:2006/01/07(土) 16:31:33 ID:DS+YoU9d
>>263
まあ、そう言うな。
ASの世界は未だに混沌なのさ。
それだけに面白いよ。お前も飛び込めよフゥハハアアアア!!
266246:2006/01/07(土) 16:43:44 ID:iCWVHrvd
みなさん、ありがとうございます。
a = _root.hidari._currentframe;
b = _root.naka._currentframe;
c = _root.migi._currentframe;
if (a == b && b == c && c == 1) {
    gotoAndStop(5);
}
if (a == b && b == c && c == 5) {
    gotoAndStop(6);
}
if (a == b && b == c && c == 9) {
    gotoAndStop(7);
} else {
    stop();
}
とりあえずこれで行けそうです。本当にありがとうございました。

私も、もっと基本的なことを勉強しとかないといけませんね・・・
267Now_loading...774KB:2006/01/07(土) 17:15:09 ID:JAK0NpMb
同じif文を複数つなげるのは勧めできないよ。
修正するときにその数だけ直さなきゃいけなくなるし、よみずらいし
なおしそこねたりするからね。

var t_num:Number = 0;
if ((a == b) && (b == c)) {
t_num=a;
}

switch(t_num){
case 1: gotoAndPlay("1atari");break;
case 5: gotoAndPlay("5atari");break;
case 9: gotoAndPlay("9atari");break;
default:gotoAndPlay("continue");
}
268Now_loading...774KB:2006/01/07(土) 18:01:09 ID:n8FqW4Px
>>266
if (a == 1 && b == 1 && c == 1) {
 gotoAndStop(5);
} else if (a == 5 && b == 5 && c == 5) {
 gotoAndStop(6);
} else if (a == 9 && b == 9 && c == 9) {
 gotoAndStop(7);
} else {
 stop();
}
自分なら単純にこうかくかなあ、数値は定数にするかも知れんけど

ifの方が柔軟に使えるからね
例えばチェリーみたいな小役の処理をいれたい時も変更が楽だから
269Now_loading...774KB:2006/01/07(土) 19:55:47 ID:jV7z2T6d
_rootのタイムライン上に、

var my_key = new Object();
my_key.onKeyDown = function(){
  trace("hoge");
};
Key.addListener(my_key);

と書いて、trace("hoge")のところでブレークポイントを置いて
ここを通ると、

*** セキュリティ Sandbox 違反 ***
SecurityDomain 'file:///(中略).swf' が Player の UI コンテキストにアクセスを試みました。

っていうのが出る。ブレークポイントを置いてないと出ない。
この出力が出ようと出まいと、hogeが出力される(=動作にはまったく支障はない)。

これってほっといてもいいのかな?
いま製作中のやつではこの違反が出るけど、確認のための最小セットでは
この違反が出ないから気になるんだけど。
270241:2006/01/08(日) 00:23:54 ID:/gHDdHkD
>242
ありがとうございます。

>_root.pic_mc //どこから出てきたのこれ
すいませんs_mcです。。。
>trace(this.a_mc._widht); //スペルミス
あぁ・・ごめんなさい。。。

読み込みが済んでいないために0が返されるということでよろしいでしょうか。
この場合、onLoadCompleteが機能していないということなんでしょうか。
271Now_loading...774KB:2006/01/08(日) 02:52:08 ID:nbBGBdhC
物体を乱数を利用することによって上下左右に自動で移動させようしています。
いろいろ試しましたが、全く動かなかったり、一方向にしか進まなくなったりします。
宜しくお願いします。

onClipEvent (enterFrame) {
_root.si = Math.floor(Math.random() * 3);
if (si ==0 ) {
_y += 1;
} else if (si ==1 ) {
_y -= 1;
} else if (si ==2 ) {
_x += 1;
} else if (si ==3 ) {
_x -= 1;
}

}
272Now_loading...774KB:2006/01/08(日) 03:06:36 ID:KJRrS+v4
>>271
とりあえずMath.random()の戻り値は0以上1未満な。
つまり、0,1,2,3の4種類をランダムに出したいなら、
Math.floor(Math.random() * 4);
273Now_loading...774KB:2006/01/08(日) 03:09:50 ID:m8VKhZtU
>>271
siのパスがあってないんじゃないのかな。
274Now_loading...774KB:2006/01/08(日) 03:37:33 ID:9/Udlts0 BE:35239542-
>>246
動作確認してないけどこうやってスクリプトにしとけば
配列にデータをぶち込むだけでいくらでもパターンをふやせるよ。

data = [
// 1枚目,2枚目,3枚目,そろっていたときに飛ぶ番号
[1,1,1,5],
[5,5,5,6],
[9,9,9,7]
];

var i;
var len = data.length;
for(i=0;i<len;i++){
if(_root.hidari._currentframe != data[i][0]) continue;
else if(_root.hidari._currentframe != data[i][1]) continue;
else if(_root.hidari._currentframe != data[i][2]) continue;
gotoAndStop(data[i][3]);
}
275Now_loading...774KB:2006/01/08(日) 04:00:00 ID:9/Udlts0 BE:118932293-
>>272
1.0も入ってるよ。
確率的に絶対にでないけどな
276Now_loading...774KB:2006/01/08(日) 04:08:11 ID:KyMr7udt
>>275
1.0は入ってねえよって件のURL張って、ひとつのネタだよな?
277Now_loading...774KB:2006/01/08(日) 04:38:04 ID:KJRrS+v4
>>275
ありゃ、レスがw
サイコロ100個投げたときに角々で連なって直立するようなもんだなw
レスついでだけど、
for(var i=0;i<data.length;i++){...}
がスタンダードだし、continueならelseはいらないな。
ぱっと見て解りやすいコードを書く方がみんなも見やすいし良いと思うぞ。
278Now_loading...774KB:2006/01/08(日) 10:03:23 ID:cCa2ucSU
>>275
それ、ヘルプファイルの表記ミスだったよ。
279Now_loading...774KB:2006/01/08(日) 15:19:37 ID:9/Udlts0 BE:26429832-
>>277
data.length
終了判定にこんなプロパティチェックもってきたら
処理1.5倍はおもくなるぞ。
…と某リファレンスに乗っておりました。

>>278
まじすか?ソースはヘルプなもんで
280Now_loading...774KB:2006/01/08(日) 15:31:51 ID:/JcSsHpp
>>279
その1.5倍ってのはどこから出てきたんだ?

気になったので、うちの環境で試してみたら1.15倍にしかならなかった。
100回転位だと、気にするコストじゃない。

ただ、100,000回くらい回すなら、ローカル変数にしたほうがいいかも。
281277:2006/01/08(日) 15:34:21 ID:KJRrS+v4
>>279
staticでしょ?以前に、10万回ほどのif文ループでチェックしたけど、ほとんど差がないので、
読みやすい方を使ってる。1.5倍も差が出たらさすがに使わんよw
282Now_loading...774KB:2006/01/08(日) 15:35:45 ID:9/Udlts0 BE:92503837-
>>280-281
そうか。まあうろおぼえなもんで。
いやもしかするとバージョン6以前のプレイヤーの話かもな
とりあえず遅くはなっただろ?
283Now_loading...774KB:2006/01/08(日) 15:38:28 ID:TYAiGOGC
>>271
それだと毎フレーム4方向のどっちか1ドット移動するわけで
乱数が偏らないかぎり、ぷるぷる震えるだけだぞw
284277:2006/01/08(日) 15:43:06 ID:KJRrS+v4
>>282
うーん、その時は10回ぐらい試行したんだけど、ばらつきが誤差の範囲内だったから、
ほんとに遅くなってるかどうかはわからんwその程度の差でした。
285Now_loading...774KB:2006/01/08(日) 15:57:03 ID:/JcSsHpp
オブジェクト指向は、若干の速度の低下には目をつぶって、読みさすさを優先するので、
ちょっと速度が落ちる分には、あまり気にしない。

ちなみに10万回ループさせて、
ローカル変数 285ミリ秒
プロパティチェック 328ミリ秒
その差、43ミリ秒だった。

286Now_loading...774KB:2006/01/08(日) 16:03:38 ID:9/Udlts0 BE:277509479-
>>285
1.15倍か。うちの環境でもそんな感じだったよ。
漏れの場合、ASがあまりにも重過ぎるから速度を最優先してる。
287Now_loading...774KB:2006/01/08(日) 16:56:52 ID:/JcSsHpp
>>286
10万回のループにつき0.043秒稼ぎたいのなら、別に止めはしないけど、
ループの度にいちいちローカル変数を書いてたら、ソースが冗長になって読みにくい。
読みにくいソースはメンテナンス性の低下になる。
array.lengthで済ませるのが一般的。

初心者も見ているスレなので、念のため。
288Now_loading...774KB:2006/01/08(日) 17:29:32 ID:pt1eNxsd
>>271

>>273も言っているけど、ifの中のsiのパスが違っていると思う。
_root.si に値が入っているのなら、_root.siを見ないと。

onClipEvent (enterFrame) {
_root.si = Math.floor(Math.random() * 3);
if (_root.si ==0 ) {
_y += 1;
} else if (_root.si ==1 ) {
_y -= 1;
} else if (_root.si ==2 ) {
_x += 1;
} else if (_root.si ==3 ) {
_x -= 1;
}
}
289Now_loading...774KB:2006/01/08(日) 17:44:19 ID:gcgw9X+W
家から30メートルのコンビに行くために車使うようなもの
290289:2006/01/08(日) 17:45:50 ID:gcgw9X+W
>家から30メートルのコンビに行くために車使うようなもの

速度のためにオブジェクト指向設計を犠牲にする事ね
291Now_loading...774KB:2006/01/08(日) 19:24:22 ID:9/Udlts0 BE:154171875-
>>287
マルチメディア系の人なのかな?
ゲームは毎フレーム処理しないといけないので
60フレームレートだと1割り込み0.01秒しかない。
そのうち描画で7割、スクリプト処理で3割CPUを裂くと
実際使えるのは0.003秒しかないんだよ
292Now_loading...774KB:2006/01/08(日) 19:32:07 ID:gP+B++Vu
そういや、配列の走査って
・for
・for ... in
・while
のどれが一番パフォーマンスいいの?
293Now_loading...774KB:2006/01/08(日) 19:47:33 ID:ZpgkmnfI
誰か知ったか野郎の>>291をどっかに隔離してくれよ。ウザい。
294Now_loading...774KB:2006/01/08(日) 19:58:40 ID:KyMr7udt
>>293
気にするな
覚えたてのことはついつい語りたくなっちゃう年頃なんだろう
もっとエロい人が出てきてやんわり本当のことを解説してくれて
結構、勉強になること多いし。

>>292
forとwhileは、デコンパイルするとどっちかに
置き換えられてた記憶があり、ほぼ同等のものかと。

for inはstringで扱っちゃうから問題外に遅いはず
295Now_loading...774KB:2006/01/08(日) 20:33:05 ID:83X87jt6
ところで、今の流れって何の質問?
296271 :2006/01/08(日) 21:33:10 ID:nbBGBdhC
どうも271です。皆様レスをありがとうございます。
>>273,288の指摘どおり、siのパスが間違っておりました。
_rootの記述を見逃しておりました。
スクリプトどうもありがとうございました。
297Now_loading...774KB:2006/01/08(日) 21:37:25 ID:BTgPMFPk
>>295
特に質問とは関係ないところで、処理速度と作業性で、すったもんだがありました
298Now_loading...774KB:2006/01/08(日) 22:02:07 ID:cCa2ucSU
ASのちょっとした速度効率なんぞは、全体の表示面積を縦1ドット横1ドット小さくすることで
挽回できる程度のもんさ。
299Now_loading...774KB:2006/01/08(日) 23:52:53 ID:WBFN7PNf
くだらんな。見やすいソースが一番いい。
300Now_loading...774KB:2006/01/09(月) 02:07:30 ID:McPl+27X
でもフラッシュゲームのコーディングなんてほとんど一人だし、見やすさって関係ないんだよな。
301Now_loading...774KB:2006/01/09(月) 02:52:21 ID:kB19mAO0
>>300
小規模ならそうかもしれないが、
最近はグループワークも増えてるよ。
うちでもオリジナルのクラス群を改善しながらライブラリ化してるし。

今後はAS3.0への対応とFlex導入あたりからこの流れは加速すると思う。
302Now_loading...774KB:2006/01/09(月) 05:06:35 ID:/1KwNlPn
一人で開発してようと一日たつと
もはや他人のソース
現に俺は構造化プログラミングで一万行以上書いてたら
訳ワカメになって挫折した経験があるよw
それがきっかけでオブジェクト指向を本気で勉強した。
303Now_loading...774KB:2006/01/09(月) 09:40:07 ID:ivyBuoyf
動けばいいという発想の奴と仕事はしたくないな。
304Now_loading...774KB:2006/01/09(月) 15:10:23 ID:6ArFlqhw
とりあえず人間側の効率やAS側の効率やらの話の続きはム板かマ板で続けることにして、物凄い勢いで質問に解答しようぜ。
305Now_loading...774KB:2006/01/09(月) 17:41:50 ID:QX7+2YFY
Flashでオブジェクト指向の是非を語るスレ
あたりで立てていい?
306Now_loading...774KB:2006/01/09(月) 17:47:55 ID:ivyBuoyf
>>305
その話題はもう結論がでてると思う。
307Now_loading...774KB:2006/01/09(月) 18:19:47 ID:QX7+2YFY
ActionScriptのオブジェクト指向プログラム関係のスレ
http://pc8.2ch.net/test/read.cgi/swf/1126130300/

似たようなスレがあった。
ひま見て突撃してみる
308Now_loading...774KB:2006/01/09(月) 20:09:26 ID:GOHIDN9X
携帯向けFLASHを作っています。
Flash lite1.1で on ClipEvent(key Down)やonClipEvent(enterFrame)の代わりには何を使えばいいのでしょうか。
XP,FlashMXpro2004使ってます
309271:2006/01/09(月) 20:28:34 ID:vKFwIrd7
どうも271です。
>>296で解決したと書き込みましたが、>>283の指摘どおりプルプル震えるような
動きになってしまうところが気になってきました。
そこで>>288のスクリプトに付け足す感じでを乱数の数字が一秒ごとに変化するように
してみたいと考えております。そのためにはどのようなスクリプトを付け足せば良
いか、宜しくお願いします。
310Now_loading...774KB:2006/01/09(月) 20:40:37 ID:s4M6kIba
>>309
http://hakuhin.hp.infoseek.co.jp/main/as/time.html#TIME_00
でも利用してみてはどうだろう。
311272:2006/01/09(月) 20:50:46 ID:K2eGkyRn
>>309
レスしてもスルーされるみたいなので、レスしたくなくなる気分(´д`)
312Now_loading...774KB:2006/01/09(月) 20:54:17 ID:jJ2XThGh
>>309
カウンタで判断するってのはどうだろう。
onClipEvent( enterFrame ) イベントごとにカウントして、カウンタがフレームレートと等しくなったら向きを変えるとか。

フレームレートが20fpsだとして、こんな感じとか。

var cnt = 0;
var x_move = 0;
var y_move = 0;

onClipEvent (enterFrame) {
 if( cnt == 0 ) {
  _root.si = Math.floor(Math.random() * 4);
  if (_root.si ==0 ) {
   y_move = 1;
  } else if (_root.si ==1 ) {
   y_move = -1;
  } else if (_root.si ==2 ) {
   x_move = 1;
  } else if (_root.si ==3 ) {
   x_move = -1;
  }
 }
 _x += x_move;
 _y += y_move;
 cnt++;
 if( cnt == 20 ) {
  cnt = 0;
 }
}
313Now_loading...774KB:2006/01/09(月) 21:51:14 ID:4KPmKh2e
>>308
ボタンのkeypressイベントと
MCのループ。

>>309
一秒ごとに呼び出すならsetIntervalとかもある。
でも、ゆっくりになるだけでぶるぶるしてることには変わりないと思うけど。
314Now_loading...774KB:2006/01/09(月) 22:28:53 ID:d4o66vkz
>>271
こんなんでました
フレームアクションね

spd = 5;//移動スピード
Interval = setInterval (this , "muki" , 1000);
function muki () {
 switch (Math.floor(Math.random() * 4)) {
  case 0:
   SX = spd;
   SY = 0;
   break;
  case 1:
   SX = -spd;
   SY = 0;
   break;
  case 2:
   SX = 0;
   SY = spd;
   break;
  case 3:
   SX = 0;
   SY = -spd;
   break
 }
}
mc.onEnterFrame = function () {
 mc._x += SX
 mc._y += SY
}
315Now_loading...774KB:2006/01/10(火) 00:11:22 ID:xzVvXagU
おながいです。どなたか助けてください。
ずーーーっと5時間近くやってるんですがわかりません。
外部テキストから読み込んだ16進数の値をムービークリップに読みこんで
外部からムービークリップの色を変えたいのですが、

[外部テキスト colorno.txt]
&daycolor02=0x3A3A3A&

[ムービークリップ1]
onClipEvent (load) {
this.loadVariables("colorno.txt");
System.useCodepage = true;
}

[上のムービークリップの中の中にいるムービークリッップ]
onClipEvent (load) {
thecolor = _parent.daycolor02;
myColor = new Color(this);
}
onClipEvent (data) {
myColor.setRGB(thecolor);
}

本当は中の方のMCに直接「this.loadVariables」で読ませればできるのですが、
管理上、こうせざるを得ません。(大量にあるので上の方の階層で指示をまとめたい。)
thecolorで指定するときに間違ってると思って色々やったのですが…。

お願いします!!!
316Now_loading...774KB:2006/01/10(火) 00:37:54 ID:sfrd/9VZ
>>315
パッと見、thecolor = _parent.daycolor02;をonClipEvent(data)に入れたら動きそうな気がする。
317Now_loading...774KB:2006/01/10(火) 00:38:20 ID:TTvP2cOA
>>315
上の階層のonClipEventで読み込んでるデータが
下の階層のonClipEvent時にまだ読み込み完了してない可能性が高い。
なのでtraceして要確認。

もうひとつは
thecolor = _parent.daycolor02;
がStringになってる可能性があるので、
thecolor = Number(_parent.daycolor02);
にでもしてみましょう。
318Now_loading...774KB:2006/01/10(火) 00:46:34 ID:Tpd/NtI2
>>315
MCのなかにあるMCに書いてある
onClipEvent (data) { }
って呼び出されてる?
319315:2006/01/10(火) 01:33:44 ID:xzVvXagU
せっせと外部テキスト作ってたらこんなにレスが!!!
ありがとうございます。

>>316
そう思ってやってみたのですが、駄目だったのです。

>>317
すみません。まだASが付け焼き刃状態で…。本当に初歩な質問だと思うのですが、この場合のtraceってどうやるんでしょうか?orz

もうひとつの方法は今から試してみます!

>>315
呼び出され、てるとおもうのですが。
ここには、違うアクションもいれていてそっちは動いてるんです。
320315:2006/01/10(火) 01:44:58 ID:xzVvXagU
thecolor = _parent.daycolor02;

thecolor = Number(_parent.daycolor02);
にしてみました。

だめですた…。
色々まだ試してみます。
321Now_loading...774KB:2006/01/10(火) 01:54:11 ID:TTvP2cOA
もうその形はやめてloadVars使った方が良いと思うよ。
こんなのとか。(動作確認してないけど)

[ムービークリップ1]
onClipEvent(load){
var loadData = new LoadVars();
loadData.load("colorno.txt");
loadData.onLoad = function(s){
if(s){
for(var n in this){
if(typeof this[n]=="movieclip"){
this[n].myColor = new Color(this[n])
this[n].myColor.setRGB(thecolor)
}
}
}
}
}
322315:2006/01/10(火) 02:39:45 ID:xzVvXagU
>>321
うわあ。なんかこの夜中にありがとうございます!!

これは、ムービークリップ1のクリップアクションとして書いて、
"movieclip"の部分に[中の中にいるMC]のインスタンス名を書けば
良いのですよね?

と思ってやってみたのですが。
[中の中のMC]は実は同じものが30個ほどありまして、それぞれ
d01~d30というインスタンス名なんです。
"movieclip"に"d[01]"と書いてみたのですが駄目でした。
this[n]というのはそういう意味ではないのでしょうか?
こんな感じです。

onClipEvent(load){
var loadData = new LoadVars();
loadData.load("colorno.txtt");
loadData.onLoad = function(s){
if(s){
for(var n in this){
if(typeof this[n]=="d[01]"){
this[n].myColor = new Color(this[n])
this[n].myColor.setRGB(thecolor)
}
}
}
}
}
323315:2006/01/10(火) 03:10:57 ID:xzVvXagU
すみません。
上のレスおもいっきし勘違いです…。
"movieclip"の部分はそのままだな、ということはなんとなく…。

が、やはり私には高度すぎてどう書けばいいのかすら分からずorz。
this[n]のthisを書き換え?とか、中の中のMCをいじらなければ?
とかぐっちゃぐちゃになってきますた。

お風呂につかって出直してきます…。
324Now_loading...774KB:2006/01/10(火) 04:28:22 ID:ffiWHMuK
>>323
これじゃだめ?
[ムービークリップ1]
onClipEvent(load){
var loadData = new LoadVars();
loadData.load("colorno.txt");
loadData.onLoad = function(s){
if(s){
for(i=1; i<31; i++){
var obj=eval("d"+i);
trace(obj);

myColor=new Color(obj);
myColor.setRGB(loadData["daycolor02"]);
}
}
}
}
因みにインスタンス名をd1〜d30にしないと動かないかな
traceを試しに入れといたんで、ctrl+enterしてみれ
325Now_loading...774KB:2006/01/10(火) 08:03:17 ID:TTvP2cOA
>>323
ごめん、眠くてミスってた。
正しくはこうだね。

[ムービークリップ1]
onClipEvent(load){
var loadData = new LoadVars();//loadVarsオブジェクトをloadDataとして定義
loadData.load("colorno.txt");//loadDataにcolorno.txtをロード
loadData.onLoad = function(s){//ロード完了したら引数sにtrueを。
if(s){//引数sがtrueなら処理
for(var n in this){//自身の中にある変数、movieclipを全て走査
if(typeof this[n]=="movieclip"){//走査した変数がmovieclipならば
this[n].myColor = new Color(this[n]);//そのmovieclipにColorオブジェクトをmyColorとして定義
this[n].myColor.setRGB(loadData.daycolor02);//myColorにloadData内のdaycolor02を設定
}
}
}
}
}
326Now_loading...774KB:2006/01/10(火) 08:11:58 ID:AdUpzYxy
Flash8以降Colorクラスは非推奨、代わりにColorTransformクラスをつかう。
これから書くなら後者での方が良いぞ。
327308:2006/01/10(火) 09:27:51 ID:EpAv1nX5
>>313
ありがとうございます。とにかくがんばってみます。
328Now_loading...774KB:2006/01/10(火) 11:05:41 ID:QT6GAYL7
ある条件が一致した場合に、スペースキーをタブキーと同じ動作にしたいのですが、
これを簡単に実現する方法はありますか?

Selectionクラスを使って、手で実装するしかないですか?
329Now_loading...774KB:2006/01/10(火) 13:25:51 ID:X2H19CGQ
Flash8です。
色々な極座標をつかってMCを動かしたいのですが知識が全くないので何からすればいいのか分かりません。
例えば、強引に螺旋をつくるなら、円運動をさせながら半径を大きくしていけばいいのですが、
極座標のアルキメデスの螺旋式を、どうアクションスクリプトで書けばいいのかさっぱりです。
よろしくお願いします
330Now_loading...774KB:2006/01/10(火) 14:07:24 ID:1GFKHMvC
>>329
他の言語では書ける?
331Now_loading...774KB:2006/01/10(火) 16:07:08 ID:tIRk7UeA
>>329
まず円運動をスクリプトで書けるのか?
とりあえずx座標とy座標に分けて考えなきゃダメだぞ
332Now_loading...774KB:2006/01/10(火) 16:09:18 ID:f9wjuTtp
内包されているMediaPlayBackのコンポーネントを徐々にフェードインして
だしたいのですが、ムービクリップと同じように、アルファをアニメーションできる項目が
なかったので、アクションスクリプトを以下のよう組んでみました。

自身のオブジェクトアクション//
onClipEvent(load){
_root.video._alpha=0
while(true){
if(_root.video._alpha > 100) break
_root.video._alpha++
}
}


video//コンポーネントのインスタンス名です。

結果、機能しなかったんですが(最初からコンポーネントが表示されています。)、なにか間違っているのでしょうか?
よろしくお願いします。

flash8pro
333329:2006/01/10(火) 17:42:05 ID:X2H19CGQ
>330,331 どうもです。CGIすこしかじった程度で、他の言語でも掛けません
アルキメデスの螺旋ですが、「r=Θ」(半径=角度)ですよね?
どう考えていけば、
_x=〜
_y=〜
ってなるんでしょう?

ちなみに、いま使ってる螺旋運動です
Flash参考書を見て数学の教科書と睨めっこして理解しただけです。
onClipEvent (load) {
//回転の中心
c_x = 100;
c_y = 100;
//半径と増加量
r = 1;
IncR = 1;
//角度と増加量
radi = 0;
IncRadi = 5;
}
onClipEvent (enterFrame) {
radi += IncRadi;
r += IncR;
radian = radi*Math.PI/180;
this._x = c_x+Math.cos(radian)*r;
this._y = c_y+Math.sin(radian)*r;
}

334329:2006/01/10(火) 18:05:30 ID:X2H19CGQ
書いてて気がつきました
r=Θなんだから、>333のスクリプトは
r==radi、IncR==IncRadiになるように考えて、

onClipEvent (load) {
//回転の中心
c_x = 200;
c_y = 200;
//半径と増加量(角度にも流用)
r = 1;
IncR = 1;
}

onClipEvent (enterFrame) {
r += IncR;
radian = r*Math.PI/180;
this._x = c_x+Math.cos(radian)*r;
this._y = c_y+Math.sin(radian)*r;

あっという間に遠くへ飛んでいってしまうなぁ
これでいいんでしょうか?
335Now_loading...774KB:2006/01/10(火) 18:17:44 ID:1GFKHMvC
>>332
whileなどのループ内では画面の再描画は行われないので
onEnterFrameかインターバルを使ったイベントで画面を書き換えよう。
onEnterFrameを使って「1フレームづつアルファの値を変える」みたいな感じ。
336Now_loading...774KB:2006/01/10(火) 18:49:40 ID:cLgJS/xb
>>329
FPS30のサイズ550*400

rot = 0;
wd = 0;
cut = 10;

onEnterFrame = function(){
rot += 5;
wd += 0.3;
rot_x = Math.cos(rot*Math.PI/180)*wd;
rot_y = Math.sin(rot*Math.PI/180)*wd;
mc1._x += (275+rot_x-mc1._x)/cut;
mc1._y += (200+rot_y-mc1._y)/cut;
}
stop();

計算とかAS全然駄目な奴が勘で作るとこんな感じ。
337331:2006/01/10(火) 19:30:34 ID:tIRk7UeA
>>329
アルキメデスの螺旋じゃなくて、円を発展させる感じで考えたほうが楽かも

329ふうにonClipEventとして書くならこんな感じ

onClipEvent (load) {
 r = 10
 rc = 0
}
onClipEvent (enterFrame) {
 rc++
 kakudo = (kakudo + r >=360) ? 0 : kakudo + r;
 radian = kakudo * Math.PI/180;
 _x = Math.cos(radian)*rc + Stage.width/2;
 _y = Math.sin(radian)*rc + Stage.height/2;
}

周間の距離が一定になってるはずです

334で書いたのは回転角度と回転半径が
どっちも『r』だからだめなんじゃないかな?
あと"Stage.width"、"Stage.height"でステージサイズの幅と高さを取得できるから
回転半径をど真ん中に置きたい場合にはステージサイズに影響されないから使える
338Now_loading...774KB:2006/01/10(火) 23:22:48 ID:w4gMWtBf
デバイスフォントの大きさが同じサイズ指定してもMacとWindowsとで違うので、
実行環境がMacとWindowsかをActionScriptで取得して、フォントサイズを
条件分岐したいと思ってます。
実行環境がMacかWindowsかを取得するにはどのコマンドを使ったらよいでしょうか?
339315:2006/01/10(火) 23:22:59 ID:+ecfbtce
>>324
>>325

みなさんありがとうございます!
こんな勉強不足の人間のために…。
やってみましたが、全滅ですた。ああ。

なんか、違う方法とってみます。
すみませんでした。
でも勉強になりました!
340Now_loading...774KB:2006/01/10(火) 23:35:05 ID:QT6GAYL7
>>338
つ System.capabilities.os
341315:2006/01/10(火) 23:49:54 ID:+ecfbtce
去っておいて、すみません。
最後に一つだけ。

どうもMC1の2フレーム目にMC2(dd02)がいて、その中にMC3(d02)がいるという構造が駄目な気がしてきました。
MC1のクリップアクションからMC3(d02)に
this.dd02.d02.loadVariables("colorno.txt");
という感じで渡すにはどうすればいいのでしょうか?
これはすべてが1フレーム目にいる場合に通用するようなのです。

たとえば
this.dd02(2).d02.loadVariables("colorno.txt");
という感じで指定できないでしょうか?

お願いします!
342Now_loading...774KB:2006/01/10(火) 23:57:37 ID:TTvP2cOA
>>341
そりゃ当たり前だよ。
別のフレームにいるならその前にそのフレームに移動しなきゃ駄目。

とりあえず
this.gotoAndStop(2);
this.dd02.d02.loadVariables("colorno.txt");
とでもやれば出来そうだけど、
そもそも、そのやり方から離れた方がいいんでは…。
343315:2006/01/11(水) 00:13:52 ID:E8I3OBqt
>>342

ありがとうございます!できました!

やっぱ当たり前でしたか。まだまだ分かって無くて。
皆さんに教えていただいた、loadVarsはまだ自分では理解できないので
いったんloadvar...でやってから勉強しつつ再チャレンジしてみようと
思います!!
やっぱスマートなスクリプトの方がいいですよね。
344338:2006/01/11(水) 00:16:19 ID:deOBJOsm
>>340
ありがとう!取得できました。助かりました。
345Now_loading...774KB:2006/01/11(水) 00:34:29 ID:6z+myDoE
>>325
横から質問すんません

これを実際に試すと
for(var n in this)のthisが、traceするとloadDataになって
内包されたMCは返されないんですけど、flash8だと平気ってことですか?
346Now_loading...774KB:2006/01/11(水) 01:08:51 ID:dXBc1+ds
ハロー(注意報)。

getTimerの精度ってどこまで保障されてるんでしょう?
どの環境でも1ms刻みの数字が返ってくるものと考えていいんでしょうか。経験的にどうっすか。

今作ってるゲームで、高フレームレートと正確な実行速度が欲しいので
Flash自体のフレームレートは100fpsにして、
フレーム内ではgetTimerの変化ぶん進めるようなことをやってるんですが、
もしgetTimerの精度が低い環境があると動きがカクついてしまうなと。
そういうのJavaアプレットやiアプリで何度も経験してまして。

一応、手元の3台のWindows PCのIEでは60fpsから90fpsでなめらかに動いているようなんですが。
wmodeの変更は無しです。カーソルキーを使うし、完全に正しい実行速度にはならないので。
347Now_loading...774KB:2006/01/11(水) 01:17:39 ID:AZQujnRA
>>345
Flash8どーのこーのではなく、内包されたMCが返ってくるようにすればいい。
>325のASの for( var n in this) { } の中身を

for (var n in _root.my_mc) {
if (typeof _root.my_mc[n] == "movieclip") {
var myColor = new Color(_root.my_mc[n]);
myColor.setRGB(Number(loadData.daycolor02));
}
}

にする。_root.my_mcはMCを内包しているMC(大元のMC)のインスタンス名ね。
348Now_loading...774KB:2006/01/11(水) 01:36:43 ID:AZQujnRA
>>346
過去ログ見ると

内部的には結構信頼できると思うけど、
値を参照→表示
とかに時間がかかるのであまり信頼できない。

らしいよ。
349345:2006/01/11(水) 01:55:28 ID:6z+myDoE
>>347
すいません。質問の仕方が悪すぎました。
「このthisがFlash8ならムービークリップを返す」か否かを聞いてみたかったんです。

flashmx2004でターゲットパスを挿入でASを書いたMCを指定しても、
相対パス指定だとthisと表示されるので動くはずなのに、実際は違うものが返されましたが、
詳しく解説してくださっている部分はMCを返す表現をしていたので、
自分の設定やなにかで変わるのか、それともヴァージョンによる違いなのかを
確認したかったのです。

分かりづらくてすみません。
350347:2006/01/11(水) 02:05:34 ID:AZQujnRA
>>349
それはすいません。いや、すいますいません。
loadData.onLoad = function(s){} 内に
thisを書いてるからloadDataが返ってくると予想。
Flash8持ってないけど同じようになると予想。
351Now_loading...774KB:2006/01/11(水) 02:47:07 ID:FYB2KsDf
質問です。

swfに外部swfを読み込む際に、読み込み時に、下のムービーを消さずに
再生したいのです。
例)池の上に魚を読み込むような感じ。
  このとき、池が消えないように、魚を外部から読み込みたい。

loadMovieNumで、stage_mcに外部swfを読み込んだのですが、
何の反応もしません。


簡単なもので、以下のように実験しました。

ボタンとstageのMCを用意して、
ボタン_mcに

on(release){
_parent.stage.loadMovieNum("A.swf",10)
}

ちなみに、loadMovie("A.swf")
は、うまくいきましたので、パスは間違っていません。
なにか、ごく基本的なこと見落としてしまっているのでしょうか?
ちなみに、WinXP,MXPro2004,Player7です。
よろしくお願いします。
352Now_loading...774KB:2006/01/11(水) 06:22:24 ID:S+0IlYUq
on(release){
_parent.stage.loadMovie("A.swf");
}
ができてるってこと?
353Now_loading...774KB:2006/01/11(水) 06:36:49 ID:S+0IlYUq
追記:
つかloadMovieやloadMoviNumと_mc.loadMovieは違うぞ。
それぞれの引数とか使い方をヘルプでチェック。
354Now_loading...774KB:2006/01/11(水) 10:02:02 ID:m5jnDU/k
351です。
ヘルプやら参考サイトにかじりついてやっとこさloadMovieNUMを理解できました。インスタンスは必要なかったのですね。
loadMovieNUM(swf,1)のみで読み込めました。アドバイスくれた方に感謝です。ありがとうございました。
355329:2006/01/11(水) 12:14:53 ID:CS1kKpg7
>336,337 ありがとうございます。螺旋は出来ました。
カージオイド曲線とか花びら見たいのも挑戦してみます。
this._x = c_x+Math.cos(radian)*r;
this._y = c_y+Math.sin(radian)*r;
これを基本にして、各極座標の条件に合うようにいじればいい気がしてきました
356みゆ:2006/01/11(水) 15:34:53 ID:t6rDFzfA
ムービクリップA内にあるボタンAから、
ルートにあるものを操作させたいのですが、反応しません。


以下がボタンAのASです。

on (press) {
_root.video._alpha=0
}


ボタンAを押すとムービクリップAが消えるようにしたいです。
初歩的な質問かもしれませんが、よろしくお願いします。
357Now_loading...774KB:2006/01/11(水) 15:57:52 ID:KuLxPtAv
on (release, releaseOutside) {
_root.video._visible = 0;
}
358Now_loading...774KB:2006/01/11(水) 16:00:25 ID:KuLxPtAv
というかインスタンス名ちゃんとvideoになってるの?
359Now_loading...774KB:2006/01/11(水) 16:21:05 ID:kUhrX+6s
>>356
非表示にしたいだけなら_visible使いなよ
360Now_loading...774KB:2006/01/11(水) 16:21:45 ID:kUhrX+6s
357が書いててくれたね。スマン
361Now_loading...774KB:2006/01/11(水) 17:05:27 ID:XOasW1J4
環境
WinXP FLASH8

ムービークリップで右から左へ動くようなアニメーションをさせています。
この動かす対象を変更したいです。

具体的にいうと
ムービークリップ→プロパティ→シンボルの入れ替え
で対象のインスタンスをライブラリの入れ替えしたいです。
どのような関数を使用すればよいのでしょうか?

よろしくお願いします。
362Now_loading...774KB:2006/01/11(水) 17:25:58 ID:WDJXuQFC
質問させてください。
ブラウザが閉じられたり、ページが移動したりしたときに、
それをFlashムービーが感知して処理を行うことはできますか?

例えば、ブラウザが閉じられたときにFlashムービーから
CGIに値を送信する。というような処理です。
363みゆ:2006/01/11(水) 19:25:42 ID:t6rDFzfA
解決しました!
alphaは、なぜか効かないみたいですね。
そういうものなのかな。。
ありがとうございました。
364Now_loading...774KB:2006/01/11(水) 21:41:21 ID:6uJ9LT2C
>>361
右から左に動く空のMCを作成して
そこにattachMovie

>>362
Flashだけでは無理かな。
JavaScript使えば出来そう。
365Now_loading...774KB:2006/01/12(木) 00:05:07 ID:ZU33uKVg
>>362
別窓開いてLocalConnection使うとか
366Now_loading...774KB:2006/01/12(木) 01:26:52 ID:PlCKlno8
WIN FLASH5/MX2004使用です。
NPCと対戦するゲームで、自分の番→NPCの番→自分…と順繰りにさせるには、
どういった処理をすれば良いでしょうか?
頭をフル回転させてみたんですが
カラMCに、プレイヤーに順繰りに変数を渡していくスクリプトを書き
ゲームを動かすスクリプトの詰まったMCへその変数をぶっこんで、プレイヤーごとに動かして行く
…というどんくさい処理しか思い浮かびませんでした。
ババ抜きや人生ゲームのような、動きは一定で複数人のNPCがいる類いのゲームです。
スクリプト自体でなくてすみません。お知恵をかして下さい。
367Now_loading...774KB:2006/01/12(木) 01:34:19 ID:r+Vjg2t+
>>366
ゲームを作れるレベルにあって、
その程度を組めないってのは想像出来ないんだけど…。

onEnterFrame, setInterval, 又はfor等で一気に処理にしても、
その処理が終わった時点で中断or停止してから
自分の操作を再設定でいいんじゃないの?
368366:2006/01/12(木) 01:37:43 ID:PlCKlno8
補足です
>カラMCに、プレイヤーに順繰りに変数を渡して行くスクリプトは
ゲームを動かすスクリプトの1プレーヤー分の処理が終了したら
カラMCにプレイヤー01の番が終了したとフラグを立てる
(カラMCの中の処理)→01終了のフラグが立ってたら、
ゲーム部のスクリプトを次のプレイヤー02で開始させる
以降、02終了フラグが立ってたら03、03終了が立ってたら元に戻って01…

何かもどかしいというか、多分変ですよね。ご指導お願いします。
369Now_loading...774KB:2006/01/12(木) 01:40:14 ID:25zAKlwq
自分の番で発生するイベントハンドラをトリガーにしてNPCの処理とかすればいいんでねーの?
370366:2006/01/12(木) 01:41:36 ID:PlCKlno8
>367
その一気に処理するというのがどうしたらいいか、よく判らなかったもので…。
そうですね、要は繰り返させればいいんですよね。ヒント掴めました。ありがとうございます。
371366:2006/01/12(木) 01:44:29 ID:PlCKlno8
>369
連レスすみません。
自分の番→NPCの処理をfor辺りでループさせる→止める→自分の番…
こんな感じでしょうか。
もっと勉強してきます。ありがとうございました。
372Now_loading...774KB:2006/01/12(木) 20:15:17 ID:Qlh/Yqmq
すみません。ある程度探しましたが、なかったので質問させていただきます。

_x==50になるまで_x ++;を繰り返し、50になったら次に移動 というASはどのようにすればできますか?
373Now_loading...774KB:2006/01/12(木) 20:36:28 ID:zRaxfP7e
>>372
MCインスタンスの移動のことかな?
374Now_loading...774KB:2006/01/12(木) 20:47:46 ID:wDzenzXP
>>372
次って何?
375Now_loading...774KB:2006/01/12(木) 20:58:01 ID:u3nPDAbZ
>>372
何がやりたいかよく分からないけど、こういう事?

//フレームを止める
stop();
mc.onEnterFrame = function() {
if (mc._x < 50){
mc._x++;
} else {
delete mc.onEnterFrame;
//次のフレームに移動
nextFrame();
}
}
376Now_loading...774KB:2006/01/12(木) 22:01:08 ID:Qlh/Yqmq
説明不足ですみませんでした。
アクションゲームなどの足場などの当たり判定のところで、今までは
onClipEvent(enterFrame){
_y+=2;//実際には違うがこのような感じに重力を設定
for (i=0;i<=5;i++){
if (_root.stage.hitTest(_x,_y,true)) {_y--;}//押し戻し
}
}
とforを使って押し戻しを繰り返すことでやってきましたが、
forだと無駄な場合も出てきてしまうので、ifのhitTestがtrueだったらもう一回ifをやり、
falseだったら繰り返さないという風なことはできないかと考えました。
377Now_loading...774KB:2006/01/12(木) 22:23:28 ID:QLZt9VVm
whileでいいんじゃね
378Now_loading...774KB:2006/01/12(木) 22:33:35 ID:wDzenzXP
forの間は画面再描画は無いから、_y-=5;と同等になるのでは?
hitしたら足場の上に戻すという単純な方法でいいんじゃないかな。
379Now_loading...774KB:2006/01/12(木) 22:57:11 ID:Qlh/Yqmq
みんなサンクス。とりあえずwhileを使うことにする。
なんかC言語のとこを参考にしたが、
while(_root.stage.hitTest(_x,_y,true)) {_y--;}
でいいのかな
てかifとwhileが変わっただけやんwこんなの知らなかったなんて恥だなorz
ありがとでした。
380Now_loading...774KB:2006/01/13(金) 00:58:26 ID:5cZBCBOb
>>379
普通MCの座標を動かすのにforとかwhileとか使わないと思うけど。
上からMCが落ちてきて地面にぶつかったら(y座標が規定値を超えたら)押し戻す処理なら
onEnterFrameとif文でできないかな。
381Now_loading...774KB:2006/01/13(金) 08:01:28 ID:+G9x7kBK
複数のMCのX,Y座標を配列に入れて一度にforで処理するのはわかるが
ひとつのMCをチェックするのにforやwhileを使う必要は無いでしょ。
>>376のスクリプトで言うとなぜ1フレームで6回処理する必要があるのか?
whileにしたところでhitしたときは1回しか処理されないし。だったらifでいいじゃんと。
>>380の言うようにenterframe,ifで問題なし。
382Now_loading...774KB:2006/01/13(金) 12:09:04 ID:ywz++GGq
まだまだ未熟者です。
突然ですが、書き出しして、問題なくフラッシュを見ることはできるのですが、
タイムライン上でプレビューしようとすると、5フレームぐらいで止まるんですが
なぜでしょうか?
わかる方教えてください。

ちなみに、自分はMCを使わずにグラフィックシンボルで作っています。
ソフト:flash MX
383382:2006/01/13(金) 12:09:40 ID:ywz++GGq
すいません、ageました、、、
384382:2006/01/13(金) 12:10:37 ID:ywz++GGq
すいません、誤爆しますた。。。
385Now_loading...774KB:2006/01/13(金) 15:09:10 ID:VsXXwlcF
いまポトリスのようなゲームを作っているんですが、
弾が地面に当たると地面が削れるようにしたいんですが、
どうすればいいんでしょうか?
よろしくお願いします。
386385:2006/01/13(金) 15:14:39 ID:Ps1ru+2P
すいません、環境書くのを忘れました
flash mx professional 2004です。
387Now_loading...774KB:2006/01/13(金) 15:51:16 ID:eBYLI5Tl
>>385
毎フレーム、弾のMCと地面のMCをhitTestで接触判定して
接触していたら地面MCを消す。

スクリプト書けというなら、
このスレのほとんどの奴がふざけるなと言うと思う。
388Now_loading...774KB:2006/01/13(金) 16:15:30 ID:iVTDMpHr
>>385
現状で、地面はどういう風に書いてるの?
グリッドで管理してる?それともふつうに書いてる?

前者だったら、どのグリッドに着弾したかを判定して、消せばいいだけで、
後者だったら、Flash8以降であれば、ビットマップデータに変換しておいて、
着弾周辺のピクセルを消す処理になるよ。
8なら割と楽だけど、2004以前だと厳しい処理かもね。

2004で後者なら、消すんじゃなくて、着弾地点に背景色と同じMCをattachして
見た目削れてるようにするのが楽なんじゃないかな?増えてくると厳しいけど。
389385:2006/01/13(金) 16:31:53 ID:53v7uFFH
>>378-388
ありがとうございます。
Flash8以降じゃないと厳しいのかorz
390385:2006/01/13(金) 16:32:34 ID:53v7uFFH
すいません、誤爆です
391Now_loading...774KB:2006/01/13(金) 17:04:08 ID:Uph/ZoMW
>>380,>>381
問題大ありです。
説明していないところがあるので、それではできなくなります。すみません。
 ■  ■

■■■■■
このような感じのステージ画像が_root.stageの中身となります。
この状態では画像と画像のhitTestは使えないので、片方を点にしました。
それにより、一つの画像だけで段に乗るということができます。
そして地面、天井、壁が同じというわけではないので、
規定値を越えたら・・・ということはできません。

そして重力もenterFrameで
juu+=1.5; _y += juu/4; if(地面に降りたら){juu=0};
という風にやっており、場合によっては1以上めり込んでしまう場合があるので、
forやwhileを使う必要があったのです。
地面だけの場合はそれでも必要ありませんでしたが、
複数場所があるのでそれではダメです。

長文失礼しました。
392Now_loading...774KB:2006/01/13(金) 17:44:39 ID:eKb95G/I
重力とかの加速度とあたり判定は無関係でしょ。
ヒットポイントは一つだけなのかな?
キャラクターに何カ所かあたり判定ポイントを設定したりするけど。
いずれにしても、hittestをループで戻るまで呼ぶなんて、俺は絶対やらんな。
ヒットしたらそれの座標を計算して戻してあげればいいだけ。
393Now_loading...774KB:2006/01/13(金) 17:47:44 ID:eBYLI5Tl
>>391
えーと、それは一枚の画像をバックに置いて
座標値で地面を決めているということ?
だったら地面座標よりMCが下に行った場合は、
MCのy座標をマイナスして地面座標に近づけるという方法ではなく、
MCのy座標を地面座標にすればいいだけじゃないの?
394Now_loading...774KB:2006/01/13(金) 18:00:12 ID:Uph/ZoMW
ちなみにParaFlaです。
>>392
ふむ、計算ですか。
現在は地面のy座標は3つ(実際には段がもう一つ上にある)なので、
これはそっちのほうがいいかもしれない…

ですが、ナナメがモーフィングさせたときにそれでは対応できないか・・・

>>393
画像そのものが当たり判定になってます。
キャラの足のところの点が地面の画像に当たると押し返す・・・みたいな
地面の座標は考えて描いたので分かりますが…
395Now_loading...774KB:2006/01/13(金) 19:35:25 ID:eBYLI5Tl
ああ、地面がうねっていたりした場合に、
MCと地面のY座標差が判らないってことね。
それなら俺もループ処理ぐらいしか思いつかないな。
8ならビットマップで当たり判定とれるが、paraflaか・・・。
396Now_loading...774KB:2006/01/13(金) 22:03:20 ID:lrqBlCg4
どうしてもその方法でっていうなら、地面の座標を
今回と前回のMC座標との間で2分法を使って探索すれば
ある程度は計算オーダーを稼げると思うよ
397Now_loading...774KB:2006/01/13(金) 23:50:07 ID:Uph/ZoMW
>>395
一応ParaFlaでもフィルタとか影とか8は使えるのでもしかしたらできるかもしれませんが…
8はよくわからん(´・ω・`)

>>396
2分法は詳しいことは知らないが、
今の当たっているときと、1フレーム前の当たっていないときの座標を取り、
その間の地面の座標を求め、_yに入れるということ?
ふむ、それならよさそうだけどやり方がorz
398Now_loading...774KB:2006/01/14(土) 03:13:53 ID:s3zLmntW
>>397
var a = 前回のY座標
var b = 今回のY座標
var rimit = 10; // 最大探索回数
var eps = 0.1; // 収束条件
var m;
do {
m = (a + b) / 2;
if (_root.stage.hitTest(x,m,true) == true) {
b = m;
} else {
a = m;
}

if (--rimit < 0) { break;} // 探索打ち切り

} while (Math.abs(b - a) >= eps);

y = a; // 結果

ちなみにこれX座標については全く考慮してないから。ただ上に押し上げるだけ。
でもこれで早くなるかどうかは実際に動かしてみないと分からん。
X座標も変化させたいならMCの移動関数から導くとか直線補完したりしてくれ。
2分法については詳しくはググればいくらでも出てくる。
399Now_loading...774KB:2006/01/16(月) 18:26:46 ID:P+/bYnKS
下記の条件でFLVファイルを読み込んでいるのですが、completeイベントでの処理が発生しません。
いろいろ試してみましたがNGなので、質問させていただきます。
どなたか原因に心当たりのある方がいましたら、レスしていただけると助かります。
Flashバージョン:Flash8 Professional(Windows)
FLVエンコードソフト:Flash8付属のVideo Encoder(Flash作成と同一マシン)
 FLV出力設定は、Flash7標準品質とFlash8標準品質の両方
 FLVファイル名は「sample1.flv」です。

コードは下記です。
コードについては、Flashのヘルプをほとんどそのまま使用しています。

import mx.video.*;
var listenerObject:Object = new Object();
listenerObject.ready = function(eventObject:Object):Void {
my_ta.text = "fin";
};
my_FLVPlybk.addEventListener("ready", listenerObject);
my_FLVPlybk.contentPath = "sample1.flv";

補足としてですが、completeイベントでのイベントは動かないのですが、readyイベントに変えてみると再生の初めに正常にイベントが発生しテキストエリアにfinと表示されました。
以上、わかりにくい部分があるかもしれませんが、よろしくお願いいたします。
400399:2006/01/16(月) 21:08:29 ID:VIhD7eZ/
ちなみに、FLVファイルの再生時間は60秒ほどで、ローカル環境で試しています。
401Now_loading...774KB:2006/01/16(月) 21:53:04 ID:fupWklTl
Flash MX 2004を使っているのですが、if文の分岐で「(ムービークリップ名:selectMC)が3フレーム目の時だけ働く」というのはどういったif文を書けば良いのでしょうか?
ASに詳しい方、是非ともよろしくお願いします。
402Now_loading...774KB:2006/01/16(月) 22:00:14 ID:TPbDPTY2
onEnterFrame=function(){
if(selectMC._currentframe == 3){
this.play();
}
}
とかそんな感じ。
何が働くのか良くわからないから
this.play()にやりたいこといれてくれ。
403Now_loading...774KB:2006/01/16(月) 22:44:02 ID:fupWklTl
>>402
ありがとうございます。
ちなみに、「selectMC」が3フレーム目で、「Leftキー」を押したとき
という条件だと、

onClipEvent (keyDown) {
if(Key.isDown(keyLEFT) && (selectMC._currentframe == 3)) {
 上記の時行うこと}
}

といった記述方法で間違いないでしょうか?
試して見たのですが、どうにも働かず…。
なんども申し訳ありませんが、よろしくお願いします。
404Now_loading...774KB:2006/01/16(月) 22:44:56 ID:8dZFOuyO
質問です。
あるときに画面のどこでもいいからクリックしたら特定の処理をしたい場合に
画面サイズのMC(base)をつくって以下のASを実行させたのですが
base.onPress = function(){
 //処理終了
 this.onPress = null;
 this._visible=false;
}
次にbase._visible = trueにしたときに
頼みもしないのにbase上のマウスカーソルが指の形のままになってしまいます。
(クリックしても反応はなし)
onPress = function()を解放してもマウスがRollOver反応のはなくならないのでしょうか?

XPでFLASH8(パブリッシュ設定は6)使ってます。
405Now_loading...774KB:2006/01/16(月) 22:48:15 ID:TPbDPTY2
keyDownがちゃんと動いているか
onClipEvent (keyDown) {
if(Key.isDown(keyLEFT)){
trace("OK");
}
}
とかで一つづつ動作ためしていくとよろし

多分、ASかいている場所が違うMCで、パスが異なっている。
_root._selectMC._currentframe == 3
で行けるかな。
406Now_loading...774KB:2006/01/16(月) 22:52:18 ID:TPbDPTY2
>>404
useHandcursorかな?

Flashでつくられたサイトでクリッコして画面が変わっても
指の形は残っちゃう仕様だからそっちかも

マウスカーソル消すか、リフレッシュして
再描画すれば消えるかも。今、試す環境無くてスマン
407Now_loading...774KB:2006/01/16(月) 23:26:56 ID:fupWklTl
>>405
本当に何度も申し訳ありません。
色々教えてくださったにも関わらず、結局出来なかった私をお許し下さい。
一応、作成途中のflaファイルをUPしますので、宜しければご指南の程よろしくお願いします。

ttp://www.uploda.org/
上記「upローダー」の288371番です。
408Now_loading...774KB:2006/01/17(火) 00:46:22 ID:FfgYTOrY
計算した値を少数第2まで表示させたいのですが、
どうしたらよいですか?
409Now_loading...774KB:2006/01/17(火) 00:54:26 ID:Qufq7UNr BE:39644633-
>>408
100かけて小数切り捨てて100で割ったら求まりますよ〜
410Now_loading...774KB:2006/01/17(火) 00:56:05 ID:6+LQdW+s
>>407
onClipEvent (keyDown) {
if (Key.isDown(key.LEFT)) { //←「.」が抜けてる。
trace("OK");
}
}
教えてもらったASがどういうことをやっているのか考えたらわかる。
411Now_loading...774KB:2006/01/17(火) 21:39:47 ID:Ck6hMZ4k
onClipEvent(enterFrame) と onEnterFrame の違いについて考えてたんだけど、
onClipEvent(enterFrame) が Flash Player 5 で、
onEnterFrame が Flash Player 6 で、
onEnterFrame のほうが、いろんなところで呼び出される関数を切り替える自由度があるよね。
つまりその自由度のために onEnterFrame が生まれたってことで、
onEnterFrame のほうを使用するのが推奨されてると考えていいんだよね?
412Now_loading...774KB:2006/01/17(火) 22:24:02 ID:05Esgxak
>>411
onClipEventは同じシンボルをASだけ変えて配置するのに便利。
どちらもアリ。
413Now_loading...774KB:2006/01/18(水) 01:47:00 ID:pnhnj0Ef BE:52859243-
>>411
インスタンスを
静的に作るならonClipEvent(enterFrame)
動的に作るならonEnterFrame
414Now_loading...774KB:2006/01/18(水) 02:01:57 ID:rshw4oq3
on〜はイベントドリブンを実装したという感じ。
ASというoopを目指してる言語とはちょっとちがう気がする。
自分としては、リスナーやらいろいろ使える方がいいし、
どうせ学ぶんなら進化していく方を選ぶな。
415411:2006/01/18(水) 02:06:34 ID:NHWBm/uJ
>>412
ごめん、状況がよくわからない。
よければ、onClipEventでのコードとonEnterFrameでのコードを書いて見せて。

>>413
そう使い分けると、どうなるの?
それがあなたのポリシーって話なのか、そうすると保守性がよくなるのか、
そうすると速度的に有利だとか、そのへんの話が見えないよ。
416Now_loading...774KB:2006/01/18(水) 02:22:48 ID:h/dLrrJr
>>411
多分5の頃はカンタンプログラミング寄りの設計で
6から潮流にあわせたoopを目指した結果だと思うが。

速度はたぶんコンパイルすると同じ処理になるから
変わらないはず。試してないけど。

個人的にはあるMCが独立した動きをして他に影響しない場合、
親の変数を見て色が変わるだけとか、のときのみ
気楽にイベントハンドラで適当に書いてる。

つうか偉そうだな喪前
417Now_loading...774KB:2006/01/18(水) 10:38:51 ID:c2pxWpU+
attachMovieでMCを読み込み、その読み込んだMC全てに同じスクリプトを実行させたいならフレームアクション。

最初からステージに同じMCを複数配置し、その全てに個別のスクリプトを実行させたいならクリップアクション。
フレームアクションで全てを別々にコントロールすることもできるがその辺は好みや状況に応じて。
418Now_loading...774KB:2006/01/18(水) 14:42:56 ID:UjxSyQkG
my_str = "名前,1000";
var my_array = my_str.split(",");
my_array[1] += 500;
trace(my_array[1]);

「1500」という結果を期待してこのようなコードを書いたのですが、
「1000500」のように、ストリングスの足し算みたいになってしまいます。
2行目と3行目の間に
Number(my_array[1]);
を追加しても結果は同じでした。

どうかアドバイスをよろしくお願いいたします。
419Now_loading...774KB:2006/01/18(水) 15:02:30 ID:rshw4oq3
Number();は引数自体を変える訳じゃないよ。
戻り値が数値となるわけだかから、元の配列を使いたいなら、
my_array[1] = Number(my_array[1])+500;
な、感じかな。
420Now_loading...774KB:2006/01/18(水) 15:03:52 ID:c2pxWpU+
>>418
my_str = "名前,1000";
var my_array = my_str.split(",");
my_array[1] = Number(my_array[1])+500;
trace(my_array[1]);

my_str = "名前,1000";
var my_array = my_str.split(",");
my_array[1] = Number(my_array[1]);
my_array[1] += 500;
trace(my_array[1]);
421Now_loading...774KB:2006/01/18(水) 15:12:08 ID:UjxSyQkG
>>419
>>420
そういうことだったんですかー!
勉強になりました。
どうもありがとうございました。m(_ _ m)
422Now_loading...774KB:2006/01/18(水) 19:15:30 ID:Tshyp6qg
ソフト=FlashMX2004, OS=Win98SE

2点質問があります
Q1)検索対象のTxt(txt1)があり、テキストフィールド(変数:sw)内に文字列
を入れてtxt1内を検索し、swの位置をtxt1.indexOf(sw)で求めようとしています。
一応成功はしたのですが、swが大文字・小文字に関わらずヒットします。そこで、
例えばABCとAbcを区別して検索する方法がありましたら教えて下さい。

Q2)過去にダイナミックテキストの欄(フォント:MS Pゴシックの24pt)を一旦
作り、これを再利用したのですが、表示される文字が到底24ptとは言えず、どう
見ても10pt位にしか表示されません。欄を拡大すれば解決しましたが、このような
現象はよく発生します。対策がありましたらお教え願います。
423Now_loading...774KB:2006/01/18(水) 19:53:53 ID:p3sIfJbA
>>422
Q2)は変形しちゃってるとか?
424Now_loading...774KB:2006/01/18(水) 20:13:46 ID:rshw4oq3
>>422
大文字小文字に関わらずヒットする例を知りたいが。
425Now_loading...774KB:2006/01/18(水) 21:00:21 ID:1Ws/cuPj
>>422 Q2)

これ俺も苦労したんだよ〜。
そのとき調査した結果をコピペしてあげよう。


自由変更ツールやプロパティ入力などでテキストボックスの幅・高さを
変更すると、その比率が文字の幅・高さにかかってしまうようなのだ。

埋め込みナシ → 高さの比率が、文字の大きさにかかる
埋め込みアリ → 幅・高さの比率が文字の幅・高さにかかる


なので、テキストフィールドは、テキストツールでのみしか触らない。
これが鉄則。
426Now_loading...774KB:2006/01/18(水) 21:28:42 ID:XBJIOHcp
>>424
String.toLowerCase()
427422:2006/01/18(水) 22:04:42 ID:ROR1AeF4
>>424 大文字小文字に関わらずヒットする例を知りたいが。

うっ! なんか不安になってきた。Q1)については結果を再確認します。


>>423-426
Thxです。
428422:2006/01/19(木) 04:46:08 ID:dv+Tiuvy
>>424
やっぱり、大文字小文字を識別してヒットしていました。
なのでQ1)はナシです。
429Now_loading...774KB:2006/01/19(木) 16:25:24 ID:Jzk9fXBc
「スタートページに登録ボタン」を作るにはどういう記述をすれば良いのでしょうか。
「お気に入りに追加」ボタンのように

on (release) {
getURL("javascript:window.external.AddFavorite('URL','サイト名')");
}

と簡単にはいかないようで。。

setHomePageをキーワードとしてググると、海外サイト情報ばかりで
下記のような記述が出てきますが理解不能です。

on (release) {
getURL("javascript:void(document.links[0].style.behavior='url(#default#homepage)');void document.links[0].setHomePage('URL/');", "_self", "POST");
}

どなたかお助け下さい。
430Now_loading...774KB:2006/01/19(木) 17:25:58 ID:JHN3ApPc
>>429
javascriptで作れる?
出来たらそれをgetURLするだけ
431429:2006/01/19(木) 19:36:31 ID:Jzk9fXBc
レスありがとうございます。
やってみましたが、動作しません。。。

on (release) {
getURL("javascript:window.style.behavior='url(#default#homepage)'; window.setHomePage('URL')");
}

windowの部分を
window.document.all('ID')
としてもみましたが駄目です。

何がいけないのでしょうか。
432Now_loading...774KB:2006/01/20(金) 01:57:51 ID:feM+MLoz
んな迷惑なボタン作んな。
433Now_loading...774KB:2006/01/20(金) 04:23:00 ID:bvUefkbG
ちょっとはまり気味なので質問させてください。
ゲームを作っているのですが、自キャラと壁の当たり判定をhitTestを使って以下のようにしているのですが

●自キャラ(MC_char)
on(EnterFrame){
 // 右に進む場合
 _root.backup_x = _x;
 _root.backup_rx = _root._x;
 _x += 4;
 _root._x -= 4;
}
●壁(MC_wall)
on(EnterFrame){
 if(this.hitTest(MC_char._x,MC_char._y,true)==true){
   MC_char._x = _root.backup_x;
   _root._x = _root.backup_rx;
 }
※右方向以外の3方向は省略

以前は、ASの実行順番が「壁→自キャラ」になっていました。
そのときは普通に動いていたのですが、
レイヤーの関係で実行順番を「自キャラ→壁」にしたところ、壁に当たった場合、そのままくっついてしまう現象が起きました。orz
(壁に当たった後、壁と逆向きに動いても、hitTestの反応がtrueになり続ける)
なぜこんなことになるのかわかりません。助けてください。

OSはXPで、FLASH8を使っています。
434Now_loading...774KB:2006/01/20(金) 04:29:05 ID:bvUefkbG
追記
_root._xを動かしているのは、自キャラを動かさずに画面スクロールだけさせるためです。
435329:2006/01/20(金) 12:27:21 ID:0tR9PI6j
Flash8でラジオボタンコンポーネントです。
ラジオボタンを押したときに何も出力されないのですが、何が行けないのでしょうか?
よろしくお願いします。

firstValue = radioGroup.getValue();
trace(firstValue);
radioGroup.setChangeHandler("kType");
function kType(){
trace("kType");
}
436Now_loading...774KB:2006/01/20(金) 12:38:22 ID:VUyede4K
>>434
デバッガでステップ実行してみる。
>>435
まずは、RadioButton コンポーネントのヘルプを見て、そこから始めてみそ。
437Now_loading...774KB:2006/01/20(金) 12:50:00 ID:ZoVAQm8e
>>435
var listenerObject:Object = new Object();
listenerObject.click = function(eventObj:Object) {
trace(radioGroup.selectedData);
trace(radioGroup.selection);
};
radioGroup.addEventListener("click", listenerObject);
438329:2006/01/20(金) 14:44:25 ID:0tR9PI6j
click でいいのね。
actionscript辞典もってるんだがこれが古いのかw
ヘルプもみてみます。ありがとうございました。
439Now_loading...774KB:2006/01/20(金) 16:53:38 ID:F+LsHGwA
labelコンポーネントのFontSizeを
ActionScriptで変更するにはどうすればいいんのでしょうか?
「ラベルのインスタンス名」.fontSize = 100;
とかやってみても、変わりません、、
宜しくお願いします。
440Now_loading...774KB:2006/01/20(金) 17:16:17 ID:quY4CN9B
v2コンポーネントなら、
ラベル名.setStyle("fontSize",100)
でどうでしょ
441Now_loading...774KB:2006/01/20(金) 17:34:55 ID:VUyede4K
>>439
コンポーネントの大きさが小さいとか。24とか32でやってみ。
442Now_loading...774KB:2006/01/21(土) 01:42:13 ID:hj7DwfdM

Flash8使ってるのですが、↓ここのサイトの
http://www.3enhancedesigners.com/tutorials/flash/pulldownmenu/pulldownmenu1.asp
コレをつくったのですが、ボタンを押してもメニューが出てきません

こんな感じのメニューにマウスを乗せるとリンクボタンがスクロールして出てくる物を作りたいのですが
1フレーム目にメニューボタンを置き、2フレーム目以降にスクロールしてるモーションを作り、
適当なところ(15フレーム目くらい)で止めて、
メニューと出て来たリンクボタンからマウスが離れると1フレーム目に戻る物を作りたいのですが、

1フレーム目で、
stop ();
メニューボタンに 
onRollOver{
� � this.gotoAndStop(15);
}
2〜15フレーム目
何もなし

16フレーム目
stop ();
gotoAndPlay(1);

って、全然だめですよね。初めてAS弄ってみたんですがサッパリ分かりません。
何か良い方法はありませんか?お願いいたします
スレ違いでしたら誘導お願いします。
443Now_loading...774KB:2006/01/21(土) 07:31:16 ID:vSkfT/Nv
>>442
ボタン内部のタイムラインには何も書かなくていいです。
以下のスクリプトをボタンの置いてあるタイムラインに書いてください。

//ボタンの再生を止める。
btn.stop();
//マウスオーバーで2フレーム目から再生
btn.onRollOver = function() {
btn.gotoAndPlay(2);
//1フレームごとに実行
btn.onEnterFrame = function() {
//もし、ボタンの再生フレームが16フレーム目なら・・・
if (btn._currentframe == 16) {
//ボタンの再生を止める。
btn.stop();
//1フレームごとに実行する処理を消去
delete btn.onEnterFrame;
}
};
};
444443:2006/01/21(土) 07:32:08 ID:vSkfT/Nv
続き

/*
//マウスアウトで1フレーム目に徐々に移動するならコメントはずす。
btn.onRollOut = function() {
//1フレームごとに実行
btn.onEnterFrame = function() {
//もし、ボタンの再生フレームが2フレーム目より後なら・・・
if (btn._currentframe>=2) {
//ボタンの再生フレームを1つ前に移動
btn.prevFrame();
} else {
//ボタンの再生フレームが2フレーム目の前なら1フレームごとに実行する処理を消去
delete btn.onEnterFrame;
}
};
};
*/
/*
//マウスアウトで1フレーム目に直ちに強制移動するならコメントはずす。
btn.onRollOut = function() {
btn.gotoAndStop(1);
};
*/
445442:2006/01/21(土) 08:28:05 ID:hj7DwfdM

>>443-444
ASありがとうございます.でもなんかマウスのせなくてもスクロールしちゃって
離れても止まんないです。何が悪いんだろう。。。
ボタンの置いてあるタイムラインってことはレイヤーは違くても大丈夫ですよね?
あと、>>444からは、強制移動する事にしたので
btn.onRollOut = function() {
btn.gotoAndStop(1);
};
だけを>>433に続けて書き込めばいいんですよね?
なんでうまくいかないんだぁorz

446Now_loading...774KB:2006/01/21(土) 08:40:56 ID:vSkfT/Nv
>>445
ボタンのインスタンス名をbtnにすれば大丈夫。
もしくは自分で好きな名前をつけてスクリプトのbtnの部分を書き換えればいいよ。
447329:2006/01/21(土) 10:17:39 ID:nMJfzH3U
Flash8使ってます
ドキュメントプロパティで、背景色やステージサイズを変更できますが、
スクリプトで背景色を変えることって出来るでしょうか?
よろしくお願いします
448Now_loading...774KB:2006/01/21(土) 10:31:10 ID:Y+YcRaM7
>>447
ASでステージの色は変えれない。
MCをステージに配置して色を変える。
449329:2006/01/21(土) 12:24:52 ID:nMJfzH3U
そうでしたか。ありがとうございましたー
450Now_loading...774KB:2006/01/21(土) 12:41:11 ID:83cMkqRe
Flash 8 です。
setPixel32をつかって円を描くことってできますか?
451Now_loading...774KB:2006/01/21(土) 13:00:09 ID:6ohh19kh
>>450
なんでできないと思ったか謎。
452Now_loading...774KB:2006/01/21(土) 14:25:18 ID:Vr9PXI1X
Flash8で、Flash8/ActionScript2.0用にパブリッシュしています。

MXから8に移行したのですが、ビットマップにボカシがかかって汚くなってしまいました。
最低画質に設定すれば良いのですが、それだとベクトルデータの方が汚くなります。
ビットマップは、アニメーションGIFを取り込んで状態で、
各フレームに1枚ずつ配置されたムービークリップです。

どうにかこのムービークリップだけ低画質にする方法はないでしょうか?
453Now_loading...774KB:2006/01/21(土) 16:37:28 ID:hd1EjpQr
>>452
_qualityプロパティはどう?
mc._quality="LOW";
とか
454Now_loading...774KB:2006/01/21(土) 16:41:41 ID:7KXQ3KPw
ソフト=FlashMX2004、 OS=Win98SE

Q)ダイナミックテキストの消去法&書き換え法
テキスト名指定欄(変数:txtName)とダイナミックテキスト欄(変数:txt1)
を用意し、ボタンアクション1として
on (press) {
 System.useCodepage = true;
 this.loadVariables(txtName+".txt");
}

でダイナミックテキスト欄に目的の文章を表示しました。次いで内容をクリア
するため、ボタンアクション2として
on (press) {
 txtName = "";
 txt1 = "";
}

を実行後、新たに別のテキスト名を指定してボタンアクション1を実行すると、
前の文章に新しい文章が後続する形で(連続する形で)表示されます。

そこで質問ですが、新しい文章のみがtxt1の内容になるには、ボタンアクション2
をどのように改造すればいいでしょうか?
455Now_loading...774KB:2006/01/21(土) 17:08:25 ID:Y+YcRaM7
>>454
どうやってダイナミックテキストに表示してる?
読み込んだ値入れるときに+=とか使ってない?
456Now_loading...774KB:2006/01/21(土) 17:41:37 ID:CU/7IwhG
ttp://www.gotoandplay.it/_articles/2003/12/bezierCollision.php

↑にあるヤツなんですけど、
誰か原理わかる人います?
91から127行目が意味不明なんですよ。

特に、

var p1rx = dy * sin + dx * cos + p0x;

この式とか。何を求めてるのかわからない。
公式があるなら、その名前だけでもわかれば…
お願いします。

ちなみにflaファイルは
「Download the source code of this prototype」
のリンクから手に入ります。

457Now_loading...774KB:2006/01/21(土) 17:45:09 ID:sJb6YObF
>>454
http://hakuhin.hp.infoseek.co.jp/main/as/import.html#IMPORT_00
こいつがまさに、テキストファイルの内容を読み込んでダイナミックテキストで表示させる
ってことをやってるので、このサンプルを落としていろいろ調べてみたら?
458452:2006/01/21(土) 18:31:41 ID:Vr9PXI1X
>453
その方法だと、個々のムービークリップに対して実行しても全体の画質が変わってしまいます。
459Now_loading...774KB:2006/01/21(土) 18:45:12 ID:sJb6YObF
>>452
http://hakuhin.hp.infoseek.co.jp/main/as/quality.html
こいつじゃ解決しないかね?
460Now_loading...774KB:2006/01/21(土) 18:47:40 ID:s36pct3j
Flash8使ってます

onClipEvent (enterFrame) {
if(Key.getCode()==27){
_root.gotoAndPlay("kekka");
}
}
Escキーを押すと「kekka」画面にいくようにしたいのですが
2004でやったときとういかplayer7でパブリッシュしたときにはちゃんと実行
させるのですが
8でやるとキーを押しても画面が変わりません
どうすればよいでしょうか?
461454:2006/01/21(土) 19:17:04 ID:BwOdtkQg
>>455
+=は使っていないです。

>>457
import_00_fla6.fla を参考に、System.useCodepage = true; を
メインレイヤーのタイムライン1に移動しましたが効果はありませんでした。
462Now_loading...774KB:2006/01/21(土) 19:31:55 ID:gvJGwzoM
>>461
テキストフィールドに変数を使うのを止める。
textプロパティを使う。
おそらくそれで解決する。

あとね、MC.loadVariables()は使わずに、LoadVarsオブジェクトを使うといいよ。
463Now_loading...774KB:2006/01/21(土) 19:38:51 ID:Y+YcRaM7
>>461
読み込むテキストの中身どうなってる?
464456:2006/01/21(土) 21:40:23 ID:CU/7IwhG
なんかそれっぽい解説を見つけました。
ttp://www.dango-itimi.com/blog/archives/2005/11/2_1.html

これで何とか解読できそうだ…
465452:2006/01/21(土) 23:41:36 ID:Vr9PXI1X
>459
この絵では目立たないんですが、100%の表示が乱れてしまいます。
スムージングも切って、開発環境では普通に見えるんですが、実行すると駄目です。
466454&461:2006/01/22(日) 00:38:03 ID:e9qsMUsM
>>462 textプロパティを使う。 LoadVarsオブジェクトを使うといいよ。

ありがとうございます。試してみます。


>>463 読み込むテキストの中身どうなってる?

ダイナミックテキスト欄の変数がtxt1なので、単に txt1=文章・・・文章
です。文章の最後は//で終わっています。
467Now_loading...774KB:2006/01/22(日) 01:43:34 ID:xpSVgq5+
ASでコメントを書いてるとだんだん表示がおかしくなってくる
半角文字うった後に全角文字をうつと前の半角の文字が消える(半角文字が全角文字に隠れる)
多分フォントの設定なんでしょうけど、フォントを変えてもなかなか解決しません。
解決方法を教えてください
468454&461:2006/01/22(日) 02:17:24 ID:a4o5WvHV
(ダイナミックテキストの消去法&書き換え法 の続き)

>>462さんのアドバイスを元に下の様にしました。まず、フレーム  
アクションは
System.useCodepage = true;
loadV = new LoadVars();  //オブジェクトloadVの宣言
loadV.onLoad = function() {
 txt1_ins.text = loadV.text;  //txt1_insはダイナミックテキストのインスタンス
};

として、読み込みのボタンアクションは
on (press) {
 loadV.load(txtName+".txt");
}

です。 
テキスト名を指定し、読み込みボタンを押しましたが、今度は何も表示
されません。間違いをご指摘願います。
469Now_loading...774KB:2006/01/22(日) 02:46:18 ID:sNTojt3u
>>468
txt1_ins.text=loadV.txt1;じゃないかな。traceしてみるとどこが悪いかわかるよ。
470Now_loading...774KB:2006/01/22(日) 02:55:31 ID:8SxJnqHY
>>468
>>466の通りなら読み込んだテキストにtextっていう変数ないんじゃない?
そうでないならターゲットが違うとか?
問題あった時はtrace()入れてどこで躓いてるかチェックするといいよ。
471454&461:2006/01/22(日) 03:51:30 ID:a4o5WvHV
>>469, 470
そうだ、困った時にはtrace()だ
472Now_loading...774KB:2006/01/22(日) 16:30:07 ID:i5vHY3HW
loadMovieで読み込んだ画像を
BitmapDataとして扱うにはどうしたら良いのでしょうか?
473Now_loading...774KB:2006/01/23(月) 01:02:52 ID:JhiNYLc9
draw
474454&461:2006/01/23(月) 01:21:42 ID:QtLWtaJx
(ダイナミックテキストの消去法&書き換え法 の続き -2)

>>469, 470 さんの指摘を元に以下の様にしたところ、ボタンアクション1で表示
されるようになりました。しかし、一旦ボタンアクション2で消して再度テキスト
を指定すると、前の文章に付け加えられる形で表示されます。

フレームアクション
System.useCodepage = true;
loadV = new LoadVars();  //オブジェクトloadVの宣言
loadV.onLoad = function() {
 txt1_ins.text = loadV.txt1;
 trace("loadV.text= "+txt1_ins.text);  // loadV.txt1のチェック
};

ボタンアクション1(表示)
on (press) {
 loadV.load(txtName+".txt");
}

ボタンアクション2(消去)
on (press) {
 txtName = "";
 txt1 = "";
 txt1_ins.text = undefined;
 trace("txt1_ins.text= "+txt1_ins.text);  //txt1_ins.textのチェック
}

ボタンアクション2では、txt1_ins.textのチェックのtraceでは中身無し
になっています。後続されるというのは、消し方に問題があるのでしょうか?
(ボタンアクション2のASに問題あり?) 間違いをご指摘願います。
475Now_loading...774KB:2006/01/23(月) 01:51:50 ID:Ha7Ze9Qo
>>474
そのASでやってみたけど、問題なかった。
ボタン1を何回も押したらどうなる?
txtNameの値を変えなかったらどうなる?
テキストの中身をtxt1=a とか簡単なヤツにしたりしてみれば?
もぅflaをupしちゃえば??
476Now_loading...774KB:2006/01/23(月) 09:51:48 ID:9ms0b4Uj
>>475同様、問題なかった。
ちなみにTEST時のスクリプトは以下。
/*
test_text.txtの記載内容
txt1=これはテストです。
*/
System.useCodepage = true;
txtName = "test_text";
loadV = new LoadVars();
loadV.onLoad = function() {
txt1_ins.text = loadV.txt1;
trace("txt1_ins.text= "+txt1_ins.text);
};
//ボタンアクション1(表示)ボタンインスタンス名btn1
this.btn1.onPress = function() {
loadV.load(txtName+".txt");
};
//ボタンアクション2(消去)ボタンインスタンス名btn2
this.btn2.onPress = function() {
txt1_ins.text = undefined;
trace("txt1_ins.text= "+txt1_ins.text);
};
477Now_loading...774KB:2006/01/23(月) 13:37:04 ID:20vU18q1
FLASH8のフィルター機能って、loadMovieで読み込んだ外部画像にも適用できますか?
478Now_loading...774KB:2006/01/23(月) 13:55:50 ID:kpILgMti
>>477
コンテナMCにloadMovieする子MCを作って、フィルターはコンテナの方に
かければいけると思う。
479Now_loading...774KB:2006/01/23(月) 15:34:01 ID:20vU18q1
>>478
解決しました!ありがとうございます。
読み込むMCにかけてました。
480Now_loading...774KB:2006/01/23(月) 16:06:48 ID:JHqkRrq+
Flash 8 Pro
Windows XP

ムービークリップのプロパティにあるカラー:明度を
アクションスクリプトから変更するにはどうすればよいのでしょうか?
よろしくお願いします。
481454&461:2006/01/23(月) 16:16:55 ID:qls9NSfY
>>475, 476
うーん、何でだろう。消すことは可能なのですが、前の文章が居座っています。
どっかに余計スクリプトがないかチェックしてみます。
482Now_loading...774KB:2006/01/23(月) 18:07:17 ID:TI/Fuquq
ソフト: FlashMX2004
課題: MCを線上に配置させる

インスタンスXY(描画エリア)で、線の定義を 
_root.XY.lineStyle(2, 0x0000ff, 100); として

_root.XY.onEnterFrame = function() {
  x++;
  rX = x*3;
  rY = -nrt*3/x;  //線の関数。nrtは変数(例:100)
  _root.XY.lineTo(rX, rY);
};

で線を描き、MC(例えば▲マーク)をこの線上のみで移動できるようにしたいと
思っています。←モーショントゥイーンの線に沿って移動する感じ

このようなことは可能でしょうか? なお、MCが配置される線は関数で与えられる
ので、モーショントゥイーンであらかじめ線を固定するのは不可です。
483Now_loading...774KB:2006/01/23(月) 18:26:09 ID:KBKtdLZX
ソフト:Flash8(Pro)
OS:WindowsXP

txt外部読み込みの外部変数を使って
URLを取得して、クリックすると
その外部変数に代入したURLに飛べるようにしたいのですが、
下のASじゃだめでした。
on (release) {
getURL("_root.url", "_blank");//_root.urlはURLが代入された外部変数
}

txt
&url=http://......./index.html
となっています。問題はなさそうなのですが…
何がおかしいのか分かりません。教えてください!
よろしくお願いします。
484Now_loading...774KB:2006/01/23(月) 18:39:24 ID:9ms0b4Uj
>>482
課題って・・・宿題なら自分でやんなきゃだめだよ。

>>483
変数名はurltextに変更して、
getURL(_root.urltext , "_blank");
485482:2006/01/23(月) 18:45:31 ID:g47s+8gr
>>484
いや、宿題の意味の「課題」じゃなくて。。。。 
それでは、書き替えます

目標: MCを線上に配置させる
486Now_loading...774KB:2006/01/23(月) 18:47:04 ID:KBKtdLZX
>>484
無理でつたorz
一様変数は外部読み込みでつ。
テキストには
&url=http://......./index.html
が記述されていて、
URLが記述されている外部からの読み込み変数を使って
表示された所を押すとそのURLに飛べるのです。
必要ならばflaUPします。
487Now_loading...774KB:2006/01/23(月) 18:51:32 ID:9ms0b4Uj
いや外部テキストに記述してる変数名も変えてやってみてくれない?
たしかurlってのはプロパティかなんかであったような気がしたから避けたほうがいいかと思う。
488482:2006/01/23(月) 19:55:32 ID:VgdCWAyZ
すみません、482にアドバイス頂けますか?
489Now_loading...774KB:2006/01/23(月) 20:15:08 ID:9ms0b4Uj
>>488
できるよ。
普通にhitTestでカーソル動かせばいい。
そこまで書けたなら後はヘルプみながらでも
ネットで調べても作れるでしょ。
490482&488:2006/01/23(月) 21:29:31 ID:PPecvHpm
>>489 
すみません、hitTestとカーソルの関係が分かりません。
カーソルとは文字入力のカーソルとは違うのですか?
491Now_loading...774KB:2006/01/23(月) 21:42:34 ID:mqIfdKdK
>>483
変数は「"」で囲ってはだめ。
trace(_root.url)で読み込んだ値が正しいか確認。
492Now_loading...774KB:2006/01/23(月) 22:34:22 ID:mqIfdKdK
>>482
rX = x*3;
rY = -nrt*3/x; の2つの式を変形させて
Y = -_root.nrt*3/(X/3);とする
▲をマウスで動かしたときのx座標をXに代入すれば
Yが求まるからYを▲のy座標として代入する。
つまり▲を左右に動かしたらy座標が勝手に決まるから線上を動くことになるんでない?
493Now_loading...774KB:2006/01/23(月) 23:02:32 ID:kpILgMti
>>490
関数がわかってるなら、そのまま線引けばいいし、そのままMCの座標きめれば
いいのでは?
媒介変数xの境界条件(どっからどこまで)とかは注意だけど。
特に初期値とか、割り算絡んだときの0除算とか要注意。
494Now_loading...774KB:2006/01/23(月) 23:08:45 ID:UaLoiz2K
#include で読み込んだ外部asファイルにブレークポイントを置いてデバッグすることってできないのでしょうか?
495482&488:2006/01/23(月) 23:20:19 ID:PPecvHpm
>>492, 493
Thxです。やってみます。

あー、痰が絡んで喉が痛い。。。。
496Now_loading...774KB:2006/01/23(月) 23:20:40 ID:kpILgMti
>>494
外部asファイルを読み込んで、ブレークポイントつけるとか。
497Now_loading...774KB:2006/01/23(月) 23:21:41 ID:kpILgMti
>>495
私も鼻水ずるずるです、風邪気をつけなきゃね。
498482&488:2006/01/23(月) 23:32:20 ID:PPecvHpm
>>497
鼻炎持ちですが、鼻水止めに「ナザールブロック(佐藤製薬)」(←薬局のお勧め)を
使っています。
点鼻薬は、ここ1〜2時間だけでも鼻水を止めたい!時に便利。
(スレ本題とは関係無いですがカキコ)
499494:2006/01/23(月) 23:33:32 ID:UaLoiz2K
>>496
それって、アクションウィンドウの右上から、「スクリプトの読込み」ってやるってことですよね?

外部asファイルにしたいのは、「編集中はFlashMXのくそエディタから解放されたい」というのが
あるから、それだと読込み・書き出しを何度もしなくちゃならなくてイマイチ……。
500Now_loading...774KB:2006/01/23(月) 23:41:35 ID:kpILgMti
>>499
デバッガ使う場合って、ホントにわかんないときだからなあ。
全部のas読まなくても、該当するas読み込んでブレークポイント付けて
元flaでムービーデバッグでそこでとまらないか?
501Now_loading...774KB:2006/01/23(月) 23:42:28 ID:kpILgMti
あ、ごめん、ファイル-->開く、ね。
502494:2006/01/23(月) 23:59:03 ID:UaLoiz2K
ファイル-->開く で開いたasファイルにはブレークポイントつけらんないっぽいです。
503Now_loading...774KB:2006/01/24(火) 00:12:24 ID:gnTcnWWs
>>502
8ならできるんだが、うーんmxだとわからん、スマン。
504494:2006/01/24(火) 00:28:07 ID:Th+G6CKf
がーん。8ならできるんすかー。
残念……。
ゲーム系作ってて、俺自身のFlash暦は短いせいでブレークポイントは
使いまくりなので、外部編集はあきらめます……。
505Now_loading...774KB:2006/01/24(火) 00:37:39 ID:Q3Wp9ZOe
XPathを使うためにDataBindingClassesをインポートしたA.swfを
B.swfにてloadMovieすると、インポートしたクラスがうまく動かないようです。
A.swf単体で動作させたときに正常に動作することは確認しました。

どなたかアドバイスをよろしくお願いいたします。
506Now_loading...774KB:2006/01/24(火) 00:45:51 ID:Q3Wp9ZOe
書き忘れましたが、B.swfでも同じクラスをライブラリに追加し、importしています。
507Now_loading...774KB:2006/01/24(火) 01:05:55 ID:9Hd9wWbU
flash8Basicで作ってます。
テキストをムービークリップに変換し、
スペースキーで表示非表示を切り替えたいです。

onClipEvent (keyDown) {
checkCnt = 1-checkCnt;
if (checkCnt == 1 && Key.isDown(Key.SPACE)) {
_root.txt._visible = false;
} else if (checkCnt == 0 && Key.isDown(Key.SPACE)) {
_root.txt._visible = true;
}
}

目的のムービークリップのインスタンスに対し
上のようなスクリプトを置きましたが、
どうも反応しません。どうしたらよいでしょうか。
508Now_loading...774KB:2006/01/24(火) 01:11:23 ID:CpU7c7id
>>507
試してないけど
onClipEvent (keyDown) {
if ( Key.isDown(Key.SPACE)) {
_root.txt._visible = !_root.txt._visible;
}
}
509Now_loading...774KB:2006/01/24(火) 04:59:47 ID:odfk2TaF
FlashMXです。
いくつかの子MCを持つ親MCがあったとして、子MCもろとも
重なり順が変わる事を期待して親MC.swapDepths(数字)
しましたが思った通りになりません。そういう仕様なんでしょうか?

入れ子状態なMCをひとかたまりと見なして深度を管理する良い
方法がありましたら教えて下さい。
510507:2006/01/24(火) 06:46:58 ID:9Hd9wWbU
>>508
できました!ありがとうございました。
感謝します。顔謝します。
511Now_loading...774KB:2006/01/24(火) 07:21:27 ID:gnTcnWWs
>>509
for inで子MC個々に変えるぐらいしか思いつかないな。
子MCがindexで参照できるならそっちを使って。
いずれにしても、一気に変えるときは他のMCとの競合に注意だね。
512Now_loading...774KB:2006/01/24(火) 07:37:48 ID:jx8ldrEJ
質問、とは少し違うのですが。
いままで他の言語(C等)を使っていてASは初めてなのですが
on〜 = function(){・・・}
が、手軽にタスク処理なんかを増やせるのですごい重宝しています。
そしてASに興味が出てきました。
こういったASならではのおすすめの使いがってのある方式って他にないでしょうか?
当方、MX2004を使っています。
513Now_loading...774KB:2006/01/24(火) 08:01:39 ID:laWMHRpg
>>512
ASならではかどうか知らないけど、
リスナーとかどうだろう。

someListener = new Object();
someListener.onKeyDown = function () {
if(Key.isDown(Key.UP)){ MC._y -= 1 };
if(Key.isDown(Key.DOWN)){ MC._y += 1 };
if(Key.isDown(Key.LEFT)){ MC._x -= 1 };
if(Key.isDown(Key.RIGHT)){ MC._x += 1 };
};
Key.addListener(someListener);
514Now_loading...774KB:2006/01/24(火) 09:10:38 ID:Jpw0UGXi
>>506
http://oshige.com/flash/note/archives/2005/02/post_12.html
ここの _root という項目の記述が参考になるんじゃないかと思う。

これが関係なかったら、そっから改めてDataBindingClassesとやらの
挙動について調べればいいんじゃないかな。
515Now_loading...774KB:2006/01/24(火) 10:23:59 ID:gnTcnWWs
516Now_loading...774KB:2006/01/24(火) 10:35:00 ID:Jpw0UGXi
下らんことを蒸し返さなくていいよ。
517Now_loading...774KB:2006/01/24(火) 10:36:10 ID:gnTcnWWs
518Now_loading...774KB:2006/01/24(火) 10:38:05 ID:gnTcnWWs
>>516
うん、蒸し返すつもりは無いけど、いきなりこっちに来てってやられるとな。
519Now_loading...774KB:2006/01/24(火) 11:25:02 ID:Q3Wp9ZOe
>>514
>>517
ありがとうございます。

というか、検証してたらそもそもクラスの問題ではなく、A.swfのルートで宣言した配列が
B.swfにloadMovieするとundefinedになるようでした。
教えていただいた情報を頼りに_lockrootを設定したのですが、
なかなかうまくいきません。
なんでだろ。
520Now_loading...774KB:2006/01/24(火) 12:03:09 ID:gnTcnWWs
>>519
_global
521329:2006/01/24(火) 12:26:55 ID:zfxLHnoc
Flash8です。
ダイナミックテキストフィールドに1〜10桁の数字をランダムに表示していますが、
桁が増えるとテキストフィールドに入りきりません。
フォントのサイズを自動で変更したいのですがよい方法はあるでしょうか?

今やっているのは、
2桁の場合→サイズ30
3桁の場合→サイズ32
と、予め決めています。
522Now_loading...774KB:2006/01/24(火) 12:27:18 ID:Q3Wp9ZOe
新しい発見をした。
A.swfでloadしたXMLが、B.swfの中で再生されると文字化けしてしまう。
コレが原因だった。

<A.swf>
doc = new XML();
doc.load("http://www.example.com/test1.xml");
doc.onLoad = function(success) {
trace(doc.toString);//←問題ナス
}

<B.swf>
dummy_mc.loadMovie("http://www.example.com/A.swf");//←ここでは文字化けXMLがtraceされる。

このトラブルって結構ありそうだけど、ググっても見つかりません。
アドバイスよろしくお願いいたします。
523329:2006/01/24(火) 12:28:08 ID:zfxLHnoc
↑ よろしくお願いします。
524Now_loading...774KB:2006/01/24(火) 13:12:27 ID:Jpw0UGXi
>>522
俺も似たようなことをやっているので気になって確かめてみたが、
俺のローカル環境ではそれをやっても文字化けはおきなかった。
多少相対パスが怪しい状況にしてても問題なかった。
おまえさんも、まずは3ファイルをローカルの同一フォルダにおいてる状況から
確認してみたらどうだ?

ちなみに、A.swfにあたる俺のファイルには、

System.useCodepage = true;

を書いている。
525Now_loading...774KB:2006/01/24(火) 13:25:42 ID:Jpw0UGXi
>>521

field.txt = 123;// まあなんか数字をセットする

ln = field.txt.toString().length;// 桁数

size = 20;// デフォ
if (ln == 2) size = 30;
if (ln == 3) size = 32;// 桁数に応じてサイズ値を変更。

tf = new TextFormat();
tf.size = size;
field.setTextFormat(tf);// フォントサイズを設定。

こんな感じでええんじゃないの?
526329:2006/01/24(火) 13:53:23 ID:zfxLHnoc
>525
そうそう、今はこの仕様にしてるんです。
1桁増える毎に、一定ピクセル増加する用に直してみます
スクリプトありがとうございました



527Now_loading...774KB:2006/01/24(火) 14:20:59 ID:JzRbj6ax
>>511
ありがとうございました。for in調べてみます。
528480:2006/01/24(火) 16:09:01 ID:7YgpZGrn
マニュアルを調べてのですがやっぱりわかりませんでした。

この処理はアクションスクリプトではできないのでしょうか?
よろしくお願いします。

529Now_loading...774KB:2006/01/24(火) 16:15:05 ID:gnTcnWWs
>>528
rgbで明度といわれても困る。透明度なら_alphaを変えればいい。
hsv色空間での明度ということなら、hsv<-->rgb変換しないとできんがな。
530Now_loading...774KB:2006/01/24(火) 17:45:58 ID:Y/xz5k5f
>>528
アクションスクリプトで明度は変更可能

rgbのパーセントとオフセットの明度との関係知ってる?
まぁ簡単だから調べてみ
あとは簡単。ASで明度を計算しちゃいましょう

1、colorオブジェクト作る
2、指定した明度に対応する拡張効果(ra,rb,ga,gb,ab,bb)を出力する関数でも作る
3、setTransformでMCに色を設定して完了だ

ちなみに前の色からだんだんと明度を変化させたいとかなら
getTransformでMCの色の拡張効果を取得出来るからそれ使う

531Now_loading...774KB:2006/01/24(火) 20:12:02 ID:7YgpZGrn
>>529
>>530
ありがとうございました。
MCの色を変更するのでMovieClipクラスのメソッドやプロパティ
ばかり調べていました。

colorオブジェクト使用すればできました。

ありがとうございました。
532Now_loading...774KB:2006/01/24(火) 21:11:48 ID:Q3Wp9ZOe
>>524
ありがとうございます。
System.useCodepage = true; 関係で何かエラーが起きてたようです。

話が相当ややこしくなるのではしょりますが、
System.useCodepage = true;を書くところによって文字化けが起こったり直ったりするので
loadMovieでいろんなswfを読み込むときは、記述の位置を試行錯誤しようという教訓を得ました。
文字エンコード関係はホントややこしいわよね。
533482&488:2006/01/25(水) 11:56:00 ID:5hSmhNFE
目標: MCを線上に配置させる

→ 成功しました。ありがとうございます。
534Now_loading...774KB:2006/01/25(水) 15:46:50 ID:K0gGqMvE
質問させていただきます。
当方の環境MX2004です。
ムービークリップにloadMovieでswfを読み込むと
swf側のNOWLODINGが一瞬表示されるだけで機能しません。
どなたか助けてくださいorz
535Now_loading...774KB:2006/01/25(水) 17:24:35 ID:iczYMn2K
>>534
あんたマルチしまくりだな。ひどいぞ。
536Now_loading...774KB:2006/01/25(水) 18:56:31 ID:9sp8tSXj
教えてくれ 10進数、もしくは16進数から2進数への変換方法を!

parseIntで10進数に変換するってのは調べた=3
537Now_loading...774KB:2006/01/25(水) 19:02:17 ID:u9QqE4h7
toString
538Now_loading...774KB:2006/01/25(水) 19:12:30 ID:UZO7kIso
>>536
ほれ
aa=0xFF;
trace(aa.toString(16));
trace(aa.toString(8));
trace(aa.toString(2));
539Now_loading...774KB:2006/01/25(水) 19:13:09 ID:UZO7kIso
あ、かぶった、スマン。
540Now_loading...774KB:2006/01/25(水) 19:15:55 ID:9sp8tSXj
わかりません 先生!
541Now_loading...774KB:2006/01/25(水) 19:18:45 ID:9sp8tSXj
わかりました 先生! てかtoStoringでヘルプ見てもそんなの載ってなかったお
まくろめでぃあ氏ね! そして先生方ありがとう!
542Now_loading...774KB:2006/01/26(木) 00:24:15 ID:+mrvpoC6
AS使えてる人に質問〜。
attachやduplicateでMC増やしたり、new でオブジェクトとか増やしたときに
消さないでそのまま放置でハングったことある?
やっぱり作ったものはちゃんとremoveなりdeleteなりしてますか?
543Now_loading...774KB:2006/01/26(木) 00:34:31 ID:Yf+Pxeiw
いらなくなったら消すよ
544Now_loading...774KB:2006/01/26(木) 00:49:23 ID:312438en
>>542
やってみりゃわかるけど増やし続ければハングするよ。
545Now_loading...774KB:2006/01/26(木) 09:13:57 ID:88xo8NKH
>>544 消さないで 同じ名前で別のMCを上書きし続けるってのは大丈夫だよね?
546Now_loading...774KB:2006/01/26(木) 10:29:03 ID:+mrvpoC6
>>513
ちょい亀レス。
レスサンクスです。
リスナーですね。調べて見ます^^
547Now_loading...774KB:2006/01/26(木) 13:06:05 ID:Tgdu1VHj
初めて質問させて頂きます。
当方の環境はFLASH MX2004です。
Webサイト作成中です。ボタンを押して別のシーンに飛ばすのですが、
飛ぶ前に元の画面のメニュー以外をゆっくり暗くしていって最終的に真っ暗になってから次のページにいかせたいのですが、うまくいきません。
ちなみにその元のページは静止していなくてモーショントゥイーンで動いています。
アドバイスお願いいたします。
548Now_loading...774KB:2006/01/26(木) 13:20:33 ID:bx32ds5D
>>547
具体的にどうやっていて、どのように意図と食い違っているのかを書かんと
「暗くなってから、移動させれば?」くらいしか言えん。
549Now_loading...774KB:2006/01/26(木) 14:52:49 ID:7QU2toIt
>>547
ボタンを押した時に変数を設定
と同時に、黒いシンボルのアルファ値が徐々に上がるアニメーションを再生
真っ黒になった瞬間に変数先にジャンプ

たぶんコレが一番簡単
550Now_loading...774KB:2006/01/26(木) 15:53:38 ID:hEomt5h2
>>547
使いやすいかどうかは分からないけど自分のやり方
フェードアウトしたいサイズに黒四角を作成してムービークリップシンボルにする
そのMC内で更に黒四角をグラフィックシンボルにしてアルファ0→100のモーショントゥイーンを作成(フレームの長さは任意)
最後のフレーム(別レイヤー)をキーフレームにして
_root.func() //実行したいコマンド
this.removeMovieClip();
と入れる

次にそのMCをリンケージでfoutとでも名付け、フェードアウトに入るタイミングで
attachMovie("fout","fout",100)を実行
//100(深度)はフェードアウト部分にattachで作成したMCがある場合そのMCの深度よりは大きくする
これでフェードアウト→ページ飛び?を処理させてます

その他MC内部を更にMCにして黒、白と四角の色を変えて黒フェードアウト、白フェードアウトとかやってます
551Now_loading...774KB:2006/01/26(木) 16:41:54 ID:Tgdu1VHj
>>550
ボタンには何も書かなくて良いのでしょうか?
552Now_loading...774KB:2006/01/26(木) 19:59:18 ID:8HrhqJ0k
>>547
function fadeout() {
xmin = 0; //暗くしたい画面領域のX座標左上隅位置
ymin = 30; //暗くしたい画面領域のY座標左上隅位置
xmax = 500; //暗くしたい画面領域のX座標右下隅位置
ymax = 400; //暗くしたい画面領域のY座標右下隅位置
alphaNum = 0;
_root.onEnterFrame = function() {
alphaNum += 5;
_root.createEmptyMovieClip("fadeoutMC", 100);
with (_root.fadeoutMC) {
beginFill(0x000000, alphaNum);
lineStyle(1, 0x000000, alphaNum);
moveTo(xmin, ymin);
lineTo(xmax, ymin);
lineTo(xmax, ymax);
lineTo(xmin, ymax);
lineTo(xmin, ymin);
endFill();
}
if (alphaNum>=100) {
delete _root.onEnterFrame;
_root.fadeoutMC.clear();
}
};
}
//ボタンの設定
btn1.onRelease = function() {
fadeout();
_root.gotoAndPlay("movie1");
};
553Now_loading...774KB:2006/01/26(木) 20:57:12 ID:dOUQFa58
ソフト:FlashMX2004_ver7.2

ドラッグした場合、曲線のMC(インスタンス名:clnAB)の上を動く(常に
曲線上にある)MC(このインスタンス名:point)のASを書いています。

これは、clnABからある程度離れたら元に戻れば良いと思い、pointイン
スタンスのASとして下を試しましたが、これではclnABの中心からの距
離の評価になってしまいます。

onClipEvent (enterFrame) {
 this.onPress = function() {
  this.startDrag();
 };
 this.onRelease = function() {
  this.stopDrag();
 };
 if (this._x-_root.clnAB._x>10 || this._y-_root.clnAB._y>10) {
    this._x = _root.clnAB._x;
    this._y = _root.clnAB._y;
 }
}

どのように改造すればいいでしょうか?
554Now_loading...774KB:2006/01/26(木) 22:03:01 ID:i0S1PFf5
>>553
どうなるのが正解かわからないけど、
onEnterFrameの中にonPress,onReleaseを書く必要はないと思う。
555553:2006/01/27(金) 01:47:50 ID:sfKB1Tk0
>>554
onPress,onReleaseは、_rootのフレームアクションとして外に出しました。

本題の方はどうでしょうか? hitTest()で、曲線MCに付いているかどうかを監視
する手を考えましたが、元に戻す時の動き幅を固定することになるので、これは
断念しました。
アドバイス願います。
556Now_loading...774KB:2006/01/27(金) 01:59:13 ID:H+cnbsDq
>>555
曲線MCじゃなくて曲線を2次関数なり3次関数なり数式にしないとダメじゃないかな?
557553:2006/01/27(金) 03:44:39 ID:sLg7KNw3
>>556 数式にしないとダメじゃないかな?

う〜ん、数式の場合は、前に試して(482&488&533)成功しているのですが、
今回は前回の様にパラメーター毎にグラフを描画するのではなく、形を固定
したいと思っています。
固定する理由は、同様のグラフが他に隣接して3つあり(曲線4つでループを
形成している)、数式よりは見やすさやループの形のもっともらしさを優先す
るため、「線を変形したもの」に吸着するようにしたいと思っています。

どないでしょう?
558Now_loading...774KB:2006/01/27(金) 11:13:01 ID:2rZt3eLW
>>552 それをいったいどこに書けばいいの?orz
ボタンに書いたらエラーばっかだし...
559Now_loading...774KB:2006/01/27(金) 12:04:59 ID:hzYL/063
質問です。
自作クラス内のLoadVarsクラスで読み込んだ外部ファイルの値を、
自作クラスのプロパティに入れたいのですが、どのような方法があるのでしょうか。

class Hoge{
 var my_lv:LoadVars;
 function Hoge(){
  my_lv = new LoadVars();
  my_lv.onLoad = function(success) {
  if (success) {
   var hoge_a = this.a;//これをHogeのプロパティにしたい
   }
  }
 //呼んだら読み込むメソッド
 function load_lv(){
 my_lv.load(test.txt);
 }
}
560Now_loading...774KB:2006/01/27(金) 13:29:04 ID:R4Uk9N/d
こんな?

class Hoge {
 var my_lv:LoadVars;
 var _a:String;
 function Hoge() {
  my_lv = new LoadVars();
  my_lv._parent = this; //ここで親クラスへの参照をセット
  my_lv.onLoad = function(success) {
   if (success) {
    this._parent._a = this.a; //親クラスの値を変更
   }
  };
 }
//呼んだら読み込むメソッド
 function load_lv() {
  my_lv.load("test.txt");
 }
}
561Now_loading...774KB:2006/01/27(金) 13:31:04 ID:GTN6YSVG
外部テキストを使用するswfを同時に2つloadMovieする場合、
System.useCodePage = true;
を両方のswfに記述してあっても大丈夫でしょうか?
それとも片方だけで良いのかな?

ヘルプには「useCodePageは1スクリプトに1回までを推奨」とあるのですが、
loadMovieしてる場合はどうなるのでしょうか。
562Now_loading...774KB:2006/01/27(金) 13:36:48 ID:R4Uk9N/d
両方に書かないで読み込む親のムービーに書けって事じゃない?
563Now_loading...774KB:2006/01/27(金) 14:12:10 ID:GTN6YSVG
>>562
親のムービーに書くこともしたのですが、
どうやらuseCodePageが有効にならないようで、文字化けしてしまいます。
そういう仕様なんですかねえ。
564Now_loading...774KB:2006/01/27(金) 16:11:49 ID:R4Uk9N/d
そんな馬鹿な仕様にするわけないっしょ。
こっちで試してみたら親の最初のコードとして書くだけで良かったよ。
読み込まれる側で「useCodepage」(「useCodePage」じゃ駄目だよ)
を検索してみればどこかで変更してるところあるんじゃないのかな。
565Now_loading...774KB:2006/01/27(金) 16:45:05 ID:0pMEv5bl
>>564
ちょ、おま、
○:useCodepage
×:useCodePage
の違いに気づいてるのに、なんで「どこかで変更してるところあるんじゃないのか」なんて
トボけた指摘してんだよ。
どう考えても、Pの大小のせいで、意図どおり設定がされてなかっただけだろ!
566Now_loading...774KB:2006/01/27(金) 17:33:25 ID:Amg9P5ex
スコアー計算で、小数がついてしまうことがあるのですが、
これを四捨五入等として整数に直す方法とかあるんですかね?
あったら教えてください。(四捨五入じゃなくても結構です)
567Now_loading...774KB:2006/01/27(金) 17:45:52 ID:W8V5L7fI
>>566
Math.round
568Now_loading...774KB:2006/01/27(金) 17:51:23 ID:joRSlyu4
マス・大山
569566:2006/01/27(金) 17:57:57 ID:Amg9P5ex
>>567
ありがとうございます!四捨五入で反映できました。
570Now_loading...774KB:2006/01/27(金) 18:31:39 ID:UXMgBBu3
>>547
ボタンは普段使ってないから自信ないんだけど
on(press){
if(sw == undefined){
_root.attachMovie("fout","fout",100);
sw=0;
}
かな。swは2回以上押した時また同じ物が生成されるのを防ぐためのスイッチ
571Now_loading...774KB:2006/01/27(金) 18:54:12 ID:yz6tXzkN
>>558
ボタンを置いてあるMCだかルートだかのタイムラインでいいと思うけど、
>>552のスクリプトはそのまま書いてもだめだよ。
インスタンス名やパス、フレームラベルに気をつけて書き直さないと。

ちなみにfadeout();の中に飛び先を設定しないと
飛んだのが見えちゃうよ。
572Now_loading...774KB:2006/01/27(金) 19:12:02 ID:GTN6YSVG
>>564
>>565
ごめん。レスの時はスペル勘違いしてたけど、flash上ではきちんと書いてます。
ちゃんと色変わってます。

いろいろいじってて気づいたんですが、
実際にサーバーにうpしてブラウザから動作確認すると、文字化け直ってました。
でもflashからプレビューしたときには文字化けするんですよ。何故だ。
573Now_loading...774KB:2006/01/27(金) 19:15:20 ID:hzYL/063
>>560
_parent!!
そうか、こういうときに使うんですね。
自分が考えていたものとはまるで違う実装方法だったので、驚きました。

結果、無事できました。ありがとうございます。
574Now_loading...774KB:2006/01/27(金) 19:15:38 ID:yz6tXzkN
面倒だからUTF-8にすれば?
575Now_loading...774KB:2006/01/27(金) 19:57:18 ID:GTN6YSVG
>>574
片方のswfではXMLを読み込み、もう片方ではCGIを読み込んでるのですが
そのCGIがメール送信のルーチンを持たせてあるため、
useCodepage=trueにすると送信メールが文字化けしてしまうのです。
どうして文字コードを統一しないのだ。
576Now_loading...774KB:2006/01/27(金) 21:10:00 ID:UPR5Wxrt
すいません、質問します

7 8 9
×○○
×=7使用済み
○=8、9使用可能
で、ランダムで7〜9を選択し、ランダムで出た数値が×状態だった場合、
それ以外の7〜9の範囲で使用可能な物の中からランダムに選ぶ

のような事をしたいのですが、どのようなスクリプトを書けば良いのかわからないのです
何卒、どうか教えてください。。
577Now_loading...774KB:2006/01/27(金) 22:07:13 ID:UXMgBBu3
>>576
whileで×じゃなくなるまで回せば?
578Now_loading...774KB:2006/01/27(金) 22:16:36 ID:CiDsxuuu
>>576
配列使えば?
579Now_loading...774KB:2006/01/27(金) 22:24:18 ID:UPR5Wxrt
>>577,578
ご教授ありがとうございます。
whileと配列、どちらも未知の領域なので調べながらやってみます
本当にどうもでした!
580Now_loading...774KB:2006/01/28(土) 15:22:11 ID:jzSkRhTo
現在、アクションゲームを製作しているのですが、
キャラクターデータを8方向*4〜8コマ程度のbitmapで作成しています。

で、2キャラクター分の画像を書き出した所、
全部で716枚になっていました。

これを管理する方法ですが、Flashのライブラリに入れるか、
それとも外部ファイルにして読み込んでBitmapDataにキャッシュするのか、
どちらが適当なのでしょうか?

Flashのライブラリに入れるパターンでは
リンケージ登録やフォルダ分けが結構な手間なので、
今後キャラクターデータが増えた時に大変そうなのと、
パブリッシュに時間が掛かるのが難点です。

もうひとつの外部ファイルにして読み込むパターンは
大量ファイル読み込みがサーバへの負荷にならないかが心配です。
※それともファイル数はあまり関係無い?

他の方々はどうやって作っているか、アドバイスがあればお願いします。
581Now_loading...774KB:2006/01/28(土) 17:54:19 ID:2opiCzCr
初心者版かどっちかなんやんだんですけど
こちらに書きます

ボタンを作ってその上にマウスがある間、そのMCを再生する。
マウスをどけたらそのフレームでとまる。
10フレームまで行ったらとまる。

という処理をしたいのですが

ボタンに
on (rollOver) {

while (this._currentframe<>10) {
this.nextFrame();
}

}

と書いてみました。
でもロールオーバーするといきなり10フレームへ飛んでしまうんです。
ないがいけないのでしょう?
どうすれば、そのような処理になるのでしょうか?
お願いします。
582Now_loading...774KB:2006/01/28(土) 18:06:09 ID:k10AGt/R
>>581
ループの間は画面描画は行われないからフレーム位置だけ10になって
止まって、その後、描画されてるから。
583581:2006/01/28(土) 18:25:33 ID:2opiCzCr
>>582
ありがとうございます
なるほど〜そういうわけですか

てことはどうすれば・・・・OTZ

今思いついたのは
マウスカーソルの位置を調べて
範囲内ならplay
範囲外ならstop
10まで行ったらストップ
とif文かswitch文で分岐させるか・・・

もっと簡単な方法あります?^^;

むーしかし難しいですね。
プログラム初めてだから悪戦苦闘しています。
でも、思いどうりに動いたときはうれしくて、楽しいです。
584Now_loading...774KB:2006/01/28(土) 18:35:54 ID:wBSn2hV5
>>580
外部ファイル読込みパターンがいいよ。
読込みの鯖への負担っていうのは、大量ファイルを同時に読み込んだときに問題になるわけで、
ひとつずつ順番に読み込んでいけば問題ない。
あと、雰囲気からするとBMP単位でファイルを読み込もうとしてるみたいだけど、
キャラ単位でまとめたswf(ようするに、モナー用データmona.swfやらギコ用データgiko.swfやら)を作って、
それを外部読込みして、gotoAndPlay()でどのパターンのアニメーションを再生するかを指示すればいい。
そうすればアニメーション部分とシステム部分を分離して開発できるからね。
585Now_loading...774KB:2006/01/28(土) 18:47:47 ID:8+NMEXK7
>>583
this.onLoad = function() {
MC.stop();
};
btn.onRollOver = function() {
MC.play();
MC.onEnterFrame = function(){
if(MC._currentframe == 10){
delete MC.onEnterFrame;
MC.stop();
}
}
};
btn.onRollOut = function() {
MC.stop();
};
586Now_loading...774KB:2006/01/28(土) 19:01:21 ID:919CKkdn
back.duplicateMovieClip("back2", 1);
back2._x = -back._width;
speed = 1;
this.onEnterFrame = function() {
back._x += speed;
back2._x += speed;
if (back._x>back._width) {
back._x = back2._x-back._width;
}
if (back2._x>back2._width) {
back2._x = back._x-back2._width;
}
};

という背景ループのASサンプルを自分の作成したものに適用したいのですが、

・2度目のループの際に、レイヤーが上にあるものより更に上を通過する

という理由で上手くいきません。

サンプルでは背景画面全てが、ループされてましたが、
自分は 1シンボル のみをループさせようとしています。

各行の意味すら解ってないので、どこを変更したらいいか
教えてもらえませんでしょうか。お願いします。

macOSX fashMX2004

587583:2006/01/28(土) 20:00:02 ID:2opiCzCr
>>585さんありがとうございます

そうか、そうですよね。

いや、何でループを使おうかと思ったってマウスカーソルの位置によって
再生したり逆再生したりしたかったんです。
でいろいろ調べたらprevFrame()つかえみたいに書いてあったから
ループを使ったんです。

でも描画されないんじゃつかえませんね。

押すたびに一コマじゃなくて、滑らかな逆再生はどのように書いてますか?
588Now_loading...774KB:2006/01/28(土) 20:13:19 ID:eKNWaQww
キーボード入力で、AltキーとCapsLockキーってもしかして事実上使えないんでしょーか?
ブラウザのメニューがアクティブになったり、反応がなかったり。
589yuu:2006/01/28(土) 20:45:23 ID:EUD+xegk
はじめまして。FlashMXで外部変数読み込みから
ダイナミックテキストでの表示の際、フォント指定が出来ません。
プロパティ内での指定、変数内でタグ指定。色々試しましたが
改善がみられません。何か解決策はありますか?
590Now_loading...774KB:2006/01/29(日) 06:46:04 ID:/YPtlAnj
以前質問させていただいた者ですが、初歩的なことで躓いてしまいました。
数枚の画像をランダムで表示させようとし、やってみたのですが、出来ずググッた結果、解説しているサイト様を見つけました。
しかし、サイトに掲載されている通りにやっても、上手く動きません。
どなたか解る方いらっしゃいましたら、お願いします。
ちなみに、ソフトはFlashMXです。

解説サイト様
ttp://cella.hp.infoseek.co.jp/Flash/imerjigazou/newpage2.html
591Now_loading...774KB:2006/01/29(日) 10:00:54 ID:AJJalByS
>>590

アンサーというより便乗質問なんですが
私も初心者なので違う可能性も大ですが
たぶんターゲットパスの指定じゃないですか?

_rootにおいてあるmcを、_rootにスクリプトを書いて動かすのに
家の環境だと(windowsXP,flash8)
相対パスで
this.mc
とやると動きません

絶対パスで
_root.mc
とやれば動きます

これはなんでなんでしょう?
なんか勘違いをしてますか?
592Now_loading...774KB:2006/01/29(日) 10:18:38 ID:dvItKJTz
>>590
そのサイトを尊重したやり方をすれば、

1.写真を3枚用意し、Flashに「ライブラリに読み込む」で読み込みます。
2.新規シンボルを作成、名前は「Photo」、タイプは「ムービークリップ」で作成。
レイヤーにキーフレームを2つ追加し、3つのキーフレームにライブラリから読み込んだ写真を1枚づつ配置していく。
新規レイヤーを追加。そのレイヤーの1フレーム目に、
this.stop();
と記述します。
3.メインタイムラインに戻ります。
好きな位置、仮に50フレーム目を選択し、右クリックでフレームの挿入。
1フレーム目に、
ppp = Math.floor(Math.random()*3+1);
photo.gotoAndStop(ppp);
と記述します。
新規レイヤーを追加。そのレイヤーの1フレーム目に、
ライブラリからPhoto(MC)を配置し、インスタンス名を「photo」に設定。
50フレーム目にキーフレームを追加。1フレーム目を選択してモーショントゥイーンを作成。
1フレーム目のPhoto(MC)を選択し、プロパティのカラーでアルファ、0%にする。
593Now_loading...774KB:2006/01/29(日) 16:26:05 ID:Lwo5QSyJ
FLASHMXです。質問します
インスタンス名がMC1~9という9つのムービークリップを作って、
そのMCの数字の部分を変数であらわすことは可能なのでしょうか?
例えばAが3なら、MCとA でMC3、Bが5ならMCとBでMC5、というようにして処理したいのです。
よろしくお願いします。。
594Now_loading...774KB:2006/01/29(日) 16:33:09 ID:lwZ/BArR
>>593
配列アクセス演算子「[ ]」を使うといいよ。そのインスタンス群が_root上
にあるとしたら、
for(i=1;i<9;i++){
 trace(_root["MC" + i]._name)
}
とかね。
595Now_loading...774KB:2006/01/29(日) 20:13:50 ID:Lwo5QSyJ
>>594
なるほど、配列を使うのですね
がんばってみます、ありがとでした〜
596Now_loading...774KB:2006/01/29(日) 20:30:25 ID:YY0miEl5
こんばんわ。
アクションスクリプト初心者です。
いま、表現したい表現があって、苦戦しています。

あるムービクリップがあって、仮にblurryとします。
そのムービクリップをモーショントィーンアニメーションをさせていてます。
そのアニメーションに対して、Flash8からの新関数でblur関数を使い、
モーションブラーチックな表現を試しています。

以下が、アクションスクリプトの構文です。

blurry = new flash.filters.BlurFilter();
blurry.quality = 2;
blurry.blurY = 30;
blurry.blurX = 30;
blurrer.filters = [blurry];

一応、動きにたいして、ブラーはかかるんですが、どうも、モーションブラーというより、ぼけてるってかんじなんですね。

そこで、考えたんですが、ブラー関数は、X軸、Y軸に対して、ブラーされますが、
以下の図に示すように、
http://v.isp.2ch.net/up/fd129a532214.jpg

オブジェクトの動きにたいして、ローカル軸にブラーをかけるようにできないんでしょうか?

また、ブラー関数にキーフレームを打ちたいのですが、書き方がわかりません。
例えば、1フレームの時は、blurX=0で、10フレームで、blurX=10になり、その間のフレームを補完させたいと思ってます。
アドバイスをお願いいたします。Flash8Pro
597Now_loading...774KB:2006/01/30(月) 01:33:36 ID:d0Y44naD
質問です
flash8を使っています

ネット上で色々調べると8を使ったいろいろなエフェクトがあり
例えば ガラスや水面の表現 球体の表現 それはbitmapDataを
使ってやってるのだと思いますが 色んなソースを見たところ
エフェクトをかけるもとの画像は外部から読み込んだビットマップの画像なんです

にフラッシュで描いたムービークリップにエフェクトをかけるために
ビットマップ化したいんですが どういうスクリプトを組めばいいでしょうか?
598Now_loading...774KB:2006/01/30(月) 01:55:40 ID:arMHajBY
モバイル向けコンテンツの質問です。
当方ようやく3G携帯というものを入手したのでFLASH形式のメニューを作ろうと思っているのですが、
グーグル先生でいくら探しても求めている情報が見つかりません。

現在私が作成しようとしているのはDocomo P902i用のメニューなのですが、それの資料が見つからなかったので
他機種のメニューと同じようにして
on (release) {
fscommand( "Launch" , "camera" );
}
というスクリプトをボタンに埋め込んでみたのですがさっぱり反応してくれません。
モバイル向けのコンテンツを製作している方、私でも携帯電話のメニューを作成できるようにどうか御指南お願いします。
599Now_loading...774KB:2006/01/30(月) 17:01:51 ID:N580XcAr
mx2004
>>547 の内容なのですが…
mcに

onClipEvent(load){
function next(nextMovie){
loadflag=1;
nextMov=nextMovie
}
}
onClipEvent(enterFrame){
if(loadFlag){
if(_alpha<=0){
this.loadMovie(nextMov);
loadFlag=0;
}else{ _alpha-=10; }
}else{
if(_alpha<100){
_alpha+=10;
}
}
}

ボタンに
on (release) {
_root.mc.next("a.swf");
}
このやり方で挑戦しているんですが動きません。
サイトからコピってやっているので間違いはないと思っていますが、
試行錯誤してもダメですたorz
なにか問題あれば教えてくらさい。
600Now_loading...774KB:2006/01/30(月) 18:09:59 ID:k38Yba89
>>596
flash.filters.BlurFilterは、ぼかしフィルタなのでぼけて当然かと思われます
タイムライン使うならいちいちASなど使わなくともトゥイーンでやればいいのでは?

>>597
BitmapDataを作成し、ライブラリ上のMCをロードする
空のMCでも作ってそこに作成したBitmapDataを貼り付ける
自分でどんなAS組んでみたかを報告してないので具体例は省略、とりあえず組んでみな

>>598
私はauなのでdocomoがどうなのかは知りませんが
同メーカーであっても他機種の物はメニュー名変更で動くことは少ない
あとメモ帳の場合(A機種:"memo")(B機種:"note")みたいにメニュー名そのものが違ったりする
Flash Liteスレがあるからそこに逝けばP902i情報入るかも

>>599
どこのサイトからぱくってきたかは知らんが、それじゃ絶対に動かん。俺が保障する!
突っ込みどころ満載だが、とりあえず今は下の『on(release)』部分だけを考えてみよう
599はシーン移動したいんだな?
まずnextはデータセット用なのでシーン移動は出来ん。
あと"a.swf"とあるがシーン移動の場合シーン名だから拡張子は付かない。
ぱくったの改造じゃなくて一から組んでみ?
601Now_loading...774KB:2006/01/30(月) 18:37:11 ID:v0jRHy4r
ムービー起動時にfsCommandでフルスクリーン化した後、
F11キーでフルスクリーンOn/OFF切り替えするスクリプトを書いたのですが、
別のシーンから上記処理のシーンに戻ると、起動時の処理のせいで、
意図せずフルスクリーンになってしまいます。。

fsCommandで設定した状態を取得する方法もしくはフラグ等をうまく使って実現する方法を教えてください。
602Now_loading...774KB:2006/01/30(月) 18:54:27 ID:xX9wE/xJ
>>601
Ctrl+F でフルスクリーン切り替えだとダメなの?
603Now_loading...774KB:2006/01/30(月) 19:06:12 ID:qyz6KCsp
戻る前のフレームで設定しときゃいいじゃん
604Now_loading...774KB:2006/01/30(月) 21:52:01 ID:aytlfER8
MX2004です。

Xmlクラスで読み込ませるデータの属性部分(?)に「<」が入っていると、
正しくデータを読み込んでくれません(その部分で解析判断ミスって、データが終わってる扱いになる)

<mona giko="nuru<po"/>


属性部分に「<」を使用しつつ、この問題を回避する方法はありますか?
605Now_loading...774KB:2006/01/30(月) 21:56:37 ID:3A/qb/Co
<
606Now_loading...774KB:2006/01/30(月) 21:57:13 ID:3A/qb/Co
&lt; を半角で
607Now_loading...774KB:2006/01/30(月) 22:07:48 ID:aytlfER8
おー。それ、使えたのですね。
xmlファイルの記述を

<mona giko="nuru&lt;po"/>

にしておいたら、属性gikoは確かにデバッガ上で "nuru<po" になってました。

ありがとうございました。
608Now_loading...774KB:2006/01/30(月) 22:12:40 ID:J2Tof9bv
>>604
> Xmlクラスで読み込ませるデータの属性部分(?)に「<」が入っていると、
> 正しくデータを読み込んでくれません(その部分で解析判断ミスって、データが終わってる扱いになる)

解析判断『ミスって』、なんてふざけた事言わないように。
XMLの仕様ではそれが正しい動きです。
609Now_loading...774KB:2006/01/31(火) 01:08:59 ID:idhoFAjQ
xmlネタって事で出てくるかな〜?
と思ってが、この手の奴やっぱ出てくんね。
xmlの仕様程度でよくぞここまで(笑)
610602:2006/01/31(火) 08:31:04 ID:/8kQKgb4
〉603-604
ありがトン。両方試してみます!
611Now_loading...774KB:2006/01/31(火) 09:45:11 ID:uEnV+7yA
LoadVars.load( url ) の url には変数使えないんでしょうか?
612611:2006/01/31(火) 10:04:27 ID:uEnV+7yA
すいません。使えました。
ただ単にパスが間違ってただけだった orz...
スレ汚しスマンです。
613Now_loading...774KB:2006/01/31(火) 12:44:46 ID:lGHmWmQ0
>>600
ありがとです。
動かないのか...orz
やっぱりなー...
シーン移動じゃなくて、ムービーを読み込みたいのです。
とりあえず一から組むといっても全然わからんので
ヒントをくれませんか・・・?
614Now_loading...774KB:2006/01/31(火) 12:56:55 ID:uEnV+7yA
>>613
MXだけど動いたよ。
2004とか8は知らないけどvar 〜とか
変数の宣言しないとだめなんじゃなかったっけ。
もしくはa.swfのパス間違えてるとか。
615Now_loading...774KB:2006/01/31(火) 16:11:41 ID:ZnXJ88B0
>>613
変数名の大文字と小文字は区別されますよ。
616615:2006/01/31(火) 16:13:51 ID:ZnXJ88B0
orz
617Now_loading...774KB:2006/01/31(火) 16:23:26 ID:1YZGFbNn
mx2004です。
ランダムでアイテムが出てくるアイテムランダムMCを置いて
ボタンアイテムをgetさせたいのですが
うまく動作してくれません。

基本的な事ですいませんがご教授をよろしくお願いします。

#_root上に置いてあるアイテムをget
させることはできました。
618Now_loading...774KB:2006/01/31(火) 16:28:48 ID:uEnV+7yA
俺の理解力が足りないのだろうか。
>>617が何を言いたいのか分からない。
619Now_loading...774KB:2006/01/31(火) 16:37:04 ID:FUcVSLLg
>>618
ダミー情報に惑わされるな!
最後の行に注目するんだ!
これは…おそらく…ターゲットパスがわからないという質問だ。

つーことで>>617はAS中のパスを確認しよう。
620Now_loading...774KB:2006/01/31(火) 18:36:26 ID:nAzN6SMG
誰かが物凄い勢いで解読するスレ
621Now_loading...774KB:2006/02/01(水) 02:07:51 ID:22T13Q7B
>>620
ワロタ
622Now_loading...774KB:2006/02/01(水) 06:55:07 ID:abCGYV2P
環境 Flash8 MacOSX でつくってるんですが
FLASH 道場さん ttp://www2.netwave.or.jp/~light/ の
スクロール縦 ttp://www2.netwave.or.jp/~light/scroll_tate.html を
同じシーン&フレーム上に左右2つ置きたくて試してみたのですが
ファイルを分けても左右のボタンどちらかを押すと
両方のスクロール部分が同時に動いてしまいます
インスタンス名をどっかに付けて ボタンそれぞれにどちらをスクロールするか
指定すれば良いのかと思うのですがやり方が分かりません
(もしかしたらその考え方自体違うかも...)
とりあえずボタンには
on (rollOver) {
_root.mov = -600;
}
って書いてあります
たすけてください よろしくおねがいします
623Now_loading...774KB:2006/02/01(水) 07:03:22 ID:7DFqI6yf
mov1とmov2とかに分けたらいいかと
624622:2006/02/01(水) 07:25:18 ID:abCGYV2P
>>623
朝っぱらからすいません
寝てなくて頭動いてませんでした
分ける間もなく自己解決しました
ホントすいませんorz
濃ゆいコーヒー飲んで目さましてきます
625Now_loading...774KB:2006/02/01(水) 12:23:32 ID:FJgTa4EH
MX2004使っているのですけど、
メニューのキーボードショートカットで
スクリプト編集の欄のショートカットをいじっても全然反映されないのって
仕様ですか?それとも設定の仕方が悪いのでしょうか?
例えばカット(デフォCTRL+X)を、CTRL+MやCTRL+5にしたりしても全く反映されません。
どうしてでしょうか?
626Now_loading...774KB:2006/02/01(水) 12:46:26 ID:Rg1qxJqw
>>625
セット複製してそれに対して変更で問題なくできるが
627Now_loading...774KB:2006/02/01(水) 12:58:58 ID:shdlUQcZ
>>614-615 試してくれてありがとう。
とりあえず自分はmcにムービーを読み込んで、ボタンを押すと暗くなって他のムービーがmcに読み込まれるものを作りたいのです。
動く人もいるってことは間違いではないんだよね...orz
628Now_loading...774KB:2006/02/01(水) 13:29:16 ID:FJgTa4EH
>>626
セットも複製してます。
ありゃ。じゃあうちのPCが悪いのかな。。。
と思ったらデキタ!
なんか「描画メニューコマンド」のほうのショートカットをいじったら
ASウィンドウ上でもそのショートカットが効くようになってるorz
スクリプト編集ってASのことじゃないのかよぉ〜・・・?
629Now_loading...774KB:2006/02/01(水) 13:40:04 ID:FJgTa4EH
あきらめない力をくれた>>626に乾杯。
しかしShift+Insertはどうやっても無理でした。
630Now_loading...774KB:2006/02/01(水) 17:31:43 ID:shdlUQcZ
>>627ですが、
maji困ってます。助けてorz
631Now_loading...774KB:2006/02/01(水) 18:35:51 ID:BEqceA7M
>>630
暗くなるっていってもアルファ下げてるんだから
読み込み先のMCが透明になるのはわかってるよね。
暗くして読み込み終了後に明るくするってことなら、MXだけどしたのでどう?

onClipEvent (load) {
loadflag = false;num = new Array(100, 100, 100);
myColor = new Color(this);myColorTransform = new Object();
function next(nextMovie) {loadflag = true;nextMov = nextMovie;}
}
onClipEvent (enterFrame) {
if (loadFlag) {
if (num[0]<=0) {
this.loadMovie(nextMov);num = new Array(100, 100, 100);
myColorTransform = {ra:num[0], ga:num[1], ba:num[2]};myColor.setTransform(myColorTransform);
loadFlag = false;
} else {
num[0] -= 10;num[1] -= 10;num[2] -= 10;
myColorTransform = {ra:num[0], ga:num[1], ba:num[2]};myColor.setTransform(myColorTransform);
}
} else {
if (num[0]<100) {
num = new Array(100, 100, 100);
myColorTransform = {ra:num[0], ga:num[1], ba:num[2]};myColor.setTransform(myColorTransform);
}
}
}
on (release) {
_root.mc.next("a.swf");
}
632Now_loading...774KB:2006/02/01(水) 19:07:39 ID:GOsfzHtH
シューティングゲームでZボタン(普通の弾)、スペース(ミサイル)、敵を(位置ランダム)で表示
させたいんですが実行すると敵がいるときにスペースを押すと敵が消えてしまうんですが
(通常の弾でもZボタン連射で時々敵が消えちゃいます。。。)
これはどこがいけないんでしょうか?orz ↓敵の処理です
targetMax = 5;// 弾の最高数
targetUse = new Array();
for (i=0; i<targetMax; i++) {
targetUse[i] = 0;// 敵の使用フラグ
}
function targetCreate (iteki) {
// 未使用番号を検索
for (i=0; i<targetMax; i++) {
if (targetUse[i] == 0) {
break;
}
}
if (i == targetMax)return false;

// 敵を生成
_root.attachMovie("target", "target"+i, i);

_root["target"+i]._x = iteki.x;
_root["target"+i]._y = iteki.y;
_root["target"+i].ID = i;
targetUse[i] = 1;
}
633Now_loading...774KB:2006/02/01(水) 19:41:54 ID:PZPHIWcd
>>632
深度の問題
634Now_loading...774KB:2006/02/01(水) 20:36:03 ID:FJgTa4EH
深度等のリスト
635632:2006/02/02(木) 00:59:45 ID:kjBb8D12
_root["target"+i].swapDepths(10+i);
こんな感じのを追加すればいいんでしょうか?
少しやってみたけどよくわからないですorz
助けてくらはい
636632:2006/02/02(木) 01:10:10 ID:kjBb8D12
今いぢっていたら消えなくなりました!
が。。。時々画面上でMCがいくつかフリーズしたように動かなくなっちゃいました。。。
637Now_loading...774KB:2006/02/02(木) 10:53:11 ID:Cqg5ULk9
>>631
ASありがとうございます。
しかし、今まで試してみたものと同様でアルファがかかりませんorz
ボタンを押すと、ピクっと一瞬画面が固まります。
なので、指令を聞いてるには聞いてると思うのですが・・・
サンプル用に簡単に作ったものでは>>631のASで動きました。
もしかして...と思っているのですが、その読み込むムービーの1フレ目に
ちょいと複雑な『nowloading』をつけてあります。
私がサンプルで簡単に作った方にはつけていません。
もう、違いといったらそれしか無かったものでnowloadingを外してみましたが
だめでした...途中でとってもASって残るものなんでしょうか?
無知ですみませんがアドバイス&意見お願いします。
皆さんの協力とても嬉しいです。
638Now_loading...774KB:2006/02/02(木) 11:58:38 ID:OIM4ds79
一回基礎から勉強しろよお前
639Now_loading...774KB:2006/02/02(木) 12:41:26 ID:Cqg5ULk9
もう一度基礎から勉強したらわかるようになりますか
640Now_loading...774KB:2006/02/02(木) 12:57:29 ID:AN8XTF1X
おしえて!!FLASHを読めw
641Now_loading...774KB:2006/02/02(木) 13:00:02 ID:53Souy3R
>>639
デバッガ使ってステップごとに追っていくとか、トレース入れるとか。
642Now_loading...774KB:2006/02/02(木) 14:21:03 ID:Cqg5ULk9
>>641 
ありがとうございますorz
643Now_loading...774KB:2006/02/02(木) 16:36:49 ID:Cqg5ULk9
もう全部解決しました!
感動です...み〜〜んなありがとう愛してるゼ
644Now_loading...774KB:2006/02/03(金) 14:39:56 ID:7PZX35FX
12という文字列を0000012に変換したいのですがどうすればいいのでしょうか
645Now_loading...774KB:2006/02/03(金) 14:41:16 ID:7PZX35FX
12という文字列を0000012に変換したいのですがどうすればいいのでしょうか
646Now_loading...774KB:2006/02/03(金) 14:44:49 ID:2FI1AZfP
str = "12";
str = "00000"+str;
647Now_loading...774KB:2006/02/03(金) 14:48:50 ID:4L9q4XFk
ワロスw
648Now_loading...774KB:2006/02/03(金) 16:14:07 ID:WHBJrxZr
str="0000".concat(12);
なら確実に文字列になるんじゃね?
649329:2006/02/03(金) 21:24:52 ID:PAaIx41i
ミリ秒を時間分秒にしたいのですが、
20736365ミリ秒→5時間45分36秒にする場合、
targetTime = 20736365/1000;
nowH = Math.floor(targetTime/3600);
nowM = Math.floor((targetTime%3600)/60);
nowS = Math.floor(((targetTime%3600)%60));
trace(nowH+":"+nowM+":"+nowS);
なんか凡雑な気がするものでもっといい方法ありますか?
よろしくお願いします
650Now_loading...774KB:2006/02/04(土) 00:27:14 ID:BbU3M0mp
>>645
それどこかのスレで見たよ。
5行くらいで、すっきりしたやつが書いてあって、
驚いた。どこかは覚えてない。
651Now_loading...774KB:2006/02/04(土) 00:52:33 ID:V66zA5VP
>>644
function toDigStr(num, dig){
return String(Math.pow(10, dig)+num).substr(1)
}
var str = toDigStr(12, 7)
trace(str)

hore
652Now_loading...774KB:2006/02/04(土) 02:07:50 ID:2l9gIoed
>>644
ソースの見た目のインパクト重視。
>>651は計算してるから埋めたい桁数が15桁ほどで破綻するけど、こっちは30桁までおっけー!

function toDigStr2(num,dig){
return "000000000000000000000000000000".substr(0,dig - num.toString().length) + num;
}
trace(toDigStr2(12,25));
653Now_loading...774KB:2006/02/04(土) 02:34:24 ID:e7Tso0Ig
>>644
function toDigStr3(num, dig) {
ret = "";
for (var i = 0; i<(dig-num.toString().length); i++) ret = "0"+ret;
return ret+num;
}
trace(toDigStr3(12,7));
654Now_loading...774KB:2006/02/04(土) 04:46:20 ID:z0+XKfg8
ボタンにマウスが乗っかるとMCが左にスライドして
クリックするとフレーム3に飛ぶ物を作りたいのですがうまくいきません
↓左にスクロールは出来たのですが押しても反応してくれません。
(フレーム3のMCインスタンス名は1977_mです)


on (rollOver) {
_root.mov = −100;
}
on (rollOut) {
_root.mov = 0;
}
on(release){
� � _root.1977_m.gotoAndStop(3);
}

Flash8を使ってます。お願いいたします。
655Now_loading...774KB:2006/02/04(土) 06:45:52 ID:axMATYPD
>>649
なんか、昔やってみたなあと思いだし古いflaから。
はっきり言ってつかえねーと思うorx_..........

//1970/01/01 0:0:0からt_millisec経過した時分秒
//24時間以上だと日にちが加算される
//UTCでないとtimezone分時刻がずれるので注意
var t_millisec:Number=7200000;
var fa_date:Date = new Date(t_millisec);
//fa_date.setTime(3600000);
trace(t_millisec+"ミリ秒は");
trace("時間:"+fa_date.getUTCHours());
trace("分:"+fa_date.getUTCMinutes());
trace("秒:"+fa_date.getUTCSeconds());
trace("ミリ秒:"+fa_date.getUTCMilliseconds());
656Now_loading...774KB:2006/02/04(土) 06:56:09 ID:axMATYPD
>>654
mc.gotoAndStop();はそのmcのタイムラインの再生ヘッドを移動させる命令。
ルートのタイムラインのをと言うことなら_root.gotoAndStop();になるよね。
あと、ソース記載はコピペで。
657654:2006/02/04(土) 08:32:34 ID:z0+XKfg8
>>656
早朝からご回答ありがとうございます。
on (rollOver) {
_root.mov = −100;
}
on (rollOut) {
_root.mov = 0;
}
on(release){
� � _root.gotoAndStop(3);
}

ってことですよね?でも、動きませんでした。エラー出ちゃいます
まさか、同じレイヤーじゃないと駄目な訳じゃないですよね?
あと、ボタンごとに欠くフレームに移動したいので
このタイムラインの各フレームにthis.stop();を入れてるんですが
それもおかしくはないですよね
なんで動かないんだろ
何処か間違ってそうなところ分かりませんか?
658Now_loading...774KB:2006/02/04(土) 08:46:00 ID:axMATYPD
>>657
mc座標の移動はmc._xとmc._yプロパティを設定することで行う。
movというインスタンス名を持つmcの座標を設定するには
mov._x=100;ルートにあるなら絶対パスで_root.mov._x=100;とかね。
pathが理解できていれば問題ないと思うぞ。
� � _root.gotoAndStop(3);
^^^これはなんぞや。
コンパイルエラーが出ているならエラーを解決してからだね。
659Now_loading...774KB:2006/02/04(土) 09:15:49 ID:j2qShd6/
>>657
ひまだからサンプル作ってみた。

http://aploda.com/dl.php?mode=pass&file_id=0000074473
660654=657:2006/02/04(土) 10:17:09 ID:z0+XKfg8
>>658
ありがとうございます。
この間買って来た本と格闘しながらつくってたんですが、いまいちよくわからなくって。
xとyの座標で設定するのは知ってたんですが、本に書いてなくて
それでも、移動はしてくれたので、まぁよし?とか思っちゃったんですが
それがまずかったのかな、作り直します。
ソレ、なんなんでしょう。。。すいません;

>>659
サンプルありがとうございます!!!!!
凄い分かり易い!参考に1から作り直します。
ホントにありがとうございました
661Now_loading...774KB:2006/02/04(土) 10:21:32 ID:jeiRZ/ye
>>649
うーん…、こんな感じかなあ?計算が冗長だけど。
function getPassage(a,n,t){
 a[2-t]= int(n/Math.pow(60,t))+a[2-t]
 return (t>0) ? getPassage(a,int(n%Math.pow(60,t)),t-1) : a.join("")
}
trace(getPassage(["時間","分","秒"],20736365/1000,2))
662哲学者ナナーシァ・セブデック:2006/02/04(土) 11:31:25 ID:TVhecWt7
a>d=3ma △ABC=180°540+180(□def)
a~ddd 4i(3no+502a)=540
□def=4i(3no+502a)
a~ddd+3s{540d(30s+54b)}×2=180
a~ddd+3s{540d(30s+54b)}×2=△ABC
540d-200=a
a+540d=3ma×2
663Now_loading...774KB:2006/02/04(土) 16:43:53 ID:axMATYPD
>>662
哲学とか数学とか記号論とかのスレの誤爆かな
ASスレなのでASしかわからんよ。
664Now_loading...774KB:2006/02/04(土) 19:00:46 ID:BbU3M0mp
誤爆でしょう
665Now_loading...774KB:2006/02/05(日) 15:33:33 ID:yY75V5WO
マウスクリックの反応領域について質問です。

ムービークリップAでは、onMouseDown = function(){〜}によって、
マウスに反応して動く操作を定義しています。
ムービークリップBでは、ボタンを配置していろいろやっています。
Aの上にBがのっかるように配置されたとき、B上で操作しているつもりでも
Aのほうまでマウスクリックに反応して動いてしまいます。
Bでさえぎられた領域上ではAにマウス反応させないためには、
どうすればいいのでしょうか?
666Now_loading...774KB:2006/02/05(日) 16:28:07 ID:DW9eyhBx
>>665
hitTestで重なった場合にだけmcAの処理を中止とか、
深度を取得して上にあるほうの処理しかしないとか
分ければいいんじゃないかな。
667Now_loading...774KB:2006/02/05(日) 16:53:27 ID:nDngWA7j
>>665
onMouseDownをやめる。
onPressとかをつかう。
668665:2006/02/05(日) 17:29:03 ID:yY75V5WO
>>666
それはちょっと考えましたが、ほかのムービークリップの存在が
Aのコード内に入ってくるのがいまいちオブジェクト指向っぽく
ないので……。
ま、めんどいっしょ、それじゃ。ってのが本音です。

>>667
それです、ありがとうございます。
単純に置換しただけでほぼOKでした。
Bと重なっててもボタンがない部分ではやっぱりAが反応してしまったのですが、
Bの広さ分のダミーボタンを下に敷くことでうまくいきました。
669Now_loading...774KB:2006/02/05(日) 18:38:57 ID:VBHpLy9O
作成したswfを開いたときに、
はじめに1回だけloadMovieNumを発生させたいのですが
永遠と連続して発生してしまいます。
どうしたらよろしいでしょうか。。
670Now_loading...774KB:2006/02/05(日) 18:50:39 ID:8rPlWGWf
>>669
ループしてんじゃない?
this.stop();を書くとか。
671Now_loading...774KB:2006/02/05(日) 18:55:07 ID:VBHpLy9O
ありがとうございます!できました!
672Now_loading...774KB:2006/02/05(日) 20:32:30 ID:nhjoyPjE
とりあえずまずはflaファイルを…
http://www.uploda.net/cgi/uploader1/index.php?dlpas_id=0000075091
パス:DL

今度行くスキー合宿のゲーム大会で使うお題を表示するFLASHを作っているのですが、
お題の書いてある配列をシャッフルした後、お題をダイナミックテキストに順番に表示して行っても、
どうしても途中でエラーになって最後まで表示しきれません。
ランダムでお題を表示させると被るし、同じ配列のままだと何回も出来ないので、
シャッフルの機能だけは外せないのです…。
どなたか、どこが変なのか教えてください。
673Now_loading...774KB:2006/02/05(日) 20:34:00 ID:nhjoyPjE
すいません、質問する際はスレageた方が良いのでしょうか…?
674Now_loading...774KB:2006/02/05(日) 20:40:50 ID:JGBrottf
菅平.fla
675Now_loading...774KB:2006/02/05(日) 20:43:19 ID:nhjoyPjE
>>674
そう、長野県で一番寒いところだとか聞いてる(´Д`il!)
676Now_loading...774KB:2006/02/05(日) 20:44:31 ID:nhjoyPjE
あ、みんなスマン、パス大文字じゃなくて小文字だった、
ごめんよ…orz

dl
677Now_loading...774KB:2006/02/05(日) 21:12:43 ID:619/d2as
>>672
on (release) {
hensu += 1;
}
↑これがお題の配列数超えてもカウントアップしつづけるからじゃないの?
ifでお題の配列数でとめるか、%でループさせるか刷れば良いとおもうけど。
678Now_loading...774KB:2006/02/05(日) 21:15:12 ID:8rPlWGWf
>>672
エラーがでるってundefinedが表示されるって事なら
それは配列の最大数を超えてるから。
シャッフルするときfor文にhensu使ってるのでodai[180]から表示されてる
シャッフルが終わった時点でhensu=0を入れる。
679Now_loading...774KB:2006/02/05(日) 21:27:31 ID:nhjoyPjE
>>677-678
とても参考になります、
ありがとうございました。
680Now_loading...774KB:2006/02/05(日) 21:52:56 ID:nhjoyPjE
http://www.uploda.net/cgi/uploader2/index.php?dlpas_id=0000009932
PASS dl

undefinedの壁は乗り越えられたのですが、
今度は得点を表示させる所に問題が…orz

右方向キーで得点の変数に+1が加算されるようにしたはずなのですが、
これまたどうしてもいくらキーを叩いても数字が加算されません。

たびたび申し訳ありませんが、またお願いします…il!orz
681Now_loading...774KB:2006/02/05(日) 22:35:47 ID:nhjoyPjE
いかん、切欠なるような物を作ろうと思ってボタンを作っても駄目だ…。
どうしよう、何がいけないんだろう…il!orz
682Now_loading...774KB:2006/02/05(日) 23:00:01 ID:tm6LCWtb
ものすごく簡単だとは思うんですが、
ボタンを押すと(releaseで)シーンの移動をするという動作をさせたいんですが、
どう書けばいいんでしょうか?
683Now_loading...774KB:2006/02/05(日) 23:24:26 ID:619/d2as
>>680
お前好い加減にしろって。
ここ丸投げスレじゃないんだから、
根本的にAS理解してからこいよ。

>>682
gotoAndStop("シーン名", フレーム数)
684Now_loading...774KB:2006/02/05(日) 23:49:39 ID:nhjoyPjE
>>683
本当にごめん…orz
相対パスを絶対パスに直しただけでうまく行った…
勉強し直してくる(つД`)
685Now_loading...774KB:2006/02/06(月) 00:09:26 ID:NTPzadzn
>>681
ナニがいけないって、貴方のASの書き方がいけないんです。
>i + 2
コレでは i に2は加算されません。
>this.i = i + "点です";
i はすでに変数として使われているので、テキストフィールド名に i とつけるのは間違っています。
あと変数のパスがあっていません。

ソースだけ上げて〜できるようにしたい。というのはもぅやめてください。
>>1をよく読んでください。
686Now_loading...774KB:2006/02/06(月) 02:09:43 ID:7buQPkEi
敵との当り判定を取りたいのですが弾が画面上に2個以上あると判定がされません
当り判定のソースはこれなんですがどこがいけないのでしょうか?><
onClipEvent (enterFrame) {
for (i=0; i<_root.tagsys.targetMax; i++) {
if (_root.tagsys.targetUse[i] == 1) {
for (hit=0; hit<_root.missys.GunMax; hit++) {
if (_root.missys.GunUse[hit] == 1) {
if (_root["target"+i].hitTest(_root["gun"+hit])) {
_root.hyouji = "判定あり";
} else {
_root.hyouji = "判定なし";
}
}
}
}
}
}
687649:2006/02/06(月) 10:45:01 ID:T9SSVhrP
>655,661
ほぁ〜勉強になります
return使ったことなかった。
ありがとうです
688Now_loading...774KB:2006/02/06(月) 11:38:18 ID:WSO/0V1d
>>686
トレース入れるかデバッガで1ステップずつ追っていく。
689Now_loading...774KB:2006/02/06(月) 14:32:49 ID:237uZbTk
>>683
ありがとうございます。

gotoAndPlay("シーン",フレーム数)ではできましたが、this.gotoAnd.....ではできないんですが、
つけるとしたら他に何をつければいいんでしょうか?
690Now_loading...774KB:2006/02/06(月) 14:51:16 ID:WSO/0V1d
>>689
gotoAndPlay()とmc.gotoAndPlay()は別物。
シーンを指定する場合は前者しか使えない。
詳細はヘルプで確認。
691654=657=660:2006/02/06(月) 20:06:50 ID:/nvQS2QY
>>656 >>658>>659
本当にありがとうございました。しばらくネットにつなげない環境だったので
レスが遅くなりましてすみません、無事作動出来るようになりました。
もっといっぱい理解して他の困ってる方に教えてあげられるようになれたらと思います。
おせわになりました。
692Now_loading...774KB:2006/02/06(月) 21:42:20 ID:kJdzWrqO
>>686
取りあえず単純構造にしてやってみれ
わからん設定が条件に絡んでるからなんともいえんが、
大概は変数の設定がちゃんとできてないか、パスが違うか、だ

あとチェックは
>_root.hyouji = "判定あり";
より
trace("tag " + i + " gun " + hit);
とかの方がいいかもわからんが、まあそのへんはどうでもいいか
693Now_loading...774KB:2006/02/06(月) 22:10:51 ID:237uZbTk
>>690
たびたびありがとうございます!!!
694Now_loading...774KB:2006/02/07(火) 13:23:22 ID:umufhRhP
すいやせん、すごく簡単な質問。
if、for等の条件式のconditionで
( m + 1 == n )みたいに
比較演算子中に算術演算子を混入させることってできましたっけ?
695Now_loading...774KB:2006/02/07(火) 13:30:28 ID:oq3dMkYu
>>694
ん、うまくいかない事例を書いてくれれば悪いところが解るかもね
696Now_loading...774KB:2006/02/07(火) 14:38:38 ID:YAV7VGPZ
flash lite1.1でMCの中に入れたボタンの命令から
ルートのタイムライン上のラベルに飛ばしたいのですが
どうすればいいのでしょうか?

697Now_loading...774KB:2006/02/07(火) 15:01:07 ID:oq3dMkYu
>>696
flash lite1.1はしらんが、gotoAndPlayじゃだめかね
698Now_loading...774KB:2006/02/07(火) 15:06:42 ID:YAV7VGPZ
>>697
gotoAndStop()ではボタンがあるMCでgotoAndStop()してしまうのです。
flash5以上なら_root.gotoAndStop()でいけたんですが…

どうにも解決しないそうなら、ボタンをばらす方向でせめてみます…
699Now_loading...774KB:2006/02/07(火) 15:12:50 ID:d27xqGN1
telltargetじゃね?
700Now_loading...774KB:2006/02/07(火) 15:25:51 ID:umufhRhP
>>695
返事していただいて、自己解決してしまったなんて言えない…
しかも混入させる方法以外に解決方法があっただなんて更に言えない…
701Now_loading...774KB:2006/02/07(火) 15:41:34 ID:oq3dMkYu
np質問をしっかりと書いていく課程で解っちゃう場合も多々ありんす(古
702Now_loading...774KB:2006/02/07(火) 16:44:32 ID:3kfyA5sG
ASで特定のMCを別のレイヤーに移動させる方法ありますか?
レイヤーA ○
レイヤーB ↑■
レイヤーC ●
レイヤーCにあるMCをAに移して、BにあるMCより手前に表示させたいのですが。。。
703Now_loading...774KB:2006/02/07(火) 17:19:51 ID:BRAbRNj3
swapDepthsじゃダメなん?
704Now_loading...774KB:2006/02/07(火) 17:46:36 ID:3kfyA5sG
>>703
↑図のレイヤーBのMCの深度を変えたくなかったので。。。
でも一時的にcreateEmptyMovieClipでレイヤーBのMCの上にMCを作って
それとswapDepthsすることにしました。
・・・そこでまた質問なんですが
一番手前に表示されるようにと
_root.createEmptyMovieClip("temp_mc",_root.getNextHighestDepth());
this.swapDepths(_root.temp_mc);
(thisは手前に表示したいMC)
としたのですが手前に表示されません。
temp_mcの深度を調べると0でした。_root.getNextHighestDepth()は間違っているのでしょうか?
705Now_loading...774KB:2006/02/07(火) 17:47:53 ID:d27xqGN1
getNextHighestDepth()の位置にMC作ったのならswapする必要ないんじゃない?
706Now_loading...774KB:2006/02/07(火) 18:24:28 ID:3kfyA5sG
えっと、すでにあるMC(this)を一番手前の表示にしたいのです。
_root.createEmptyMovieClip("temp_mc",_root.getNextHighestDepth())で作った
MC(temp_mc)は空のMCで、一番手前の深度に作った(つもり)のです。
MC(this)とMC(temp_mc)をswapDepthsで入れ替えてMC(this)を浮き上がらせようという作戦なのです。
707Now_loading...774KB:2006/02/07(火) 19:39:13 ID:oq3dMkYu
>>706
NextHigh...使わずに自分で深度管理する。
708Now_loading...774KB:2006/02/07(火) 20:23:24 ID:3kfyA5sG
getNextHighestDepth()、ちょっとググってみたけどなんかバグっぽいみたいですね。
リリースによっては直ってるのかもしれないけど。(自分はMX2004)
trace(_root.getNextHighestDepth());
してみても何故かundefinedになるし(謎すぎ)

>>707
そうします・・・。
709Now_loading...774KB:2006/02/07(火) 22:10:47 ID:AC2NR9Yd
>>708
コンポーネント使ってる?
使ってたらそれが原因。

コンポーネントを一度配置すると、
コンポーネント内のオブジェクトが深度の上限超えた値使っちゃうので、
初期読み込みを行うルートのみgetNextHighestDepthで深度が取れなくなる。

このバグ対策はルートを使わず、
createEmptyMovieClipなんかで一個階層作ってその下で行えばOK。
(普通にMC配置してもいいけどね)
710Now_loading...774KB:2006/02/07(火) 22:37:53 ID:3kfyA5sG
>>709
コンポーネント、パネルを開いて見たことくらいはあるけど配置はしてないと思います。
そして_root以外のMC内の階層とかをgetNextHighestDepthで見てみようとしても
undefinedになりますorz
いま製作中のブツの開発環境がMX→8→MX2004って渡り歩いているので
もしかしたら深度とかいろいろやばいことになってるのかも(動くところは動いているので良いのですが)
ホントはできるはず!と思い横目で見ながら回避策とります。ありがとうです。

711Now_loading...774KB:2006/02/08(水) 01:12:10 ID:wFG37QGQ
>>710
コンポーネントは一度でも配置すると、消した後も影響するけど、
MC内でも取得出来ないのは謎だね。

深度は限界値があるから、
それ以上の値になってるのかもしれないけど、
とりあえず見えないから何ともいえないや。
712Now_loading...774KB:2006/02/08(水) 04:01:41 ID:5L1l4cyB
質問です 当方MXです
標準を定めて打つタイプの射撃ゲームを作っているのですが

”標準”(スコープ)の先にある対象を拡大したいのです
理想は サイト”冷蔵庫の中身”様の ゴルア13のようスコープです
本人様に直接聞こうと思ったのですが
メールフォームが無くサイトも更新されていないようなので・・・

xscale を使うとスコープ自体のMCが拡大されてしいまい、
その先の対象物は普通のままです

配置やスクリプトなど分かるかたがいればよろしくお願いします
簡単な質問で申し訳ありません

713Now_loading...774KB:2006/02/08(水) 07:23:07 ID:5S2ZdY1Z
ヒント:マスク
714Now_loading...774KB:2006/02/08(水) 13:54:00 ID:5A1xT4pc
>>712
「照準」な。
715Now_loading...774KB:2006/02/08(水) 21:00:37 ID:lxvm8bna
”マスク”で調べてみます 初めて聞く単語でした
初心者の相手ありがとうです

また不備があったら質問させていただきます
716Now_loading...774KB:2006/02/08(水) 21:30:22 ID:5sfMNnTJ
リスナーの使い方で困っています。
Windowコンポーネントの中に配置したButtonコンポーネントに、
メインフレームからリスナーを追加するということはできるのでしょうか?

function button_in_window() {
trace("test");
}
_root.window.content.test.addEventListener("click", button_in_window);

現在このような形でやっているのですが、ボタンを押してもtraceが実行されません。
Windowコンポーネントのインスタンス名はwindow
Buttonコンポーネントのインスタンス名はbuttonとなっています。

buttonインスタンス自身にon()を書けばいいのはわかっているのですが、
個人的なこだわりのためにメインフレームにASを全て記述したいのです。
どうぞよろしくお願いします。
717Now_loading...774KB:2006/02/08(水) 22:18:26 ID:5ue3d/Yo
_root.window.content.test.addEventListener

_root.window.content.button.addEventListener
じゃないの?
718716:2006/02/08(水) 22:45:40 ID:5sfMNnTJ
>>717
あ、実際作ったサンプルがtestで、書き込む際にわかりやすいようにと
書き直していたつもりがそのままでした…
かえってわかりにくくなってしまいすみません。

ちなみにbuttonで試しても無理でした。
719Now_loading...774KB:2006/02/08(水) 23:34:47 ID:y0qtO8OD
>>716
ボタンコンポーネント[名前:button]を含むMC(リンケージ識別子はbutton_mc)を用意する。
ステージ上にウインドウコンポーネント[名前:win]を配置

//フレームアクション
var myListener = new Object();
function button_in_window() {
trace("Button Clicked");
}
myListener.complete = function() { //contentPathが設定されると呼び出される
_root.win.content.button.onLoad = function() { //ボタンがロードされた時
//クリックイベント追加
_root.win.content.button.addEventListener("click", _root.button_in_window);
};
};
win.addEventListener("complete", myListener);
_root.win.contentPath = "button_mc";
//
なんか回りくどいやり方に見えるけどこうやんないと出来なかったので…。

ここ参考
ttp://www.fumiononaka.com/TechNotes/Flash/FN0505001.html
720Now_loading...774KB:2006/02/09(木) 00:44:01 ID:n2vsdSrI
変数名が一部同じものを複数作る場合なんですが、
for文などで作ることってできるでしょうか?
Flash8です。

t1 = 0;
t2 = 0;
t3 = 0;
を作る場合

↓もちろんシンタックスエラーです;;

for (i=1; i<=3; i++) {
"t"+i =0;
}
trace(t2);
//結果=s2

よろしくお願いします
721329:2006/02/09(木) 00:46:44 ID:n2vsdSrI
>//結果=s2
//結果=0

間違えました。すいません。
for文でなくても、まとめて書ける方法があるでしょうか。
722Now_loading...774KB:2006/02/09(木) 00:51:50 ID:DgfNYtm7
>>720
配列使えばいい。
var t = new Array();
t[0]=0
t[1]=0
t[2]=0
723Now_loading...774KB:2006/02/09(木) 00:52:59 ID:oFgHp1IB
擬似配列でもいい
this["t"+i]=0
724329:2006/02/09(木) 01:39:05 ID:n2vsdSrI
>722,723
そうか。attachMovie使うときに似た物を使ってたわ
理解してないな〜、どうもありがとうございます
725Now_loading...774KB:2006/02/09(木) 01:39:08 ID:vDqix1+3
MovieClipLoaderについて質問です。

_global.mcl = new MovieClipLoader()
|
+---ClassObjectA --- fileA.swf --- listnerA.onLoadInit = funcA
|
+---ClassObjectB --- fileB.swf --- listnerB.onLoadInit = funcB

現在、上のような構成です。グローバルにMovieClipLoader()オブジェクトを一つ置いています。
ClassObjectA の管轄で fileA.swf を読み込み、読込み完了時に funcA を呼び出したいので、
listnerA の onLoadInit に funcA を登録しています。
ClassObjectB でも同様です。

この構成だと、MovieClipLoader が共通のため、fileA.swf が読み込まれたときに
listnerA も listnerB も onLoadInit を呼び出してしまいます。
そのため、ターゲットムービークリップが適切かどうかの判断が必要になってしまいます。

そこで、以下のような構成にしようかと考えています。

なし
|
+---ClassObjectA --- fileA.swf --- mclA = new MovieClipLoader() --- listnerA.onLoadInit = funcA
|
+---ClassObjectB --- fileB.swf --- mclB = new MovieClipLoader() --- listnerB.onLoadInit = funcB

各クラスオブジェクトごとに MovieClipLoader を所持して、それぞれに Listner を登録すれば、
管轄内のファイルが読み込まれたときしか onLoadInit は呼び出されません。

軽く動作確認した限りではこれで問題なく動いたのですが、これはほんとに動くべくして動いているのでしょうか?
MovieClipLoader をググると、「単一の MovieClipLoader オブジェクトが、同時に複数のファイルの読込みを行う」
というサンプルは見つかるのですが、「複数の MovieClipLoader オブジェクトが、同時に複数のファイルの読込みを行う」
というサンプルが見つからないので、このやり方がなにか不正な動作を引き起こさないかどうか心配です。
726716:2006/02/09(木) 08:27:09 ID:CqZpFtGO
>>719
ありがとうございます!
おかげさまでちゃんと動きました!
簡単に言うとWindowコンポーネントの中に配置したコンポーネントは
完全に読み込むまでに時間差があって、すぐにはアクセスできないってことですかね?
今までにもWindowコンポーネントが期待通りの動きをしてくれなくて困っていたことがあったのですが
原因は同じことだったのかもしれません。
727Now_loading...774KB:2006/02/09(木) 17:54:23 ID:lTZYqZkJ
質問です。
function main_loop(){
 wait = true;
 mc.onEnterFrame=function(){
  if(this._currentframe==10){
   wait=false;
  }
 }
 while(wait){}
 ・・・
}
といったASで、mcが少し(10フレーム)再生されてからmain_loopの続きを実行したいのですが
mcは再生されずに、[応答なし]になってしまいます。orz
mc.onEnterFrameって完全に分離して動くわけじゃないのがわかったのですが
上記ASと同じようなことを実現させるにはどうのようなASを組めばよいでしょうか?
なるべく上記ASの構造は崩したくありません。(main_loopを抜けずにmc.onEnterFrameをつくるカタチ)
728Now_loading...774KB:2006/02/09(木) 18:14:03 ID:w49XHndo
できない
729Now_loading...774KB:2006/02/09(木) 18:19:58 ID:6ZQMJokC
 mc.onEnterFrame=function(){
  if(this._currentframe==10){
処理
delete this.onEnterFrame;
  }
 }
とかそんな感じ。
毎フレーム実行して、条件あったら処理して終了。って流れ

あと、whileは待ってもらうための機能ではないよ。
てことでいらない。
730Now_loading...774KB:2006/02/09(木) 18:28:26 ID:j/e1LLrw
>>727
//20カウントで終了
cnt = 0;
function main_loop() {
trace(cnt);
cnt++;
end = (cnt == 20) ? 1 : 0;
return end;
}
this.onEnterFrame = function() {
if (mc._currentframe == 10) {
main_loop();
if (end == 1) {delete this.onEnterFrame;}
}
};
731727:2006/02/09(木) 19:20:28 ID:1DYdPR5L
回答ありがとう。
やっぱonEnterFrame内に次の処理を入れとけってことですね…。
実はmain_loop内でこのmcが、特殊な場合のみ再生される予定でしたので
(onEnterFrameをifでくるむつもり)
その後の処理を別関数にしてonEnterFrame内に入れてみたり
else後にも入れてみたりしてみます。
732Now_loading...774KB:2006/02/09(木) 23:34:47 ID:0f6Bjax3
これでいいんじゃないの?

function main_loop(){
var count=0;
mc.onEnterFrame=function(){
  if(count<10){
count++;
return;
}
//続き
}
}
733Now_loading...774KB:2006/02/10(金) 00:00:12 ID:1tPtGrAD
レイヤー全体をスクロールするときはどうしたらいいんでしょうか?
そのレイヤー上には画像切り替えのパラパラアニメが置かれています。
パラパラアニメしながら全体がスクロールというものを作りたいんですが。
734Now_loading...774KB:2006/02/10(金) 00:08:10 ID:k0zDsfJJ
質問させて頂きます。
あるボタンを押すとWindow.createPopUp()で小さなwindowが出てムービークリップが読み込まれるようにしました。
on(release){
import mx.managers.PopUpManager
import mx.containers.Window
var smallWindow = PopUpManager.createPopUp(_root, Window, true, { title:"title", contentPath:"sWindow_mc" });
windowtmp = new Object();
windowtmp.complete = function(evtObj){
smallWindow.setSize(smallWindow.content._width+5, smallWindow.content._height + 35);
smallWindow.move(500,400);
}
smallWindow.addEventListener("complete", windowtmp);
}

この小windowに置いたyesボタンで異なる階層にあるムービークリップを動かしたいのですが、どうパスを設定すればいいでしょうか?
試しにyesボタンに
on(release){
 _level1.base_mc.moveTarget_mc.gotoAndPlay(10);
}
と書いてみたのですが動きませんでした。

それぞれのパスは
・小Windowを出すボタン _level1.button_1
・Window上のyesボタン _level1.depthChild0.content.yesButton
・動かしたいムービークリップ _level1.base_mc.moveTarget_mc
となっています。

よろしくお願いします。
735Now_loading...774KB:2006/02/10(金) 00:10:37 ID:Plah50FP
レイヤー単位での処理はできないよ
パラパラアニメ部分を独立したムービークリップにすれば、
それを動かせばOK
736Now_loading...774KB:2006/02/10(金) 00:20:57 ID:90+vIfzY
>>734
_levelは1であってる?
動かしたいムービークリップの中にtrace(this)かいてパス確認。
737727:2006/02/10(金) 00:40:08 ID:mSaDaIQV
>>732
はい。基本それで行こうと思いました。
もともとは以下のようなカタチで
function main_loop(){
 処理1・・・
 処理2・・・
}
処理1と処理2の間に、あるフラグが立ったときのみmcを再生させたくなって

function main_loop(){
 処理1・・・
 var count=0;
 if(flg){
  mc.onEnterFrame=function(){
   if(count<10){
    count++;
    return;
   }
  処理A 
  }  
処理2・・・
}
しかもこの処理Aとmc再生の間は処理2以降はちょっとタンマしてもらいたかったのでした。
処理1、2共に気合の入った処理だったであんまり動かしたくないなぁっていうワガママなのでした。
738Now_loading...774KB:2006/02/10(金) 00:43:13 ID:k0zDsfJJ
>>736
レスありがとうございます。
traceとオブジェクトのリストアップ両方しましたが、_level1.base_mc.moveTarget_mcでした。
小windowが出るとmoveTarget_mc同じフィールドに配置されているボタンが押せなくなりますが、このことに関係しているのでしょうか?
試しに_level1.base_mc.moveTarget_mc.gotoAndPlay(10); を小windowを出すかわりに、button_1に入れてみたら動きましたorz
739Now_loading...774KB:2006/02/10(金) 11:53:35 ID:1fUcmyvn
Flash8です。
複数あるテキストフィールド(t1,t2,t3)のどれかが変更されたら、
trace("Changed");を実行させたいのですが、出力されません。

//フォーカスのあるテキストフィールドを調べる
this.onEnterFrame =function(){
tName = Selection.getFocus();}
//テキストフィールドの内容が変わった時の処理
tName.onChanged = function() {
trace("Changed");};

そこで、
tName=t1;
と、具体的にテキストフィールドのインスタンス名を指定すると動きます。
何がいけないんでしょうか?よろしくお願いします。
740Now_loading...774KB:2006/02/10(金) 12:08:53 ID:PFSamJ/e
>>739
tName = new Object();
tName.onChanged = function() {
trace("Changed");
};
t1.addListener(tName);
t2.addListener(tName);
t3.addListener(tName);

でいいんじゃないかな?
たぶんこれで動くと思うけど間違ってるかもしれない。
741739:2006/02/10(金) 14:00:11 ID:1fUcmyvn
>740
ありがとう、動きました。でもごめんなさい
onSetFocus
onKillFocus
もつかいたいんで、
リスナーオブジェクトを避けてました
テキストフィールドのリスナーオブジェクトって、
上記の動作は使えないようです
(知識不足かもしれませんが)
説明不足ですいません。
742739:2006/02/10(金) 14:04:46 ID:1fUcmyvn
>739の追記です
テキストフィールドにフォーカスがきた時と、外れたとき、内容が変更されたときに、
処理をしたいと思っています。リスナーオブジェクトでいけるのかな?
よろしくお願いします。

//フォーカスのあるテキストフィールドを調べる
this.onEnterFrame =function(){
tName = Selection.getFocus();}
//テキストフィールドのイベント毎に処理
tName.onSetFocus = function() {
trace("Focus");};
tName.onKillFocus = function() {
trace("Out");};
tName.onChanged = function() {
trace("Changed"); };
743Now_loading...774KB:2006/02/10(金) 15:25:28 ID:PFSamJ/e
>>742
MXだけど8でも動くかな?

tName = new Object();
tName.onChanged = function(chgText) {
trace("Changed:"+chgText);
};
tName.onSetFocus = function(oldFocus, newFocus) {
if (newFocus != null) {
trace("Focus:"+newFocus);
}
if (oldFocus != null) {
trace("Out:"+oldFocus);
}
};
t1.addListener(tName);
t2.addListener(tName);
t3.addListener(tName);
Selection.addListener(tName);
744Now_loading...774KB:2006/02/10(金) 23:47:46 ID:T79Yaa+M
あるインスタンスの中に格納されている変数を
全部、別なインスタンスの中に移す、という処理をしたいのですが、
何かいい方法ありませんでしょうか?

格納されている変数のリストを参照する関数とかあるといいんですが・・・。

環境はwin XP,Flash 8です。
745Now_loading...774KB:2006/02/10(金) 23:53:21 ID:CIWoUwig
>>744
変数かどうかの判断はわからんけど、
for (obj in _root) {
trace(obj);
}
746Now_loading...774KB:2006/02/10(金) 23:59:41 ID:T79Yaa+M
ぉぉ! 糸口つかめました。
すばやい回答ありがとうございました。
747Now_loading...774KB:2006/02/11(土) 15:13:43 ID:WCWIzjn7
外部にある画像ファイルを読み込んで、それを並べて表示する、
という処理をしたいと思っています。
MovieClip.beginBitmapFill などを使えばいけるかもと思ったんですがどうですか?
(読み込む画像ファイルのサイズはバラバラ)

横方向にしか並べる予定がないので
サイズ取得して並べるという方法のほうがいいのかな・・・

どなたかお願いします。XP、Flash 8です。
748Now_loading...774KB:2006/02/11(土) 15:51:16 ID:AZOKNuH9
>>747
loadMovieは?
なんでファイルサイズ取得する必要がある?
749747:2006/02/11(土) 16:05:30 ID:WCWIzjn7
loadMovieだと1個しか表示されないみたいなんですが、
HTMLの背景のように敷き詰めて表示したいのです。。。
750Now_loading...774KB:2006/02/11(土) 16:16:26 ID:277HTIw2
ファイルの数だけ、空のMC作ってそれに読み込ませる。
MCはxy座標で移動させること。
8にファイルの数を取得する関数があれば良いけど、
無いならファイルの数は外部テキストで読み込ませる。
751Now_loading...774KB:2006/02/11(土) 16:24:50 ID:gBT9xPab
カスタム関数について質問です。
引数だけで値を呼び出し元に返せないんでしたっけ…。
例えば、下記のスクリプトでムービークリップ「MC1」のフレームを動かしたいんですが
上手くいかなくて。

//_rootのフレーム一行目AS
function testR(tPlace){
  tPlace = 6;
}

//_root.MC1.mc2のムービークリップAS
on(release){
  var MCtest;
  testR(MCtest);
  _parent.gotoAndStop(MCtest);
}
752725:2006/02/11(土) 16:31:08 ID:mwSYq/Ne
>>751

//_rootのフレーム一行目AS
function testR(){
  return 6;
}

//_root.MC1.mc2のムービークリップAS
on(release){
  var MCtest = testR();
  _parent.gotoAndStop(MCtest);
}



それはともかく、>>725は誰もわかりませんかねー。
無謀なことせずに、MovieClipLoader は一個で確実に動かすべきですか。
753747:2006/02/11(土) 16:44:26 ID:WCWIzjn7
>>750
やっぱりそれしかなさそうですね・・・
回答ありがとうございました。
754Now_loading...774KB:2006/02/11(土) 16:57:02 ID:gBT9xPab
>>752
ありがとうございます。
返せなかったのか……。

更に質問で恐縮なんですが、
関数から複数個の値を返したい時ってどうやってます?
例えば…私の勘違いしていた例>>751でやるなら下記みたいな感じの時です。

//_rootのフレーム一行目AS
function testR(tPlace1, tPlace2){
  tPlace = 6;
  tPlace = 10;
}
755Now_loading...774KB:2006/02/11(土) 17:27:52 ID:PMvln3DQ
>>754
配列やオブジェクト(内部的には同じっぺぇ)は参照渡しされるからそれつかったらええ
756Now_loading...774KB:2006/02/11(土) 18:21:40 ID:gBT9xPab
>>755
う、勉強不足でいまいち飲み込めないんですが、
こういう事ですか?

function testR(){
  tPlace = new Array();

}
757Now_loading...774KB:2006/02/11(土) 18:24:51 ID:gBT9xPab
>>756
途中で送ってしもた!
こんな感じですかね。

function testR(){
  tPlace = new Array();
  tPlace = [6, 10];
  return tPlace;
}
758Now_loading...774KB:2006/02/11(土) 18:28:56 ID:FjxsAZYA
>>757
最初のnew Array()は何がしたいの?

function testR(){ return [6,10]; }

でいいだろ。


で、どうしても引数を使って返したいというなら次の方法だ。

function testR(out){
out[0]=6;
out[1]=10;
}

var temp=[];
testR(temp);
trace(temp[0]);
trace(temp[1]);
759Now_loading...774KB:2006/02/11(土) 18:39:35 ID:gBT9xPab
>>758
どうもありがとう、すっきりわかりました。
new Array();は…明示的に書かないと(私が)解りづらくなってしまうって事でひとつの癖です。
760Now_loading...774KB:2006/02/11(土) 18:45:06 ID:FjxsAZYA
>>759
そのよくわからん癖は、このような風に変えた方がいい。

var tPlace:Array = [6,10];
761Now_loading...774KB:2006/02/11(土) 19:04:39 ID:xgpGZRji
横レスだけど

tPlace = new Array();
tPlace = [6, 10];

var tPlace:Array = [6,10];
って同じ?
varでローカルにするところが違うのかな?
762Now_loading...774KB:2006/02/11(土) 19:13:22 ID:FjxsAZYA
違う。変数のデータ型をArrayだと指定している。
Javaのような言語で表すと

Array tPlace = new Array();

と似たような感じ。
データ型指定はあまり普及してないんかな?

データ型指定がよくわからんなら、変数の末尾に_arrayと付けるのはどうだろう?
その変数に配列が入ってることが分かるし、入力支援も受けられる。
763Now_loading...774KB:2006/02/11(土) 19:37:30 ID:PK3az8rL
>>761
そう。スコープが変わってきてしまう。
なるべくvarで宣言しておいたほうがいいよ。
764Now_loading...774KB:2006/02/11(土) 20:34:12 ID:xgpGZRji
でも
tPlace = new Array();
ってだけでデータ型指定されてるってことになるでしょ?
ローカルorグローバル指定は用途によって異なるしどちらとも言えないけど。

あと
var tPlace:Array = [6,10]; ってvar外すと使えないのが前から謎です。
765Now_loading...774KB:2006/02/11(土) 20:44:46 ID:yvHzgles
自己流で変な癖が付く前に、基本を学んだ方がいいよ。
766Now_loading...774KB:2006/02/11(土) 21:09:11 ID:FjxsAZYA
>>764
>ってだけでデータ型指定されてるってことになるでしょ?
いや、ならないよ。

>var tPlace:Array = [6,10]; ってvar外すと使えないのが前から謎です。
データ型指定は変数宣言時に付けるモノだからね。
767Now_loading...774KB:2006/02/11(土) 21:14:51 ID:NDM1coPn
>>764
var 変数名:型
が一つのセットだからvarを外したらエラーになるだけ。
それからデータ型指定は、中身を指定するのが目的じゃなくて、
その変数には特定のデータ型しか入れられなくするのが目的。

つまり、エラーかどうかを判断したり、コードヒントを出したりという、
作り手にわかりやすくするための宣言という事。

tPlace = new Array(1,2)
でも、確かにtPlaceの中身は配列だけれども、その後に
tPlace = 10
と数値を入れることもできる。そういう用途にしたいのなら型宣言は
必要ないかもね。

でも、普通はそういう変な代入したときにきちんとエラーになってくれるように
var tPlace:Array = new Array(1,2)
と、型指定をするわけ。
768Now_loading...774KB:2006/02/12(日) 00:43:53 ID:bP5tyy4T
しつこかったらごめんなさい。
var tPlace:Array = new Array(1,2)
この書き方、ローカルの場合はいいけど、グローバルの場合はどうすればいいの?
var取るとエラーだし、var付けるとローカルだし。。。
769Now_loading...774KB:2006/02/12(日) 00:50:26 ID:ML0835Jd
>>768
グローバル変数は、ActionScript2のシンタックスの制限により
データ型指定は出来ない。

かといって、この↓書き方でも、データ指定は出来ていない。
tPlace = new Array();
tPlace = [1,2];

これは無駄に配列オブジェクトを生成して捨ててるだけ。
770Now_loading...774KB:2006/02/12(日) 01:03:03 ID:4ppzQo1+
>>768
グローバル変数は型定義できない。
でもタイムライン変数だったらメインのタイムラインでvarステートメントで宣言すればいいだけ。
ローカル変数だったらfunctionの中で宣言するだけ。
つまり、
_global.tPlace(グローバル変数)の型宣言はできないけど、
メインのタイムライン上で、
var tPlace:Array
とタイムライン変数の型は宣言できるし、
function hoge(){
var tPlace:Array
}
とローカル変数の型も宣言できる。

グローバル変数の型宣言はなんでできないの?という話になると、これはActionScript
がそういうようにできているから、としか言いようがない。
771739:2006/02/12(日) 01:33:44 ID:NrXXDOqh
>743
動きました。リスナーオブジェクトでいけるんですね
なんで自分は駄目だったんだろ
詳しく比較してみます。ありがとうございました
772Now_loading...774KB:2006/02/12(日) 01:50:35 ID:MWT3fjar
グローバル変数なんか使わない方がいいよ。
773Now_loading...774KB:2006/02/12(日) 02:04:31 ID:2v6eXnvu
それは…_global使うとプログラムに負担がかかるって事?
774Now_loading...774KB:2006/02/12(日) 02:55:06 ID:ML0835Jd
いや、プログラマに負担がかかる、と一般的には言われてるかな。
775Now_loading...774KB:2006/02/12(日) 03:57:26 ID:bP5tyy4T
>>770
なるほど。わかりましたありがとうございます。疑問が解けました。
〜 = new Array()、2次元以上の配列のときに出番がくるのかな。
776Now_loading...774KB:2006/02/12(日) 06:22:01 ID:OntY83Ki
var myNumber:Number = new Number(3541);
trace(myNumber.toString(16));
とすると"dd5"という値が帰ってくるのですが、
これをまた10進法に戻す方法というのは無いのでしょうか?
777Now_loading...774KB:2006/02/12(日) 07:20:43 ID:pu9/miPc
>>776
parseInt(myNumber.toString(16), 16);
Number("0x"+myNumber.toString(16));

とか。
778Now_loading...774KB:2006/02/12(日) 07:54:46 ID:OntY83Ki
>>777
parseIntを使えばいいんですかー。
ありがとうございます!
779Now_loading...774KB:2006/02/12(日) 09:34:23 ID:eb/lcfbJ
>>773
そう。ローカル変数に比べてスコープを移動して走査する分遅くなる。
探す範囲が広くなるから遅くなるという事ね。
それと、多用するとプログラムが読みにくくなるというのもある。
780Now_loading...774KB:2006/02/12(日) 09:56:58 ID:jdpXcpZJ
遅くなるって、、、、なかなかすごい意見だ
781Now_loading...774KB:2006/02/12(日) 10:16:15 ID:jdpXcpZJ
>>776
また戻すというか、NumberはNumberだから、表現方法を変えるだけ。
違うものになるわけじゃない。
782Now_loading...774KB:2006/02/12(日) 10:48:54 ID:eb/lcfbJ
>>780
常識だっての。試してごらん。

//ローカル変数利用
var t = getTimer()
function hoge(){
var v = 0
for(i=0;i<100000;i++)v+=i
return v
}
v = hoge()
trace([v,getTimer()-t])

//グローバル変数利用
_global.v = 0
var t = getTimer()
function hoge(){
for(i=0;i<100000;i++)v+=i
return v
}
v = hoge()
trace([v,getTimer()-t])
783Now_loading...774KB:2006/02/12(日) 10:53:06 ID:eb/lcfbJ
>>781
toStringの戻り値は文字列だからNumberじゃない。まったく別物。
784Now_loading...774KB:2006/02/12(日) 10:56:55 ID:jdpXcpZJ
で、何msちがうの?
785Now_loading...774KB:2006/02/12(日) 10:58:25 ID:jdpXcpZJ
>>783
そんなのあたりまえじゃん。Number自体を変えるということではないよということでし。
786Now_loading...774KB:2006/02/12(日) 11:18:32 ID:oe8Ewmel
>>782
じゃあ、return _global.v;とスコープをちゃんと解決させたらどうなるの?
787Now_loading...774KB:2006/02/12(日) 11:51:49 ID:jdpXcpZJ
>>782
質問でし
iがvar宣言されてないから1度目のローカル..の方で宣言され、それがグローバルの
方でも使われる。ここで差が出る。あと、vでは無く_global.v=にしないと意味がない。
vという変数が新たに定義されそれに対して演算してる。この疑問に答えてちょ。
788Now_loading...774KB:2006/02/12(日) 12:12:32 ID:Fqke+fej
782のscriptを走らせた結果
local:650ms
global無し:900ms
_global有り:800ms

_global.vとしてもlocal変数の方が早かった。

>>787
>iがvar宣言されてないから1度目のローカル..の方で宣言され
コメントアウトしてそれぞれを実行した。
>vでは無く_global.v=にしないと意味がない。
_globalまでvを探しに行く。
789Now_loading...774KB:2006/02/12(日) 12:20:35 ID:jdpXcpZJ
>>788
参照はできるが、代入なり演算処理ではvは隠蔽されると思われるが。
790Now_loading...774KB:2006/02/12(日) 12:29:55 ID:jdpXcpZJ
_global .v = 0;
v=1;
trace(_global.v +":"+v);
な、感じ。
791Now_loading...774KB:2006/02/12(日) 12:51:48 ID:1eThsiou
>>789
あー! だから_globalつけずに代入しようとしたときにローカルに勝手に同一名が作られたんだ。

速度のことも含めて、勉強になったよ。オマイラ、ありがとう。
792Now_loading...774KB:2006/02/12(日) 12:52:31 ID:Fqke+fej
>>790
>参照はできるが、代入なり演算処理ではvは隠蔽されると思われるが。
納得。

_global.v = 100;
var t:Number = getTimer();
function hoge():Number {
for(var i:Number = 0; i < 100; i++) {
v++;
}
trace(v);//200
return v
}
hoge();
trace(_global.v);//100
793Now_loading...774KB:2006/02/12(日) 21:21:22 ID:2xlKm2kG
loadMovieについての質問なのですが、
最初にindex.swfというファイルを再生させたあと、その中にある
いくつかのボタンをクリックするとa.swfやb.swfなどをloadMovieするようにしています。
ですがa.swfをロードしたあと、たとえばさらにb.swfをロードさせたり
またa.swfをロードさせたりc.swfをロードさせたりすると
その都度それぞれのムービーが再生される前に一瞬だけ
index.swfの最後のフレームが表示されてしまいます。
画面がちらつくようでなんとか回避したくてググったりもして調べたのですが、
解決法がわかりませんでした。
つたない説明で恐縮ですが、どなたかご教示お願いします。
794Now_loading...774KB:2006/02/12(日) 21:57:33 ID:iaF8GvTC
flashとphpを組み合わせて遊んでいるのですが、
これらは同じドメイン内に置かないとダメですよね?

ナントカして違うドメイン間で通信させたいのですが、
何かよい方法はないものでしょうか。
どうぞよろしくお願いします。
795Now_loading...774KB:2006/02/12(日) 22:32:23 ID:FPRFZjh/
>>793
最小構成で試してもそうなる?
他にASかいてたり、this.stop()かいてなかったりしない?
796Now_loading...774KB:2006/02/12(日) 22:35:28 ID:0oaspviG
crossdomain.xmlをおけばダイジョーブ
797Now_loading...774KB:2006/02/12(日) 22:49:04 ID:iaF8GvTC
>>796
おー ホント助かりました!
ありがとう
798Now_loading...774KB:2006/02/13(月) 04:32:05 ID:EyJLc4KW
OSに関することになるかもしれませんが…質問させて頂きます。
静止テキストからリンクをはる対象がWindowsのユーザ名やMacOSXのユーザ名のとき、どのようにユーザ名を取得すればいいのでしょうか?
不特定多数のユーザに対応して「C:/Document and Settings/hogehoge/」や「/Users/hogehoge/」にリンクを作りたいです。
このような時はhogehogeのところにユーザ名取得の何かを入れると思うのですが…
よろしくお願いします。
799Now_loading...774KB:2006/02/13(月) 11:01:42 ID:tSD93hw4
flashでRSSを読み込みたいのですが、初心者なので何をどうしたらよいのかよくわかりません。
どなたか簡単にご説明頂けないでしょうか?
800Now_loading...774KB:2006/02/13(月) 11:41:54 ID:cNjYzG/C
>>799
RSSリーダーを作れというなら皆、断ると思うよ。
ヒントが欲しいとか、作ってみたが上手く行かないとかなら
教えてもらえるはず。
とりあえずFlashでxmlを処理する方法でも調べてみたら?
801Now_loading...774KB:2006/02/13(月) 13:59:49 ID:y/taBPuw
CGIから値を受け取るときに、
配列を受け取れたら便利だなあと思っています。

そこで、hoge[1]=abc&hoge[2]=def&... というものをCGIに送信させて受け取ってみたところ
[ や ] . が %2Eなどにエンコードされてしまってうまくいきません。

うまい方法はないでしょうか?
環境はXP, Flash 8 です。よろしくお願いします。
802Now_loading...774KB:2006/02/13(月) 14:08:08 ID:VcbY23Q3
>>801

hoge1=abc&hoge2=def&...

で、Flash上でアクセスするときは

this["hoge" + i]

にすれば、実質配列があるのといっしょでしょ。
803Now_loading...774KB:2006/02/13(月) 14:12:08 ID:wPIzLkaU
>>801
xml使う。簡単なテキストなら難しくないよ。
804Now_loading...774KB:2006/02/13(月) 14:18:18 ID:cNjYzG/C
>>801
UTF-8に変換すればいいんじゃない?
805Now_loading...774KB:2006/02/13(月) 14:46:20 ID:y/taBPuw
さっそくのお答えありがとうございました。
いろいろ試してみますっ。
806Now_loading...774KB:2006/02/13(月) 17:03:38 ID:C0NdvhUj
質問です。
mc.gotoAndPlay();や mc.gotoAndStop(); って、
括弧内に変数を指定する事ってできないんでしょうか。

変数内の数値を渡しても動かないので、
ムービークリップ「mc」のフレームラベルに
現在のフレームと同じ数値を入力し、
toString()で文字列に変換して渡しても無理だったんで…
807Now_loading...774KB:2006/02/13(月) 17:28:21 ID:rQstAk8M
>>806
物凄く単純な実験用のファイルを作って、いろいろやってみるといい。
808Now_loading...774KB:2006/02/13(月) 19:20:24 ID:wPIzLkaU
>>806
んなわきゃない。どうせpath違うとか、変数が文字列とか、そういう問題だろ。
文字列の場合はその名前のラベルにヘッドが移動する。
809その1:2006/02/13(月) 19:24:59 ID:DqUprnRC
長くてすいませんけど、詳しく書かないと伝わらないかもしれないので、
申し訳ないですけど分割して書き込ませてもらいます。

格子状に並んだ四角形を奥行きがあるように手前に飛び出たり
奥に引っ込んだりさせて、面(布みたいな、水面みたいな)が波打ってるようにしたいんですけど。
それそれの四角には変数Zを設定して
クリックした四角はデフォルトの変数Zに向かってバネの動きをさせて
その隣の四角はクリックした四角のZに向かって緩やかに減速しながら近付くようにして
そのまた隣の四角はクリックされた方向の隣の四角のZに向かって減速しながら近付くというふうにスクリプトを書きました。
例えば縦3横3の面を作るとして、下図のようにmc1からmc9までにそれぞれmc番号・縦番号・横番号を設定して
mc1・1・1 mc2・1・2 mc3・1・3
mc4・2・1 mc5・2・2 mc6・2・3
mc7・3・1 mc8・3・2 mc9・3・3
どこかのmcがクリックされたときに、変数click1から9と、変数targetMc1から9が設定されます。
targetMcが、上のmcのときは自分の縦番号-1、右のmcのときは横番号+1というふうに設定されます。
810その2:2006/02/13(月) 19:25:42 ID:DqUprnRC
そしてルールさせるスクリプトは
i=0;
while(i<9){
 i++;
 if(eval("click"+i)){
  eval("ZV"+i)=デフォルトのZに向かってバネ運動
 }else{
  eval("ZV"+i)=targetMCのZに向かって減速接近
 }
 eval("Z"+i) += eval("ZV"+i);
 //
 以下はそれぞれmcの_x、_y、_xscale、_yscale、depthsに変数Zによって得られた数値を代入するスクリプト
}
というふうにを書きました。
で、だいたい思うような動きにはなったんですけど、一つ致命的な不具合が発生してしまいます。
811その3:2006/02/13(月) 19:30:00 ID:DqUprnRC
問題は減速しながら近付くときの減速値で、ZV = (targetMcのZ-自分のZ)/減速値という式で
減速値を1に設定した場合、本来なら縦3横3の面全体が同時に動いて大きくなったり小さくなったりして
全体として動くけど、面自体が波打つようには動かないはずでしたが
mc1をクリックした場合にのみ、そのように正しく動くのですが、
その他のmcをクリックした場合はなぜかズレが生じてしまいます。mc9をクリックした場合は順々に波打ってしまいますし
まん中のmcをクリックした場合は変なふうにブロック状にいっしょに動くmcとズレて動くmcとができてしまいます。

これはflashの特性みたいなものなのでしょうか?
while文は1から始めて9が最後に計算されるからなのか、どこが原因なのでしょうか?
番号で管理するやりかたに無理があるのか・・・?
これはflash5で作ってるのですけど、最新のflashでは解決法があったりとかするのでしょうか?
長くてすいませんけど、教えてほしいです。
812Now_loading...774KB:2006/02/13(月) 19:44:29 ID:wPIzLkaU
>>811
ぱっと見だが、iは1から8まででいいのか?
813Now_loading...774KB:2006/02/13(月) 19:48:32 ID:wPIzLkaU
あ、<か、スレ汚しごめん。
814809から811:2006/02/13(月) 19:51:06 ID:DqUprnRC
>>812
ありがとうございます。

iは8の状態で最後の繰り返しに入って
まず+1されるので結局9になるというふうしました。
そこは間違ってないと思います。
動きはズレの問題がさえなければそれなりに正常に動いているので。
815Now_loading...774KB:2006/02/13(月) 20:03:58 ID:C0NdvhUj
>>807-808
うー、遅れたけど確認しました、ありがとう。
816Now_loading...774KB:2006/02/13(月) 20:36:03 ID:9THCFsld
どこかにflaでもUPしてみればいいと思うよ。
817Now_loading...774KB:2006/02/13(月) 21:18:51 ID:X5jTIWg+
function selectDirectory(image_num) {
if (image_num < 10000) {
return ("00000");
} else if (image_num > 9999 && image_num < 20000) {
return ("10000");
} else if (image_num > 19999 && image_num < 30000) {
return ("20000");
} else if (image_num > 29999 && image_num < 40000) {
return ("30000");
}
}

こんな感じで、たとえば12345を与えると
"10000"と戻ってくるような関数を作ったのですが、
もっと効率のいい書き方はないものでしょうか?
818Now_loading...774KB:2006/02/13(月) 21:35:05 ID:GyqWhagF
>>817
方針としては
(1)まず1万で割る
(2)小数点以下を切り捨てる(Math.floor)
(3)1万倍する

でいけると思うんだけど。
819Now_loading...774KB:2006/02/13(月) 21:36:30 ID:2YBOxFA8
>>817
function ValentineDayHaisi(n){
return int(n/1000)+"0000"
}
10000で割って切り捨てたのに0くっつけりゃいいんじゃね?
820Now_loading...774KB:2006/02/13(月) 22:18:28 ID:X5jTIWg+
>>818
>>819
おおーありがとうございます。
お礼です
つ[チロルチョコ]
821809から811:2006/02/13(月) 22:41:16 ID:DqUprnRC
flaファイルをアップしました。
http://uploaderlink.hp.infoseek.co.jp/cgi-bin/512kb/src/up3959.zip.html

上で書いたのとはちょっと違うんですけど
縦5横5に増えてます。mcの名前はcell1からcell25になってます。
otherDampという変数を増やすと波打つ動きになって、1にすると波でなく板状になる
はずだったのですが、cell1をクリックしたときは正常に動いているようになりますけど
それ以外の四角だとズレがでてしまいます。
otherDampが1以上でも動き自体はズレているのですが、全体として波うっているので
そのズレが目立たないだけってことですけど。

while文っていうのは同時にmcを動かしてるわけじゃないってことですかね。
同時に動かすにはどうすればいいのでしょうか?
822Now_loading...774KB:2006/02/13(月) 22:52:50 ID:7l17HVAg
>>821
常に1なら
on(press){
_parent.mcClick(1);
_parent.mcPush(1);
}
じゃないと駄目だべ。
823809から811:2006/02/13(月) 23:01:25 ID:DqUprnRC
>>822
常にcell1を押すのではなくて
どのcellを押しても
otherDampが1なら板状に、1以上なら波になるようにしたいのです。
824Now_loading...774KB:2006/02/13(月) 23:32:32 ID:7l17HVAg
だからそれしたいなら引数が1じゃないと駄目じゃねーの?
今のコードは前のcellの位置や大きさに引数分だけ変化させる
コードなんだからさ。
うpしたのはotherDampに依存してなくね?
825809から811:2006/02/14(火) 00:00:50 ID:AWUPAnZX
>>824
しつこくてすいません
on(press){
 if(_parent.otherDamp==1){
  _parent.mcClick(1);
  _parent.mcPush(1);
 }else{
  _parent.mcClick(mcNum);
  _parent.mcPush(mcNum);
 }
}
って書くということですか?
たしかにこうするとotherDampが1のときは
どのmcを押しても板状に動きます。
でもズレを根本的に消してるわけじゃないですよね。
自分の説明が悪かったと思います。
otherDampが1の状態に限らず動きのズレを消したいということなのです。
otherDampは常に1なのではなくパラメーター操作のように
スライドバーかなんかで調節できるようにしようと思っているのですが。
波状に動かしているときのズレを消すのはやはり無理なのでしょうか?
826Now_loading...774KB:2006/02/14(火) 00:11:25 ID:Kr6Uz1AQ
じゃあ
function mcClick (clickNum) {
j = 0;
clickNum=otherDamp


function mcPush(pushNum){
pushNum=otherDamp

でいいんじゃね?雑な修正だけど。
つーか内容わかってる?丸写し?
827Now_loading...774KB:2006/02/14(火) 00:12:25 ID:Kr6Uz1AQ
なんかめんどくさそうだから他の誰かに任せた。バイバイ。
828809から811:2006/02/14(火) 00:50:11 ID:AWUPAnZX
>>826
教えてもらってんのに
否定ばかりですいませんけど
でもclickNumとかpushNumというのは
あくまでもeval("click"+○)とかeval("ZV"+○)というような
それぞれのcellの番号に対応した変数を番号指定するための変数で
otherDampというのはループスクリプトの中の
eval("ZV"+k) = (eval("tagMc"+k).nowZ-this["cell"+k].nowZ)/otherDamp;という
減速接近の式につかう減速値なので
clickNum=otherDampというように代入するのは
ちょっと違うと思います。
ちなみにこのスクリプトは他人のものを丸写しにしたりとかしてません。
自分で書いたことは理解してます。
わからないのは、ステージ上にあるmcを同時にリアルタイムに動いているようにしたいのに
タイミングがズレているところでして。はじめはそれぞれのmcの中のフレームに
スクリプトを書いて動かしてみたものの、同時に動かず、
ならば親mcにすべての子mcを動かすスクリプトをかけばいいのかと思い
while文を使ってみたものの上手くいかないという状態です。
829Now_loading...774KB:2006/02/14(火) 01:13:59 ID:KHaV1oh6
evalがうちではエラーはくからめんどい
830Now_loading...774KB:2006/02/14(火) 01:51:54 ID:KHaV1oh6
>>828
おまいさんの長文はマトモに読んでないし、
ソースも適当にみた感じだが、
とりあえず、
処理順が頭からで、押したcellより前のcellのnowZの値は、その時点でのnowZを参照する
したがって、押したcell以前のtagMc参照はそのフレームでセットした値じゃない
だからズレル
最初の1枚は最初に値をいれられ、それ以後のcellはターゲットとしてその値を使うからずれない

仕様とかなんとかじゃなく、そういう設計のスクリプト

解決方法まで考えるのめんどいしもう寝る
あとはがんがれ
831809から811:2006/02/14(火) 05:54:40 ID:tlzB0qh4
>>830
なんかわかんないですけど
手がかりみたいなものは見えてきました。
ありがとうございます。
クリックした番号からはじまって放射状にナンバリングしなおして
その順番でwhile文でループさせるというやり方くらいしか
自分には思い浮かびませんけど・・・。
832Now_loading...774KB:2006/02/14(火) 15:44:01 ID:ocCQ0f62
>>817
明治ミルクチョコでいいでし。。。順番変えると大変なことにw

var aa:Number = 39999;

function selectDirectory(image_num:Number):String {
if (image_num > 40000) return ("OutofOrder");
if (image_num > 29999) return ("30000");
if (image_num > 19999) return ("20000");
if (image_num > 9999) return ("10000");
return "00000";
}

trace(selectDirectory(aa));
833Now_loading...774KB:2006/02/14(火) 19:01:36 ID:gEtqHe+n
PHPを利用してwww.hoge/index.php?id=0001 などとして
表示されるWebページ上のFLASHにこのID=0001を取り込みたいのですが
どのような方法がありますか?
834Now_loading...774KB:2006/02/14(火) 19:06:32 ID:hy+7RG6R
>>833
swfに引数渡す
835Now_loading...774KB:2006/02/14(火) 20:47:47 ID:jyi6//Z2
くっそー!

gotoAndPlay(0)で最初のフレームに戻ってくれねーから、
なにが原因なんだと30分ぐらい悩んだぜ!

フレームは1スタートだからgotoAndPlay(1)が正解だったなんて!
836Now_loading...774KB:2006/02/14(火) 21:44:28 ID:KsNyUi7Y
フラッシュ8を使ってます
質問させてください
下記のASを用いてボタンを押すと2p、3p、4pと次のページに進む
絵本(?)の用なものを作っています
次のページには進めますが、最後のページから最初のページ
(1フレ目)に戻りたいのに戻れません


this.stop();
b1.onRelease = function() {
gotoAndStop(2);
};
b2.onRelease = function() {
gotoAndStop(3);
};
b3.onRelease = function() {
gotoAndStop(4);
};
b4.onRelease = function() {
gotoAndStop(1);
};

助けてください
837Now_loading...774KB:2006/02/14(火) 22:38:44 ID:2vDPATjY
fla見ないとワカンネ
838Now_loading...774KB:2006/02/14(火) 22:43:30 ID:lh/CLm4y
あるMovieClipの上に載っているコンポーネントに、そのMovieClipのクラスから
アクセスするには、どうすればよいのでしょう。

例えばLabelのTextプロパティに、外からアクセスするには、
hogeMC.label.text でアクセスできますが、自分のクラスの内部から
アクセスしようと、this.label.text ではアクセスできません。

教えていただけませんでしょうか。お願いいたします。
839Now_loading...774KB:2006/02/14(火) 23:05:36 ID:ZtgAM75b
>>836
そのスクリプト書いたフレームより後ろにb4ボタンない?
か、インスタンス名がおかしいか。

>>838
とりあえずtrace(this)でthisがなんかのか確認してみれば?
840Now_loading...774KB:2006/02/14(火) 23:25:57 ID:KsNyUi7Y
>>836です

>>837
ここにあげるのがちょっと恥ずかしいフラなんですが。。。

>>836
インスタンス名は間違えないです
何回も確認した上、たった二文字をコピペしました
b4ボタンは後ろも前にもないです
841Now_loading...774KB:2006/02/14(火) 23:27:09 ID:KsNyUi7Y
>>840
アンカーまちがえたスマソ
最後の>>836宛は>>839宛です
842Now_loading...774KB:2006/02/14(火) 23:28:50 ID:jyi6//Z2
質問です。

mc_Aは空のムービークリップです。
mc_Aに、beginFill,lineStyle,moveTo,lineTo,endFill を利用して多角形を描画します。
mc_B.setMask(mc_A) としたのですが、マスクされていません。

動的に描画された多角形ではマスクできないのでしょうか?
843Now_loading...774KB:2006/02/14(火) 23:29:39 ID:LhWvktVW
>>840
}のあとに;っているっけ?
844Now_loading...774KB:2006/02/14(火) 23:36:53 ID:ocCQ0f62
>>842
多角形はやったことないけど、円ではできるよ。
lineStyleとbeginFillの色を合わせてべた塗りっぽくしてみるとか。
845Now_loading...774KB:2006/02/14(火) 23:45:28 ID:Bl5ZaEzQ
>>843
いるよ
846Now_loading...774KB:2006/02/14(火) 23:52:04 ID:LhWvktVW
>>845
自分MXでよくわからなかった。すまぬ。
847Now_loading...774KB:2006/02/14(火) 23:59:17 ID:Bl5ZaEzQ
いや、おれもMX。
付け忘れてもスクリプトの揃え?チェック?をすると自動的に付くけど。
848Now_loading...774KB:2006/02/14(火) 23:59:33 ID:ocCQ0f62
無くても問題ない。俺の場合、むしろ、見づらくなるからつけない。
849Now_loading...774KB:2006/02/15(水) 00:01:32 ID:/YmA9sJB
>>840
ボタンじゃなくてMC?
とりあえずそのASより後ろにあったらだめ。

そのFlaじゃなくても最小構成で作ってUpすれば?
850846:2006/02/15(水) 00:02:15 ID:+d2C5g/w
>>848
そういうことか〜!自分も付けない派だったってことか!サンクス
851840:2006/02/15(水) 00:18:17 ID:4EC/FqmV
>>849
うしろにはないです。ボタンはすべて違うインスタンス名つけてます。なんでだ。
ってところで、違う方法で強制的に解決しました
戻るボタンでそのフラが置いてあるhtmlをリンクさせるって言う・・・。
一瞬白くなりますが、、、まぁいいかと。
なんっていうか、すいませんお騒がせいたしましたorz
852842:2006/02/15(水) 00:20:08 ID:xNwKbwtR
>>844
レスありがとうございます。
円を描くのって、
http://www.fumiononaka.com/TechNotes/Flash/FN0506002.html
にあるように、curveTo を使用するのですよね?

だったら、beginFill,lineStyle,endFill を利用した基本は同じですから、
多角形で出来ない道理はないですね。

きっと、自分のしょーもないミスでマスクされてないだけなのでしょう。
もっかい調べてみます。
853Now_loading...774KB:2006/02/15(水) 00:23:33 ID:hAjIZOge
>>852
ああ、出来るよ。
マスクした後で描画しても出来る。
深度がマスクするMCより上じゃないと駄目とかじゃね?
854Now_loading...774KB:2006/02/15(水) 00:26:33 ID:xNwKbwtR
>>836で記述されてるスクリプト、1フレーム目に書いてあるのかな?
gotoAndStop,gotoAndPlay は「今処理しているフレーム」には飛べない。
そのへんが問題なんじゃないかな。
ダミーフレームを入れれば飛べるようになりそうな予感。
855Now_loading...774KB:2006/02/15(水) 00:30:56 ID:hdPnaVLD
>>845
どこに出てた?
856Now_loading...774KB:2006/02/15(水) 00:38:52 ID:+d2C5g/w
>>854
おれもそんな気がする・・・。
857Now_loading...774KB:2006/02/15(水) 00:42:25 ID:B3LdgDLG
>>855
MXなら、エキスパートモードで適当に関数を代入で作成してからノーマルモードにしてみ
その時点で;がついてる
で、そのまま編集して警告でるが無視して、エキスパートモードもどるとそのまま;がついてる

まあ、普通に意味考えれば;いるのはわかるっしょ
無くても問題はないけどね

function 名称(){}定義ではいらん
858Now_loading...774KB:2006/02/15(水) 00:58:08 ID:hdPnaVLD
ぶっちゃけASは勉強中だからよーわからんのけど、ありがと。
解説本読み込んでみるわ。
859840&851:2006/02/15(水) 01:00:07 ID:4EC/FqmV
>>854 >>856
1フレじゃなく、AS用のレイヤー作ってそこに頭からケツまでのばして書き込んでます
ってことは、AS書き込んでた所が間違いだった...?
860Now_loading...774KB:2006/02/15(水) 01:03:40 ID:/YmA9sJB
>>859
なんでhtmlがでてくる?
swf内で処理してるんでないの?
861859:2006/02/15(水) 01:07:47 ID:4EC/FqmV
>>860
最後まで行ったら、最初に戻ってほしくて、
そのフラが置いてあるhtmlごと更新してしまえ...と...orz
862Now_loading...774KB:2006/02/15(水) 01:08:04 ID:B3LdgDLG
>>859
ttp://www.uploda.org/uporg313254.fla.html
上ので作るならこんなんかね
フレーム伸ばしてもキーフレーム打たなきゃ1フレーム目に書いてるのと同じ
863859:2006/02/15(水) 01:19:43 ID:4EC/FqmV
>>862
そうなんですか!なるほど。だからだめだったんだ。凄い納得
ってか、アレから今の間にこのフラ作ったんですか!!すごい。
此処の人ってみんなこのくらい凄いんですかね。
初心者がお邪魔しましたorz
再び頑張ってきます
864863:2006/02/15(水) 01:44:03 ID:4EC/FqmV
出来ました!!!もの凄くどうもありがとうございました
無事フラ内で戻れるようになりました。お騒がせいたしました
865Now_loading...774KB:2006/02/15(水) 01:45:49 ID:+d2C5g/w
>>864
よかったね!ガンガレ
866842:2006/02/15(水) 02:00:10 ID:xNwKbwtR
あ〜、やっぱりくだらないミスでした。
最初に

mc_B.setMask(mc_A);

とセッティングしておいていろいろやってたのですが、途中、

mcl.loadClip("hoge.swf",mc_B);

をしてたせいで、ファイルの読み込みが完了した瞬間にマスクのセットも外されてたみたいです。
onLoadInit 内で setMask することで解決しました。
867833:2006/02/15(水) 04:58:57 ID:WNwR9tlj
>>834
今更ですがありがとうございました!
実現できました!!
868Now_loading...774KB:2006/02/15(水) 21:36:54 ID:QwEZ8kSX
すみません、ActionScriptのイベントハンドラメソッドって、
JavaScriptみたいに「onMouseOver」(ムービー上にマウスがあるとき)は無いんですよね。
これをカスタム関数で作るとしたら、どうやったら良いか解りますでしょうか。
869Now_loading...774KB:2006/02/15(水) 21:58:36 ID:xi48DR3D
>>868
ステージと同サイズのMC置いてMovieClip.onRollOver
870Now_loading...774KB:2006/02/15(水) 22:22:14 ID:QwEZ8kSX
>>869
すばやい回答ありがとうございます。
役に立ちましたー。
871Now_loading...774KB:2006/02/16(木) 02:29:33 ID:glSuEhHE
質問させていただきます。

Win XP HomeSP2 Flash MXを使用中です。

MCをDuplicateMovieでランダムな数に複製して、
画面上部から画面下部へと降らし、画面外に
到達したときに複製したMCを破棄するには
どうすればよいのでしょうか?
872Now_loading...774KB:2006/02/16(木) 04:24:08 ID:J6MFPcvg
>>871
ぐぐれ
873Now_loading...774KB:2006/02/16(木) 04:34:22 ID:eJBxemJd
>>871
つかその流れ通り記述すればいいんじゃない?
874871:2006/02/16(木) 04:49:55 ID:O8lPKEXj
>>872-873
あ、すいません。ランダムな数のMCを複製するところで
詰まっています。その部分のASを教えてもらえませんか?
875Now_loading...774KB:2006/02/16(木) 04:54:08 ID:J6MFPcvg
>>874
教えたところで理解できるとは思えない。
ぐぐれ。
876Now_loading...774KB:2006/02/16(木) 05:01:17 ID:Hrahl9VD
>>874
全然はじめでつまづいてんじゃん。
なら、降らすとか破棄とか後にして質問を絞るべし。

もしかして、ランダムな上限値を出すことができないのか?
それはできるがforなどのループを使えないのか?
詰まってるのは具体的にどこ?

問題を絞りこめばヘルプ見ただけでもわかるような記述だったりするもんだよ。
877Now_loading...774KB:2006/02/16(木) 06:58:00 ID:JntZfsLq
>>874
Math.randomでヘルプでも検索しる
878Now_loading...774KB:2006/02/16(木) 12:28:26 ID:glSuEhHE
>>875-877
すいません、自己解決しました。
ありがとうございます。お騒がせしました。
879Now_loading...774KB:2006/02/16(木) 14:39:13 ID:TZ++y6mr
フレームの制御について質問でつ

フレーム100に到達時の処理は if ( mc._currentframe==100 ){ 処理 }
ですが ラベル"label"に到達した時の処理はどうすれば?
つまり数値で判定したくない場合はどんな手段があるのでしょうか?
880879:2006/02/16(木) 14:44:41 ID:TZ++y6mr
ちょw ごめんイキナリ自己解決
ラベルのトコに変数でも埋め込んでおけばおkかw
881Now_loading...774KB:2006/02/16(木) 17:30:17 ID:BsQF1UjT
ソフト=FlashMX2004,OS=Win98SE

Q) 文字列の記号を演算子に変換

例として、要素内の数字も文字列として格納しているの配列 calcD[0] =123,
calcD[1] =' + ',calcD[2] =2,calcD[3] =' x ', calcD[4] =10 (数式だと 123+2×10)
があったとき、' + ' や ' x ' を演算子に変換して(戻して)、AS上で実際
に123+2*10を行い、答えの143という数値を得るにはどうしたらいいでしょうか?

kotaeを変数にして(初期値は0)、for文のiを変化させる形で
for (i=0; i<=4; i++) {
 kotae =kotae+_root.calcD[idx1];
}
をする際にcalcD[i]を演算子に戻したいのですが文字列のままです。
(数字はparseIntで戻せます)

for文を使っていますが、これにはこだわりません。アドバイスを願います。
882Now_loading...774KB:2006/02/16(木) 18:26:20 ID:P+77wDJ7
>>881
力業ぽいが、値が+-*/のいずれかなら、それに対応した四則演算処理をするって処理なら可能じゃない?
値の型を変えることはできるけど、値から演算子にするっつーメソッドがあるのかは知らん。
883Now_loading...774KB:2006/02/16(木) 18:32:35 ID:yq/7QfRi
>>881
>>882の考え方を継承しつつ、
' + ' や ' x 'をユーザ側に入力させようって意図だと過程するならば、
文字列を格納する変数を用意して以下の様に
sumCalc = ' + ';
minusCalc = ' - ';
んで、if文で条件を指定して実際の演算子に変換って事をすればいいんじゃないかな。
if(calcD[i] == sumCalc)みたいな感じで。
尤も、演算子の文字列を入力する配列のインデックスが固定されているならば、
演算時に楽な気がします。
884Now_loading...774KB:2006/02/16(木) 18:36:44 ID:8ZBtKDJk
>>881
やってみようと思ったらifとforの嵐になって、めんどくなってやめた。
がんばって作っても今後メリットあるとは思えないし。

できるひとは簡単に書けるのかもしれないけどね。
おれにゃ無理だ。
885Now_loading...774KB:2006/02/16(木) 18:40:37 ID:CPQtZ1Ul
中置記法の演算をやってくれるライブラリとかコンポーネントとかみたいなものがあるのなら、
それを使うのが楽でええだろうねぇ。

まあそれはないとして、やっぱ手作業で戻すしかないんでないの?
switch (arr[i]){
case "+":
var b = parseInt(stack.pop());// 数値をふたつ
var a = parseInt(stack.pop());// とりだして
stack.push((a + b).toString());// 加算してスタックに戻す
break;
case "-":
var b = parseInt(stack.pop());
var a = parseInt(stack.pop());
stack.push((a - b).toString());
break;
}
ただこれだけだと演算子の優先順位を守らせるのが難しいけどね。
俺は中置記法はあきらめて後置記法にしたよ。

var str = "123,2,10,*,+";
var arr = str.split(",");
(以下略)

これなら、上記のswitch文に
default:
stack.push(arr[i]);
break;
って入れるだけで完成。
886Now_loading...774KB:2006/02/16(木) 18:43:39 ID:8ZBtKDJk
そうなんだよね。電卓のようにするなら簡単だけど、
最終的に一つの数式にするなら演算の優先順位がネック。
887Now_loading...774KB:2006/02/16(木) 18:45:26 ID:fjs6o0ym
ちょっとスレ違いかもで申し訳ないのですが、ご存知だったら教えてください。
複数のメニューをマウスに反応させて3D的に動かしたいと思っているのですが、どこかにいいサンプルありませんか?
3D的(深度がある?)なものであれば、どういったものでも構いません。
ご存知であればよろしくお願いします。
888Now_loading...774KB:2006/02/16(木) 20:37:21 ID:OUJRQLXw
>>881-886
方法思いついた。外部アクションスクリプトを使えばいい。

1)フラッシュ内で記述された数式をCGIに渡す。
2)CGIは受け取った数式をそのまま「hoge.as」というファイル名に保存する。
3)フラッシュは「hoge.as」を外部アクションスクリプトとして実行。

これでいけると思うが。
889Now_loading...774KB:2006/02/16(木) 20:57:07 ID:JntZfsLq
>>887
3D的って言われてもわからん。このページ(url提示)みたいな感じとかもう少し具体的に。
>>888
何がいけるんだ?
890Now_loading...774KB:2006/02/16(木) 21:11:41 ID:d2AICqXJ
あんた、asファイルの読み込み方知ってる?
891Now_loading...774KB:2006/02/16(木) 21:12:23 ID:CPQtZ1Ul
>>888
http://www.fumiononaka.com/TechNotes/Flash/FN0310003.html

> 注記: 外部ファイル中のActionScriptのコードは、FLAファイルのパブリッシュや書き出し、
> ムービープレビュー、デバッグする際に、SWFファイルにコンパイルされます。
> したがって、外部ファイルに変更を加えたときは、そのファイルを保存して、
> コードを使用しているFLAファイルはすべてもう1度コンパイルしなければなりません。

つまり、動的に生成された外部ASをその場で利用することはできない。
なので>>888は残念ながら無理ぽ。そういう発想は俺も好きではあるが。
892Now_loading...774KB:2006/02/16(木) 21:35:49 ID:OUJRQLXw
>>891
そうなんか・・・。残念。
893Now_loading...774KB:2006/02/16(木) 21:55:52 ID:/TD0oAhN
>>881
↓実行してみて。コレがヒント。

calcD = [];
calcD[0] = 123;
calcD[1] =' + ';
calcD[2] = 2;
calcD[3] = ' * ';
calcD[4] = 10;

getURL("javascript:void(alert("+calcD.join("")+"))");
894Now_loading...774KB:2006/02/16(木) 23:01:12 ID:yq/7QfRi
詰まった…質問です。

あるムービークリップを押しっぱなしにしたままで3秒経ったら
任意処理を行いたいのですが、上手くいきません。

下記のムービークリップスクリプトで説明すると、
この状態ではtraceで(゚∀゚)しか表示されません。
ちなみに、ムービー自体はgotoAndStop(_currentFrame-1)で
ループ構造にしてあります。

on (press) {
pressTime = getTimer();
trace("(゚∀゚)");
}
on (enterFrame) {
trace("(´・ω・`)");
overTime = 3000;
if (getTimer()>pressTime + overTime) {
trace("(・∀・)");
}
}
895Now_loading...774KB:2006/02/16(木) 23:16:39 ID:bDttnHRy
>>894
gotoAndStop ではループ構造にならないのでは?
gotoAndPlay だと思うよ。

on (enterFrame) というのも
onClipEvent(enterFrame) のことだと思うよ。
896Now_loading...774KB:2006/02/16(木) 23:37:58 ID:xt/+dftL
>>894
それだとplayer6で書き出したら何もしなくても3秒後に(・∀・)になっちゃうよ。

原型とどめてないけどこんなんでどう?
//MCのインスタンス名 : my_mc
this.stop();
overTime = 3000;
my_mc.onPress = function() {
id = setInterval(EnterFrame, overTime);
trace("(゚∀゚)");
};
my_mc.onRelease = my_mc.onReleaseOutside=function () {
trace("(´・ω・`)");
clearInterval(id);
};
function EnterFrame() {
trace("(・∀・)");
clearInterval(_root.id);
}
897Now_loading...774KB:2006/02/17(金) 00:10:45 ID:n17YN2Iq
setInterval使うならマウス押した時点でタイマースタート、
離された時点でクリアでいんじゃないかな。
当然呼ばれるfunctionでクリアして。
EnterFrameとsetIntervalは別に考えた方が良いと思うぞ。
898896:2006/02/17(金) 00:26:40 ID:A8k4RK9m
>>897
>setInterval使うならマウス押した時点でタイマースタート、
>離された時点でクリアでいんじゃないかな。
どういうこと?そうなってると思うけど・・・(´・ω・`)
899Now_loading...774KB:2006/02/17(金) 00:29:48 ID:n17YN2Iq
いや、なんでEnterFrameで毎度毎度クリアしてるのかなと。
そこがわからんのでし。
900Now_loading...774KB:2006/02/17(金) 00:34:12 ID:ODGUh+gj
>>899
頭悪いのか?プログラムよく見ろ。
901896:2006/02/17(金) 00:37:06 ID:A8k4RK9m
>>899
EnterFrameはfunctionの名前であってonEnterFrameではないよ。
紛らわしくてごめん。
902Now_loading...774KB:2006/02/17(金) 00:42:09 ID:n17YN2Iq
おお、わかった、悪かった。
ぱっと見だけで判断したからか、でも、EnterFrameって名前の関数ってのはつらいっす。
903Now_loading...774KB:2006/02/17(金) 00:48:46 ID:OjS3mlPz
>>895
ぐわすいません、ミスってStopとタイプしてました。実際のスクリプトではちゃんとなってます。
後、↓も直しました。そしたら>>896の通りになりましたが…ぁぅぅ

>>896
ありがとうございます、動きました。
setIntervalって関数を知らなかったので、勉強になりました。
904903:2006/02/17(金) 00:57:31 ID:OjS3mlPz
>>896
あ、でもひとつだけわからん事があります。
>trace("(・∀・)");
>clearInterval(_root.id);
下のclearInterval()の引数はどうしてidじゃなくて_rootを指定してるんでしょうか。
外してみてやったんだけど、あんまり違いがわからなくて。
905881:2006/02/17(金) 02:07:01 ID:JlodP5yq
>>882〜886,888〜893

色々なアドバイス、感謝します。ただ今、レスをプリントアウトし読んでいます。
最終目標はFlashによる電卓の実現で、885,886さんの言う通り、式の優先順位
が問題になってました。
なお最初の質問文中に若干誤りがあります。遅くなりましたが訂正します。

_root.calcD[idx1] → calcD[i]

893さんの方法を試してみます。では、おやすみなさい。
906Now_loading...774KB:2006/02/17(金) 03:32:53 ID:n17YN2Iq
ちょっと寝たw
関数電卓みたいにするなら、数式解析しなきゃならんから↓とか
ttp://www.h4.dion.ne.jp/~zero1341/a/06.htm
で結構大変。
いわゆる普通の電卓なら各演算文字列に対応した演算をするだけでいいかと。
数値、演算子、数値で計算結果それに対して...の順番に計算するだけだから楽ちん。
ただ、割り算は鬼門だす。切り捨てちゃうのが楽だけど。
907Now_loading...774KB:2006/02/17(金) 09:57:56 ID:rv7ETgGl
質問させて頂きます。
WindowコンポーネントのPopUpManager.createPopUp()で小さなwindowを表示ものを色々なサイトを参考に作ってみました。
この小windowがマウスでドラッグしながら動かせてしまうのですが、どうすれば動かない様にできるでしょうか?
色々ぐぐってみましたが、なかなかコレダと思うのがヒットしません。
よろしくお願いします><
908Now_loading...774KB:2006/02/17(金) 19:43:43 ID:iIZrqmPL
getURL("javascript:xxx()");

を使ってjavascriptの処理を呼んでるのですが
getURLのせいかIEで実行すると
「カチッ」とページ遷移するときの音がしてしまいます。

この音がしないようにはできないですか?
909Now_loading...774KB:2006/02/17(金) 19:44:46 ID:P+J6yL0u
できません
910908:2006/02/17(金) 20:32:15 ID:iIZrqmPL
>>909
ありがとうございます。

javascriptと連携するのに
getURL以外の方法はなにかあるのでしょうか?

古いブラウザは無視する前提で
IE6、Firefox1.5、Netscape7、Safari
で動くようにしたいです。

911Now_loading...774KB:2006/02/17(金) 21:40:56 ID:9gwMp28U
ExternalInterface.callかな
912896:2006/02/17(金) 23:10:04 ID:A8k4RK9m
>>904
気分。
913Now_loading...774KB:2006/02/18(土) 00:02:29 ID:/9XLAsGM
>>910
fscommand
914881&905:2006/02/18(土) 00:47:22 ID:R/9oMnjI
Q) 文字列の記号を演算子に変換 -2 (Flash電卓)

893さんの getURL("javascript:void(alert("+calcD.join("")+"))");  を改造し、
http://www.uploda.org/uporg315495.swf の「Enter,=」ボタンに
on (release) {
 _root.calcD[_root.idx] = _root.subDisp;
 trace("calcD= "+_root.calcD[_root.idx]);
 trace("idx= "+_root.idx);
 _root.subDisp = "";
 _root.subDisp = _root.getURL("javascript:void(alert("+_root.calcD.join("")+"))");
}
と書きました。このswfを起動し、123+2×10 を打ち込み「Enter,=」ボタンを
押すと、
http://vista.x0.to/img/vi27548.gif
http://vista.x0.to/img/vi27544.gif
となり一応 143 という値は得られますが、swfの方は、答えの欄(小さい方の
テキストフィールド:_root.subDisp )はundefinedになります。

答えの欄(_root.subDisp)に値を出すにはどうしたらいいでしょうか?

あと http://vista.x0.to/img/vi27544.gif はテスト段階で出る分には構わ
ないのですが、答えの欄が正常に表示できるようになったらこれは不要に
なるます。
vi27544.gifはJavaScriptを使う以上は必ず出るのでしょうか?

以上、宜しくお願い致します。
915Now_loading...774KB:2006/02/18(土) 01:46:53 ID:ihKSmLym
初心者です。質問します。

まず、1〜7までのボタンを用意しました。
MCを7個、用意して1〜7のボタンにそれぞれ割り当てました。
例えば、1を押すとこのMC、2を押すとこのMCと言う具合に。

作りたい動作は、例えば、
1のボタンが押されたら左から1のMCが現れて、中央で止まる様にして、
4のボタン(5でも6でも同じ)が押されたら1のMCが右に逃げて、
4のMCが、左から現れて中央に止まるようにしたいです。

いったいどうすれば良いのですか?

スペックは、
FLASH MX2004 / WindowsXP です。
よろしくお願いします。
916Now_loading...774KB:2006/02/18(土) 02:24:27 ID:tQJ6/ynk
インベーダの敵の動きを質問したとき
以下のようなソースをいただいたのですが、

id = setInterval(Move, 1000);
function Move() {
rnd_num = Math.random()*10;
if (rnd_num<8) {
x_num = 10;
} else {
x_num = -10;
}
enemy_mc._x += x_num;
}


この中の、idという変数らしきものは
なんなんでしょうか?
917Now_loading...774KB:2006/02/18(土) 02:42:08 ID:eYpEuaRD
>>914
>vi27544.gifはJavaScriptを使う以上は必ず出るのでしょうか?
それはalert使ってるから。getURLには戻り値はない。
なのでHTMLを介して取得することになると思う。
//
var calcD = new Array();
calcD[0] = 20;
calcD[1] = "+";
calcD[2] = 4;
_root.getURL("javascript:CalFla.setVariable('_root.ret_txt', "+_root.calcD.join("")+");");
//
※_root.ret_txt : 結果を表示するダイナミックテキストの変数名
※CalFla : HTML内でFlashを貼ってるObjectタグのidとembedタグのname部分の名前。

でも、コレだとHTMLに貼ってあるswfでないと動作しないし、
Player8だとセキュリティに弾かれて実行できないよ。
918Now_loading...774KB:2006/02/18(土) 02:57:15 ID:eYpEuaRD
>>915
MCが左から現れて中央で止まるとこだけ。
ステージ上にMC1とButton1を用意
//
_root.Button1.onRelease = function() {
MC1.onEnterFrame = function() {
if (MC1._x>=(Stage.width/2)) {
this.onEnterFrame = undefined;
} else {
MC1._x += 10;
}
};
};
//

>>916
setInterval は指定した間隔で関数を実行するというもの。
その場合だと1000ミリ秒間隔でMove関数が実行される。
その実行を止めたいときに
clearInterval(id)
としてsetIntervalを取り消すことが出来る。
どのsetIntervalを止めるかの識別用の整数。
ちなみにidは変数なので別にidという名前にする必要はない。
919915:2006/02/18(土) 03:12:27 ID:ihKSmLym
>>918
早速レスありがとうございました。
前のMCが逃げて、新しいMCが現れる動作だと、
”逃げるMC”は、不特定なので、
FLASHでは、作れませんか?
920Now_loading...774KB:2006/02/18(土) 03:18:51 ID:tQJ6/ynk
>>918
わかりやすい説明ありがとうございます。
921881&905:2006/02/18(土) 03:34:39 ID:ouZpER13
>>917 Player8だとセキュリティに弾かれて実行できないよ。

有難うございます。
う〜む。Player8が普及しないことを願うしかないかw

普及率
ttp://www.macromedia.com/software/player_census/flashplayer/version_penetration.html
922Now_loading...774KB:2006/02/18(土) 04:13:19 ID:eYpEuaRD
>>919
無理ではないよ。
出て来るMC以外のMC(逃げるMC)を取得
出て来るMCの座標取得して、逃げる側のMCの座標と比較。
その比較結果で逃げるMCを動かせばいいんでない。

//ルートの中心あたりに適当にMCを配置
//インスタンス名は付けない。
//あとはさっきと同じ
_root.Button1.onRelease = function() {
MC1.onEnterFrame = function() {
if (MC1._x>=(Stage.width/2)) {
this.onEnterFrame = undefined;
} else {
MC1._x += 10;
for (nige in _root) {
m = eval(nige);
if (typeof (m) == "movieclip" && m._name<>"MC1") {
dis = m._x-this._x;
m._x += 5;
}
}
}
};
};

不特定MCっていってるけど前回でてきたMCだよね?
だったらそのMCを変数とかに入れておけばfor in は使う必要ない。
923922:2006/02/18(土) 04:18:32 ID:eYpEuaRD
>>919
>>922の3行目あたり、座標を比較どーこーってのはASに書いてなかったわ。

>>921
>Player8だとセキュリティに弾かれて実行できないよ。
紛らわしいいい方したけど、必ずしも弾かれるわけではないよ。
弾かない設定にしてる人もいると思う。
ただ、私はデフォルトで弾きモードになってた。
注意書きしとけばいいんでない?もしくはJavaScriptで作るとか。
924881&905:2006/02/18(土) 04:39:25 ID:ouZpER13
>>917 Objectタグのidとembedタグのname部分の名前

すみません。ググりましたが、分かりません。
もしかして「Objectタグのidあるいはembedタグのname部分」ですか?
ググった中の例で ttp://homepage3.nifty.com/fs/sozai/setti2.html
では、どれがこれに相当しますか?
925881&905:2006/02/18(土) 04:40:23 ID:ouZpER13
>>923 注意書きしとけばいいんでない?

そうします。
926Now_loading...774KB:2006/02/18(土) 06:14:56 ID:Tx6xcvxu
外部テキストファイルを丸ごと文字列として読み込む方法ってあるんでしょうか?
927Now_loading...774KB:2006/02/18(土) 06:34:57 ID:Tkg24l3+
>>926
xml読み込みでテキストファイルを読みこむ。
928Now_loading...774KB:2006/02/18(土) 06:45:36 ID:Tx6xcvxu
>>926
目から鱗が落ちました。
こんなに大きな鱗は初めてです。

ありがとうございました。
929Now_loading...774KB:2006/02/18(土) 07:05:54 ID:Tx6xcvxu
早速躓きました。
外部ファイル中に <> が入るとそれ以降がエラーとなり、読み込まれないようです。
これは外部ファイル側を調整するほか無いのでしょうか・・・。
930Now_loading...774KB:2006/02/18(土) 08:53:44 ID:rcHaoOQb
丸投げしまくりだなコイツ
931Now_loading...774KB:2006/02/18(土) 12:01:56 ID:cRULjz1a
クイズ南無千REMIXのやつはどういう仕組みなんですかね?
と、既出か?と思っていながらも聞いてみる。
932Now_loading...774KB:2006/02/18(土) 12:56:05 ID:QTW/KAY0
>>931
とりあえずフルFlashでなんでもいいからサイトを作ってみろ。
933Now_loading...774KB:2006/02/18(土) 13:01:12 ID:+RUl263W
>>926
LoadVars.onDataは?
934Now_loading...774KB:2006/02/18(土) 13:23:29 ID:Tx6xcvxu
>>933
うまくいきました!ありがとうございます!
お礼にゴマを三粒郵送しておきます。
935Now_loading...774KB:2006/02/18(土) 13:52:26 ID:eYpEuaRD
>>924
つくったから参考にどうぞ。
エラー処理はしていないので、変な式を入れたらだめよ。
ttp://eload.run.buttobi.net/cgi-bin/img/e_027.zip
936Now_loading...774KB:2006/02/18(土) 14:59:54 ID:ILplWgMU
質問です
環境はWinXP,Flash8です

マウスの方向にゆっくり旋回するmcを作ろうと
下記のスクリプトを作成したのですが、変数degが
-180度から180度に変化する瞬間にmcがくりっと逆方向に
回転してしまいます
これを回避する良い方法があったらご教授ください

this.onEnterFrame = function() {
xdis = _root._xmouse - this._x;
ydis = _root._ymouse - this._y;
rad = Math.atan2(ydis, xdis);
deg = rad / (Math.PI / 180);
def = Math.floor(deg - _rotation);
_rotation += def / 5;
updateAfterEvent();
};

以上よろしくお願いいたします
937Now_loading...774KB:2006/02/18(土) 16:05:27 ID:5IBPwWgv
えーとだな。
たとえば、180度の状態から、185度に向かおうとしたら、
atan2では-175度に向かおうとすることになるから、
def = -175 - 180 = -355
となって、くるん、と大きく動いちゃうわけだ。
なので、defの値を-180〜180に制限してしまえばOK。

def = Math.floor(deg - _rotation);

の後に、

if (def < -180) def += 360;
if (def > 180) def -= 360;

と入れればOKのはず。動作確認しとらんのでちょっとミスっとるかも知れんけど、
まあ、後はわかるよな?
938Now_loading...774KB:2006/02/18(土) 16:18:30 ID:O/hcnKDO
ヤフー翻訳で「ぬるぽ」を日本語→英語翻訳したんですが、
http://honyaku.yahoo.co.jp/transtext
939936:2006/02/18(土) 16:50:53 ID:ILplWgMU
>>937
回答ありがとうございます。おかげで意図した動きになりました

後、上記の回答スクリプトをコピペして自動フォーマットしたら
自動で{}がついたのにもちょっと感動しました

どうもありがとうございました
940881&905&924:2006/02/18(土) 16:59:37 ID:nw4MZcab
>>935 つくったから参考にどうぞ。

有難うございます。試してみます。
941Now_loading...774KB:2006/02/18(土) 17:08:26 ID:r10UvV7s
教えてください
MX2004なんですがヘルプが画面を
占領してしまい使いにくいです。
Flashとは別に一般のブラウザなどで
表示させることはできないでしょうか?
942Now_loading...774KB:2006/02/18(土) 18:26:32 ID:gVjiukZ5
ほんとに初心者質問なんですが…
ケータイでとったFLASHで、miniSDに保存出来ないものがあります。メール添付やシリアル転送も出来ません。著作権はありません。
どうしたら、保存出来るのでしょうか?
943Now_loading...774KB:2006/02/18(土) 18:30:21 ID:I3WhOOMZ
質問です。

テキストフィールドを複数個動的生成するにはどうしたら良いでしょうか?
944Now_loading...774KB:2006/02/18(土) 18:42:47 ID:Tkg24l3+
>>941
>>942
ここはFlashのプログラミング言語AS(アクションスクリプト)に関する話題のスレです。
>>1を読んで該当するスレに移動してね。

>>943
↓docsを参考にして動的に作れるけど、フォントとかとかも設定しなきゃならんから
結構めんどいかも。textFieldを子に持ったMCをシンボルにしてattachするのもある。

ttp://livedocs.macromedia.com/flash/8_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002448.html
945941:2006/02/18(土) 19:17:02 ID:r10UvV7s
>>944
すみませんでしたー
946Now_loading...774KB:2006/02/18(土) 21:06:37 ID:I3WhOOMZ
>>944
ありがとうございます。
「textFieldを子に持ったMCをシンボルにしてattachする」という方法でやりたいと思います。

もう一つよろしいですか。
ActionScript で数式のパースをしてくれる便利な関数ってありますか?やっぱり自分で一から組まないといけないでしょうか?
947Now_loading...774KB:2006/02/18(土) 21:35:06 ID:3CBH/bNX
数式のパース?

アレ?

デジャビュか?
948Now_loading...774KB:2006/02/18(土) 21:57:37 ID:eYpEuaRD
>>938
w
949Now_loading...774KB:2006/02/18(土) 23:12:58 ID:W5lZZXeo
丸投げ馬鹿は自分の書き込んだ質問も忘れるのか。驚異的だな。
950Now_loading...774KB:2006/02/18(土) 23:34:04 ID:eYpEuaRD
>>946
数式のパースって >935 これ?
951Now_loading...774KB:2006/02/19(日) 01:15:41 ID:ky+W6un7
普通に乱数を作ると物凄いスピードでランダムな数字を出して行くので
なんとかして、1秒感覚で乱数を動かしたく


onClipEvent (enterFrame) {

function MyFunc(){
_root.teki.scr = Math.floor(Math.random()*100);
updateAfterEvent();
}
という風な感じで書いてみたんですが
うまく一秒感覚で乱数が動いてくれません。
どうすれば一秒間隔で乱数が作動してくれるでしょうか?
952Now_loading...774KB:2006/02/19(日) 01:51:25 ID:R8+T8tsD
とりあえず2つほど。

まずわかりやすいのが、1秒たつまで自前で数えるやり方。

var count = 0;
onClipEvent(enterFrame){
count++;// 毎フレーム1増やして
if (count == 30){// FPS30だとして、30まで数えりゃ1秒たってるよね
count = 0;
MyFunc();//
}
}

FPSが落ちない限り、もしくは「大体1秒」でさえあれば正確さは問わないなら、
これが初心者にはわかりやすいな。

で、ちゃんとしたつくりとしてオススメなのが、setIntervalを使って、指定間隔で関数を呼び出すやり方。

var id = null;
onClipEvent(load){// load時に設定しておく。
id = setInterval(MyFunc,1000);// 1000ms,つまり1秒ごとにMyFuncを呼び出す
}

これなら正確に1秒ごとに指定関数が呼び出される。
953Now_loading...774KB:2006/02/19(日) 01:52:24 ID:/OgoJ+KT
setIntervalを使うとか。
timerID = setInterval(呼び出し関数・命令, 間隔)
954Now_loading...774KB:2006/02/19(日) 11:04:46 ID:MZfyo/zA
数式解析できたよー。逆ポーランド記法はもう紹介されてたんで、
2分木でやてみた。遅いけどね
こんなクラス作って、

function node(v) {
 var _value,_left,_right
 if (Number(v.toString())) {
 //数値のケース
  this._value = Number(v.toString());
 } else {
 //式と思われるケース
  var _c = ["+", "-", "*", "/"];
  for (var i = 0; i<3; i++) {
   var flg = false;
   for (var j=0; j<v.length; j++) if (_c[i] == v[j]){flg = true;break};
   if (flg)break;
  }
  this._left= new node(v.slice(0, j));this._right = new node(v.slice(j+1));this._value = _c[i];
 }
}
955954:2006/02/19(日) 11:08:01 ID:MZfyo/zA
こんなメソッド付けて、

node.prototype.getResult=function(){
 with(this){
  switch(_value){
   case "*" : return _left.getResult() * _right.getResult();
   case "/" : return _left.getResult() / _right.getResult();
   case "+" : return _left.getResult() + _right.getResult();
   case "-" : return _left.getResult() - _right.getResult();
   default:return _value
  }
 }
}

で、
var _a =[123,"+","2","*",10];
var n = new node(_a)
trace(n.getResult()) //143
こんな感じ。

数式としての整合性のチェックや0除算、予期しない値なんかの
エラー処理ははしょってるので実用には難アリ。
あくまでも考え方の参考にでもしてね。
956Now_loading...774KB:2006/02/19(日) 11:42:35 ID:oP2Yfspf
( ´_ゝ`)フーン
957Now_loading...774KB:2006/02/19(日) 14:40:30 ID:P25vGukH
for(i=0;i<10;i++){
hoge(i);
}

function hoge(param){
var str[param] = "test";
}

こんな感じで、str1, str2 str3・・・と
渡したパラメータの番号をつけてローカル変数を作っていきたいのですが、
うまく動作させることができません。
アドバイスをよろしくお願いします。
958Now_loading...774KB:2006/02/19(日) 14:46:21 ID:8ktPPUi4
いったん二分木を生成してから評価を行うのと、
二分木を使わず再帰処理のみで評価を行うのとでは、
どっちが速いですかね?
959Now_loading...774KB:2006/02/19(日) 14:56:03 ID:y3nzH8K8
質問です。
チャットをフラッシュで組み立てたいと思っていて、
発言表示部分をTextAreaのコンポーネントにしました。
「下」にいくほど発言が新しいです。

dialog.text += hoge + "\r";
(dialogがTextAreaの名前、hogeはCGIから受け取った新着発言)

としたんですが、これだとチャットを続けると永久にデータが増え続けてしまいます。
20行くらいいったら古い発言から消去したいんですが、どうすればいいのでしょう・・・?
配列使うんでしょうか。

環境はFlash 8,XPです。お願いします。
960Now_loading...774KB:2006/02/19(日) 14:57:56 ID:s8s9NbuI
>>958
テスト用のswfをアップしたら何人かは実験に協力してくれると思うよ。
961Now_loading...774KB:2006/02/19(日) 15:31:53 ID:R8+T8tsD
>>959
ttp://www.game3rd.com/flash/action/string.htm
ttp://www.game3rd.com/flash/action/array.htm

dialog.text += hoge + "\r";
var list = dialog.text.split("\r");
if (list.length > 20) list.shift();
dialog.text = list.join("\r");

こんな感じでいけるんでない?
962Now_loading...774KB:2006/02/19(日) 15:34:40 ID:y3nzH8K8
>>961
ありがとうございます。さっそく試してみます。
963Now_loading...774KB:2006/02/19(日) 16:59:56 ID:58H4YuB8
>>957
function hoge(param) {
  str[param] = "test";
}

str = new Array(); //配列の作成
for (i = 0; i < 10; i++) {
  hoge(i);
}

functionは呼び出す前に定義する事
varじゃなくて、その前に配列を作成しないと値が入らないよ
964Now_loading...774KB:2006/02/19(日) 17:05:48 ID:58H4YuB8
ごめん配列じゃなくてローカル変数だったね

function hoge(param) {
  this["str" + param] = "test";
}
for (i = 0; i < 10; i++) {
  hoge(i);
}
965Now_loading...774KB:2006/02/19(日) 17:58:42 ID:X1aQEJdQ
同一フレームなら

for (i = 0; i < 10; i++) {
hoge(i);
}
function hoge(param) {
this["str" + param] = "test";
}

の順番でもおk
966Now_loading...774KB:2006/02/19(日) 18:20:23 ID:DY5K+1H5
this[...]じゃ、全然ローカル変数ちゃうがな。
967Now_loading...774KB:2006/02/19(日) 20:02:17 ID:P25vGukH
>>964
ありがとうございます。
ですが、いただいたスクリプトをパブリッシュしようとするとエラーがでてしまいます・・

**エラー** シーン = シーン 1, レイヤー = レイヤー 1, フレーム = 1 :行 2:シンタックスエラー
  this["str" + param] = "test";

**エラー** シーン = シーン 1, レイヤー = レイヤー 1, フレーム = 1 :行 3:予期しない '}' があります。
}

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

どのように処理すればいいのでしょうか
968Now_loading...774KB:2006/02/19(日) 20:35:35 ID:X1aQEJdQ
>>967
あーそりゃ964の書き方が悪いんだわ。
全角スペースでインデントされてるんよ。
969881&905&924:2006/02/19(日) 21:52:15 ID:E9EpxFH4
文字列の記号を演算子に変換 -3 (Flash電卓)

色々なアドバイス有難うございます。
四則計算はできるようになりました。

お試し下さい>>> http://www.uploda.org/uporg317136.zip.html
※DL→解凍後、HTMLから起動して下さい。
970Now_loading...774KB:2006/02/19(日) 22:40:36 ID:5jEKhGWO
>>967
タイムライン変数で良いなら関数なんて無理に使わんでも
for(i=0;i<10;i++){this["str"+i] = "test";}
で、良いんじゃないの?
971Now_loading...774KB:2006/02/20(月) 05:34:40 ID:0YCcku9R
>>969
つか、Flash単体で動かないって、、、Flash電卓じゃないじゃん

>>967
Flashでは配列はローカルじゃないよ。
どういう用途でとか書いてくれれば、みんなよくわかると思うし、
解決策たくさん出てくると思う。
972Now_loading...774KB:2006/02/20(月) 10:02:31 ID:JOdy/gl4
配列だったらこの形でローカル変数になるしょ

unko();
function unko(){
var arr = new Array();
for(i=0;i<10;i++){arr[i]="test";}
trace(arr);}
trace(arr);
973Now_loading...774KB:2006/02/20(月) 10:22:28 ID:0YCcku9R
うん。言いたかったのはstr1,str2という変数を作り出す必要があるの?てことなんだ。
974881&905&924:2006/02/20(月) 18:51:24 ID:2psipxBT
>>971 つか、Flash単体で動かないって、、、Flash電卓じゃないじゃん

あー、それは突っ込まないで下さいw
975Now_loading...774KB:2006/02/21(火) 00:30:24 ID:xwKgGxnD
ソフト=FlashMX2004,OS=Win98SE

Q) テキストフィールドの書式を変更

テキストフィールド(変数名:disp)の書式を、初めは、「MSPゴシック・黒色・標準」
としておき、後で「Times New Roman・青色・斜体」に変更するため、ボタンアクション
として
on (press) {
 _root.disp.font = "Times New Roman";
 _root.disp.color = 0x0000FF;
 _root.disp.italic = true;
 _root.disp = _root.disp+"Y = ";

}

を書きました。「Y = 」以降を青色にしたいのですが、何も変化が現れません。
間違いのご指摘を願います。
976Now_loading...774KB:2006/02/21(火) 00:58:27 ID:YXRwvR1l
>>975
テキストフィールドにcolorとかfontっていうプロパティはないよ。
それをやるならTextFormatクラス。
部分的に色を変えたいならTextField.html=trueにして、TextField.htmlTextにHTMLを書く。
[TextField] はテキストフィールドのインスタンス名ね。変数名じゃないよ。
977975:2006/02/21(火) 01:43:57 ID:i4Vni9Lo
>>976
どうも。
TextFormatクラスですね。「ActionScriptポケットリファレンス」(馬場ぎんが 著)
を見ていたのですが、「Flash ActionScript 逆引き大全550」(ITフロンティア)
のp218以降に例が書いてありました。
本を読みながらやってみます。
978975:2006/02/21(火) 02:45:03 ID:7kY+TiAz
Q) テキストフィールドの書式を変更 -2

すみません。976さんと「逆引き大全550」を参考に、dispInsをテキスト
フィールドのインスタンス名として
on (press) {
 disp_ins = new TextFormat();
 disp_ins.font = "Times New Roman";
 disp_ins.color = 0x0000ff;
 disp_ins.italic = true;
 _root.dispIns.setTextFormat(disp_ins);
 _root.disp = _root.disp+"Y = ";
}

としましたが、変化がまだ現れません。ご指摘ねがいます。
979Now_loading...774KB:2006/02/21(火) 03:31:04 ID:WMl2Ag4U
>>978
答えを一発で教えてやることも出来るが、あえて教えてあげない。
理解が不十分な関数やクラスが出てきたなと感じたら、
ヘルプで基礎的な知識を、そしてGoogleでノウハウを会得すべし。
980975&978:2006/02/21(火) 09:11:18 ID:bqmYG2Ht
>>979
ヘルプやGoogleを見ましたが、よく分かりませんでした。とりあえず、
_root.disp = _root.disp+"Y = "; をon (press)処理の先頭に置いたと
ころ、希望する書式になりました。
ただし、Y = の後に文字を入れると、元の書式に戻りました。これを改善する
ため、_rootのフレームアクションでonEnterFrame内に書いたところ、入力
の際一瞬元に戻りますが、希望する書式になります。
※setNewTextFormat()は未だ試していません。

一応解決しましたが、皆さんの解決法とは違いますでしょうか?
981Now_loading...774KB:2006/02/21(火) 17:14:14 ID:g9hzywSR
IEのバグで、設定したフレームレートより低いFPSで再生されるってのがあると思うのですが、
ttp://numerous.org/bazooka/mt/archives/2004/05/15_144104.html
ここに載ってる解決策をしてもなお
flash player単体で動作させた速度には到底およびません。

何か解決策はないものでしょうか?
982Now_loading...774KB:2006/02/21(火) 17:24:53 ID:4LTFSNF5
>>981
FPSの意味解ってる?
983Now_loading...774KB:2006/02/21(火) 18:24:49 ID:u4ByeRcQ
わかってるんじゃね?
984Now_loading...774KB:2006/02/21(火) 18:48:58 ID:kQEdNlaS
開発ソフトは、FlashMX2004です。

ステージ上のMC(XY)に点のMCを並べて曲線を描こうとしています。ここでは、
最初の例として直線を目標にしています。
下の通り、リンケージ設定したMC(markA)をattachMovie()により、XY座標に
並べたいのですが、うまくいきません。

mId = 0;        //カウント用ID
x0 = -(_root.XY._width/2)+1; //XYの左端
xX = x0;
として、
on (release) {
function makeMark() {
mId++;             
trace("mId= "+mId);
newMark = "markA"+mId;
prop = {_x:xX+x0, _y:2*Math.pow(xX+x0, 1)};  //実質 y=2x の線
_root.XY.grobalToLocal(prop);
_root.XY.attachMovie("markA", newMark, mId, prop);
}
_root.XY.onEnterFrame = function() {
xX = xX+0.5;       //X座標を0.5づつ増加
trace("marking");
_root.makeMark();  
};
}
onEnterFrameが動作しているかどうかの判定である trace("marking") は
実行されているのですが、trace("mId= "+mId) での mId は表示されませ
んし、点のMC("markA"+mId)も出ません。
どうしたらいいでしょうか?
985Now_loading...774KB:2006/02/21(火) 18:59:04 ID:21qMzZlM
>>984
スコープの問題では?
986Now_loading...774KB:2006/02/21(火) 19:22:32 ID:g9hzywSR
>>982
frame per secondだと思うのですが、違うのかな。
987Now_loading...774KB:2006/02/21(火) 19:33:10 ID:sYc6Ncku
982は頭の不自由な子だから気にしないで
988Now_loading...774KB:2006/02/21(火) 19:53:50 ID:4LTFSNF5
>>987
すまんの、頭の悪いやつがスレ主で
989Now_loading...774KB:2006/02/21(火) 19:56:37 ID:4LTFSNF5
国際電話と市外通話を一緒のレスポンスでというのは無理でしょ。
990Now_loading...774KB:2006/02/21(火) 20:27:16 ID:fCcRPsV6
>>984
なんか書式が気持ち悪い。
便所に寝室が入ってる感じ

答えじゃなくてごめんね、ごめんね。
991Now_loading...774KB:2006/02/21(火) 20:28:08 ID:YPZ7ifKI
SA Playerは高速道路、ブラウザ再生は一般道路みたいなもんだと思っとくといいかも。
それと、いくら「東大合格!」と目標をかかげても無理な奴は無理なように
PCの能力をこえるFPSを設定しても出ないものは出ない。
目標を下げる、つまりFPSを低めにするか描画内容を単純化するしかない。
992Now_loading...774KB:2006/02/21(火) 20:32:07 ID:g9hzywSR
>>991
SAプレイヤーとプラグインプレイヤーは全然処理速度が違うんですか。
知らなかった・・
勉強になりましたm(_ _)m
993Now_loading...774KB:2006/02/21(火) 21:56:29 ID:mGaivqJn
処理速度の差はあるが、
IEのソレはswfの処理の重さに関係なく、
本来の実行速度が出ないってバグだよ。
994Now_loading...774KB:2006/02/21(火) 23:56:53 ID:4LTFSNF5
すまーん、例によってホスト規制でたてれないので、誰かお願い。
修正済みテンプレは以下。あと、このスレかどこか忘れたけど過去ログ検索の
HPつくっていただいたとこのURL探しきれんかった、、もし記録してる方いれば
追加情報にお願いします。

タイトル
ActionScript 誰かが物凄い勢いで解答するスレ 11

>>1の内容は以下

AcitonScriptのことなら
初歩的な質問でもなんでもおk

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

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

直前スレ
ActionScript 誰かが物凄い勢いで解答するスレ 10
http://pc8.2ch.net/test/read.cgi/swf/1134826648/l50

関連スレ
Flash製作初心者の質問スレッド レイヤー32
http://pc8.2ch.net/test/read.cgi/swf/1133555936/l50
Flashの超基本的な質問はここでしろ! part26
http://pc8.2ch.net/test/read.cgi/swf/1136837485/l50
サイト、書籍、関連情報は>>2-10あたり
995Now_loading...774KB:2006/02/22(水) 01:01:57 ID:FKf/UdR+
じゃ立てます。
少々お待ちを。
996Now_loading...774KB:2006/02/22(水) 01:05:06 ID:FKf/UdR+
無理だったヽ(`Д´)ノウワァァン
997Now_loading...774KB:2006/02/22(水) 01:52:13 ID:ghjdGLxd
じゃあ。俺が。
998Now_loading...774KB:2006/02/22(水) 01:55:25 ID:ghjdGLxd
ダメだった。ゴメンな。↓頼んだ
999Now_loading...774KB:2006/02/22(水) 02:46:07 ID:bdFR4E5A
なれてないせいかとんでもない間違いをしたorz
http://pc8.2ch.net/test/read.cgi/swf/1140543822/
新スレできるまで退避で使ってくれ。
まかせた↓
1000Now_loading...774KB:2006/02/22(水) 02:56:01 ID:oA6EbtOg
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。