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

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

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

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

前スレ
ActionScript 誰かが物凄い勢いで解答するスレ 20
http://pc11.2ch.net/test/read.cgi/swf/1215497324/
関連スレ
Flashの超基本的な質問はここでしろ! part38
http://pc11.2ch.net/test/read.cgi/swf/1212492330/
Flash製作初心者の質問スレッド レイヤー38
http://pc11.2ch.net/test/read.cgi/swf/1202151748/
2Now_loading...774KB:2008/10/29(水) 15:17:03 ID:v/ezgIus
2get!!!
3Now_loading...774KB:2008/10/29(水) 19:14:12 ID:v/ezgIus
で、EvalはムリってことでFA?
4Now_loading...774KB:2008/10/29(水) 23:23:46 ID:QKsTFU5u
使用ソフト Flash CS3 Windows
動作環境 Flash Lite 1.1 (携帯)

モールス音みたいなパターンの音を出したいため、波形をループさせて、
任意の時間だけ再生させたいと思っています。

検索したら、Flash10 だとメモリ上に置いた波形を再生できるのは
わかりましたが、携帯ではどうやったら良いのかわかりません。

波形の一周を配列で持たせてループすればいいのかと思ったのですが
そもそも変数に持たせた数値を音として再生させる方法がわかりませんでした。
良い方法があれば教えてください。
5Now_loading...774KB:2008/10/30(木) 02:50:01 ID:cx9VAK2O
はじめまして。

Flashでお問い合わせフォームを作っています。
それで、コンボボックスを使ってます。
このコンボボックスで、ユーザがリストから選択していないと
エラーがでるようにしたいんですが、どういうアプローチをすれば
いいかわかりませんでした。 

ヒントとなる書き方を教えてください。
宜しくお願いします。
6Now_loading...774KB:2008/10/30(木) 06:40:12 ID:lHf+4ypp
>>4
長音wavと短音wavを登録パターンで繰り返し再生とか
>>5
送信ボタン押した時点でエラーチェックでいんじゃね
7:2008/10/30(木) 11:10:05 ID:BgfMsTWD
6さん
返信ありがとうございます。
そのエラーチェックの仕方が、テキスト入力系であれば
わかるんですが、コンポーネント系のコンボボックスのようなものは、
どういうふうにデータが反映されているのか、ブラックボックスなところが
ありよくわからないのです。

”データが空だから、送れない”とうふうにエラーをだすんだとは
思うのですが。。

宜しくお願いいたします。
8Now_loading...774KB:2008/10/30(木) 11:56:09 ID:bn05AhHk
同じMCを3つ置いて(「i1」「i2」「i3」)MC内の変数textに_root.p*[1]の値(*はMCのインスタンス名にあるiの後の数。「i1」なら_root.p1[1])を入れたいんですが

text = _root.p + this_name.charAt(1) + [1];

とかいてもできませんでした。

text = "_root.p" + this_name.charAt(1) + "[1]";
とか
text = eval("_root.p" + this_name.charAt(1) + "[1]");
でも無理でした。誰か分かりませんか?
9Now_loading...774KB:2008/10/30(木) 12:22:55 ID:Pi89iMGH
>>8
text = _root["p"+this._name.charAt(1)][1]
10Now_loading...774KB:2008/10/30(木) 12:32:54 ID:bn05AhHk
>>9
わぁ!できました!
本当にありがとうございました!
11Now_loading...774KB:2008/10/30(木) 13:11:44 ID:yq4p7faf
AS2使っているものから質問です。以下のソースを書いたのですが、
for (; i<lo_array1.length; i++) {
byogaA[0] = Number(lo_array1[i]);
byogaA[1] = Number(lo_array2[i]);
//書き込み用。()の中に数値が入る
////////////現在の描画位置
view_mc.moveTo(byogaA[0][i], byogaA[1][i]);
////////////現在の描画位置からここまで(その次の座標まで)線を引く。(本来ならbyoga[0][i]でいいはず・・・)
view_mc.lineTo(byogaA[0][i++], byogaA[1][i++]);
}

lo_array1の中には配列データとして、[100,200,300,400]が入ってます
lo_array2の中には同じく配列として、[10,20,30,40]が入ってます
lo_array1はX座標としてlo_array2はY座標としてlineTo()とmoveTo()で使います。
動作としてはmoveToに書き始め地点を設定して、lineToまで線を引く、と言う動作なのですが、
このソースで試すと、何も描けて無く、lineToにもmoveToにも値が入ってません。
試しに
view_mc.moveTo(byogaA[0], byogaA[1]);
view_mc.lineTo(byogaA[0]+1, byogaA[1]+1);
でしてみると、このときはデータが入ってます。配列の定義は出来ているので、
このソースのところに問題があると思うのですが、何が問題なのでしょう…?
二次元配列の設定がおかしいのでしょうか?
12Now_loading...774KB:2008/10/30(木) 13:24:07 ID:S++qidtg
for文内で i++ を行っているから
i の値がどんどんふくれあがっておかしいことになってる
13Now_loading...774KB:2008/10/30(木) 13:25:35 ID:yq4p7faf
でもそうしないと次の座標データを取り出せないです……
何か案はありますか?
14Now_loading...774KB:2008/10/30(木) 13:28:24 ID:S++qidtg
i++ は i + 1 じゃないですよ
i += 1 ですよ
15Now_loading...774KB:2008/10/30(木) 14:04:51 ID:yq4p7faf
と言うか
byogaA[1][i]としたら既に値が入ってないって言われるんですよね……
あ、もちろんvar i=1;で定義はしてあります。
16Now_loading...774KB:2008/10/30(木) 14:16:12 ID:C4hswGYw
毎回moveしてるのもよくわからんしなあ
普通にPointかObjectの配列でいいんじゃないか
moveToやlineToなら、特に次の座標のデータいらんでしょ

var lineData:Array =[
{x:50,y:0,action:"moveTo"},
{x:0,y:120,action:"lineTo"},
{x:100,y:120,action:"lineTo"},
{x:50,y:0,action:"lineTo"}
]
lineStyle(3,0xFF0000);
for(var i:Number=0; i<lineData.length; i++){
var p:Object = lineData[i];
if(p.action=="moveTo"){
moveTo(p.x,p.y);
}else{
lineTo(p.x,p.y);
}
}
174:2008/10/30(木) 15:32:50 ID:QOJDFOOc
>>6
> 長音wavと短音wavを登録パターンで繰り返し再生とか

ありがとうございます。
これだと再生速度が固定になってしまうので難しいのです…。
18Now_loading...774KB:2008/10/30(木) 19:23:44 ID:S++qidtg
>>15
まず >>14 に関して何か言うことはないのか?
19Now_loading...774KB:2008/10/30(木) 20:12:51 ID:2d6EjuMH
質問なのですが、openofficeのImpress(いわゆるPowerPoint)で作ったswfファイルを
Flex(ActionScript3.0)で操作するにはどうしたらいいのでしょうか。

Image.addEventListener(MouseEvent.CLICK,hoge);
Image.source = "***.swf";

funtion hoge(e:MouseEvent):void
{
var rootMc:MovieClip = Image.content as MovieClip;
trace(rootMc);
}

これでswfのrootをとってきて、currentFrameで現在フレーム数(どんな場合も2)もとってこれるのですが。
操作(nextFrame || gotoAndStopで次のページに切り替え)をできるようにする所までなかなかいけません。

これのやり方を教えてもらえないでしょうか。

Impressのswfはクリックしたらフレームが切り替わるように勝手に設定してあるみたいです。

これを制御して、ページを戻したりしたいです。

↓Impressで作ったswfの例(これをFlex(as3)で操作したい)
ttp://gonzo.dip.jp/~gonzo/cgi-bin/uploader2/upload.cgi?mode=dl&file=5377

DLKey:「swf」
20Now_loading...774KB:2008/10/30(木) 20:16:57 ID:2d6EjuMH
>>19

× Image.addEventListener(MouseEvent.CLICK,hoge);
○ Image.addEventListener(Event.COMPLETE,hoge);
21Now_loading...774KB:2008/10/30(木) 21:55:12 ID:bn05AhHk
すみませんまた質問があります。インスタンス名が「mc1」〜「mc10」までのMCを10個設置して(同じMCです)、MC内の最初に
a = Math.floor(Math.random() * 10);
と書き変数aの数値を1〜10の値にします。次のフレームに
if(a < 50) {
 a++;
} else {
 for(略)
 stop();
}
のようにaに1ずつ足していき50になったら足すのを止めるようにします。このときそのMC以外の9つのMCもfor等を使って同時に足すのを止めます。
私がしたいのは「aが50のMCを一つだけにする」事なんですが、最初のaの値が1〜10という少ない範囲なので、かなりの確率で50になるMCが複数でてきてしまいます。どうすれば一つだけにできるでしょうか?分かりづらくてごめんなさい……。
22Now_loading...774KB:2008/10/30(木) 23:05:21 ID:wrwYNlct
>>21
50になった複数のMCから1つ選んで、そのMC以外のaを49にすればいいんじゃない?

ちなみに
>a = Math.floor(Math.random() * 10);
だとaの値は0〜9です。
23:2008/10/31(金) 18:19:47 ID:ALkzvGbP
レスが乏しいようなので
再度、投稿させていただきます。

そのエラーチェックの仕方が、テキスト入力系であれば
わかるんですが、コンポーネント系のコンボボックスのようなものは、
どういうふうにデータが反映されているのか、ブラックボックスなところが
ありよくわからないのです。

”データが空だから、送れない”とうふうにエラーをだすんだとは
思うのですが。。

宜しくお願いいたします。
24Now_loading...774KB:2008/10/31(金) 20:34:10 ID:Fih4sBii
>>23
コンボボックスなら
(コンボボックスのインスタンス名).value
で今選択されてる値がとれる

コンポーネントインスペクタを開いて、コンボボックスなりチェックボックスなりをクリックすれば
属性一覧みたいのが見えるのでブラックボックスでもなんでもない
25Now_loading...774KB:2008/10/31(金) 20:58:06 ID:+MGbo4lV
環境)OS:WinXP-Pro,Mem=3GB,開発ソフト:FlashCS3-Pro(Player9.0,AS3.0)

AS3.0の配列の扱いで質問です。

文字列を格納した配列 dataGyou0[id] があり、この要素の番号を1つずらして別の配列
dataGyou1[id] に格納するため、for文で

for (var id=0; id<101; id++) {
dataGyou1[id] = dataGyou0[id+1]; // 1つ先を格納
trace ("Data= "+id+", "+dataGyou1[id]);
}

としたところ、以下のエラーが現れました。
 ReferenceError: Error #1069: String にプロパティ 1 が見つからず、デフォルト値もありません。
 at minitxt_fla::MainTimeline/extraction1()

このError #1069について調べましたが、やはり原因が分かりません。
アドバイス願います。
2625:2008/10/31(金) 21:12:48 ID:+MGbo4lV
(自己レス)
原因が分かりました。
単純に、dataGyou0[id]への代入文でミスをしてました。
27Now_loading...774KB:2008/10/31(金) 22:26:54 ID:+MGbo4lV
環境)OS:WinXP-Pro,Mem=3GB,開発ソフト:FlashCS3-Pro(Player9.0,AS3.0)

改めて質問します。AS3.0で文字列を配列化する場合で質問です。

配列 gyouRetu0[0] の中身がカンマ区切りの文字列 03, 09, 19, 22, 23, 21 であったとき、
これを更に gyouRetu1[0][id2] の形で2次元配列化するとき、

this.gyouRetu1[0] = this.gyouRetu0[0].split(",");
for (var id2=0; id2<6; id2++) {
trace ("youso= " + this.gyouRetu1[0][id2]);
}

と書いたところ、以下のエラーコードが現れました。
 TypeError: Error #1006: split は関数ではありません

この場合、文字列 03, 09, 19, 22, 23, 21 を str1 とおいて、単純に str1.split(","); とすると
問題なく配列に格納できましたが、上記の記述ではエラーが出ます。

何故、 splitが関数でなくなるのでしょうか?
問題点などをご指摘下さい。
28Now_loading...774KB:2008/11/01(土) 00:25:35 ID:rbopJFxj
>>27
単純に,this.gyouRetu0[0] の中身が文字列じゃないだけ。
それ以外に理由はない。
2927:2008/11/01(土) 01:20:54 ID:Pbh+1h9K
>>28
有難うございます。
this.gyouRetu0[0] → this.gyouRetu0[0].toString(); で文字列化して解決しました。
30Now_loading...774KB:2008/11/01(土) 01:27:33 ID:YijNTZp4
いや、中身をちゃんと文字列に直そうよ・・・
31Now_loading...774KB:2008/11/01(土) 20:06:19 ID:nG2vKjv9
すみません!初心者です!
僕は親指を使って鼻くそをほじるのですが、それを友達に言ったら笑われました!
何がおかしいのでしょうか…??
返答お待ちしております。
32Now_loading...774KB:2008/11/01(土) 20:26:30 ID:piYBchZ6
ActionScript2.0で

AS3でいうStage.fullScreenSourceRectを実現させるには、

どうしたらいいのでしょうか。
33Now_loading...774KB:2008/11/01(土) 20:31:54 ID:piYBchZ6
>>32

すまん!自己解決
import flash.geom.Rectangle;

してなかっただけ。
34Now_loading...774KB:2008/11/02(日) 10:57:44 ID:6rucngUd
AS2で質問です。動画から再生時間を取得して、動画の開始から3秒後、5,5秒後、8秒後で
アクションを起こしたいのですが、そういった動作をするにはどうすればいいのでしょうか?
〜メソッドやハンドラを使えばいい等知っていることがあればおしえてください。
35Now_loading...774KB:2008/11/02(日) 13:28:53 ID:mIpPgBW6
>>34
FLVPlayback.cuePoint
36Now_loading...774KB:2008/11/02(日) 19:10:23 ID:6rucngUd
>>なるほど、cuepointですか…ありがとうございます。
続けての質問になってしまうのですが、そのcuepointを外部ファイルから指定する方法ってありますか?
サーバにテキストファイルを置いて、その中に時間を入れて、それでcuepointを扱いたいのですが……
37Now_loading...774KB:2008/11/02(日) 19:41:55 ID:RGmmuI3M
38Now_loading...774KB:2008/11/02(日) 23:07:13 ID:dDU9b6xG
ActionScriptからJavaを実行出来ますか?
39Now_loading...774KB:2008/11/03(月) 00:28:13 ID:RuqUCMl6
環境)OS:WinXP-Pro,Mem=3GB,開発ソフト:FlashCS3-Pro(Player9.0,AS3.0)

addChildAt () で質問です。

このメソッドで追加オブジェクトの位置を指定するのはどうしたら良いでしょうか? AS2.0以前
では、例えばステージ上のmc1にabcというMCを、座標(100, 100)にnewABCという名で深度
depthで追加するとき

prop = {_x:100, _y:100};
this.mc1.attachMovie("abc", newABC, depth, prop);

と書けば良かったのですが、addChildAt () ではヘルプを見ても分かりませんでした。
よろしく願います。
40Now_loading...774KB:2008/11/03(月) 01:00:53 ID:KpCY7v/j
>>39
AS3のaddChildAtはAS2のattachMovieとは違って連続しない深度に配置することはできない
深度はAS3では0,1,2,3・・・と0から始まり、仮に深度2にあるオブジェクトを削除した場合も自動的に0,1,2・・・と順繰りに詰められ、常に連続した深度になる
なので、100までしか深度がないのに、いきなり深度200に配置したりすることはできない
4139:2008/11/03(月) 01:04:31 ID:RuqUCMl6
>>40
なるほど、深度は連続するんですね。
ところで、本題の位置(座標)指定はどうすれば良いでしょうか?
42Now_loading...774KB:2008/11/03(月) 01:14:18 ID:KpCY7v/j
>>41
addChildAtは位置のパラメーターないでしょ?
ヘルプみたいに指定すればOK

表示オブジェクトコンテナの操作
http://livedocs.adobe.com/flash/9.0_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000148.html
4339:2008/11/03(月) 01:23:26 ID:RuqUCMl6
>>42
さんきゅう。
参考にさせて頂きます。
44Now_loading...774KB:2008/11/03(月) 02:12:23 ID:hciVCrgl
あたり判定について
 クリックしたらランダムでオブジェクトをライブラリからステージ上に読み込む。という事をやり、ムービークリップ内でランダムに動くという制御をしてみました。
そこで、あたり判定を設けて種類の違ったオブジェクトがぶつかったらどちらか一方が消えるというアクションスクリプトを組みたいのですがうまくできません。
Mac OS X バージョン10.5.5
AS3.0

○シーンのスクリプト○
this.stage.addEventListener(MouseEvent.CLICK,clickHandler);
function clickHandler(evt:MouseEvent):void {
var mcNiku:MovieClip=new niku();
var mcKusa:MovieClip=new kusa();
var a;
a=Math.random()*10;
if (a>5) {
this.addChild(mcNiku);
} else if (a<5) {
this.addChild(mcKusa);
}
mcNiku.x=evt.localX;
mcNiku.y=evt.localY;
mcKusa.x=evt.localX;
mcKusa.y=evt.localY;

if (mcNiku.hitTestObject(mcKusa)) {
this.removeChild(mcKusa);
}
}
45Now_loading...774KB:2008/11/03(月) 02:15:23 ID:hciVCrgl
>>44 続きです
○オブジェクトのスクリプト○
var spanX = 10;
var spanY = 5;
var moveX = 5;
var moveY = 3;
var theX = this.x;
var theY = this.y;
addEventListener(Event.ENTER_FRAME,sansu);
function sansu(event:Event):void {
theX += moveX;
theY += moveY;

中略(壁に跳ね返るというスクリプト)
46Now_loading...774KB:2008/11/03(月) 02:16:04 ID:hciVCrgl
>>44
>>45
さらに続きです。
this.x = theX;
this.y = theY;
var Rnd = Math.floor(Math.random()*20);
if (Rnd == 0) {
moveX = Math.random()*spanX*2-spanX;
moveY = Math.random()*spanY*2-spanY;
}
for(var i:int=0;i<parent.numChildren;i++){
var target:DisplayObject=parent.getChildAt(i);
if(target!=this){
if(hitTestObject(target)){
parent.removeChild(target);
break;
}}}}
オブジェクトを消すことはできたのですが
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
と出てしまいます。そして、消える際に同じオブジェクト同士がぶつかっても消えてしまうのです・・・
オブジェクトにぶつかったら種類の違う片一方のオブジェクトだけ消すということをしたいです。どうにかならないでしょうか?
47Now_loading...774KB:2008/11/03(月) 03:07:47 ID:Sq2kWZn1
>>44

mixiでも同じ質問してたよね
バレないだろうからってマルチはよくないですよ
しかもmixiのほうでサンプルコードまで作っていただいてるのに。


俺ならオブジェクトをそれぞれ別の配列に入れて
for文で走査して当たり判定処理する
48Now_loading...774KB:2008/11/03(月) 03:52:00 ID:hciVCrgl
>>47
こちらに書き込んでから詳しいサンプルコードを発見いたしました。
どうもお騒がせしてすいませんでした。
これからはマルチしないようにします。

またアドバイスありがとうございます。
49Now_loading...774KB:2008/11/03(月) 10:17:32 ID:ZQzgLA0O
>>38お願いします
50Now_loading...774KB:2008/11/03(月) 10:44:20 ID:A2UL7sdX
fscommandのexecからなら可能じゃないかしら
ActionScript広義には無理
51Now_loading...774KB:2008/11/03(月) 11:50:38 ID:fEbbo2SP
文字列 "1 + 2"から3を得たいんだけど、何かいい方法ない?
52Now_loading...774KB:2008/11/03(月) 11:54:38 ID:DG5momjq
>>51
いい方法って、自分はどうやったの?
53Now_loading...774KB:2008/11/03(月) 11:59:02 ID:B+83Brz8
>>51
足すだけならsplitでできた配列の中身を数に変換して全部足せばいいのでは?
54Now_loading...774KB:2008/11/03(月) 12:07:19 ID:fEbbo2SP
>>52
>>53氏のように+とか-とかを認識して計算させる関数を作ろうとおもったんだが
もっといい方法ないかな〜と思って…。
55Now_loading...774KB:2008/11/03(月) 12:30:04 ID:TICGvCRt
eval()すればいいだけだろ…
56Now_loading...774KB:2008/11/03(月) 12:31:08 ID:TICGvCRt
ちなみにASにevalはないという人はJS連携勉強してくれ
57Now_loading...774KB:2008/11/03(月) 12:45:49 ID:DG5momjq
>>54
数式をパースするアルゴリズムならばググれば出てくるよ
めんどくさいならフリーのライブラリ捜すとか
>>55
ASでのevalとなんか間違えてないかw
58Now_loading...774KB:2008/11/03(月) 13:14:07 ID:TICGvCRt
>>57
間違えてないけど
59Now_loading...774KB:2008/11/03(月) 14:18:02 ID:DG5momjq
>>58
eval("1+2")で3が返るってこと????
60Now_loading...774KB:2008/11/03(月) 14:25:23 ID:OIGoQZLY
AS2で質問です。

USB接続したゲームパッドなどの
「アナログ」コントローラの値を取得できますか?
出来たらやり方を教えて頂けると助かります。
61Now_loading...774KB:2008/11/03(月) 14:30:24 ID:DG5momjq
>>60
コントローラの値って何だ?
ゲームとかだったらキー入力でつくっといて、ゲームパッド使う人は
その人が自分でボタンをキーに割り当てるとかじゃね
62Now_loading...774KB:2008/11/03(月) 14:30:39 ID:TICGvCRt
>>59

function test(c) {
 var v = null;
 try { eval("v="+c); } catch(e) {};
 
 return v;
}

これでcに"1+2"を入れて呼び出してvを返してやればいいでしょ。
入力、出力はJavascriptとFlash連携を勉強してくれ。
ちなみにvarをeval()の外に出しているのはクロスブラウザ対応。
Safariとかで不具合があるから。
63Now_loading...774KB:2008/11/03(月) 14:32:37 ID:DG5momjq
>>62
それはJavaScriptのevalでASでのevalじゃないとw
64Now_loading...774KB:2008/11/03(月) 14:35:21 ID:TICGvCRt
>>63
初めからJS連携だって言っているだろ。
6560:2008/11/03(月) 14:37:42 ID:OIGoQZLY
>>61
最近の家庭用ゲーム機の方向キーやボタンは
押したか押してないかだけでなく、
微妙な傾き加減(押した強さ?)を認識しますよね。
それによってゲーム内の車が軽く曲がったり、強く曲がったり。

そういうのをFLASHでも再現出来るのかなと思いまして・・・。
66Now_loading...774KB:2008/11/03(月) 14:38:49 ID:DG5momjq
>>64
ASでのevalとJSでのevalはちがうと言いたかっただけ
ちゃんと説明しないとみんなが混乱する
67Now_loading...774KB:2008/11/03(月) 14:42:14 ID:DG5momjq
>>65
PS3やWiiのコントローラーの機能をというのなら無理
自分でライブラリ作るだけの力があればできるだろうけどね
そうだったらゲームメーカーがハンティングするだろなw
68Now_loading...774KB:2008/11/03(月) 14:42:39 ID:TICGvCRt
くだらんやりとりめんどくさい。書くんじゃなかった。バイバイ。
69Now_loading...774KB:2008/11/03(月) 14:44:27 ID:DG5momjq
>>68
充分みんなの役に立ったありがとう
7060:2008/11/03(月) 14:49:10 ID:OIGoQZLY
>>67
うわー
そうなんですかー

Wiiまでは無理にしても、
PS2のアナログコントローラくらいは再現できるのかと思ってました。

たしかに、巷にあるFLASHゲームで
パッドでアナログ入力出来るゲーム見たことないですもんね。
ちょっと残念です・・・。

回答、ありがとうございました!
71Now_loading...774KB:2008/11/03(月) 15:25:13 ID:fEbbo2SP
JS連携のEvalはやっぱりブラウザでswfを動かした時しか
使えないんですかね?
72Now_loading...774KB:2008/11/03(月) 20:32:50 ID:mhx4pVEs
環境)OS:WinXP-Pro,Mem=3GB,開発ソフト:FlashCS3-Pro(Player9.0,AS3.0)

コンテナ内のオブジェクト(MC)の命名で質問です。

親コンテナ内にボタンを置き、これを押すことによって同じ親の下に for (var id = 0; id < 5; id++)
で mc0 〜 mc4 のオブジェクト(MC)を追加したく思っています。
自分が試したAS(3.0)は以下の2通りです。

var ["mc"+id]:MovieClip = new BlueMark();
var this["mc"+id]:MovieClip = new BlueMark();

これでは両方とも、「identifier が必要です」という警告が出ます。
このような複数の命名をする場合にはどうしたら良いっでしょうか?
73Now_loading...774KB:2008/11/03(月) 21:05:49 ID:jKpgN0LB
>>72
mc.name = "mc"+id;

呼び出しは
mc.getChildByName("mc"+id)
74Now_loading...774KB:2008/11/03(月) 21:14:20 ID:mhx4pVEs
>>73
有難うございます! 出来ました。

更に、ライブラリのMCに
this.addEventListener (MouseEvent.MOUSE_OVER, mouseOnMC);
function mouseOnMC (evt:MouseEvent):void {
trace ("name= "+this.name);
}
を書いて、マウスでの名称確認が出来ました。
75Now_loading...774KB:2008/11/04(火) 00:08:13 ID:3YbeyEa4
OSはWinXP-HE、ソフトはFlashCS3(AS3.0)で、サイトの情報を読み込んで解析したく
思っています。

先ずは本に書いてあるFlaファイルを http://www.yahoo.co.jp/ でテストしてみたのですが、
コードを何もいじっていないにも関わらず、いきなりtry-catchのエラーメッセージが出ます。

 Error #2039: リモート URL プロトコルが無効です。リモート URL プロトコルは
 HTTP または HTTPS でなければなりません。

本のコードを全文記載すると問題があるので、関係あると思える部分をJPGでUpします。
 http://uproda11.2ch-library.com/src/11131870.jpg
このurl_txt.textをhttp://www.yahoo.co.jp/ としました。

オリジナルのASのままですが、どこに問題があるのでしょうか?
76Now_loading...774KB:2008/11/04(火) 00:53:01 ID:bWq07CUf
>>75
downloadメソッドの第二引数のdefaultFileNameになんか入れてみたら?

ttp://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/net/FileReference.html#download()
7775:2008/11/04(火) 01:16:27 ID:3YbeyEa4
>>76
レス有難うございます。

var test:String; としてdefaultFileNameを使って file.download (new URLRequest(url_txt.text), test); 
としましたが、まだ同じエラーが出ます。
少なくとも、ダイアログは出て欲しいのですが、これも出ません。
7875:2008/11/04(火) 01:24:14 ID:3YbeyEa4
(連投スイマセン)

原因が分かりました。URLの最後の / が原因でした。
これを消して使うとOKでした。
79Now_loading...774KB:2008/11/04(火) 08:56:12 ID:LmJYNeTd
改行消したいんだけど
str.replace(/\n/g,"");でできねー!!
助けて!!
80Now_loading...774KB:2008/11/04(火) 11:02:18 ID:0uzAseol
AS3なら対象のテキストの改行コードが\r\nか
AS2ならそもそもreplaceも正規表現もないってとこじゃないか?
81Now_loading...774KB:2008/11/04(火) 11:30:48 ID:Ae3GvRiq
ごめん…。マジバカだった。
str = str.replace(/\n/g,"");でいけた…
82Now_loading...774KB:2008/11/04(火) 13:51:11 ID:ezaAo5ny
AS2のイベントハンドラで、
「FLASHが再生されたら」
「指定の値が入ったら」
と言うようなイベントハンドラはあるのでしょうか?
83MAC:2008/11/04(火) 14:44:55 ID:lJYN/61g
雨粒のMCをランダムに配置するとこまで出来たのですが、
同じMCを繰り返し次々とランダムの位置に配置させるには
アクションスクリプトはどうすればいいのでしょうか??
(Actionscript3.0です)
数時間ネットで調べてましたが分かりませんでした汗汗
84Now_loading...774KB:2008/11/04(火) 16:35:04 ID:oPneiRx4
>>82
AsBroadcaster使うとか。
85Now_loading...774KB:2008/11/04(火) 17:23:27 ID:ezaAo5ny
>>82
AsBroadcasterは難しそうです……
FLASHを再生したときに他の動作が起きる前に
一番最初に外部ファイルをロードしてそれから動作、と言う風にしたいのですが…
86Now_loading...774KB:2008/11/04(火) 18:18:29 ID:wKUg0PL1
>>85
じゃ、そういうふうに設計すればいいのでは?
最初のフレームでstop()させといて、外部ファイルロード完了でplay()とか、
他のアクション開始とかそんな感じではいかんのか?
87Now_loading...774KB:2008/11/04(火) 22:29:36 ID:Eb4SA2Y0
環境)OS:WinXP-Pro,Mem=3GB,ソフト:FlashCS3-Pro(Player9.0,AS3.0)

asファイル中の System.useCodepage の使い方で質問です。

外部Txtファイル(data01.txt)を読み込みテキストフィールドに表示したいのですが、日本語が文字化け
するため、AS2.0以前のように System.useCodepage = true; としたいのですが(置き場所を含めた)
使い方が分かりません。
package{ }内の記述は以下の通りです。

import flash.net.*; // 使用するクラスのインポート(抜粋)
...
import flash.system.*;

// クラスの定義
public class Loading1 extends MovieClip {
var fileLoader:URLLoader=new URLLoader;

// コンストラクタ
public function Loading1 () {
System.useCodepage = true; //ここにこのように置いたらエラーになりました
....
}
}

どうすべきでしょうか?
アドバイス願います。
8887:2008/11/05(水) 00:34:50 ID:9i95TmVY
(自己解決)
試しにWeb上の記述を使ったところ上手くいきました。

原因は、AS2.0以前では useCodepage なのですが、3.0ではpが大文字になり、正しい綴り(?)
useCodePage でなかったことです。

89Now_loading...774KB:2008/11/05(水) 09:35:15 ID:u4IzkyTo
>>86
すみません、概念は解ったのですが、具体的にはどのようにすればいいのでしょうか?
一番上のレイヤーの一番上の行にstop();と置いてみたのですが、FLASHは止まってくれません;
90Now_loading...774KB:2008/11/05(水) 12:37:50 ID:HcywkCdz
雨粒のMCをランダムに配置するとこまで出来たのですが、
同じMCを繰り返し次々とランダムの位置に配置させるには
アクションスクリプトはどうすればいいのでしょうか??
(Actionscript3.0です)
数時間ネットで調べてましたが分かりませんでした汗汗
91Now_loading...774KB:2008/11/05(水) 12:46:07 ID:xxlhDMW8
>>89
ということは、どこかでplay()を実行しているのでは?
>>82がどういう構成のFlashを作っているかわからないので
これ以上具体的にはいえんです。
つか、Flashの基本知識があるのかないのかよくわからんな。
92Now_loading...774KB:2008/11/05(水) 13:44:57 ID:fj3/rDCL
new RegExp("abc"+hoge+"def");
ってやると正規表現に変数を含められるけど
/ 〜 / を使う場合はどうすればいい?

/"abc"+hoge+"def"/は、当然無理だった
93Now_loading...774KB:2008/11/05(水) 14:18:58 ID:Qz+G8T0H
AS2のFLVPlaybackコンポーネントで
skinAutoHideをtrueにするとマウスロールアウトでスキンが消えますが、
このスキンをフェードで消すことはできますか?
スキンまでのターゲットパスが分かればtweenerなどでできそうなのですが…
94Now_loading...774KB:2008/11/05(水) 14:26:47 ID:u4IzkyTo
>>91
どこもplay()はして無かったです。
あ、もしかしてFLVplaybackコンポーネントを使っていたら止まらなかったりしますか・・・?
95Now_loading...774KB:2008/11/05(水) 15:11:38 ID:xxlhDMW8
>>94
そんなことはない。

とめたいのはFlvの再生なのか?
swfのメインタイムラインの再生なのか?
配置されたMCの再生なのか?
問題点が絞り込めてないなら、情報小出しにすんな。
やりたいこととFlashの構成をもっと詳細に書いたほうがいい。
96Now_loading...774KB:2008/11/05(水) 15:27:25 ID:lV32ISfq
AS3.0で所定の場所にあるDES方式で暗号化された画像を復号化して表示させるFlashを作成しています。
第一段階として暗号化されていない画像を表示させるのは成功しました。
しかし、キーとなる復号化の方法がわかりません。
下記のサイトを参考に"As3Crypto"を使用したやり方で試みていました。
ttp://labs.unoh.net/2007/08/phpflash.html

まだ初心者なので使用方法等が良く分かっておりませんので、
サンプル等を記載して頂けると大変助かります。
よろしくお願いします。
97Now_loading...774KB:2008/11/05(水) 17:28:22 ID:bFvht6rH
流れをぶった切って質問します。すみません。


このサイトや
http://tngrm.com/

このサイトのように
http://aquagirl.ne.jp/aquagirl/

リサイズでmcの大きさは変化するけども、一定まで行くと、変わらなくなる、つまり、最大値と最小値が設定されている場合、どのように書けばいいでしょうか。



AS2でお願いします。
98Now_loading...774KB:2008/11/06(木) 00:52:55 ID:OT0ExwGd
ブラウザからGETで変数を受け取っているんですが
その変数を扱う必要のある部分を子パッケージに
書いてしまいました。

変数を下のパッケージで受け取る方法はないでしょうか?
99Now_loading...774KB:2008/11/06(木) 01:04:12 ID:KHdPaZ0t
>>92
var hoge = 'hoge';
var TEST = new RegExp("abc"+hoge+"def");

trace(TEST);
してみるとちゃんと//入ってるけど?
100Now_loading...774KB:2008/11/06(木) 01:11:16 ID:KHdPaZ0t
>>90
function addMC():void{
clearInterval(timerID);

var MC = new ame();
MC.x = Math.random()*100;
MC.y = Math.random()*100;
addChild(MC);

duration = 1000;
timerID = setInterval(addMC, duration);
}

var duration = 1000;
var timerID = setInterval(addMC, duration);
101Now_loading...774KB:2008/11/06(木) 08:53:43 ID:0y3hkywU
>>100
恩に着ます。ためしてみます!
102Now_loading...774KB:2008/11/06(木) 09:46:14 ID:0y3hkywU
function addMC():void{
clearInterval(timerID);

var MC = new ame();
MC.x = Math.random()*100;
MC.y = Math.random()*100;
addChild(MC);

duration = 1000;
timerID = setInterval(addMC, duration);
}

var duration = 1000;
var timerID = setInterval(addMC, duration);

この場合"ame"はMovieClipのなまえですか?それとも・・・?

”未定義である可能性が高いメソッドameの呼び出しです。”
というエラーが表示されるのですが・・・
103Now_loading...774KB:2008/11/06(木) 10:25:55 ID:pXCFxg4K
>>102
おまいが「雨粒MC」って書いてるからだろw
104Now_loading...774KB:2008/11/06(木) 10:42:26 ID:0y3hkywU
インスタンス名やMCを色々ameと名づけてみましたがエラーが消えないんです汗
105Now_loading...774KB:2008/11/06(木) 11:15:42 ID:n4EEoyl4
>>102は自作のameクラスを使ってると思うから
ameクラスがないとそのままコピーしても動かないんじゃない?
繰り返し処理する部分を見つけてそこを利用すればいいと思う。
自分で書いたソースを貼ってないんだから、
誰かが書いた物がそのまま利用できる分けないじゃない。
106Now_loading...774KB:2008/11/06(木) 11:17:01 ID:4bK/B7tE
>>104
やる事としては逆だな。
ameのところを自分が使ってるに都合のいいように変えるんだ。

> 同じMCを繰り返し次々とランダム
とあるから、
var MC = new ame();

var MC = MC名;
にして
addChild( MC )を無くしたら動くんじゃないか?
107106:2008/11/06(木) 11:18:16 ID:4bK/B7tE
あーすまん。
× ameのところを自分が使ってるに都合のいいように変えるんだ。
○ ameのところを自分に都合のいいように変えるんだ。
108Now_loading...774KB:2008/11/06(木) 11:41:32 ID:0y3hkywU
インスタンス名を”MC”にして

var MC = new ame();
を削除したところ

エラーは消えました。

> 同じMCを繰り返し次々とランダム
に関してなんですけど今のままでは
ランダムの位置に現れては消えの繰り返しなんです。
つまり常に画面には一つしかMCが現れません。

これをできれば、現れたものは消えないように、
つまり、現れるたびに数が増えるようにしたいのですが、

どうでしょうか?? 非常に今惜しいところまで来ています。
どうぞ力を貸してください!
109106:2008/11/06(木) 12:44:24 ID:4bK/B7tE
>>108
> 現れるたびに数が増えるようにしたいのですが、
それなら>>102が正解。
ameってところには「雨粒のMC」のクラス名を入れなさい。

環境が明記されてないが、Flashなら
http://www.ep-melody.com/cgi-bin/blog/2006/12/as30mc.html
を読んで頑張れ。
110Now_loading...774KB:2008/11/06(木) 13:22:15 ID:0y3hkywU
あ、本当だっ!
出来ました!ほんとに助かりました!
ありがとうゴザイマス
111Now_loading...774KB:2008/11/06(木) 17:32:48 ID:Y7Z94vPg
>>92
ごめん、説明が不足しすぎてた
そういう意味じゃなくて
AS3で//を使うとRegExpインスタンスが返るじゃないか。
それを使って変数の内容を含めたいっていうこと

ようするに
new RegExp("abc"+hoge+"def"); と同じことを
//演算子を使ってやるにはどうすればいいの?っていう質問がしたかった。

ゴメソ
112Now_loading...774KB:2008/11/06(木) 17:41:08 ID:NrfmQwnS
52:getlocal1
stack: flash.display::DisplayObjectContainer?
scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::
InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ flash.display::MovieClip$ _fla::MainTimeline$] _fla::MainTimeline
locals: _fla::MainTimeline? flash.display::DisplayObjectContainer? int int int flash.display::DisplayObject? flash.display::DisplayObject?
53:getlocal 4
stack: flash.display::DisplayObjectContainer? int
scope: [global Object$ flash.events::EventDispatcher$ flash.display::
DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ flash.display::MovieClip$ _fla::MainTimeline$] _fla::MainTimeline
locals: _fla::MainTimeline? flash.display::DisplayObjectContainer? int int int flash.display::DisplayObject? flash.display::DisplayObject?
55:dup
stack: flash.display::DisplayObjectContainer? int int
scope: [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::
DisplayObjectContainer$ flash.display::Sprite$ flash.display::MovieClip$ _fla::MainTimeline$] _fla::MainTimeline
locals: _fla::MainTimeline? flash.display::DisplayObjectContainer? int int int flash.display::DisplayObject? flash.display::DisplayObject?

こんな感じのエラーが何十個も出て、スタックオーバーフローが出たんですが、一体原因は何でしょうか?
エラーからわかりますか?
113Now_loading...774KB:2008/11/06(木) 22:16:29 ID:NzUFGjKf
>>111
//は演算子じゃないからムリでしょ。
114Now_loading...774KB:2008/11/07(金) 10:36:10 ID:uoDxZZA1
結構初歩的な質問だけど、
this.moveTo(100,100);
は描画位置を(100,100)において、
this.lineTo(200,100);
は(200,100)まで線を引く、んで、次の描画位置を(200,100)に置く、で良かったっけ?

後、lineToの中に数字じゃないデータが入ってたら勝手に0になっちゃうんだけど、これって仕様?変えられないの?
115Now_loading...774KB:2008/11/07(金) 11:32:58 ID:MnRNLTuA
>>114
数字じゃないときはlineToを行わないようにしてみたら。
116Now_loading...774KB:2008/11/07(金) 21:39:20 ID:13c24UO2
学び始めてもいない初心者です
これが出来るか出来ないかで、Nscripterにするか吉里吉里にするか決めようと思っています。

文章を表示するとき、
ファミコンのドラクエや探偵物や逆転裁判などみたく、
一文字ごとに音を出す表現って出来ますか?
文章が表示されるとき「ポポポポポポ・・・・」みたいな音が鳴るアレです
117Now_loading...774KB:2008/11/07(金) 21:40:27 ID:13c24UO2
ごめんなさい
エロゲ製作のNscripter質問スレと間違えました
118Now_loading...774KB:2008/11/08(土) 01:43:34 ID:gBauachr
stageにNnというムービークリップが配置してあります。

stageには
this._jk = 4423;

Nnのなかには
trace(parent._jk);

と書いています。
これだとプレビューしたらエラーになるんですが、どこがおかしいんでしょうか?
119Now_loading...774KB:2008/11/08(土) 08:13:47 ID:BmyVXaIW
>>118
AS2とか3とかの環境を書く
エラーが出たならそのエラーをコピペする

これだけでレス率が大幅にうpする
120Now_loading...774KB:2008/11/08(土) 14:33:42 ID:5DQWY+wB
環境)OS:WinXP-Pro,Mem=3GB,ソフト:FlashCS3-Pro(Player9.0,AS3.0)

for文によるインスタンス名指定で質問です。

ステージ上に置いた画像MC(isM0〜isM5)がそれぞれ常に同じYの位置にあるように
以下の記述をasファイルに書きました。
public function SlideFig_01 () { // コンストラクタ
this.addEventListener (Event.ENTER_FRAME,onFrame);
}
public function onFrame (frameEvt:Event) { // 動作
for (var id=0; id<6; id++) {
this["isM"+id].y=this["isM"+id].y;
}
}

これだと下の警告が出ます。
ReferenceError: Error #1056: SlideFig_01 のプロパティ isM0 を作成できません。
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at SlideFig_01()

ググってみると、「名前空間internalにインスタンス名の矛盾が生じている」が原因らしいので
試しにコンストラクタ内に public var isM0:MovieClip; をいれてみたところ今度は、
 1114: public 属性はパッケージ内でのみ使用できます。

という警告が出ます。どうすべきでしょうか?
121Now_loading...774KB:2008/11/08(土) 15:22:29 ID:nv19JMdv
>>120
>>72参照
122120:2008/11/08(土) 16:12:09 ID:GlmcCk0s
>>121
レス有難うございます。for文を
for (var id=0; id<6; id++) {
var mc:MovieClip = new MovieClip();
mc.name = "isM"+id;
Stage.getChildByName ("isM"+id).y=Stage.getChildByName ("isM"+id).y;
}

と変えましたが、相変わらず「プロパティ isM0 を作成できません」が出ます。
問題点はどこでしょうか?
123Now_loading...774KB:2008/11/08(土) 16:41:08 ID:BmyVXaIW
getChildByNameは表示リストに登録されているインスタンスに対して
行う処理だから、addChildしてないとだめでしょ
124Now_loading...774KB:2008/11/08(土) 17:53:26 ID:RKMThLUJ
>>115
レスありがとう。

再度質問と言うか、確認になるんだけど、moveToは描画位置を決定だよね?
何故かどうやっても(0,0)に飛んじゃうんだよね……
以下がソース
var lo = 0;
view_mc2.moveTo(z[0][0],z[1][0]);
for (var i = 0; i<=z[0].length; i++) {
if(byogaA[0][lo] == "p"){
view_mc2.moveTo(z[0][lo+1], z[1][lo+1]);
lo=lo+1;
}else{
view_mc2.lineTo(z[0][lo], z[1][lo]);
lo=lo+1;
}



z[0]には[100,200,p,300,400]
z[1]には[1,2,p,3,4]
って入ってる。
最初は(100,1)から始まらないといけないのに、何がおきたのか画面の左端から(100,1)に
線が引かれてる。マジで意味解らんっす。
誰か詳しい人居たら教えて……
125Now_loading...774KB:2008/11/08(土) 18:31:58 ID:/MkrsI6P
>>124
やりたいことは、こういうこと?

point = new Object();
point.x = [100, 200, "p", 200, 100, 100];
point.y = [100, 100, "p", 200, 200, 100];
//
mc = this.createEmptyMovieClip("view_mc2", this.getNextHighestDepth());
mc.beginFill(0xCCCCCC, 100);
mc.lineStyle(1, 0x000000, 100);
mc.moveTo(point.x[0], point.y[0]);
for (var i = 0; i<point.x.length; i++) {
if (typeof (point.x[i]) == "number") {
mc.lineTo(point.x[i], point.y[i]);
}
}
mc.endFill();
126Now_loading...774KB:2008/11/08(土) 18:32:02 ID:gBauachr
>>119
すいません、Actionscript3.0です。
エラーは「1119: 未定義である可能性が高いプロパティ _jkに静的型flash.Display:DisplayObjectContainer の参照を使用してアクセスしています。」
です。
127Now_loading...774KB:2008/11/08(土) 18:39:41 ID:p1KJM8cl
>>126
×trace(parent._jk);
○trace(MovieClip(parent)._jk);
128Now_loading...774KB:2008/11/08(土) 18:41:46 ID:/MkrsI6P
>>126
AS3はよくわからんのだけど
_jk ってなに?

ただの変数なら、
var _jk:Number;
とかで宣言してる?
129Now_loading...774KB:2008/11/08(土) 19:15:39 ID:gBauachr
>>127
MovieClip()がいるんですか!
2.0まではそんなのいらなかったのに……
よければ理由を教えて頂けませんか?

>>128
ただの例なので変数名に理由はないです
あと、this._jk としているのでvarや型指定は必要ないです。
130Now_loading...774KB:2008/11/08(土) 19:37:31 ID:p1KJM8cl
>>129
こことか参考になるかしら?
http://www.fumiononaka.com/TechNotes/Flash/FN0707001.html
131120&122:2008/11/08(土) 20:02:10 ID:xc8O8xt9
>>123
すいません。どうしても出来ません。コンストラクタ内に
for (var id=0; id<figsNum; id++) {
var mc:MovieClip = new MovieClip();
mc.name = "isM"+id;
this.addChildAt (mc, id);
}
を書いたのですが、これでも(2つのfor文を書いても)同じ警告が出ます。

なお、これら2つのfor文部分を削除しても同じ警告が出ます。
もっと根本的なところに原因があるのでしょうか?
132Now_loading...774KB:2008/11/08(土) 20:47:28 ID:p1KJM8cl
>>131
そもそも何か間違ってない?

>ステージ上に置いた画像MC(isM0〜isM5)がそれぞれ常に同じYの位置にあるように
ってのを
>Stage.getChildByName ("isM"+id).y=Stage.getChildByName ("isM"+id).y;
って書いてるけど、これじゃ意図したようにyの値が変わらないと思うんだけど?

var newY = 100;
for (var id=0; id<6; id++) {
var mc:MovieClip = new MovieClip();
mc.name = "isM"+id;
stage.addChild(mc);
stage.getChildByName("isM"+id).y = newY;
}
133120&122&131:2008/11/08(土) 21:03:02 ID:xc8O8xt9
>>132 これじゃ意図したようにyの値が変わらない

6個のMCは常に個々に平行移動するので、Y値は一定です。
なお、提示頂いた記述を試しにコンストラクタに貼っても、同じ警告が出ます。
134Now_loading...774KB:2008/11/09(日) 02:57:16 ID:U0dWPLgJ
>>133
やりたいことがよくわかんないんだけど、こういうことだろうか?
http://2sen.dip.jp/cgi-bin/upgun/up4/source/up0507.zip
外してたらごめんね。
135134:2008/11/09(日) 03:41:19 ID:U0dWPLgJ
あぁ、Y値が一定か。Xが一定で組んでしもたw
136120&122&131:2008/11/09(日) 11:38:33 ID:S3K8olCt
>>134
有難うございます。動く座標軸は違いますが、これが大よその求める形です。
最終的には、端の1個をドラッグすると、他が追従して動くようにしたく思います。
137Now_loading...774KB:2008/11/09(日) 16:11:26 ID:R2eYfIqr
Flash CS3でAS3で書いてるのですが、
gotoAndStopで飛んだ先のフレームで、
ステージに配置してあるムービークリップにスクリプトで初期設定をしようとすると、
インスタンス名に対応する変数がnullになっていることがたまにあります。
そういうときは、getChildByNameでも取得できませんでした。

フレームに書いたアクションの開始時にはインスタンスの生成は完了してなくて、
ENTER_FRAMEイベントか何かまで待つべきということなのでしょうか?

それともそんなはずはなくて、別の問題を疑うべきですか?

nullになってる変数・インスタンスの名前を変えたら直ってしまったので、
今すぐに試すことはできないんですが。
(過去には名前を変えても直らなかったときもありました)

問題が起き始めたときは、そのインスタンスをいじってた訳じゃないのが
気持ちの悪いところです……
138Now_loading...774KB:2008/11/09(日) 17:44:22 ID:aEJGJoIV
actionscriptで「\」を使おうとするとソースが駄目になるんだけど、どうにかならない?

var f: Array = file.split("\");
ってしたいんだけど……因みにfileの中身はアドレスになってるんで、fileを変えるのはムリッぽい。
誰か教えてください。
139Now_loading...774KB:2008/11/09(日) 18:01:09 ID:9cpoYMQ1
>>138

「\」を普通の文字として扱うときは「\\」と2つ重ねる。

http://livedocs.adobe.com/flex/3_jp/html/09_Working_with_Strings_03.html
140Now_loading...774KB:2008/11/09(日) 18:24:22 ID:UYKyBWLm
AS3.0です
var pr:Array = [{num:56, id:"mochi1"}, {num:34, id:"kaki"}, {num:34, id:"gumi"}];

この場合、sortOnを使ってnumの小さい順に並び変えることはできたんですが
"kaki"と"gumi"の並び方がランダムになってしまいます。
numの小さい順に、かつnumが同じならばidのアルファベット順に並べるにはどうすればいいでしょうか?
141Now_loading...774KB:2008/11/09(日) 18:59:56 ID:5Fx5ZyzZ
>>140
比較関数作ればいんじゃね
142Now_loading...774KB:2008/11/09(日) 19:16:00 ID:aEJGJoIV
>>139
ども、ありがとうございました〜
143Now_loading...774KB:2008/11/09(日) 19:24:38 ID:UYKyBWLm
>>141
比較関数……ですか?
初心者なもんで、どういう風にすれば>>140のような動作になるのかわかりません。
教えてくれませんか?
144Now_loading...774KB:2008/11/09(日) 20:33:15 ID:Uc55NB0D
OSはWinXP-Proで、開発ソフトはFlash-CS3-ProのAS3.0です。

ライブラリMCからリンケージ指定されたasファイルから、親(stage?,root?)のドキュメントクラスの
変数へアクセスするにはどうすれば良いのでしょうか? 

AS2.0以前なら、例えばrootの変数 cons0=100; の場合、パス設定で _root.cons0 や、あるいは
this._parent.cons0 とすれば良かったのですが、AS3.0での記述は調べても全く分かりません。

試しに、var myParent:MovieClip = parent as MovieClip; や ドキュメントクラスを oyaClass
などとして、ライブラリMCのasファイルで
trace ("cons0= "+myParent.cons0);
trace ("cons0= "+stage.cons0);
trace ("cons0= "+MovieClip(root).cons0);
trace ("cons0= "+oyaClass .cons0);

としましたが、どれも駄目でした。アドバイスを願います。
145Now_loading...774KB:2008/11/09(日) 22:27:07 ID:0L069JSh
146Now_loading...774KB:2008/11/10(月) 00:27:20 ID:C+2S6tX+
>>144
自分自身でどこに変数を置いたのか把握しないと場当たり的な対処から抜け出せないような…
例えばthis.xxx=100;
とかならtrace(this);でthisが一体何を指してるのか確かめてみるとか
147Now_loading...774KB:2008/11/10(月) 14:51:07 ID:dFxlo3ew
AS2で質問です。
PHPにデータを送る時に、PHP側の処理で
$data = $_POST['paramname'];
ってしてるんですけど、flashで'paramname'を指定する時の方法ってどうするんですか?
send_vars.sendAndLoad('URL',"paramname="+send_vars, 'POST');
でして見たけど駄目でした。だれか助言ください。
148Now_loading...774KB:2008/11/10(月) 15:55:19 ID:+czIngnA
>>147
send_vars.paramname = "aaa";
send_vars.sendAndLoad('URL',send_vars, 'POST');

ヘルプ見れば例が書いてあるでしょ。
149Now_loading...774KB:2008/11/10(月) 16:25:02 ID:yXhC1P9w
JW FLV Media Player 4.2
http://code.jeroenwijering.com/trac/browser/tags/mediaplayer-4.2 ←ソース

これを使ってRSSでプレイリストを作ってFLVを読み込んでるんですが
読み込むURLをFLVではなくニコニコ動画などのように「file=〜」
のようなテキストファイルを読み込んで
そこからFLVを読み込みたいと思っております

具体的にはvideo.phpというの作って「video.php?no=○○」
これの中身が「video=http%3A%2F%2Fexample.com%2Ftest.flv」
というURLEncodeされた形で出るようにしました。

このvideo.phpをRSSの再生ファイルとして読み込むとloadVariablesで
「video=http%3A%2F%2Fexample.com%2Ftest.flv」を取り出し
http://example.com/test.flvを再生出来るようにしたいのです

com\jeroenwijering\models\VideoModel.asの73行目で動画を読み込んでいるのは分かったのですが
loadVariablesを組み込む箇所が分からずエラー多発です。

半年ほど前にもここで挫折して一度とん挫しました
どなたかお助け下さい
150Now_loading...774KB:2008/11/10(月) 18:27:18 ID:dFxlo3ew
>>147
出来ないです……この例ではパラメータ名がaaaになるのですよね?
paramnameなんてのは無いので、調べたら
send_vars.params = "aaa";
となりましたが、結局出来ません……

あんまり自信が無いんで確認ですけど、
$data = $_POST['paramname'];
のソースでは、パラメータ名がparamnameになりますよね?
151Now_loading...774KB:2008/11/10(月) 18:37:50 ID:uCQwlBur
>>150
はあ?お前なんか勘違いしてないか?
send_vars.paramname = "aaa";
このparamnameは変数だよ変数!プロパティじゃないの!
send_vars.params = "aaa";って書いたら
PHPも$data = $_POST["params"];で受け取らなきゃだめだろうが一回死ね!
152Now_loading...774KB:2008/11/10(月) 19:08:57 ID:dFxlo3ew
>>151
一回死んできました。

どうもありがとうございました。お陰さまで助かりました!
153Now_loading...774KB:2008/11/10(月) 19:30:15 ID:uCQwlBur
>>152
そりゃあよかった
頑張れよ!
154Now_loading...774KB:2008/11/10(月) 23:13:12 ID:4vhewy0Y
>>146
144です。レス有難うございます。

ドキュメントクラス(oyaClass), ライブラリMCのasファイル,メインタイムラインのフレーム1
およびMCのタイムライン1 各々に trace(this); を置きました。
それぞれ、出力として得られたのですが、Flash8のようなパスは表示されず、それぞれが持つ
クラス名が表示されるだけでした。  例: this: [object oyaClass ]

の表示を利用した変数アクセスする方法がまだ分かりません。
何かヒントを願います。
155Now_loading...774KB:2008/11/10(月) 23:34:28 ID:jftSZdtP
>>151-153
156Now_loading...774KB:2008/11/10(月) 23:36:11 ID:4vhewy0Y
(日本語が変でした)

[正] この表示を利用して変数にアクセスする方法がまだ分かりません。
157Now_loading...774KB:2008/11/11(火) 00:32:37 ID:VF7fnAdk
Flashでメールフォームを作っているのですが、
送信すると本文などのほかに「〜が入力されていません」などのメッセージを表示するテキストボックスの内容も一緒に送信されてしまいます。

名前と本文だけ送信したい、というように送信する変数などを指定する方法を知っていましたらご教授お願いいたしますm(__)m
158Now_loading...774KB:2008/11/11(火) 00:44:39 ID:JGbl2XeM
>>157
LoadVars
159Now_loading...774KB:2008/11/11(火) 02:32:03 ID:t+E0pb6/
>>154
メインタイムラインにstrという文字変数があるとすると
trace(MovieClip(this.parent).str);
とかじゃね

いずれにしろAS2と3は全く違う言語と思って1から勉強した方が良いよ
160Now_loading...774KB:2008/11/11(火) 16:35:53 ID:nFHZxBxU
すごく初心者な質問で恐縮です。。
下記のAS(2.0で作成 Flash8Pro使用)なのですが、ifを使って、
マウスオンした時のみスクロールが止まるようにしたいのです。

_root.jpg_mc._x = 0;
_root.jpg_mc.onEnterFrame = function(){
this._x += 1;
}

初心者なもので、どなたか教えて頂けないでしょうか。
161Now_loading...774KB:2008/11/11(火) 18:58:28 ID:t+E0pb6/
>>160
onRollOverとonRollOutでflgのオンオフして
onEnterFrameではそのflgで移動するかどうか決める
162Now_loading...774KB:2008/11/11(火) 22:50:43 ID:5Blnx+Q6
>>159
144&154です。
有難うございます! MovieClip(this.parent).xxx で参照できました。
163Now_loading...774KB:2008/11/11(火) 23:17:20 ID:3Zc918oa
フラッシュと言うよりはプログラムの構造になるのだろうか
勉強のためドラクエの戦闘システムもどきを作ってるのですが
コマンドを選んだ後の戦闘開始の処理方法で知恵熱が出そうです

処理的には(AS2.0)
@キャラクター毎のやる事を格納した配列?(test=[]こんなの)を呼び出し
ちなみに中身は(誰が、何を、誰に)てなってます
Aキャラとモンスターの「すばやさ」を基準に降順ソート
Bソート結果を順番に処理。例えば攻撃だったらば
1、配列をコマンド用functionに代入2、エフェクト発生、3、ダメージ計算4、生存判定5、次の人へ
(@の配列をforで【現在生存している味方+敵】の分だけ処理)
C全員終わったら終了。次のターンのコマンドを選択

もう四六時中プログラムの事を考えてますが一向に終わる気配がありません
長くなりましたが処理的にはこれで戦闘ができると思いますか?
もし良かったら一般的な戦闘プログラムの参考になる物も教えていただけると本当に助かるのですが・・
164Now_loading...774KB:2008/11/12(水) 00:04:03 ID:HjLS9mNQ
>>163
>(@の配列をforで【現在生存している味方+敵】の分だけ処理)

これがどうかな。
forループは、ループを抜けない限り描画更新されない。
したがってエフェクト発生が同時におこってしまうと思う。
forループが有効なのは、いっせいに同じ処理を複数のターゲットに対して行う場合。

戦闘中は、setIntervalかonEnterFrameで状況を確認するのがいいと思う。
165Now_loading...774KB:2008/11/12(水) 00:09:14 ID:L3+9yLCp
>>163
一度に多くのことを達成しようとすること自体が問題じゃね?
動作を圧縮(例:モンスターを1匹,ダメージ計算なし)して始めるべし。

AS2.0なら、20行程度で済むハズ。
166Now_loading...774KB:2008/11/12(水) 01:13:28 ID:C8nMVX9P
>>163
全体の動きを管理する関数を一つ作ればいいんじゃない?
キャラの攻撃、敵のダメージなど各々の動きの後に必ずその関数を呼んで、
そこで次の動きを決めてあげる。
167Now_loading...774KB:2008/11/12(水) 15:26:04 ID:eAk15iPq
空のムービークリップを作って、線を引きたいんだけど、
createEmptyMovieClip("mc2", 0);
mc2.moveTo(A[0][0],A[1][0]);
mc2.lineTo(A[0][1],A[1][1]);
ってすると最初に左隅から描画が始まる。createEmptyMoviClipの初期設定で
左上隅が基準点になっているのはわかったけど、この基準点を(A[0][0],A[1][0])
に変えることって出来ないの?
あ、使ってるのはAS2です。
168Now_loading...774KB:2008/11/12(水) 15:52:23 ID:5TVTurrP
足し算すりゃいいだろw
169Now_loading...774KB:2008/11/12(水) 16:04:34 ID:eAk15iPq
>>168
初心者なもんでよくわかりません。具体的にどういうことですか?
mc2.moveTo(0+A[0][0],0+A[1][0]); ってこと?違うか;
170Now_loading...774KB:2008/11/12(水) 16:05:52 ID:oyy8GYaJ
>>167
とりあえずMCの基準点をスクリプトで変えるのは無理。
それを考慮してmoveToで開始位置決めて書くだけ。
171Now_loading...774KB:2008/11/12(水) 16:11:46 ID:eAk15iPq
ってことは書き方字体は↓であってるんだよね?
Aには数値が入ってるからその数値が座標になる……はず;
createEmptyMovieClip("mc2", 0);
mc2.moveTo(A[0][0],A[1][0]);
mc2.lineTo(A[0][1],A[1][1]);

わからん、何がいかんのやろ……
172Now_loading...774KB:2008/11/12(水) 17:29:07 ID:oyy8GYaJ
>>171
moveToの前に、
mc2.lineStyle(1,0x000000,100);
とかlineStyleいれてみ。

解った気になってなんでも省略しようとしないで、
正確にやったほうがいい。
173Now_loading...774KB:2008/11/12(水) 18:03:05 ID:rX6jQfxc
質問です。

Tabキーを押すとコントロールのフォーカスが移動されてしまうんですが,なにかこれを防ぐすべがありますでしょうか?
ご教示願います。 よろしくお願いします。
174163:2008/11/12(水) 21:00:00 ID:wS5rYh4I
>>164-166
もう本当にありがとうございます・・
回答の意味すらいまいち理解できないので基礎固めをしよう思います('A`;
forの件だけでも十分勉強になりました。
20行とありましたがさっき合計したら1000行は行ってますし・・

最後にプログラムの間に何秒か時間をかませられないのでしょうか。
enterFrameとfpsを利用して無理やりカウントさせてましたがなんか非効率な気がしまう
175Now_loading...774KB:2008/11/12(水) 22:31:52 ID:sxT4d7sn
>>174
setInterval
176Now_loading...774KB:2008/11/13(木) 04:53:12 ID:pA8sYmaG
hoge
177Now_loading...774KB:2008/11/13(木) 15:06:38 ID:pA8sYmaG
xmlから読み込んだ値をBoolean値にするには?
178Now_loading...774KB:2008/11/13(木) 15:29:21 ID:BswdOy+L
>>177
xmlの読み込みが解らないのか、Boolにするのが解らないのか?
また、どういうデータをBoolにしたいのか書け
179Now_loading...774KB:2008/11/13(木) 16:50:00 ID:iGud8y2Q
IOErrorEvent の使い方なんですがアドバイスをいただけるとうれしいです。
作っているものは、連番の画像を EnterFrame で切り替えて、
gifアニメの要領で再生したり逆再生したりとかやろうとしているのですが、
ファイルが無いときのエラー処理がうまく行きません。

いろいろ調べて見てきたサンプルを参考に(ほぼまるパクリ)で書いて、
LoaderオブジェクトにIOErrorEvent.IO_ERRORをリスナーさせているのですが
エラーの表示が出てしまいますし、処理も行われません。

このクラスのインスタンスを作って、play()で再生したりするのですがどこが問題でしょう?

public class StopMotion extends Sprite
{
// 画像パス関係
public var workDir:String = "img/";
public var workPath:String = "";
public var workNumber:int = 0;
public var workURI:URLRequest;

// Loader 関係
public var workLoader:Loader = new Loader();

public function StopMotion()
{
addChild(workLoader);
// インスタンス生成時に登録
workLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}

180Now_loading...774KB:2008/11/13(木) 16:50:45 ID:iGud8y2Q
public function ioErrorHandler(e:IOErrorEvent):void
{
// コマ送りを停止させるメソッド
stop();
}

public function play():void
{
addEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
}

public function onEnterFrameHandler(e:Event):void
{
// パスをセットして
workPath = workDir + String(workNumber) + "/" + String(workNumber) + "_" + String(currentFrame) + ".jpg";
workURI = new URLRequest(workPath);
// 読み込み
workLoader.load(workURI);
}
181Now_loading...774KB:2008/11/13(木) 22:03:11 ID:Qf8BrJaI
>>179
hogeLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorFunc);
じゃない?
182Now_loading...774KB:2008/11/13(木) 23:00:55 ID:GeB434YC
>>177
やっぱヘルパ関数を自作するしかないんでない?
public static function toBoolean(value:String):Boolean {
  return (value.toLowerCase() == "true");
}

var b:Boolean = Utils.toBoolean(myXML.@foo);

自分はこんな感じで使ってるよ。
"true"以外だったらfalseになるけど、そういう仕様と思えば困んないし。
183Now_loading...774KB:2008/11/13(木) 23:23:11 ID:iGud8y2Q
>181
ありがとうございます。
contentLoaderInfoのリスナー登録だったのですね。
見てたサイトが間違っていたのか、見逃していたのか…。
簡単なことですみませんでした。
184Now_loading...774KB:2008/11/13(木) 23:50:39 ID:TQCT9kcf
as3のエラーで、iinit()ってのがたまに出てくるのですが、
このinitではなく、iinit()ってなんで、iがiiと続くのでしょうか、、、?

TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at TypeClass$iinit()
185Now_loading...774KB:2008/11/14(金) 16:46:18 ID:zm2EXH3E
キューポイントを配列から生成したいんだけど、いまいち上手くいかない。
for (var a = 0; a<lotmarray.length; a++) {
var ti:Number = Number(lotmarray[a]);
var ob:String = "aaaa"+a
    flvPlayer.addASCuePoint(ti,ob); // AS キューポイントを追加する
}
で、この後キューポイントがきた時の処理。

っていう風にしたいんだけど、上手くいかず、変数tiには値が
確かに入っているのにaddASCuePointに入れる時に上手くいかなくなる。もしかして変数使えなかったりします?
もしくは、おかしな所がありますか…

lotmarrayには[2.9,7,894,12.34,12.56]が入ってます。
186Now_loading...774KB:2008/11/14(金) 16:56:50 ID:+aF22lya
>>185
キューポイントオブジェクト作って配列に入れとくとかじゃね
ヘルプ見れば載ってる
187Now_loading...774KB:2008/11/14(金) 18:31:45 ID:7PSwkpK7
環境)OS:WinXP-Pro,Mem=3GB,ソフト:FlashCS3-Pro(Player9.0,AS3.0)

オブジェクトの色のRGB値取得で質問です。

ステージ上にMC0(青色)があり、これを押すことによりMC0のRGB値を取得したいのですが
上手くいきません。Webや本で調べて、asファイルのコンストラクタ以下は次のように書きました。

public function MainClass_of_Color_02 () {
this.buttonMode=true;
this.addEventListener (MouseEvent.CLICK, MC0_preassed);
}
//
public function MC0_preassed (mouseEvt:MouseEvent) {
var thisColor0 = new ColorTransform(this);
trace ("MC0_preassed: "+this+", "+thisColor0.color);
}

本来ならtrace()で #0000FF と表示したいところなのですが・・・
どうしたら良いでしょうか?
188Now_loading...774KB:2008/11/14(金) 19:18:09 ID:psKpFL+Q
1〜100までの数値をランダムに代入して、予め決めておいたグループのどれに当てはまるかを求めたいのですが簡単な方法が思いつきません
グループは4つで、
Agroup=1,5,6,8,13,16…
Bgroup=2,3,4,9,14,19…
Cgroup=10,15,18,23…
Dgroup=7,11,12,17…
みたいな感じに予め決めてます。法則はありません。
r=Math.floor(Math.random()*100)+1;
if(r==1){
trace("Aグループ");
}else if(r==2){
trace("Bグループ");
}else if(r==3){
trace("Bグループ");
}else if…
のようにすれば一応できますが行数が増えるので……
どなたか簡略できる記述分からないでしょうか?SWF6です
189Now_loading...774KB:2008/11/14(金) 19:51:44 ID:j0aUP3mX
>>188
グループを配列にする
forループで配列の項目の値とrの値の一致をチェックする
190106:2008/11/14(金) 20:20:10 ID:dWWauUnT
>>188
単純に100個の配列に登録しておけばいいだけじゃん?
var array = new Array();
//以下登録
array[1] = "Agroup";
array[2] = "Bgroup";
array[3] = "Cgroup";
array[4] = "Bgroup";
//////(略)///////
//以下表示
var r:int =Math.floor(Math.random()*100)+1;
trace( "rは" + array[r] + "です" );
191Now_loading...774KB:2008/11/14(金) 20:21:18 ID:dWWauUnT
うげ。名無しで書き込んだつもりが・・。すんませ。106じゃないです。
192Now_loading...774KB:2008/11/14(金) 20:22:32 ID:j0aUP3mX
そっか、絶対にどこかのグループに属しているなら、
最初からグループのどれかを選べばいいんだ
193188:2008/11/14(金) 20:58:15 ID:psKpFL+Q
>>189-190
ありがとうございます。>>189さんのヒントを見て苦労してなんとかできました。>>190さんのレス、できてから気づきましたorz
確かに>>190さんの方法は簡単ですが、でもそれだと結局100行もいる気がするんですが…
ちなみに下の方法でできました
group1=[1,2,3];
group2=[4,5,6];
group3=[7,8];
group4=[9,10];
for(i=1;i<=4;i++){
 for(ii=0;ii<=eval("group"+i).unshift();ii++){
  if(r==eval("group"+i)[ii]){
   if(i==1) trace("グループA");
   if(i==2) trace("グループB");
   if(i==3) trace("グループC");
   if(i==4) trace("グループD");
  }
 }
}
194Now_loading...774KB:2008/11/14(金) 21:11:29 ID:u6/M6pkp
var gropes = {
A:[1,2,3,4,5],
B:[6,7,8,9,10],
C:[11,12,13],
D:[14,15,16,17]
};

var hoggegege = function(source, num){
for(var i in source){
var len = source[i].length;
for(var l=0;l<len;l++){
if(source[i][l]==num) return i;
}
}
};

trace( hoggegege( gropes, 1 ) ); // A
trace( hoggegege( gropes, 7 ) ); // B
trace( hoggegege( gropes, 15 ) ); // D
195190:2008/11/14(金) 21:47:16 ID:dWWauUnT
>>193
> でもそれだと結局100行もいる気がするんですが…
いやいや、そんなのは書き方の問題

var groups:Array = new Array();
group1=[1,2,3];
group2=[4,5,6];
group3=[7,8];
group4=[9,10];
for(i=1;i<=4;i++){
 for(ii=0;ii<=eval("group"+i).unshift();ii++){
  r=eval("group"+i)[ii])
    groups[r] = i;//これで登録
  }
 }
}

//以後使うときは
var r:int =Math.floor(Math.random()*100)+1;
trace( "rは" + groups[r] + "です" );

この方が処理時間は遙かに速いよ。O(1)ですから。
まあ判定が一回しかないならいらないけどね。
196Now_loading...774KB:2008/11/14(金) 23:56:45 ID:R/mmcxVv
未だにActionScript2.0に依存してるんだけど
実際3.0に頑張って移行した人ってやっぱり慣れると3.0の方が良く感じるんでしょうか?
処理時間とかの話は抜きにして
197Now_loading...774KB:2008/11/15(土) 00:33:24 ID:W/4lqPfB
>>196
ここだけの話だけど、3.0というかPlayer9.0の動作が変。
特に文字列検索がおかしい(例:while文で変なところでbreakする)

あとCS3では、編集している以外の(単に開いてはいるがマウスポインタを
当てていない)flaファイルやasファイルもプレビューでごちゃ混ぜに
実行しようとする。

余計な機能をてんこ盛りにしたせいで基本がおろそかになった気がする・・・
と思ったら、もうCS4の日本語版が出た。

Adobe大丈夫か?
198Now_loading...774KB:2008/11/15(土) 00:42:39 ID:0zDxbRG9
>>196
リスナーとムービークリップ、深度管理が楽になった気がする
あとデフォルトでxml、正規表現とか使えるようになったし

まだflash player8向けにAS2で作れって言われるけど
できたらAS3で作らせてほしいと思うようになった
199Now_loading...774KB:2008/11/15(土) 07:10:03 ID:vPlYvOtZ
すみません、FLASH修行中のものです
AS3.0なんですけど

カーソルに引力をつける方法ってあるんですか??
風を表現したいんです。
カーソルを右へ動かすと速度が上がって、左へ動かすとのろくなり
停止すると徐々に右へ勝手に移動する。。。みたいなことできますかね?

重力ができるなら引力も出来るのではと・・・
あるとしたらどういったスクリプト教えてください!
お願いします!

ネット探したけど
ありそうだけど全然ありませんでした
200Now_loading...774KB:2008/11/15(土) 13:19:02 ID:/U6alnQK
CS3+AS3なんだけど

var loader:Loader = new Loader();
addChild( loader );
loader.load( new URLRequest("op.swf"));

// 即効で消す
removeChild( loader );
loader = null;

で、よみこんだswfの映像は消えるものの
読み込んだswfの音が残っちゃうんだ。

どうすればいいかわかる?
201Now_loading...774KB:2008/11/15(土) 14:02:24 ID:r81bT6pf
>>199
「カーソルを右へ動かすと速度が上がって」の主語はMCか? 
それなら、AS3.0というよりif文の制御次第という希ガス。

仮にMCのインスタンスをfusenとし、フレーム毎のマウスのX座標をx0(初期値),x1とすると
1) もし、マウスが動かない(x0==x1) → fusen.x +=speed;
2) マウスが右に動く(x0<x1) → fusen.x += speed*Math.exp(Math.abs(x1-x0));
3) マウスが左に動く(x0>x1) → fusen.x += speed/Math.exp(Math.abs(x1-x0));

な感じかな。
ちなみに、Math.exp(Math.abs(x1-x0)) は、掛け算・割り算で1以下にならないようにするための処置。
202Now_loading...774KB:2008/11/15(土) 14:05:03 ID:ztoSsudz
すいません、>>187の色の取得法をお願いします。
203Now_loading...774KB:2008/11/15(土) 14:21:40 ID:vPlYvOtZ
>>201
主語はカーソルです。カーソルに引力をつけたいんですが、
この場合、カーソルをMCに置き換えてその後はスクリプトを書けばよいのですかねぇ?

ちなみに初期値とは何ぞでしょう?この場合加速度を表す数値?すみません。

あとx0,x1の設定はこんな感じ?ん?

var x0=mouseX;
var x1=?????

すみません、もうちょっと詳しくお願いしていいですか?

204Now_loading...774KB:2008/11/15(土) 14:29:45 ID:vPlYvOtZ
あ、初期値はx0から動かした距離ですかね?
でもどうやってそれを定義するんでしょう?
205Now_loading...774KB:2008/11/15(土) 16:34:14 ID:S/wrKjgm
>>204
201だが、カーソルを動かせば動かすほどカーソルが動く?
でもカーソルには引力がある??? 分からん。
図に描いてくれ。
206Now_loading...774KB:2008/11/15(土) 16:44:30 ID:0sG3isio
自分の頭の仲で完結した文章じゃなく
他人に一からわかるように説明する文章を書くようにしないと
結局無駄なやり取りが増えて目的にたどりつくのが遅くなる

非効率的
207Now_loading...774KB:2008/11/15(土) 17:05:03 ID:Kh/QJdPi
マウスカーソルに対して強制的に右方向の移動補正をかけたいってことか?
マウスに触ってない状態だと勝手にマウスカーソルが右に動いて
マウスを左方向に動かす時はマウスカーソルを遅く、右方向に動かす時は早く動くようにする?

誰が得するのかさっぱりわからん上に
一方俺はペンタブを使った、で意味なくなりそうな仕様だな
208200:2008/11/15(土) 17:06:24 ID:/U6alnQK
>>200だが
unloadAndPlay()っていうのが追加されるらすぃね
とりあえず追加されるまでは

MovieClip(loader.content).stop();
removeChild( loader );

で、一応音は止まった…。
でもこれぜったい消えてないよなぁ…
209200:2008/11/15(土) 17:07:22 ID:/U6alnQK
unloadAndStopだた
210185:2008/11/15(土) 17:47:56 ID:jDG1hMrg
>>186
setCuePointsって言うのがあったけど、AS3だから使えなかった。今AS2使ってるんですよね……

ほかに何か方法ってありますかね……無いはずは無いと思うんですけど。
これ使えば?とか、このサイトが参考になる。とか何でも良いので教えてください……
211185:2008/11/15(土) 17:58:41 ID:jDG1hMrg
あ、それと
1002: Illegal cue point: time must be number
ってキューポイントのtime指定の所で引っかかってるんですよね?
数値データに変換したはずなのにずっと出てる……何ででしょう……?
212Now_loading...774KB:2008/11/16(日) 02:09:16 ID:kdT/jjec
>>208
MovieClip(loader.content).stop();
removeChild( loader );
の後に
loader.unload();
じゃ駄目なん?
213212:2008/11/16(日) 02:10:33 ID:kdT/jjec
すいません。sage間違えました。
214Now_loading...774KB:2008/11/16(日) 03:46:42 ID:T4UTteUG
>>200についてですが
>>207のいう通り

マウスカーソルに対して強制的に右方向の移動補正をかけたい
マウスに触ってない状態だと勝手にマウスカーソルが右に動いて
マウスを左方向に動かす時はマウスカーソルを遅く、右方向に動かす時は早く動くようにする

ですね。
マウスカーソルに一定の方向へ加速度を加えるようなイメージです。
AS3で可能でしょうか? 
やはり>>201のようにするもんかな?
215Now_loading...774KB:2008/11/16(日) 05:04:21 ID:T4UTteUG
Child同士のhitTestObjectってエラるの?

カーソルを”カーソルMC”に置き換えてaddChild(カーソルMC),
そんでもって衝突対象の”物体”をステージ上にaddChild(物体)
この上で

addEventListener(Event.ENTER_FRAME, enterFrameHandler);
function enterFrameHandler(e:Event):void
{
var カーソルMC:MovieClip = new カーソルMC();
var 物体:MovieClip = new 物体();

if(カーソルMC.hitTestObject(物体))
{
trace("当たった");
removeChild(物体);
}
}

ってすると

ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/removeChild()
at test/enterFrameHandler()
ってエラる

なんで!?

216Now_loading...774KB:2008/11/16(日) 09:40:18 ID:9SOvUwfp
>>215
EnterFrame外でaddChildしてるのにEnterFrame内でvar new()しちゃったら対象が違ってきちゃうじゃない
217Now_loading...774KB:2008/11/16(日) 09:58:03 ID:TZKtzO8n
AS2でパスワード機能?っていうんですか
ネームバトラーっぽいのを実装したいのですが誰か詳しく
218Now_loading...774KB:2008/11/16(日) 10:20:20 ID:T4UTteUG
>>216

EnterFrame内の var new() なくしても
同じエラーが出ます!

なんで??
219Now_loading...774KB:2008/11/16(日) 10:45:35 ID:88+up11w
>>218
Event.ENTER_FRAMEはどういうイベントか考えれ
毎秒12もnewするひつようあるんかい?
あと、ソースは「物体」とか書かずにちゃんとコピペしないとエラーなんか解らんぞ
220Now_loading...774KB:2008/11/16(日) 10:57:35 ID:Mu5rd608
flvplaybackを使ってシステムを作ろうとしているのですが、
動画の時間を使ってタイムイベントを行おうと思ってます。それで、
動画の再生が32.52秒目だとすると、動画の時間で34.52秒目でアクションを起こそうと
思っているのですが、何を使えば出来るでしょうか……
setIntervalを使ってみましたが、これってFLASH全体の時間であって動画の再生時間とは
異なるんですよね……
どなたか助言をくださいまし。
221Now_loading...774KB:2008/11/16(日) 12:01:39 ID:9SOvUwfp
>>220
少しはこのスレ内とか他の質問スレとか検索しようよ

cuepoint
222Now_loading...774KB:2008/11/16(日) 21:16:04 ID:ZYy1Bfkx
12時間探し続け、見つからないので質問。

画像(MC)の横幅が200pxとして、
ダメな例:) img._width = 100;
「_width」で画像全体の幅を縮めるのではなく、
画像の左端から指定したpx数だけ表示させたいです。
(画像が途中で切れてるのを表現したいです。)
教えてください。

何卒。
223Now_loading...774KB:2008/11/16(日) 21:28:08 ID:OsQIRNVt
>>222
何卒、艦橋を書いて下さい。
224Now_loading...774KB:2008/11/16(日) 21:40:10 ID:ZYy1Bfkx
>>223
Windows + Flash Pro 8
225Now_loading...774KB:2008/11/16(日) 22:05:50 ID:Udh9/vGl
>>222
横幅200のMCを別に作ってsetMaskとか
226Now_loading...774KB:2008/11/17(月) 16:36:59 ID:TJSFa8G/
AS2使ってます。ムービークリップの深度についての質問があります。
this.createEmptyMovieClip("view_mc", 505);
で、深度を505と設定しているはずなのに、
trace("view_mcの深度"+getDepth(view_mc));
をすると-16384って出ます。これって何で……?因みに数字を変更しても同じ-16384……
良く解らないんですが、何が問題かわかる人が居ましたら教えて下さい・・・
227Now_loading...774KB:2008/11/17(月) 16:42:53 ID:Of5sIk0U
>>226
getDepth(view_mc)
↑これ間違い
ヘルプでシンタックス確認して正しく記述すれば解決する
228Now_loading...774KB:2008/11/17(月) 17:01:51 ID:TJSFa8G/
なるほど、書き方が違ったのか……どうもありがとうございました!
229Now_loading...774KB:2008/11/17(月) 17:37:37 ID:TJSFa8G/
すみません、続けての質問となり申し訳ないのですが、
空のムービークリップを深度ごとに分けて作り、それを別々の用途で用いたいのです。
それで、以下のソースを書いて見ました。
for(var u=1;u<=50;u++){
this.createEmptyMovieClip("view_mc"+u, u);//基準点が左上隅となってる(初期設定)
trace("view_mcの深度は?     "+view_mc+u.getDepth());
}
これで、traceの部分が上手くいきません。
view_mc+u.getDepth()の記述がおかしいのは解ってますが、
ほかに書き方が思いつきません。だれかこれに換わる書き方を教えてください。
230Now_loading...774KB:2008/11/17(月) 19:26:48 ID:Of5sIk0U
>>229
配列アクセス演算子
231Now_loading...774KB:2008/11/17(月) 20:54:39 ID:TJSFa8G/
>>229
なるほどどもでした〜
ついでにもう一つ質問です。

functionを自動的に500個生成したくて、eval関数を使ってみました。それで、
以下のソースを書いてみたんですけど、
for(var i=1;i<=500;i++){
function eval("Func"+i)(){
videotime[cue3]=flvPlayer.playheadTime;
}
}
これでFunc1〜Func500までが出来る予定だったんですけど、「パラメータ名が必要です」
というなぞのコメント。eval使わない時は出来たんですけど・・・どうすれば出来るでしょうか・・・
232Now_loading...774KB:2008/11/17(月) 21:30:50 ID:Of5sIk0U
>>231
そもそも500個のループで作れる関数って必要なのか?
関数ひとつ作って引数で必要な値を渡すとかでいけるんじゃないか?
233Now_loading...774KB:2008/11/17(月) 22:35:05 ID:QMq+merj
var loader:Loader = new Loader();
loader.mouseEnabled = false;
Loaderクラスに対してmouseEnabledとかvisible、alphaを指定しても反映されないんですけど
これはどうしたらいいですか?
234Now_loading...774KB:2008/11/17(月) 22:59:20 ID:1H3h1BJs
>>233
何がしたいの?
ムービークリップにloaderをaddChildして、
そのムービークリップにvisibleとかalphaとかつければいいと思うよ
235Now_loading...774KB:2008/11/17(月) 23:04:12 ID:QMq+merj
>>234
いえ、もう作品は出来上がってて
MCに入れたりなんかしてると膨大な量のスクリプトを書き変えなくちゃいけなくなるんです……
というかどこに書いたかも分からないんです
236Now_loading...774KB:2008/11/17(月) 23:10:05 ID:jlTkO+3O
Flash-CS3-Pro(AS3.0)をWinXP-Proで使っています。

ヘルプや本を参考に、beginFill ()&endFill ()、およびRGBの255段階指定を使って
MC(canvas)の色を変えたいのですが上手くいきません。ASでは、

r_val=200;
g_val=250;
b_val=180;
rgb_val="0x"+(r_val << 16 | g_val << 8 | b_val).toString(16); // trace()で0xc8fab4が得られる

canvas.beginFill (rgb_val, 1.0);
canvas.endFill ();

と書いていますが、以下の警告が出ます。

 Warning: 1060: 移行の問題 : メソッド beginFill はサポートされないようになりました。
 詳細については、Graphics クラスを参照してください。。

指示に従い、ヘルプでGraphicsクラスを見ましたが原因が分かりません。
どうすれば良いでしょうか?
237Now_loading...774KB:2008/11/17(月) 23:15:47 ID:d5e3WCD3
初心者なんですが、質問です。
外部ファイルから読み込んだアニメーションgifと、
外部から読み込んだMP3を同期させるのは可能ですか?
できればPlayボタンで同時にアニメーションとMP3を再生させたいのですが。
238Now_loading...774KB:2008/11/17(月) 23:26:30 ID:hdhD5d+P
>>235
AS2.0のムービーとか読み込んでんじゃね?それなら無理

>>236
canvas.graphics.beginFillじゃね?
beginFillはMovieClipクラスのメソッドじゃなくなったはず

>>237
無理
そもそもGIFをアニメーションGIFとして読み込めない
239Now_loading...774KB:2008/11/17(月) 23:29:33 ID:hhaFETHi
>>237
とりあえず、AS2.0以前で同時スタートのSWFを作ったら?
それで上手くいけば3.0に移行するのも良し。
240Now_loading...774KB:2008/11/17(月) 23:33:19 ID:1H3h1BJs
>>236
カラーをつけるだけなら↓でいいかも?

var myCT:ColorTransform = canvas.transform.colorTransform;
myCT.color = 0xC8FAB4;
canvas.transform.colorTransform = myCT;
241Now_loading...774KB:2008/11/17(月) 23:40:51 ID:QMq+merj
>>238
いえ、読み込んでるのはAS3.0のファイルです。
242236:2008/11/17(月) 23:56:48 ID:PxWUsEJs
>>238,240
レスさんきゅうです。早速試してみました。
なお書き漏らしていましたが、今回の記述はMC(canvas)にリンケージされた
asファイル内に書いており、canvasはthisで置き換えています。

238さんの方法で
this.graphics.beginFill (rgb_val, 1.0);
this.graphics.endFill ();
としたところ、エラーは出ませんが色が変わりません。
今後beginFill()を使いこなすためにアドバイス願います。

240さんの方法では、最初
 1046: 型が見つからないか、コンパイル時定数ではありません : ColorTransform
というエラーが出ていましたが、flash.geom.* をインポートしていないことに気付き、
import flash.geom.*; を追加して正しく動作しました。
243Now_loading...774KB:2008/11/18(火) 00:36:16 ID:o7OITZ4N
Hydro Tween で
TweenerのremoveTweensにあたるメソッドは何でしょうか?
244Now_loading...774KB:2008/11/18(火) 01:26:14 ID:K4pvaqEf
質問です。3.0でコンテキストメニューを呼び出した時に
某かのアクションをさせて、その後メニューアイテムを選ばなかった時に
つまり、メニュー欄以外をクリックしてキャンセルした時に
また別のアクションをさせるといった事は可能でしょうか?

初心者の為に詳しいスクリプトをご説明頂いても判りません
可能かどうかだけ教えて下さい
245Now_loading...774KB:2008/11/18(火) 08:58:33 ID:Y3DpOCbH
>>244
ContextMenuEvent.MENU_SELECTを使えば可能
246190:2008/11/18(火) 10:25:51 ID:yCRPgwKw
>>242
this.graphics.beginFill (rgb_val, 1.0);//色と透明度の設定
this.graphics.drawRect( 0,0,, width, height )//描画 
this.graphics.endFill ();//描画終了

drawRectの他にはdrawCircle, drawRoundRect等がある。
247Now_loading...774KB:2008/11/18(火) 11:02:48 ID:TLTIOlky
AS3でtrace( ary );ってやると配列の中身が見れるけど
オブジェクトの中身みたいときはどうすればいい?
248Now_loading...774KB:2008/11/18(火) 11:25:27 ID:Uh/wrbjB
forステートメント
249Now_loading...774KB:2008/11/18(火) 12:52:33 ID:TLTIOlky
あ、そか
オブジェクトも配列みたいに扱えんのか
THX
250Now_loading...774KB:2008/11/18(火) 12:55:53 ID:TLTIOlky


var obj:Object = { a:"1", b:"2", c:"3", d:"4" };
trace( obj[0] );

結果undefinedだった
251Now_loading...774KB:2008/11/18(火) 13:04:59 ID:NSIbLhrd
>>250
当たり前だろ
Arrayじゃないんだから
252Now_loading...774KB:2008/11/18(火) 13:09:49 ID:ijYgn0I8
>>250
なんでObjectで配列みたいな事してんの?
それだったら配列でいいじゃん。
253Now_loading...774KB:2008/11/18(火) 13:18:08 ID:TLTIOlky
あ、上のソースは適当に試してみたの

実際はobjにどんなプロパティが追加されたかわからない状況で
すべてのプロパティをtraceをつかって表示させたいんだが…
254Now_loading...774KB:2008/11/18(火) 13:20:53 ID:ijYgn0I8
>>253
ああ、そう。まあいいや。

var obj:Object = { a:"1", b:"2", c:"3", d:"4" };
for (var prop in obj) {
trace(obj[prop]);
}
255Now_loading...774KB:2008/11/18(火) 13:21:47 ID:NSIbLhrd
for...in知らないの?
256Now_loading...774KB:2008/11/18(火) 13:22:27 ID:K4pvaqEf
>>245
ありがとう
後で調べてみます
257Now_loading...774KB:2008/11/18(火) 13:25:38 ID:nEmNSfYr
>>250
全然for使ってないじゃねーか!
ヘルプでfor..inのとこ見ろ。
258Now_loading...774KB:2008/11/18(火) 13:25:43 ID:+ztZyKnC
こんなか
var obj:Object = { a:"1", b:"2", c:"3", d:"4" };
//メンバ全てにアクセスしたいだけの時
for each(var o:* in obj)trace(o);
//プロパティ名とその値を知りたい時
for(var p:* in obj) trace("プロパティ名:" + p," 値:" + obj[p]);
259Now_loading...774KB:2008/11/18(火) 13:29:12 ID:TLTIOlky
みんなthx!!
これで愉快なAS3ライフを送れるよ!!
260Now_loading...774KB:2008/11/18(火) 13:33:57 ID:NSIbLhrd
>>258
やっぱプロパティ名の型指定はStringじゃなくて*のほうがいいの?
261236&242:2008/11/18(火) 14:06:35 ID:jIkJOyY8
>>246
(体調が悪いので、会社を早退して書いています)

レスありがとう。
beginFill() + endFill() は、基本的に無の状態から描画するときに
使うものなんですね。
262Now_loading...774KB:2008/11/18(火) 14:19:05 ID:IkRbsRIN
AS2使用なのです

画面上で特定の文字列を表示させてその文字列の中から特定の文字をドラッグしてそれが正解か不正解か判定させたい
ドラッグした所は色が変わるように表現させたいのですがどこから手をつけていいのか分りません
ヒントだけでもお力貸して下さい。
263Now_loading...774KB:2008/11/18(火) 14:33:32 ID:Uh/wrbjB
Selectionクラス
264Now_loading...774KB:2008/11/18(火) 14:47:25 ID:IkRbsRIN
>>263
ありがとうございます
調べて悩んでみます
265Now_loading...774KB:2008/11/18(火) 14:53:40 ID:YWeDIsNg
as3で、
super.ユーザー定義関数()
っていう書き方があるみたいですが、このsuper.という使い方が
どうしてもわかりません。
どういうときに使うのでしょう。
super();
のほうは分かります。
266Now_loading...774KB:2008/11/18(火) 16:53:16 ID:4Jf8XWjw
>>265
サブクラスでメッソドはオーバーライド(上書き)できる…
オーバーライドする前のメソッド(スーパークラスのメソッド)を呼びたくなった…
さあ、どうする…
267Now_loading...774KB:2008/11/18(火) 18:08:35 ID:+ztZyKnC
>>260
あー、Stringの方が適してるね
よくキーコードなんかの数値をそのままプロパティ名として突っ込んでたから、その時の印象で*にしてた
結局Stringにキャストされるね
268Now_loading...774KB:2008/11/18(火) 21:35:11 ID:NSIbLhrd
>>267
Stringでいいのか
サンクス
269Now_loading...774KB:2008/11/19(水) 13:20:39 ID:jt0GTgQN
プロの皆様に質問です。
プレビュー画面ではアニメーションと音が合ってるのに、
ブラウザでみると、アニメーションと音がずれます。
どう回避すればいいですか?
270Now_loading...774KB:2008/11/19(水) 14:04:01 ID:jt0GTgQN
269です。
自己解決しました。
271Now_loading...774KB:2008/11/19(水) 14:23:19 ID:aanTgCJE
actionscript2.0でチャンビーのプログラムを勉強しています。(flash)
http://www.chumby.com/guide/widget/Reuters%20-%20Technology
ここに紹介されているようなアプリを作ろうとしてるんですが、
(記事を選んだ後の画面)
多分、textfieldにhtmlが貼り付けられているような感じですが、
画像をタップすると、画像が大きくなります。
これってどういう風に書けばいいんでしょうか?
272Now_loading...774KB:2008/11/19(水) 14:26:23 ID:OEatddWB
アンカータグにasfunctionじゃないの?
273Now_loading...774KB:2008/11/19(水) 14:39:08 ID:aanTgCJE
>>272
それってブラウザで言うところのjsみたいにかけるみたいですね。!
これで何とかなりそうな気がしてきたの
274Now_loading...774KB:2008/11/19(水) 20:44:07 ID:jt0GTgQN
外部から読み込んだswfにボイス音があるのですが、
この音量をつまみみたいなので調節したいのですが、どうしたらよい?
275Now_loading...774KB:2008/11/19(水) 21:45:47 ID:P+X2xMUo
Flash8のサンプルライブラリのボタンのclassic buttonのknob faderを参考にするといい
276Now_loading...774KB:2008/11/19(水) 21:53:53 ID:jt0GTgQN
>>275
ありがとうございます
277Now_loading...774KB:2008/11/20(木) 03:05:06 ID:5U/pH+hC
AS3 CS3の質問です!っていうかバグっぽいんですけど
textfield.htmlText = "<li>";
って一度入力すると、そのあと、どんなにhtmlTextを書き換えても
すべての行に<li>の効果がかかっちゃいます><

これってどうにかならないですか??

テストしたソース↓メインタイムラインにtestってなまえのテキストフィールドを設置してHTML表示にして
addEventListener( Event.ENTER_FRAME, Loop );
var c:int = 0;
function Loop( e:Event ):void
{
if( c == 0 ){ test.htmlText = "食べ物リスト<li>リンゴ</li><li>ミカン</li><li>バナナ</li>"; }
if( c == 10 ){ test.htmlText = ""; }
if( c == 20 ){ test.htmlText = "<li>liの閉じタグを付けない"; }
if( c == 30 ){ test.htmlText = ""; }
if( c == 40 ){ test.htmlText = "食べ物リスト<li>リンゴ</li><li>ミカン</li><li>バナナ</li>"; }
if( c == 50 ){ test.htmlText = ""; }
if( c == 60 ){ test.htmlText = "あいうえお<br>かきくけこ<br>さしすせそ"; }
c++;
}
278Now_loading...774KB:2008/11/20(木) 04:01:09 ID:SU3ZBCCb
CS3 AS3なんですが、

ユーザーの操作に反応して動いて音が鳴るものを作るために、
ムービークリップの2フレーム目にサウンドを設定して、コンストラクタでstop()して、
動かしたいときにgotoAndPlay(1)で動かして、
ENTER_FRAMEを監視して最終フレームで止めるというように作りました。

これをこのまま使っているうちはよかったんですが、
表現のバリエーションを付けようと別のムービークリップの中に入れて、
外側のムービークリップのgotoAndPlay()とstop()をオーバーライドして
中と連動するようにしようとしたら、メインタイムラインでそれが存在しないフレームに
gotoAndStop()したときに、サウンドが延々鳴り続けるようになってしまいました。

まるでサウンドだけがムービークリップから外れて暴走してるかのような感じなんですが、
何が足りないんでしょう?
279Now_loading...774KB:2008/11/20(木) 10:16:47 ID:vxf1x432
質問したいんですが、自分の環境?の意味がよく分かりません。
Windowsってことでいいんでしょうか?
それでおkなら質問します。
280Now_loading...774KB:2008/11/20(木) 10:21:06 ID:Aax5LmoE
使ってるアプリケーションが何かって言う事と、使いたいActionScriptのバージョンが何かって事だよ
281Now_loading...774KB:2008/11/20(木) 10:55:35 ID:tLakeRzf
>>277
"<li>liの閉じタグを付けない";
 ↑を閉じてないように見えるが・・・
282281:2008/11/20(木) 11:01:14 ID:tLakeRzf
あ、そうか、+= と勘違いしてた。忘れてくれ。
283Now_loading...774KB:2008/11/20(木) 11:33:39 ID:RteLZK09
つまり>>1-あたりをちょっと読めばわかりそうなことだな
284Now_loading...774KB:2008/11/20(木) 11:46:01 ID:jEwVY6Ae
>>281
そうなのよ、<li>の閉じタグを付けないとその後、<li>を使ってない
HTMLを読み込んでも、そのHTMLに<li>の効果がついてしまうの。
285Now_loading...774KB:2008/11/20(木) 11:49:02 ID:LJ5wmY4C
書籍などを見ていると、AS3の描き方で
var loader:Loader = new Loader();
に続いて
var urlRequest:URLRequest = new URLRequest("sun.jpg");
loader.load(urlRequest);

loader.load( new URLRequest("sun.jpg"));
というのがありますが、この双方の大きな違いってあるんでしょうか?こっちのが処理が早くなるとか

前者のURLRequestのインスタンスを作って使う方が、やってる事が判り易くなるとか
後者だと記述が少なくて済む・・・程度の違いという認識でいいんでしょうか?
286Now_loading...774KB:2008/11/20(木) 12:10:43 ID:kxN6N+DS
よくわからんが、
loader.load( new URLRequest("sun.jpg"));
みたいな書き方は見にくいから個人的に大嫌い。

287Now_loading...774KB:2008/11/20(木) 12:36:13 ID:FpzksrI7
>>285
前者のように変数に入れれば同じURLRequestを何度でも使える。
後者のように引数で直接newしたのは使い捨て。
288Now_loading...774KB:2008/11/20(木) 13:08:51 ID:LJ5wmY4C
>>286-287
処理の効率性でどっちがいいとかっていうのはないんですね
ありがとうございました
289Now_loading...774KB:2008/11/20(木) 13:35:48 ID:vxf1x432
>>280
Flash Player 8、ActionScript2.0
↑わかりました。これでいいんですよね?
聞きたいことはプログラムについてです。
290Now_loading...774KB:2008/11/20(木) 14:49:49 ID:Ux+32aal
質問です。

AS3でFlash時計を作る場合に、常に最前面に表示させるにはどうすれば良いでしょうか?
291Now_loading...774KB:2008/11/20(木) 15:28:49 ID:Ux+32aal
すみません>>290の追記です…
Flexでの開発です。
292Now_loading...774KB:2008/11/20(木) 15:29:42 ID:jEwVY6Ae
>>290
stage.addChild( clock );
293Now_loading...774KB:2008/11/20(木) 17:56:50 ID:PF6EpCOT
クラスファイルの中からstageにアクセスするにはstageオブジェクトを引数で渡す方法しかないんでしょうか?
294Now_loading...774KB:2008/11/20(木) 18:35:46 ID:kzlM0e7i
AS3.0でxStringBeginにpublic function get selectionBeginIndex():intの値を渡したいのですが
var xStringBegin:int = public function get selectionBeginIndex():int;
↑だとエラーになってしまいます、よろしくお願いします。
295Now_loading...774KB:2008/11/20(木) 20:44:25 ID:PF6EpCOT
>>294
intにfunction入れてるからエラーが出るんじゃないの?
getterなんだから
代入先には関数名だけでいいんじゃないの?
var xStringBegin:int = selectionBeginIndex;
public function get selectionBeginIndex():int{
return 〜;
}

だれか
>>293 
お願いします。
296Now_loading...774KB:2008/11/20(木) 22:22:43 ID:Xgnl5Coq
質問です、
図形のスケール変更の中心軸の変更するにはどうすればよいでしょうか

やりたいことは
描写した図形を自由にスクロール&拡大縮小

環境はFlexでAIR
お願いします。
297Now_loading...774KB:2008/11/20(木) 22:31:24 ID:Xgnl5Coq
FlexBuiderでAIRですね、すいません
298Now_loading...774KB:2008/11/20(木) 22:34:04 ID:uULu3Uwi
>>293
FlexならApplication.application.stageでどこからでもアクセスできるんでない?
299Now_loading...774KB:2008/11/20(木) 22:44:14 ID:uULu3Uwi
>>296
flash.geomパッケージのTransformとMatrixを使って、平行移動と拡大縮小を
組み合わせれば中心を制御できそう。
ttp://livedocs.adobe.com/flex/3_jp/langref/flash/geom/package-detail.html
300Now_loading...774KB:2008/11/20(木) 23:52:49 ID:W766d/vJ
//イベントハンドラ定義
function xPlayClick(evt:MouseEvent):void {
if (sndCh == null){
sndCh = snd.play(0, 1000);
}
}
function xPauseClick(evt:MouseEvent):void {
if (sndCh != null){
sndCh.stop();
sndCh = null; ←(たぶんこのへん)
}
}
function xStopClick(evt:MouseEvent):void {
if (sndCh != null){
sndCh.stop();
sndCh = null;
}
}

とりあえずポーズボタンをクリックしたらそこでサウンドが一時停止されて、
んで、playボタン押したら、その停止した場所からまた曲が再生するってのを作ってるんですが、できません・・。
親びん助けてください・・・。
301Now_loading...774KB:2008/11/21(金) 00:05:33 ID:53tXhNkq
>>300
ヒント:position
302Now_loading...774KB:2008/11/21(金) 00:13:58 ID:SvkI6m29
positionてなんすか親びん・・
フラッシュをやりはじめてまだ数日・・
まったくわかりません。しかし上の命令でつくれと・・
とりあえずポジションてやつを探してみます・・
303Now_loading...774KB:2008/11/21(金) 00:41:01 ID:wD0LBYPi
http://lick_a.at.infoseek.co.jp/hinabat/
これみたいにテキスト内の変数でステータスの値出すのってどうすんですか?
全く手が出ません
304Now_loading...774KB:2008/11/21(金) 02:54:41 ID:7zI0jf+0
入力された名前とその他モロモロを2つの配列に入れて
サイコロ振って片方をごちょごちょしてその結果でもう一方をもごもご
してるように見えるが・・・
305296:2008/11/21(金) 08:54:18 ID:I3vg+97X
>>299
ありがとうございます
306Now_loading...774KB:2008/11/21(金) 09:47:16 ID:MYiGTHHr
FLASH CS3の出力窓に表示されるデータを、
任意のテキストフィールドに表示させる事はできますか?
traceの内容なら出来るのですが、パブリッシュ時じゃなく動作中の挙動で出てくるエラーを表示させたいんです。
307Now_loading...774KB:2008/11/21(金) 09:59:38 ID:D3ezXdyx
>>303
入力文字列使ってMD5で値だして、
それで適当にステータスに割り振ればいいんじゃない?
308Now_loading...774KB:2008/11/21(金) 16:36:21 ID:SvkI6m29
質問です。
play_btn.addEventListener(MouseEvent.CLICK, xPrevClick);
play_btn.addEventListener(MouseEvent.CLICK, xPlayClick);

この二つを一つのスクリプト?にまとめることはできるんですか?
できるならどうやればいいのですか?

309Now_loading...774KB:2008/11/21(金) 16:41:31 ID:rM8WdV7w
>>308
xPrevClickとxPlayClickの処理をガッチャンコ→hoge()とする
play_btn.addEventListener(MouseEvent.CLICK, hoge);
310Now_loading...774KB:2008/11/21(金) 16:45:42 ID:SvkI6m29
即答ありがとうございます!
とてもわかりやすいお返事をくださったと思うのに、
初心者な者ですから、そのやり方すらわかりません。
それをヒントに色々といじってみます!
311277:2008/11/21(金) 21:04:40 ID:lgnRh3dR
>>277だが、<li>をちゃんと閉じて使えってことで解決?
312Now_loading...774KB:2008/11/21(金) 21:39:20 ID:8Y5Z65qW
AS3.0で、別ファイルのswfを読み込んで表示させたいんですが、子になるswfのコンストラクタでstageが参照されているため、
読み込み時に「null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません」となります。
LoaderのイベントリスナでCOMPLETEを監視しても、そこまで行きません。
あらかじめLoaderをaddChildしておいても駄目でした。
このようなswfを読み込むことは出来ないんでしょうか。なお、子swfは他で作られたものなので変更できません。
・親の読み込み部
 loader = new Loader();
 url = new URLRequest("sub.swf");
 loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler);
 addChild(loader);
 loader.load(url);
・子のコンストラクタ(抜粋)
 public function sub() {
  stage.align = StageAlign.TOP_LEFT;
  stage.scaleMode = StageScaleMode.NO_SCALE;
   (以下略)
 }
313Now_loading...774KB:2008/11/21(金) 23:30:18 ID:alYT7fJl
AS2で質問です。
flvplaybackコンポーネントを使って、動画再生できるコンテンツを作ってみました。
それで、コマ送り機能をつけたいのですが、どうすればいいかわかりません。
→キー(キーボードの)を押したら動画が再生されて、0.3秒後に停止する。と言う機能を付けたいのですが…
あと、スロー再生も出来れば付けたいです。
actionscriptに詳しい先輩方、どうか教えてください。
314Now_loading...774KB:2008/11/22(土) 01:20:41 ID:TRqqZ6wS
>>313
seekとかcuepointとか使えばコマ送りと0.3秒の処理は出来る
ここで何が出来るのかを確認して
http://livedocs.adobe.com/flash/8_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00003476.html

スローモーションはあるけどAS2じゃないね・・・
http://www.richapps.de/?p=36
315Now_loading...774KB:2008/11/22(土) 11:12:35 ID:l9ebxOAY
AS3.0で質問です
textで"aaaa"+"AAAA"+"aaaa"と表示させるときに"AAAA"の所だけ色や背景色を変える事は出来ますか?
出来るならヒントだけでもお願いします。
316Now_loading...774KB:2008/11/22(土) 11:49:24 ID:XXbwe0KZ
>>314
ども、ありがとうございます。続けて質問ですが、ビデオを現在の位置で止める処理ってどう書けば良いでしょうか?
my_video.stop();ってするとどうしても最初の位置まで戻ってしまうんですよね……
どなたか助言をお願いします。
317277:2008/11/22(土) 12:27:09 ID:HNEYvq4u
>>315
TFにHTML表示じゃダメなん?

てかだれか277の相手してちょ…。
318Now_loading...774KB:2008/11/22(土) 14:31:30 ID:hGnmjchR
>>316
まずヘルプを見たほうが早いよ。
pauseってのがあるから。

>>317
</li>で閉じればいいんじゃない?
319Now_loading...774KB:2008/11/22(土) 15:09:50 ID:5uQBb2UW
フラッシュでモーショングラフィックスやろうと思っているんですが
http://item.rakuten.co.jp/book/1463495/
↑の本持っている人いたら感想聞かせてください。近所の本屋行っても
ないし、ブックオフ行ってもないんで中身確認できないorz

プログラミング未経験だとやっぱ難しいですか?
320Now_loading...774KB:2008/11/22(土) 17:10:50 ID:l9ebxOAY
>>317
それでいけそうです、ありがとうございました。
321Now_loading...774KB:2008/11/22(土) 18:36:02 ID:g7zscEv5
こんにちは。

for( var i : i = 0 : i > 5 ){
obj1 = addChild( mc , "name" + toString(i))
}

で、obj1の数字の部分をiで連番にしたいのですが、
どうすればよいのでしょうか?

いろいろ試したのでしょが強制肩変換に失敗しましたとか
エラーになります。

よろしくお願いします。
322Now_loading...774KB:2008/11/22(土) 20:15:16 ID:LRO0w1Vb
すみません、AS3で
パブリッシュの時にはエラーが出ず、動作中にエラーを起こす方法・一文なぞあるでしょうか?
try文のテストをしたいのですが・・・。
323Now_loading...774KB:2008/11/22(土) 21:42:46 ID:hKfqLPyz
>>322
ムービークリップおいといて、timerとかで再生中にそれを削除
削除してからムービークリップのプロパティにアクセスするとか
324Now_loading...774KB:2008/11/22(土) 22:47:34 ID:LRO0w1Vb
>>323
ありがとうございます。
ちょっとやってみたのですが方法が間違ってるのか、ムービークリップを消しても何も起こらず、flashの動作が止まったりもしませんでした。
また調べてみようと思います。
325Now_loading...774KB:2008/11/22(土) 23:21:43 ID:hKfqLPyz
見返りを求めるって意味なら実際答えきゃいいと思うけど
326Now_loading...774KB:2008/11/23(日) 00:07:19 ID:B4AW02Mx
>>321

toString(i)じゃなくてi.toString()じゃないんかなぁ。
327Now_loading...774KB:2008/11/23(日) 01:05:50 ID:Ayq1uBaU
誰かAS2.0でMD5について詳しく・・・
出し入れとか
328Now_loading...774KB:2008/11/23(日) 02:13:58 ID:vQCHMGxg
>>327
md5とかshaとかの変換ライブラリはAdobeにあったと思うぞ
アルゴリズムの内容を詳しく解説とかは無理w
329Now_loading...774KB:2008/11/23(日) 04:27:04 ID:Te5KQdCs
330Now_loading...774KB:2008/11/23(日) 06:07:24 ID:3n6894zZ
>>277
どうにかなる。
そもそも<li>〜</li>にするのがHTMLのルールだから、本来は皆が言ってるように
閉じタグの</li>がなければ、付け足すのが常套手段。

とは言え、htmlTextで書き換えても<li>の効果が継続してしまうのは確かにバグと思われる。
とすればバグはバグとして、どうすれば<li>の効果を消すことが出来るか、を考えればいい。

ヒント:bullet
331Now_loading...774KB:2008/11/23(日) 10:24:59 ID:koXMxxCm
沖縄に外国人3000万人受け入れ計画
http://life.bbs.thebbs.jp/1227401075/

こんな法案が可決したら日本は破綻する
(ちなみに東京の人口は1280万人)
選挙権がある方は良く考えて投票してください

332Now_loading...774KB:2008/11/23(日) 11:40:23 ID:Ayq1uBaU
>>327
文字列からMD5は分かったんだけど、ハッシュされた文字列を元通りに
する方法が書いてないんだよそれ
こればかりは検索かけても出てこないという
333Now_loading...774KB:2008/11/23(日) 12:13:39 ID:8T22OlBw
何?MD5を複合化できねーかって?
連休だからって冗談きついぜ
334Now_loading...774KB:2008/11/23(日) 12:20:40 ID:3n6894zZ
のぶひごぉぅ
335Now_loading...774KB:2008/11/23(日) 12:29:14 ID:Te5KQdCs
>>332
そりゃアンタ無理。ハッシュは非可逆な計算であって暗号化とは違うよ。
ホントに「出し入れ」がしたかったらそれは可逆処理ってことだから暗号を使うべし。

以下補足。
ハッシュってのは元の文字列をこねくり回して計算したタダの数値であって、
異なる2つの文字列のハッシュ値が同じになることもある。
ただその可能性が1/10000000000000000000とかそんなだから、
ハッシュ値から元の文字列を探ったり同じハッシュ値になる別の文字列を
探ったりするのは事実上無理。それでパスワードの照合とかに使えるんだよ。

サーバ側にはパスワードのハッシュ値だけが保存してあって、
ログイン時には入力で送られてきたパスワードのハッシュ値を計算して、
サーバ上の値と一致したら「たぶん正しいぜ、ログインOK」っていってるだけ。
ニセモノの確率は1/10000000000000000000とかだからな。
336277:2008/11/23(日) 13:13:17 ID:P4cq01A9
>>320
死ね

>>330
ヒントをありがとう!
bulletについて色々調べてみるよ
337Now_loading...774KB:2008/11/23(日) 14:08:06 ID:Ayq1uBaU
>>335
説明が下手だった

例えば>>329で「バルス」って入力すると"a1787f27b7af6129f8447b62d142631f"って
出てくるんですよ。そこは大丈夫なのよ。
やりたいのはその逆で"a1787f27b7af6129f8447b62d142631f"って入力すると「バルス」って
出てくるようにしたいのです。

これすら無理なら潔く腹斬る
338Now_loading...774KB:2008/11/23(日) 14:22:35 ID:9aCGYX7j
>>337
非可逆の意味わかってる?
339Now_loading...774KB:2008/11/23(日) 14:53:25 ID:vvpOg9XN
多分だけど >>337 に必要なのは Base64 なのかね
でも Base64 クラスは Flex にはあるけど Flash にはないんだっけ
340Now_loading...774KB:2008/11/23(日) 15:09:13 ID:3hDQTKtT
>>337
ハッシュは暗号化じゃないって書いてあるのが読めない子なのか
ハッシュから元データへの復号化は不可能だって意味なんだが

ハッシュの文字列だけで数GBの動画が復号化されたらえらいことになるだろ
341Now_loading...774KB:2008/11/23(日) 15:16:29 ID:WI/W0cN1
なんて和やかな日曜の午後の光景だろう
342Now_loading...774KB:2008/11/23(日) 15:17:32 ID:Te5KQdCs
>>337
MD5値が"a1787f..."になる文字列は「バルス」以外にも星の数ほどある。
だから無理。潔く腹を斬れ。

何がしたいんだ?
「バルス」を他人に知られないように暗号化したいのか?
パッと見なんだか分からないように難読化したいだけなのか?
URLクエリなど直接日本語が使えないとこのために英数字だけとかに変換したいのか?
343Now_loading...774KB:2008/11/23(日) 15:23:06 ID:XQvN27PY
惜しい人を亡くした・・・
344Now_loading...774KB:2008/11/23(日) 18:45:09 ID:C8LYNbVA
>326
>toString(i)じゃなくてi.toString()じゃないんかなぁ。
すまそ、ソレ書き間違いでi.toString()です。

で、オブジェクトの方をforで連番つけて量産したいんですが。。。
345Now_loading...774KB:2008/11/23(日) 19:23:05 ID:er/Jf5QW
>>344
配列アクセス
346Now_loading...774KB:2008/11/23(日) 19:31:49 ID:x67gvxv2
むしろ配列
347Now_loading...774KB:2008/11/23(日) 20:22:59 ID:7geeVYXP
AS2を使ってます。
flvplaybackを使ってるのですが、ムービーを巻き戻す機能を付けたいのですが、
方法が見当たりません。どなたかご存知でしたらご教授ください。
ボタンを押したら、movie.playheadTimeの3秒前に戻って停止、という動作をしたいのですが…
348Now_loading...774KB:2008/11/23(日) 22:34:07 ID:anNRlXHc
>>347
seek、resume
つーかどうしてヘルプでflvplaybackを検索しないの?
349Now_loading...774KB:2008/11/24(月) 01:05:46 ID:/WAqWsB/
>>338
もちろん分かってない

>>342
http://www.shiftup.jpn.org/flash/neoki/index.html
これの復活の呪文(笑)っぽいのを実装したいんです
パス入力して変数出して能力値とかに割り当てるような
どっかの偉い人に聞いたら「それMD5な」との事だったんで

腹を斬る刀が無かった
350Now_loading...774KB:2008/11/24(月) 01:37:22 ID:zPx1XjOn
復活の呪文見てみたけどMD5じゃないみたいね。
351342:2008/11/24(月) 02:07:46 ID:2glolN00
>>349
なんだ、介錯してやろうと思ったのにwww
復活の呪文(笑)、何かをBase64エンコしたっぽい感じだな。349はセーブがやりたいの?

>パス入力して変数出して能力値とかに割り当てるような
これ読むとセーブじゃなくて、バーコードバトラーみたいな感じで名前入れると
勝手に体力とか防御力とかが決定されるようなものを想像してしまうんだが。
352Now_loading...774KB:2008/11/24(月) 02:28:42 ID:BGzVvxAZ
353Now_loading...774KB:2008/11/24(月) 10:21:18 ID:7kgQQ313
復活の呪文なんて好きに作ればいいと思う。質問するような事じゃない
354Now_loading...774KB:2008/11/24(月) 12:32:54 ID:NgJB5MI9
僕はホウケイなのですが、どうすればいいでしょうか。
355Now_loading...774KB:2008/11/24(月) 12:34:55 ID:7rz0DxgB
>>348
seekはもちろん使ってみました。しかし、あれではなぜか正確に3秒前に戻せないのです……
video.seek(flvPlayer.playheadTime - 3);
としてもいまいちおかしな操作になります。

(現在の再生時間-3秒)と言う時間に戻すにはどうすればいいのですか?
356Now_loading...774KB:2008/11/24(月) 13:04:08 ID:/WAqWsB/
>>351
そーそー、そんな感じの。セーブじゃなくてバトラーの方
激突要塞みたいに自分でキャラ作って他の人が作ったキャラと対戦・・・みたいな事を夢みてるのです

>>352
yes
357Now_loading...774KB:2008/11/24(月) 13:42:57 ID:aQvrNQAF
MD5とかじゃなく、最初からどういうことやりたいか具体的に書いてたほうが
はやかったんじゃ…

それに技術交換スレでのレスまでで問題解決してるように思えるが
どこで詰まってるの?
358Now_loading...774KB:2008/11/24(月) 13:56:08 ID:/WAqWsB/
例えばLv99HP1000のキャラのパスワードが"991000"じゃバレバレだから
テキトーに"uhoiiotoko"みたいな形に暗号化?したかった。
これだけならMD5で解決なんだけど、"uhoiiotoko"を"991000"にする方法が全く
解らないので、そこで詰まってます
359Now_loading...774KB:2008/11/24(月) 14:02:05 ID:uCHIXEdU
>>352のスレで回答もらってるじゃん。何が不満なの?
360Now_loading...774KB:2008/11/24(月) 14:13:59 ID:TigixBhu
>>358
数字を規則的にアルファベットに置き換えればいいじゃん。
1→a
2→b
とか。
361Now_loading...774KB:2008/11/24(月) 14:25:43 ID:o7/0v9h7
質問お願いします。
"sprite1"
"sprite20"
"sprite400"
みたいな文字列から、"sprite"の部分以下の数字部分の文字列(上の1、20、400)だけを取得するにはどうすればいいのでしょうか。
使用しているのはFLASH CS3 Actionscript3です。
362Now_loading...774KB:2008/11/24(月) 14:25:48 ID:aQvrNQAF
>>358
この場合の暗号化っていうのは、文字の置き換えや変換の仕組みを自分で好きに考えることです。
例として向こうのスレで515が書いてる。
それともあれじゃ不満だけど自分じゃ思いつけないから、もっと別の置き換えのアイデア募集!なのか?
363Now_loading...774KB:2008/11/24(月) 14:42:28 ID:/WAqWsB/
>>360
おしフラ読んで頑張ってきますわ

>>362
いや不満じゃないさ
ただアレだとチートし放題だから何か対策をと思って
364Now_loading...774KB:2008/11/24(月) 14:50:08 ID:uCHIXEdU
じゃあ、どのようにすればチートされにくいゲームを作れるかを聞いてたってわけか?as以外でやれ
365Now_loading...774KB:2008/11/24(月) 14:52:08 ID:jixMuEPW
その程度の知識でよくゲーム作れたな
366Now_loading...774KB:2008/11/24(月) 15:05:11 ID:/WAqWsB/
自分でも不思議だよ

>>360
str = "1122"
searchStr = "1"
replaceStr = "shinekasu"
strArray = str.split(searchStr);
resultStr = (strArray.join(replaceStr)).toString();
trace(resultStr);

これで文字1つなら置換えできるけど、これで英数字全部書くってのは酷なので
一気に書いちゃう方法ってありますか?
367Now_loading...774KB:2008/11/24(月) 15:24:51 ID:TigixBhu
>>366
trace結果がshinekasushinekasu22になったけど?
何をしたいのかわからない。

チートされたくないだけならチェックディジット的なものをつければ?
パスワードが"991000"になったら、
9+9+1+0+0+0=19を最後につけて"99100019"にするとか。
この計算方法さえばれなければチートできない。
368Now_loading...774KB:2008/11/24(月) 15:30:53 ID:7rz0DxgB
どなたか>>355の質問に答えてくだされば嬉しいっす……
369Now_loading...774KB:2008/11/24(月) 15:38:19 ID:/WAqWsB/
>>367
無い頭で暗号化(笑)をしてみた。
pass = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
code = ["a", "v", "t", "i", "b", "n", "t", "e", "h", "z"];
searchStr = new Array();
replaceStr = new Array();
str = "zzvaaa";
for (i=0; i<10; i++) {
searchStr[i] = code[i];
replaceStr[i] = pass[i];
strArray = str.split(searchStr[i]);
resultStr = (strArray.join(replaceStr[i])).toString();
}
trace(resultStr);
これで"991000"にならないのは何故なんだぜ?

後者の方ちょっと詳しく
370Now_loading...774KB:2008/11/24(月) 16:14:15 ID:TigixBhu
>>369
なんでstrをsplitするのかよくわからない

var pass = new Array();
pass["a"] = 0;
pass["v"] = 1;
pass["t"] = 2;
pass["i"] = 3;
pass["b"] = 4;
pass["n"] = 5;
pass["t"] = 6;
pass["e"] = 7;
pass["h"] = 8;
pass["z"] = 9;
str = "zzvaaa";
resultStr = "";
for (i=0; i<str.length; i++) {
resultStr += pass[str.substr(i, 1)];
}
trace(resultStr);

後者の方のどこがわからないのか詳しく
371Now_loading...774KB:2008/11/24(月) 16:17:39 ID:Lxt57hyW
>>369
せっかくチェックディジットってキーワード教えてくれてるのに
ググることもできねーのかよ
372Now_loading...774KB:2008/11/24(月) 16:23:43 ID:ClH6NxV3
>>368
大前提として、希望しているシーク先はシークポイントなのかどうか把握してる?
ニコニコとかでシークバー操作したことあるならわかると思うが、
動画ファイルごとに「シークで移動可能な場所」が決まってる。それがシークポイント
逆に言えば、シークポイント以外に移動しようとすると、移動先の最寄のシークポイントに移動してしまう
対処方法は少なくとも俺は知らん
373Now_loading...774KB:2008/11/24(月) 16:29:12 ID:7rz0DxgB
はい。把握してます。しかし、seekでは大雑把になりすぎて、扱いにくいのです。
それで、seekに変わるものを探しているのですが……中々見つかりません。
時間指定で動くようにしたいのですよね……12:312と指定したら動画の再生ヘッドが12:312に行く。
と言う風な動作を目指してます。
374Now_loading...774KB:2008/11/24(月) 16:40:50 ID:CePeAkq2
で、マルチしてまで何がききたいの?
375Now_loading...774KB:2008/11/24(月) 16:50:44 ID:7rz0DxgB
上に書いてある通りの動作が出来るようになるためのメソッド、プロパティ、何でも良いです。
これを使ってみれば?とかあればお願いします。
376Now_loading...774KB:2008/11/24(月) 17:09:32 ID:CePeAkq2
ないですね
377Now_loading...774KB:2008/11/24(月) 17:25:16 ID:7rz0DxgB
無いですか……技術上不可能と言うことでしょうか?やり方はあると思ったのですが……
こちらの人でも思い当たらない程高度なことだったのですね……

もし、ほかに何かご存知の方がいらっしゃったら何でも良いので教えてくださるとありがたいです。
378Now_loading...774KB:2008/11/24(月) 17:57:52 ID:/WAqWsB/
>>371
ググってもAS関連の事は何も出てこなかったぜ?
手出ないし>>370で10年戦えそうだから保留。ありがとうございました
379Now_loading...774KB:2008/11/24(月) 18:13:28 ID:NgJB5MI9
手を使わないで射精するにはどうすればいいですか?
380Now_loading...774KB:2008/11/24(月) 18:50:02 ID:8iLrmpFv
国語できない子はスクリプト書けないの法則
381Now_loading...774KB:2008/11/24(月) 19:42:09 ID:82/sItX3
XPSP2 CS3環境下でas2.0製作。

タイムラインに配置したMCが時々時間が経つと勝手に消えます。
消える条件としてはどうも

配置したMCは1フレームで停止させているもの。
(2フレーム使ってループさせると消えない。this.stop()で止めても消える。)

同じ環境下でも消えない物もある。

最終フレームで止めているだけでもある程度時間が経つと消える場合もある。

という物なんですが、これって回避方法ってあるのでしょうか?
それとも全て2フレームでループさせないといけないのでしょうか??

382Now_loading...774KB:2008/11/24(月) 19:43:37 ID:82/sItX3
もうしわけない。sageてました・・・。
383Now_loading...774KB:2008/11/24(月) 20:02:14 ID:EbSHYAt6
>>381
その消えるっていうのは、実際にステージからMCが削除されてるのか、それともalphaで見えなくなっているだけなの?

情報を小出しにされると答えづらいからスクリプトを書きだすとか構造を説明するとかちゃんと分かるように説明して頂戴
384Now_loading...774KB:2008/11/24(月) 20:07:26 ID:82/sItX3
>>383
申し訳ないです。

MC自体が非表示になっているようです。
少し時間が経つとまた表示されたりするケースもあって

もう少し調べてみたらどうもタイムラインの最終フレームで
停止している状態のMCがその状態になる場合がある事はわかりました。

毎回起こるわけでもないし、同じ状態の物が全てそうなるわけでもないので
困っています。
385Now_loading...774KB:2008/11/24(月) 20:12:50 ID:82/sItX3
>>383
補足です。
スクリプトとか、構造とかは全く関係ないようで

タイムラインの一番最後で停止(もしくは停止状態に)している物で
一部のMCだけ一定時間後に消える場合がある、という物です。
デバッガ使ってもvisivleはtrueのままだけど、実際に表示は消えます。

386Now_loading...774KB:2008/11/24(月) 20:19:42 ID:Lxt57hyW
深度(レイヤーかな)はどう?
静的に配置してるんだよね
387Now_loading...774KB:2008/11/24(月) 20:23:58 ID:aQvrNQAF
>>381
> スクリプトとか、構造とかは全く関係ないよう

本当に?すくなくとも自分は聞いたことも遭遇したこともない。
最小構成のFlashを作っても再現する?
座標、深度、アルファ値、その他trace()して存在は確認できてるってこと?
何かが邪魔してたりしない?
そのFlaファイルをupしてくれるのが確実だと思う。
388Now_loading...774KB:2008/11/24(月) 20:32:56 ID:82/sItX3
>>386
はい、静的です。
レイヤも全て別レイヤに配置していますがやはり発生します。

>>387
現在まででスクリプトは非常に簡素にしています。
よくある、メニューをクリックするとそのページが出る。程度のスクリプトです。
そのページのまま放置すると配置してある特定のMCだけある程度の時間で消えたり
消えては出現して・・を繰り返したりします。

そのおかしな動きをするMCが全て合致する条件として前述の
タイムラインの最終フレームでstop();をかけたもの、若しくは1フレームで
静止させてあるもの。なのです。

回避方法はgotoAndPlay(1)などでループさせると回避できます。
同じファイル内でも同じ条件でも起こるMCと起こらないMCがあります。
ただ、ループしか回避方法がないのか・・?と思ったので質問させていただきました。


389Now_loading...774KB:2008/11/24(月) 21:24:28 ID:aQvrNQAF
>>388
回避方法云々以前に、そんな現象が起こるということは普通ないので
おそらく作り方に原因があると思われる。
バグという可能性も一応あるけどね。

スクリプトを簡素にしていると本人はいっていても、どこかに本人の知らない矛盾や
コンフリクトがあるかもしれない、仕様を誤解しているかもしれない。
MCをひとつ配置しただけ、AS一切なしのflashを作っても同じ現象が起きるのでなければ
今作っているflash固有の問題であり、その作りに問題があると考えるのが妥当。
だから、作っているflaと同じものをこちらでも作れるような情報を出すか
flaそのものをアップしたほうがいい。
390Now_loading...774KB:2008/11/24(月) 22:07:48 ID:82/sItX3
>>389

A_MC
  話tn1-btn2-btn3-btn4
B_MC
  ------MIDASHI_MC
C_MC
  ------MIDASHI_MC
D_MC
  -----MIDASHI_MC

こんな配置でA_MCのボタンをクリックする事で各MC特定タイムラインに停止。
(タイムラインにthis.stop();のみ。)
それぞれそこでムービーを再生する、という仕組みで
BからD_MCの表示は読み込まれたら_alphaを増やして表示。

こんな感じでC_MCの配下にあるMIDASI_MCのみ一定時間後に消える、という物です。
391Now_loading...774KB:2008/11/24(月) 22:14:09 ID:82/sItX3
>>389
アップできれば一番早いのですが仕事で受けているモノですので
どうしてもアップはできません。
アップもせずに教えてくれ、というのが都合のいい話だという事は分かっているし
解決にも手っ取り早いと思っているのですが・・・・

回避はできるので仕事に支障はないのですが、どうしても気になっているので
教えてくれる、若しくは知っている人が居れば・・・と思って質問してみました。
確かにおっしゃる通り、作り方の問題かもしれない、とは思うのですが・・・
392Now_loading...774KB:2008/11/24(月) 22:34:48 ID:82/sItX3
も・・・申し訳ないです・・。

非公式のテクニカルノートに

_alphaの値は12800が上限でそれを超えると・・的な記述がありました・・
これかもしれないです・・・・orz
確かに_alphaの上限切ってないMCだったです・・・。

なんでループにすると問題が解決するのかは分かりませんが
どうもalphaの値が増えすぎていろいろとおかしな事が起こるような感じでした・・・


if(this._alpha>100){
this._alpha=100;
}

入れたら直りました・・・・こっぱずかしい・・・・。
自己解決したっぽいです。
393Now_loading...774KB:2008/11/24(月) 22:37:28 ID:aQvrNQAF
>>390
つまり、外部swfもしくは画像の読み込みとロードを行っているってことかな?
さらに_alphaもいじっているわけで、それだけ要素が増えれば簡素とはいえないと思う。

読み込みされたものがunloadされてるとか、再読み込みが発生しているとか、
キーフレーム挟んだせいでクリアされてるとか、
_alpha調整が意図しないタイミングで発動してるとか、
原因になりそうなことはいろいろ考えられる。
その説明見た限りでは、やはり作り方に原因があると思うけどなあ。
アップできないのは仕方ないけど、まったく同じ物をこちらで作るか見るかできる状況でないと
原因の特定は難しいね。
面倒だろうけど内容だけを適当なものに置き換えて同一構成のfla作るとか
そうでないなら、どこにどんなASを書いているかまで示してくれないとちと難しい。
394Now_loading...774KB:2008/11/24(月) 22:41:54 ID:aQvrNQAF
>>392
入れ違いすまん。
解決してよかったね。
もし_alphaをonEnterFrameで実行しているなら、100になった時点で
onEnterFrameをdeleteするのがパフォーマンス的にはよりいいと思う。
395Now_loading...774KB:2008/11/24(月) 22:50:51 ID:82/sItX3
>>394
はい、実際内容差し替えてアップしようか、とも思ったのですが
どうにもそんなテクニカルな事にも思えなかったのであれこれ調べて
みたら、alphaの数値が原因くさかったです・・・説明がド下手で
あれこれ推察してもらう事に頼って申しわけないです・・・

http://www.fumiononaka.com/TechNotes/Flash/FN0507002.html
ここのalphaの数値の問題が関係していると思われます。

ホールがあったらインしたい気持ちでいっぱいです。
ありがとうございました。

396Now_loading...774KB:2008/11/25(火) 06:28:25 ID:PR/z1nYL
>>377
不可能ではないが実用的ではない、から実装されてないんだと思われ。WMPとか一般のプレイヤーでも。
たとえば、非表示にして最寄のシークポイントからフレームレート上げて目的の時間でpauseする、とかは出来るかもしれない
ここで問題になるのが、動画のデコードの仕様上、シークポイントから順番にフレームをデコードしないと絵が出ないということ
たとえば、たまにあるシークできない嫌がらせ動画で8分のところに移動しようとすると、8分ぶんデコードしなくちゃならない
使ってるマシンのスペックが再生できるぎりぎりのスペックなら、シークに8分かかると言うこと
再生時のCPU負荷が10%でも、単純計算で48秒かかるわけだ
多くの動画はキーフレーム10秒くらいになってるから、実装してもポーズのたびに数秒固まる、って感じになると思う
その辺を踏まえて、デコードしなきゃいけないフレーム数が一定数以下なら上記のような処理をする、
それ以上のときはあきらめてシークポイントに移動、とかやれば多少はましになるかもしれないが、
正直コストと結果がつりあわないと思う
397Now_loading...774KB:2008/11/25(火) 06:39:51 ID:PR/z1nYL
まあどうしてもって言うなら、同じ動画を3秒ずらして再生(片方は非表示、ミュート)して、
ポーズの時に表示を入れ替え、再開時は元のメインを6秒遅れでポーズ解除して逆に3秒遅らせるとか?
・・・ASとまったく関係ない話になってしまった。スレチ&長文スマソ
398Now_loading...774KB:2008/11/25(火) 16:16:48 ID:uKD4AStB
actionscript2.0, flash player 8.0で開発しています。
テキストフィールドでHTML表示させたいんですが、うまくいきません。
htmlプロパティをtrueにして、htmlTextにHTMLを突っ込んでいるんですが、
表示がイマイチです。
<br>タグが効きません。(ただし文字列としては表示されていないので反応はしてるっぽい)
<img>タグが効きません。全く無視されている。
<b>タグ、 <i>は効いている。
<br>に関しては\nで改行させると表示される。
actionscript3.0以上じゃないとだめとかありますか?
399Now_loading...774KB:2008/11/25(火) 16:44:55 ID:BlSmjByr
何が使えるかはリファレンスを見れば書いてあるよ
いちいち答えてられんよ
400Now_loading...774KB:2008/11/25(火) 16:45:58 ID:7/IxroHJ
Flashに対応しているタグしか使えないよ。imgタグは使えたはずだけど
401398:2008/11/25(火) 17:00:05 ID:uKD4AStB
multilineをtrueにしたら改行されました。僕馬鹿みたいです。
取り急ぎ。
402398:2008/11/25(火) 17:01:37 ID:uKD4AStB
画像もでたわ。死にたい。
403Now_loading...774KB:2008/11/25(火) 18:40:28 ID:CQgN+vON
オートインデント可能なテキストエディタを制作中です。
行頭のタブ数だけ、次の行にタブを追加しようとしているのですが、
デフォルト動作である\nの入力が、キーボード押下イベントが
終了してから行われるので、\n\t\tのような追加ができません。
またこのイベントはcancelable=falseで、preventDefault()が
できませんでした。
どうすればこの機能を実装できますか?
404403:2008/11/25(火) 18:47:52 ID:CQgN+vON
環境はactionscript3.0
コードは、
var tf:TextField=new TextField();
tf.addEventListener(KeyboardEvent.KEY_DOWN,keyCheck);
private function keyCheck(evt:KeyboardEvent):void{
switch(evt.keyCode){
default:break;
case Keybord.ENTER:
evt.stopImmediatePropagation();
var tabs:String=getTabs(evt);//追加するタブを取得
tf.appendText(tabs);
}
}
という感じです(流れです)
405398:2008/11/25(火) 18:51:18 ID:uKD4AStB
たびたびすいません。fflash lite3だとimgタグが効かないんですが、
つかえるタグ一覧みたいなのって公開されてますかね。
http://livedocs.adobe.com/flashlite/3.0_jp/docs/help.html?content=Part4_API_Ref_1.html
本家を見ても役に立たない。。
406Now_loading...774KB:2008/11/25(火) 22:55:33 ID:rXBWahqM
"sqrt(3)*sin(pi/n)"などの入力から計算したいと考え、数式解析のライブラリを探しています。
「actionscript 数式解析」「actionscript 数式 パース」などで検索しても見つけられません。
いくつか教えて下さい。
407Now_loading...774KB:2008/11/25(火) 23:39:53 ID:WXpKu7sH
どでかい1枚の画像が背景にあって、
グリグリとマウスで掴んで表示させていくというところまでは
できたのですが、
最初から高解像度の画像を読むのではなく、
低解像度の画像だったのが、徐々に、高解像度の画像を順番に読ませていく
という仕掛けはどうやればいいのでしょうか??
つまり、ユーザーの画面内に見えているところだけ、優先して、
高解像度にしていきたいのです。

モザイクっぽい画像が、次第に高解像度になるという感じの処理です。
as3です。お助けください
408Now_loading...774KB:2008/11/25(火) 23:42:02 ID:C09l2gz0
Flash 8 ActionScript2.0で質問なんですが
テキストエリアみたいな枠に画像を表示して
枠の中で画像を自由にドラッグ移動できるようにするにはどうすればいいのでしょうか?
?ttp://www.naview.com/object/flash/zoom/index.html?
このFlashのようにやりたいんですが
409Now_loading...774KB:2008/11/25(火) 23:49:14 ID:6MuBnxBj
>>406
逆ポーランド記法

>>408
startDrag
410Now_loading...774KB:2008/11/25(火) 23:58:20 ID:rXBWahqM
>>409
ありがとうございます。そのしくみならシンプルに出来そうですね。
がんばってみます
411408:2008/11/26(水) 00:10:22 ID:Wtx4V0JJ
>>409
startDragでドラッグ移動できるんですね。調べてみます。
もう一つ知りたいんですが
ttp://www.naview.com/object/flash/zoom/index.html
の画像を表示してる領域はscrollpaneなんでしょうか?
412Now_loading...774KB:2008/11/26(水) 00:57:14 ID:1HxBYnFd
>>411
マスク
413Now_loading...774KB:2008/11/26(水) 01:20:09 ID:+3ut1nwH
質問です。
外部から読み込んだHTMLファイルをテキストエリア?に表示させることができたんですけど、
でもいざホームページを見てみると、しっかり外部から読み込んで表示はしているけど、
マウスのカーソルをそのテキストエリアに合わせると、
その表示されている文章を消したり書けたりしちゃうんですけど、
対処する方法ありますか?

うまく説明できず申し訳ありませんが、どなたかお願いします。
414Now_loading...774KB:2008/11/26(水) 01:35:04 ID:YoFnY+/k
下記のようにライブラリから1つのシンボルを複数生成したい場合、AS3ではどのように記述すればよいのでしょうか。
for(i=0; i<10; i++) mc.attachMovie("a", "a"+i, cnt++);
415Now_loading...774KB:2008/11/26(水) 01:38:54 ID:YoFnY+/k
>>413
テキストエリア(テキストボックス)を作るとき「テキスト入力」になっていたのでプロパティから「ダイナミックテキスト」に変更する。
416Now_loading...774KB:2008/11/26(水) 09:49:33 ID:+3ut1nwH
>>415
ありがとうございます。
試してみます。
417403:2008/11/26(水) 10:35:52 ID:bdrHr+79
preventDefault()のできないデフォルトのイベントを
行わせないことはできますでしょうか?

具体的には、
>>403にあるキーボード入力イベントです。
Enterキーを押したときに改行されないようにしたいんです。
418Now_loading...774KB:2008/11/26(水) 20:24:58 ID:sD4x6L04
>>414
AS3からはAssetの埋め込み(Embed)というのを使ようだよ。

[Embed(source="foo.swf", symbol="sym1")]
private var clazz:Class;
// sym1がMovieClipなら、clazzはsym1の内容を含むMovieClip(のサブクラス)
// をあらわすクラスオブジェクトになっている。

for (var i:int = 0; i < 10; i++) {
 var mca:MovieClipAsset = MovieClipAsset(new clazz());
 mc.addChild(mca);
}

詳しくは AS3リファレンスの移行ガイド参照。
ttp://livedocs.adobe.com/flex/3_jp/langref/migration.html
419Now_loading...774KB:2008/11/26(水) 20:34:21 ID:U7iMmry5
【やりたいこと】
複数asファイル外部に置いてimportしてるけど、中に含めちゃいたい

【やったこと】
ドキュメントクラスに設定してたA.asを、そこから外してinclude "A.as";
A.asには他の外部クラスがimportされてるから、それはA.asの中でinclude "B.as";

まく行きません。

初心者でつまらない間違いかもしれませんが、アドバイスいただけると嬉しいです。



420Now_loading...774KB:2008/11/26(水) 21:00:50 ID:sD4x6L04
>>417
textInputイベントならpreventDefault()が利くハズ。
textInputイベントはキー入力だけじゃなくてコピペ入力でも発生するから
改行を含む文字列をコピペされた場合も考慮する必要があるね。
421Now_loading...774KB:2008/11/26(水) 21:52:08 ID:Mf7Y73yw
質問させて下さい。

CS3 AS2.0を使用しています。

ルートのステージに変数名「H_Text」というダイナミックテキストフィールドを配置しています。
外部からxmlファイルを読み込んでH_Text内に文章をパースしています。

このH_Text内に読み込んだxmlの文章から特定のキーワードを抽出して
それにリンクを貼り、何かしら装飾(下線等)した状態でFlashで表示したいんです。

まず抽出する所からつまずいています。
ルートの第一フレームにxmlファイルのテキストを読み込んでFlashで表示させるASを書いていて、
そこまでは成功しているのですが、そこから先どのように書けば特定のキーワードを抽出出来るでしょうか。
欲を言えばそれにリンクを貼りたいんですが・・・。


どのような方法があるでしょうか。
どうかよろしくお願いします。
422421:2008/11/26(水) 21:56:00 ID:Mf7Y73yw
リンクを貼る代わりに、試しにまず特定のキーワードを置き換えてみようと
書いてみたコードが以下です。

function strReplace(H_Text,ひろゆき,タラコ){
var tmp:Array;
tmp = H_Text.split(ひろゆき);
H_Text = tmp.join(タラコ);
return H_Text;
}


「ひろゆき」という特定のキーワードを「タラコ」に置き換えようとしたのですが、
何も変化がありませんでした。
どうかよろしくお願いします。
423Now_loading...774KB:2008/11/26(水) 22:15:40 ID:YoFnY+/k
>>418
ありがとうございます。試してみます。
AS3に移行は難しいですね。

>>421
流れは422で合ってるよ。一応検証したスクリプト書いとく。
function strReplace(H_Text:String,str1:String,str2:String):String {
var tmp:Array= new Array();
tmp = H_Text.split(str1);
H_Text = tmp.join(str2);
return H_Text;
}
trace(strReplace("試しににひろゆきをタラコにかえます","ひろゆき","タラコ"));
424418:2008/11/27(木) 00:25:29 ID:gqRSdutv
>>423
CS3なんかを使ってやるときは、Embedを書くかわりに、ライブラリシンボルの
リンケージプロパティでクラス名をつけることで同じことができるみたい。
ttp://www.fumiononaka.com/Sample/F-site/FF080531.html#02
attachMovieの代わりにnewしてaddChildするようになったのは418に書いたとおり。

CSとか使ったことなくて、テキストエディタでAS書いてSDKのコマンドラインの
コンパイラでしこしこ作ってたので知らんかった。混乱させてたらゴメンネ。
425423:2008/11/27(木) 02:22:33 ID:4hI9XfFY
>>424
一応これ↓でもいきました。(Dictionaryつくらなくてもおk)
var dict:Dictionary = new Dictionary();
for(var i:uint=0; i<10; i++){
var targetName:String = "a"+i;
dict[targetName] = new a();
mc.addChild(dict[targetName]);
}
この場合、インスタンスにアクセスするにはmc.dict[charName]ではなくdict[charName]になるのか。
難しいぞAS3。AS2から変わりすぎ。
426Now_loading...774KB:2008/11/27(木) 02:43:25 ID:71NHVH+L
action scriptで作ったアニメーションを、
aviもしくはmovで書き出すことってできますか?
普通のタイムラインアニメーションならできるんですが、、、
427Now_loading...774KB:2008/11/27(木) 03:32:47 ID:oHQ60hZC
for ( i=0 ; i>4 ; i++ ){
eval[obj]+i.x = 100 ;
}


と、たしかこんな感じでインスタンスを操作できたと記憶しているのですが、
Actionscript 3.0でこれと同じ事をするには、どうすればいいのでしょうか?
eval関数自体がないようです。。。
428Now_loading...774KB:2008/11/27(木) 09:30:08 ID:2tvmhNpi
>>427
まずはまともなソース書けw
evalは非推奨
配列使え
429190:2008/11/27(木) 12:56:22 ID:4QXLUSlb
>>427
var ["objname"+i].x = 100;
430Now_loading...774KB:2008/11/27(木) 13:40:00 ID:88Bwui3/
ひどい有様だなこりゃ
431Now_loading...774KB:2008/11/27(木) 14:01:37 ID:4QXLUSlb
うはw
我ながらこれはひどいw
>>430
ひどいとわかるなら訂正してくれ

>>429
this["objname"+i].x = 100;
メンバじゃないなら、表示オブジェクト( AddChildしてるもの )限定でGetChildByName
432Now_loading...774KB:2008/11/27(木) 15:06:40 ID:9hMevjpM
質問です。開発はAS2でしています。
on(release){
this._xscale *= 1.1;
this._yscale *= 1.1;
}
で、ボタンを押すと拡大される機能を付けたいのですが、拡大の基準点をボタンの中心に置くのにはどうすればいいでしょう?
現状だと左上隅を基準点に拡大されるので、ボタンを押すたびにボタンが勝手に遠のいていきます。
ボタンを何度も押してもボタンの真ん中に基準点が来るようにしたいのです。どなたから知恵を貸してください。お願いします!
433Now_loading...774KB:2008/11/27(木) 15:51:30 ID:E1fTBL/x
>>432
もっと艦橋を書きなはれ。
AdobeのFlashならダブルクリックして整列で調整できる。
つーか、最初の段階で真ん中に設定すればOK。
434Now_loading...774KB:2008/11/27(木) 16:19:26 ID:9hMevjpM
すみません、質問を変えさせていただきます。実行中のflashで、ムービークリップをクリックしたら
そこが基準点になる、と言う風にしたいです。どなたか心優しい方、アドバイスをお願いします。
開発環境はAS2,CS3です。
435403:2008/11/27(木) 16:21:02 ID:vYlB/r2Z
>>420
できました。ありがとうございました。
436Now_loading...774KB:2008/11/27(木) 16:24:48 ID:Aob5j3xW
>>435
基準点を変えることはできない。
もとから基準点を中心にしたボタンにするか、拡大した大きさの中心が
ボタンのx座標とy座標になるように拡大するたびに移動させる。
437Now_loading...774KB:2008/11/27(木) 16:26:18 ID:KwOlqBCl
>>434
1つの案だが(ボタンではなくMCで)
・空のMC(例:MC0)を用意
・MC0内のマウスのローカル座標を把握する記述を書く
・MC0内に画像MC1を置く
・MC0をクリックするとそこにMC1が移動&拡大するようにする

どうかな?
438Now_loading...774KB:2008/11/27(木) 16:30:26 ID:Ze2/wus4
[環境] OS:WinXP-Pro,Mem=3GB,ソフト:FlashCS3-Pro(Player9.0,AS3.0)

異なる名前のMCを一気に別のMC内(親コンテナ内)に出現させたく思います。

テストとして同じ名前のMC(YellowMark,クラスはYellowMark())を親(xyAxisM)の中に
出現させるため以下の記述:
for (var id = 0; id <7; id++) {
var mc:MovieClip = new YellowMark();
mc.name = "yellowM"+id;
mc.x = 30*(id+1);
mc.y = 0;
RootTL0.xyAxisM.addChildAt (mc, id); //xyAxisMはステージ(RootTL0)内にある
}

を実行したところ、これは上手くいきました。

そこで名前ごとに1個づつ出現させようと思い、試しに1つを出そうと
for (var id = 0; id <1; id++) {
var atomName:String="C";
var mc:MovieClip = new ["atom"+atomName](); //子オブジェクト名 atomC を出現させたい
  // ・・・ mc.name = "yellowM"+id; 以降は同じ

を実行したところ下記のエラーが出ました(コンパイル自体はOKでした)。
 TypeError: Error #1007: コンストラクタ以外にインスタンス化が試行されました。

この後、色々記述を試しましたがやはりエラーが出ます。どうしたら良いでしょうか?
アドバイスを願います。
439Now_loading...774KB:2008/11/27(木) 16:31:57 ID:ay2w5s1R
>>419どうかよろしくお願いします
440Now_loading...774KB:2008/11/27(木) 19:07:57 ID:6epAAzNM
>>439
http://livedocs.adobe.com/flash/9.0_jp/main/00000041.html
の一番下のメモを読んで。

> ドキュメントクラスに設定してたA.asを、そこから外してinclude "A.as"

これだけなら、A.asからpackageで囲ってるのとclassで囲ってるのを外して、
コンストラクタの"public function A(){"と、対応する"}"も外して
中身だけにすればいいんだと思うけど。
441Now_loading...774KB:2008/11/27(木) 19:48:27 ID:GBO8wcTQ
acs2.0です。
動的に取得した複数のURLからmovieclipに順番に画像を
表示するのを作りました。とりあえずは動いているんです。
画像の切り替わりをsetinterval()で制御しているんですが、
切り替わり時に画像が全く表示されない瞬間が存在します。

MovieClipLoaderで画像を差し替えていますが、
loadClipした際にどのタイミングで前の画像が消えるんでしょうか。
onLoadStart?onLoadComplete?
onLoadCompleteのタイミングだとしたらこの隙間を解消することは
難しいのでしょうか。
やるとしたらダブルバッファリングのようなMovieClipを2つ用意して
visibleで切り替えるような感じでしょうか。常套手段があれば教えてくだしあ。
442Now_loading...774KB:2008/11/27(木) 21:12:29 ID:RKSC3ZoZ
>>441
MovieClipに直接loadするんじゃなくて、MovieClip内に空のムービークリップ生成してそこにloadする
で、completeになったら一個前のムービークリップを削除する

MovieClipに直接loadすると、MovieClip内のものは消去される
443Now_loading...774KB:2008/11/27(木) 22:32:48 ID:gqRSdutv
>>438
やりたいことがいまひとつわからんのだが、ソースコードにYellowMarkみたいな名前
をハードコーディングせずに、ライブラリにあるFoo1, Foo2 といった名前を実行時に
組み立てたいってこと?

for (var i:int = 1; i <= 5; i++) {
 var name:String = "Foo" + i;
 var mc = new ?????(); // ここで順番に Foo1, Foo2, ...を作るってこと?
 ...
}

クラス名の文字列からクラスオブジェクトを得るにはflash.utilsパッケージの
getDefinitionByName()を使えばいい。

import flash.utils.*;

for (var i:int = 1; i <= 5; i++) {
 var name:String = "Foo" + i;
 var clazz:Class = getDefinitionByName(name) as Class;
 var mc:MovieClip = new clazz() as MovieClip;
 ...
}

こんな感じでできないかな。
444438:2008/11/27(木) 22:46:00 ID:CmRCDm76
>>443
レス有難うございます。

すいません、説明不足でした。やりたいことを一言で表すと、
「A2.0以前のattachMovie()のように、MC内に子MCを名前で配置したい」
となります。
なので、443さんの前半の解釈で正しいです。

flash.utilsパッケージのgetDefinitionByName()を試してみます。

445Now_loading...774KB:2008/11/27(木) 22:55:17 ID:VHyWW4H6
AS3で、画面中にあるCLICK、ROLL_OVER、ROLL_OUTのMouseEventを指定しているスプライトの機能を
一時的に全て止める方法はありますか?全部mouseEnabled = falseにするのも戻すのが大変だし・・・

で、画面を覆うサイズのスプライトを最前面に置いてみたら、その下にあるスプライトのMouseEventが一応動かなったようですが
この方法は何か想定される問題はあるのでしょうか?ちょっとした方法で下にあるボタン機能が利いてしまうとか
他にもこの場合のもっと効率の良い方法があれば教えていただきたいです
446Now_loading...774KB:2008/11/27(木) 23:22:58 ID:gqRSdutv
>>445
AS3で新しくなったイベント処理の仕組みでできると思う。
「ActionScript3.0プログラミング」の「イベントフロー」のところを見てみましょう。
ttp://livedocs.adobe.com/flex/3_jp/html/16_Event_handling_1.html

上位のコンポーネントのところでイベントをキャプチャーフェーズで奪ってとめてしまえば
下位のスプライトのところまでイベントが届かない。
MouseEventを効かせたくないボタンやスプライトたちの共通の祖先のコンポーネント(最上
位のStageで構わないと思う)にイベントリスナーをuseCapture=trueでaddEventListener()する。
イベントリスナー内の処理では、MouseEventを奪いたい時にはevent.eventPhaseを見て
キャプチャーフェーズならevent.stopPropagation()すればいいはず。
removeEventListener()するときもuseCapture=trueを忘れずに。
447Now_loading...774KB:2008/11/27(木) 23:30:16 ID:T/wDZemD
んなもんは、stage.mouseEnabeld=falseでいいじゃん
448446:2008/11/27(木) 23:45:01 ID:gqRSdutv
>>447
それだとstageのイベントハンドラは呼ばれなくなるけど、
子孫たちのイベントハンドラはあいかわらず呼ばれるんじゃなかったっけ?

…とおもってリファレンス見ると、子孫までもすべて無効にするにはmouseChildrenを
使えとな。ガーン。
446みたいなご大層なことは必要ないらしい。(´・ω・`)  スマソ
449Now_loading...774KB:2008/11/28(金) 00:49:30 ID:w4Owa4yL
>>446-448
解説ありがとうございました
正直446のリンク先はチンプンカンプンの状態ですが、これから読んでみます
一応テストしてみた所stage.mouseChildrenのtrue or falseで全体制御はできているようでした
450438:2008/11/28(金) 01:42:41 ID:y3TL7Atd
>>443
有難うございます!
名前でaddChildAt()出来ました!
451Now_loading...774KB:2008/11/28(金) 03:38:56 ID:hebtlkm+
>>440
まさにその通りでした!
お返事遅くなってすいません、どうもありがとうございました!
452Now_loading...774KB:2008/11/28(金) 10:50:14 ID:YGqVeAWS
AS3です
とても初歩的な質問なんですけれど
http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/ui/Mouse.html#cursor

これはカーソルを変更出来るのですか?
また出来るのでしたらどの様に書けばカーソルを変更出来ますか?
453New_loading...774KKB:2008/11/28(金) 12:08:04 ID:MlypFaJZ
本当に初歩的な質問で申し訳ないのですが,非常に困っているので教えてください.
ASファイル(Main.asのようなファイル)では,線を引く関数(_root.moveTo(),_root.lineTo())は使えないのでしょうか?
ちなみに,Flash8,AS2.0です.
454Now_loading...774KB:2008/11/28(金) 12:36:20 ID:FhJBgnL5
>>453
importしとるんか?
455Now_loading...774KB:2008/11/28(金) 13:27:28 ID:jpW3R4Jp
お尋ねします。
マウスホイールでスクロールするflashを作っているのですが、
ページを開いてから1回flash上でクリックしないとonMouseWheelがとれません。
クリックしなくてもホイールスクロールできるようにするにはどうしたらよいでしょうか?
AS2です。
456Now_loading...774KB:2008/11/28(金) 13:31:39 ID:+Fkq6hgQ
>>455
http://www.adobe.com/jp/devnet/activecontent/articles/devletter.html

最新のFLASHならhtmlをパブリッシュすれば回避用のJSがセットで生成されるよ
457Now_loading...774KB:2008/11/28(金) 13:32:03 ID:N5xx+2Q/
>>455
>1回flash上でクリックしないとonMouseWheelがとれません

仕様。
だから大抵は「クリックして下さい」とか「〜を入力してください」のように
閲覧者がフォーカスをswfにあわせるように仕向けている。
それが無理ならJSで、ページ開いたら勝手にフォーカスをswfにあわせるようにするとか。
458New_loading...774KKB:2008/11/28(金) 13:49:15 ID:MlypFaJZ
すばやい回答ありがとうございます.
importしてると思うんですけど...

とりあえず,「import flash.events.Event」とは書いてあります.
間違っていますかね?
459Now_loading...774KB:2008/11/28(金) 13:51:15 ID:jpW3R4Jp
455
>>456 - 457
すばやいご回答、ありがとうございます。たすかりました。
460Now_loading...774KB:2008/11/28(金) 14:10:38 ID:xpB7WWIR
>>458
そりゃAS3.0の書き方だろうに
2.0ならMovieclipを継承するクラスならmoveToもlineToも使えんじゃね?
461Now_loading...774KB:2008/11/28(金) 14:31:06 ID:TdaV4MEW
AS2.0で作成したシューティングゲームを3.0に移行したいのですが、
ソースの"gun".removeChild("gun"+1);の部分で
「未定義である可能性のあるメソッドremoveChildを静的型Stringの参照を使用して呼び出しました。」
とエラーが出てしまいます。
AS2.0では移動、ボタンで弾作成(+弾数制限+画面端で破棄)、敵の当たり判定までは作ってあるのですが、
一部ずつ試していきたいので、今のソースは自動で弾を作成して右に進んでいき画面端で消えるようにする部分です。
removeChildの使い方について調べては見たのですが、未定義で使用しているとは思えないのでよくわかりませんでした。
キャラクターの移動についてはすでに移行できたので、それ以外の部分についてのソースを次に記します。
よろしくお願いします。
462Now_loading...774KB:2008/11/28(金) 14:33:04 ID:TdaV4MEW
ソースです。
http://hakuhin.hp.infoseek.co.jp/main/as/shot.html#SHOT_00_00
こちらページを参考にして作成しました。
//砲弾制限
var GunMax :int = 3; // 弾の最高数
var GunUse:Array = new Array();
for(var i:int=0;i<GunMax;i++){
       GunUse[i] = 0;// 弾の使用フラグ
}
function GunExecute(){
       for(var i:int=0;i<GunMax;i++){
              if(GunUse[i] == 1){
                     // 座標に移動量を足しこむ
                     ["gun"+1]x += ["gun"+1].dx;
                     ["gun"+1]y += ["gun"+1].dy;
                     // 画面外に移動したら弾を破棄する
                     if(["gun"+1].x < 0) GunDelete(i);
                     if(["gun"+1].x > 600) GunDelete(i);
                     if(["gun"+1].y > 450) GunDelete(i);
                     if(["gun"+1].y < 0) GunDelete(i);
              }
       }
}
// 弾破棄
function GunDelete(ID){
       "gun".removeChild("gun"+1);
       GunUse[ID] = 0;
}
//gunのインスタンスを生成
addChild(new getDefinitionByName("gun"+1));
["gun"+1]x = 100;
["gun"+1]y = 100;
463New_loading...774KKB:2008/11/28(金) 14:37:19 ID:MlypFaJZ
>>460
回答ありがとうございます.
>そりゃAS3.0の書き方だろうに
そうだったんですか.
勉強不足でした.
今までAS3.0で書いていたのですが,諸事情によりAS2.0を使わなければならない状況になってしまったため,わかりませんでした.
ぜひ,AS2.0でMovieClipを継承するクラスの使い方をご教授いただけないでしょうか?
464Now_loading...774KB:2008/11/28(金) 14:53:12 ID:xpB7WWIR
>>461-462
無茶苦茶すぎて笑うしか無い
1冊AS3.0の本読んでからの方がいいんじゃないか

>>463
継承の仕方はAS3.0と同じでextends使えばいいんだけど、そこから懇切丁寧に長文書く気は無い
他の人よろしく
465Now_loading...774KB:2008/11/28(金) 15:01:28 ID:TdaV4MEW
>>464
ActionScript3.0 プログラミング入門
という本と、ネットでもAS3.0に関するサイトをいくつか回ってみたのですが、
買った本ではシューティングゲームを作るには至りませんでしたので、
かなり無知なままにいじくってしまいました。

何かお勧めの本やサイトなどありませんでしょうか?
466Now_loading...774KB:2008/11/28(金) 15:03:22 ID:xpB7WWIR
>>463
ああ、つーか2.0なら_rootならlineToもmoveToも普通に使えんじゃね?なんか他の所が原因で動かねーんじゃねーのかな
外部asファイルの扱いとか、カスタムクラスの扱いとかで
2.0のリファレンス読んだ方がいいよ
467441:2008/11/28(金) 15:09:18 ID:7D15k7nw
>>442
どうもありがとう。
実際には空のムービークリップを作ってやってたんだけど、
同じムービークリップにloadしてたので空白が開いていたようです。
結局2つ用意してonLoadCompleteのタイミングでswapDepthsして
表示させるようにしてみました。
切れ目無く表示されるようになりました。
468tomomi:2008/11/28(金) 15:15:54 ID:xePkP8xF
フラッシュでHPをつくったのですが、アップロードすると、ストップアクションがきかず、フレームにそって画像がながれてしまいます。すべて流れた後は正常に動きます。
swfファイルは問題なく、アップロードしたときだけアクションがききません。どなたか、助けてください。
ちなみにサイトは

on(release){
 nextFrame();}

矢印を押すとネクストフレームで画像がみれるという簡単なものです。(コンタクトというページにメッセージ書き込みが機能があります。)

助けてください!! AS2
469Now_loading...774KB:2008/11/28(金) 15:20:28 ID:60n+yqll
>>465
http://hakuhin.hp.infoseek.co.jp/main/as3.html
アンタもリンクしてるココで、一からやれば簡単なシューティングゲームぐらい作れるようになる。
as2からの以降ならlivedocsで[ActionScript 2.0 からの移行]あたりでググレ

以降する時は急がず慌てず、as2からどう変わったか一つ一つ検証してみることが必要。
ガンガレ
470465:2008/11/28(金) 15:30:47 ID:h5Ov3I6a
>>469
わかりました。
移行にしても新しく作るにしても、一からやってみます。
わざわざありがとうございました!
471New_loading...774KKB:2008/11/28(金) 15:36:55 ID:MlypFaJZ
>>466
わかりました.
いろいろな書籍などを参考にしてもう少し勉強しようと思います.
回答してくださった皆さん,ありがとうございました.
472Now_loading...774KB:2008/11/28(金) 16:00:26 ID:arzulBcK
>>465
1から作り直した方が早いも。マジで。
細かいところが微妙に変更されてて、気付かないと延々悩む。
例えば、外部ファイルの解析では
System.useCodepage = true;
    ↓
System.useCodePage = true;
だし。


>>468
ブラウザは何よ? ローカルでのブラウザ動作は?
473Now_loading...774KB:2008/11/28(金) 16:08:18 ID:h5Ov3I6a
>>472
いったい2つのどこが違うのか少し悩みました。
確かに無理にやってわからんわからんって悩んでるだけ時間がもったいないですね。
ありがとうございます。
474tomomi:2008/11/28(金) 17:50:43 ID:xePkP8xF
>>472さん、
ブラウザはサファリVersion 3.1.2です。
475Now_loading...774KB:2008/11/28(金) 18:15:19 ID:jpW3R4Jp
onMouseWheelで
windowsとmacでdeltaの値が違いすぎ、
macだとすごい速さになってしまいます。
解決方法はありますでしょうか?
476Now_loading...774KB:2008/11/28(金) 18:51:20 ID:xn07Oaq7
>>475
getVersionでOS判別して速度係数みたいなものを掛ける
477476:2008/11/28(金) 18:53:43 ID:xn07Oaq7
>>475
OSだけならこれでよかったみたい
System.capabilities.os
478Now_loading...774KB:2008/11/28(金) 18:58:35 ID:Q6qC19kV
Flash MXとか使ってる人ここみときな
ttp://www.multi-bits.com/dat/adobe/dtp1.html
479Now_loading...774KB:2008/11/29(土) 00:21:42 ID:Q6lzbjl5
>>452
できるんだろ、FlashPlayer10かAIR1.5なら。
480Now_loading...774KB:2008/11/29(土) 02:50:24 ID:d1hSvlfK
なぜか478が透明あぼーんだな
481Now_loading...774KB:2008/11/29(土) 20:17:55 ID:8npf49CI
var a:int = new int( 1 );
var b:int = a;

a++;

trace( b );

の結果が1なんですけど
どうしたらaのアドレスをbに格納できますか?
482Now_loading...774KB:2008/11/29(土) 20:44:42 ID:8npf49CI
あ、ていうか質問を変えます!スミマセーヌ。
ちなみにAS3+CS3です。
ていうかプログラミング全般の質問になるんですが

ある条件がtrueのときは
while( a < b )
という処理を行ってfalseのときは
while( a > b )という処理を行いたいのですが

if( true )
{
while( a < b )
{
...
}
}
else
{
while( a > b )
{
...
}
}

って同じような処理するのがバカらしく思ったんです。
実際はwhileの中身の処理は複雑で、関数にしたら何個も引数を渡さなければならなくなるので
どうしようかなと…。
って思ったらその関数の中に関数作ればいいのか…w
なんか自己解決したwww
483Now_loading...774KB:2008/11/29(土) 23:09:18 ID:qCMk7MV+
>>482
なに?おなに?
484Now_loading...774KB:2008/11/29(土) 23:21:00 ID:UApWsbbq
( ´・ω・`)触れてはいかん
485Now_loading...774KB:2008/11/30(日) 06:22:24 ID:0rOxGTIU
スミマセーニョ

これは流行る
486Now_loading...774KB:2008/11/30(日) 08:10:12 ID:HsGl00+k
スミマセーニョ!
487Now_loading...774KB:2008/11/30(日) 22:17:56 ID:4w/Xv187
すんごい初歩的なことなんですが……
MCの中からメインタイムラインを操作したいのですが、
ActionScript2.0で可能だった

_root.play(); 

に当たるソースコードがわかりません
root.play();とすると未定義の可能性のある〜〜とか言われて怒られました
どうなってるんでしょうかAS3
488Now_loading...774KB:2008/11/30(日) 23:54:03 ID:X3QMf1hf
>>487
MovieClip(root)

オブジェクト指向的に、あんまり良くないとかでこんな形になったんだっけか
489Now_loading...774KB:2008/12/01(月) 14:09:01 ID:TKUDptR3
AS3で質問させて下さい

シンボルをムービーで作って例えば_mc1"あ"_mc2"い"〜_mc5"お"として
_mc = _mc2 + _mc4 + _mc1
stage.addChild(_mc)
みたいな事は可能でしょうか?
490Now_loading...774KB:2008/12/01(月) 14:23:15 ID:qJwQ8oQp
functionの使い方で質問があります。
レイヤーmainに
lv.onLoad = function(success) {
function tag(){
var tagtime:Array=byogaT;
trace(" "+tagtime);
}
}
と記述して、別のレイヤーbtnに
on(release){
_root.tag();
}
と書いてtag()を呼び出そうとしたのですが、上手くいきません。レイヤー越しにファンクションを呼び出すには
どうしたら良いですか?
491Now_loading...774KB:2008/12/01(月) 15:00:28 ID:H3tRxJiR
>>489
あ、い、、、が意味不明だが、
_mc.addChild(_mc2);
_mc.addChild(_mc4);
_mc.addChild(_mc1);
stage.addChild(_mc);
とかじゃね

>>490
function tag(){ ...}を外で定義汁
492Now_loading...774KB:2008/12/01(月) 15:08:43 ID:TKUDptR3
>>491
言葉たりなくてすみません
_mc1の中に"あ"_mc2の中に"い"などの単語のムービーを作り
それをStringの足し算の様に出来ないのかと言う事です
493Now_loading...774KB:2008/12/01(月) 15:22:00 ID:4Rj6c4Qc
すいませんFlex(AS3)で質問させてください。
Imageのsourceに指定した画像の透過の部分をクリックしても反応しないように、
画像の透過な部分を元にヒット領域を設定したいのですが、
うまい方法はないでしょうか?
494Now_loading...774KB:2008/12/01(月) 15:30:54 ID:qJwQ8oQp
>>491
外部からデータをロードしてますので、外では定義できないのです。何か方法をご存知の方いらっしゃいませんか?
495Now_loading...774KB:2008/12/01(月) 16:09:21 ID:PobaK+ro
>>494
>外部からデータをロードしてますので、外では定義できないのです

それだけだとなんで外で定義できないのかわからん。
ロードしたデータが必要なら後から参照すればいいだけだし、何が問題で
何をしたいのかもっと詳しく。
496Now_loading...774KB:2008/12/01(月) 16:11:40 ID:H3tRxJiR
>>492
+演算子でmc足すとかは無理
書いたようにコンテナにaddして座標をそれぞれ設定とかになるかな
>>494
外でというのはtag()の定義を
lv.onLoad = function(success) {...}
から出せということ
スコープを勉強汁
497Now_loading...774KB:2008/12/01(月) 16:18:42 ID:qJwQ8oQp
>>495
ロードしたデータが必要になります。参照って言うのはどうするのでしょうか?
498Now_loading...774KB:2008/12/01(月) 17:52:24 ID:PobaK+ro
>>497
ロードしたデータはlvに格納されてるわけでしょ?
だったらデータが必要な時はlvを参照するか、ロード完了後にデータを別の変数にでも代入しとけばいい。
とにかくそんなところで関数定義する意味ナシ。
参照については>>496がいってるように、スコープを勉強しよう。
499Now_loading...774KB:2008/12/01(月) 20:53:04 ID:qJwQ8oQp
度々の質問失礼します。

er.setMask(_root.mask);
で、ムービークリップmaskにマスクを設定したのですが、
逆にこれを外すことって出来ないのでしょうか?
500Now_loading...774KB:2008/12/01(月) 20:54:13 ID:qJwQ8oQp
あ、回答ありがとうございます!スコープについては今勉強してます。
501Now_loading...774KB:2008/12/01(月) 21:28:27 ID:qJwQ8oQp
500です。すみません、半分自己解決しました。
しかし、マスク解除は出来たのですが、その下の機能が使えない状態です。
flvplaybackにマスクをかけたのですが、その状態だとシークバーが使えないため、
解除したのですが、それでも使えない状態になってしまっています。困ってます助けてください。
502Now_loading...774KB:2008/12/01(月) 22:28:07 ID:9RvkXM7M
AS記述に特化したエディタ・・・需要ありますか?
503492:2008/12/01(月) 22:30:52 ID:YBe90ycI
>>496
ありがとうございました。
504Now_loading...774KB:2008/12/01(月) 22:50:18 ID:ZUkFqeB9
Flash8 AS2.0で質問です。
外部画像をムービークリップにロードしたんですが
クリックしても反応しません。なぜでしょうか。

var mcLoader:MovieClipLoader = new MovieClipLoader();
this.createEmptyMovieClip("mc",this.getNextHighestDepth());
mcLoader.loadClip("image01.jpg",this.mc);

mc.onPress = function(){
trace("クリックされました。");
};
505Now_loading...774KB:2008/12/01(月) 23:51:19 ID:PobaK+ro
>>504
loadすると、mcに定義されたイベントがクリアされるんじゃなかったっけ?
onPress等はonLoadInitあたりで定義するといい。
506Now_loading...774KB:2008/12/02(火) 13:42:35 ID:Rf+nraBt
AS2で
delete ayer.onRelease
と記述するとayer.onReleaseを消すことが出来ますよね。逆に復活させることって出来るのでしょうか?
flashに詳しい方、教えてください。
ayer.onRelease=undefinedも試してみましたが、これでは完全に消すことは出来ませんでした。
507Now_loading...774KB:2008/12/02(火) 13:51:38 ID:s66KGnYz
>>506
何がしたいのかよくわからん。消したいのか、再び有効にしたいのか。
再度定義したいなら、またayer.onRelease=funtion(){}って書けばいいし
一時的にonReleaseを止めたいならenabled=falseにすればいいのでは?
508Now_loading...774KB:2008/12/02(火) 14:54:20 ID:Rf+nraBt
>>507
あ、そうか・・・すみません。馬鹿でした;
どうもありがとうございました。
509Now_loading...774KB:2008/12/02(火) 16:08:29 ID:c9DqBzyU
Flash-CS3-ProをWinXP-Proで使っています。ASは3.0です。

Stage上にXY軸のみを持つMC(mc0)があり、これにドラッグできる円形MC(mc1)がヒット
したときの判定で困っています。

目標としては、 mc1がmc0の軸にのみ重なった時に反応が出るようにしたいのですが、
if (mc1.hitTestObject(mc0)==true { } とすると、mc0の枠全体に反応してしまいます。
代案として、mc0を軸ごとに分けて反応させることには成功したのですが、これだと他のif条件と
併記したとき記述が長くなりスマートではありません。

MCの塗りの部分(線分)にのみ反応させる方法はありますでしょうか? 
なお、hitTestPoint()ではmc0の基準点にしか反応させることが出来ませんでした。
510Now_loading...774KB:2008/12/02(火) 18:39:17 ID:XPpI991j
>>509
mc1の中にさらに小さいムービークリップ(単位円とか)をおいて、それに対してHitTestする
でもこの方法だとmc1の移動速度が速すぎた場合HitTestが動くのかな?

ちゃんと判別するならmc1の存在する象限をチェックするのがいいと思う
511Now_loading...774KB:2008/12/02(火) 19:43:14 ID:rlmMje9f
>>509
面倒だからhitTest使わずにmc0、mc1の位置や大きさから計算する。
512Now_loading...774KB:2008/12/02(火) 19:46:03 ID:rlmMje9f
>>509
ああ、というかbitmapにすりゃいいんじゃね?
513509:2008/12/02(火) 20:15:59 ID:xw/pojqs
>>510-512
レス有難うございます。

509さんの前者の方法だと、軸に触れた瞬間を判定できないので採用は難しいです。
また次の動作として、「触れた瞬間に軸との重なりをSwapする」を考えているので、512さんの
bitmap法では出来ません。

やっぱり、軸で分けて処理した方が良いかと思っています。
514Now_loading...774KB:2008/12/02(火) 22:51:00 ID:wC1QkBO0
>>502
Linuxで動くなら欲しい。
WinはFlashDevelopがあるからなぁ。
515Now_loading...774KB:2008/12/03(水) 08:09:17 ID:deVL0xUB
FLASHCS3 でactionscriptを書いているのですが、どうも書きづらい。
みなさんは外部エディタ使われますか?
いいのがあったら教えて下さい。
516Now_loading...774KB:2008/12/03(水) 10:05:01 ID:CgQ2l0KB
Flexじゃ駄目なの?
517Now_loading...774KB:2008/12/03(水) 12:28:02 ID:51os0nER
有料は駄目じゃ...
518Now_loading...774KB:2008/12/03(水) 18:11:23 ID:Gf2FJDTI
>>515
一つ前の書き込みを見るんだ
519515:2008/12/04(木) 07:40:58 ID:yTmjKs64
>>516
>>517
>>518
ありがとうございました!早速使ってみます。
あと、
「透明からどんどん出現させつつ指定距離まで滑らかに移動」
ということをやりたいのですが

speed = (movedx - instance.x)/10;

で滑らかに移動するということではできたのですが
0から移動を開始しこれにさらにmovedxに到達した場合、アルファを100%にする
という計算式があれば教えて下さい。

よろしくおねがいします。
520519:2008/12/04(木) 09:05:37 ID:yTmjKs64
すいません、tweenerというのを発見したので勉強してみます。
ありがとうございました。
521Now_loading...774KB:2008/12/04(木) 16:10:31 ID:pZlrt/Hr
AS2で、
MC.onEnterFrame = func;
function func(){
trace(this);
//結果 _level0.MC
}
のようにインスタンスのパスを取得できたのですが、
AS3ではどうすればよいのでしょうか。

MC.addEventListener(Event.ENTER_FRAME, func);
function func(e:Event):void {
trace(this);
//結果 [object MainTimeline]
}
のように書いても取得できませんでした。
522Now_loading...774KB:2008/12/04(木) 17:12:54 ID:zo49XH68
二次配列のソートをしたいのですが、
array={{100,c},{30,b},{80,c},{70,b},{1000,a}}
をソートして、
array=={{30,b},{70,b},{80,c},{100,c},{1000,a}}
と言う風に並べ替えたいです。数字だけのソートで、文字列は数字から分離せずについてくるようにしたいのですが、
何かいい案は無いものでしょうか?
AS2
523Now_loading...774KB:2008/12/04(木) 17:15:07 ID:clD3RH46
>>522
array.sortOn()
って、それarrayじゃなくてobjectやん
524Now_loading...774KB:2008/12/04(木) 18:05:00 ID:spanOYDw
AS3で参考書?を見ながら同じ物を作ろうかと思ってます。
微妙に動作が違っていてどこが違うか分からなかったんですが、
よく見ていたところ、パブリッシュ設定の画面で、見本はHTML
という項目がなかったのに対して自分が作っているものにはありました。
このHTMLの項目がないっていうことはどのような操作をしているのでしょうか?

525Now_loading...774KB:2008/12/04(木) 18:21:52 ID:mUWUWCt9
>>524
パブリッシュ設定の[形式]の項目のタイプ設定で、HTMLの欄のチェックがついてないだけじゃね?
526Now_loading...774KB:2008/12/04(木) 18:32:58 ID:spanOYDw
>>525
あ・・・りがとう
527Now_loading...774KB:2008/12/04(木) 18:43:58 ID:hhOfOzi5
Flash-CS3-ProをWinXP-Proで使っています。ASは3.0です。

ステージ上のMC(mc1)を押すと、その隣にあるテキストフィールドのキャレット位置を先頭に
来るようにしたく思っています。 つまり、 [|          ] な感じです。
動作はMC(mc1)にリンケージしたasファイルに書いています。

AS2.0以前なら、テキストフィールドのインスタンスをtxt1とすると、on (release) などで
Selectionクラスを使って
Selection.setFocus(_root.txt1);
Selection.setSelection(0, 0);

とすれば出来たので、AS3.0でも同じような感覚で下のように書きましたがキャレット自体が
現れません。
MovieClip(this.parent).txt1.selectable=true; //MovieClip(this.parent)はRootのステージです
MovieClip(this.parent).txt1.alwaysShowSelection=true;
MovieClip(this.parent).txt1.setSelection (0,0);

どうしたら良いでしょうか?
528Now_loading...774KB:2008/12/04(木) 18:54:09 ID:g3cG6UAd
AS3の質問です。

AS2では、下記でウィンドウを閉じていました。
on (release) {
getURL("javascript:window.close();");
}


AS3ではどう書けば良いのでしょうか。

下記のように getURLに近いものを用意したのですが、動作しませんでした。
(javascript:window.close(); でなく、html名を記述するとリンクしました。
 リンク動作自体は間違っていないようです)

stage.addEventListener( MouseEvent.CLICK , WinClose );
function WinClose( event:MouseEvent ) {
var url:URLRequest = new URLRequest( "javascript:window.close();" );
navigateToURL( url );
}
529Now_loading...774KB:2008/12/04(木) 21:58:35 ID:YHLj7mhJ
>>527
Stageのfocusプロパティにtxt1を設定すればいいんでね?
stage.focus = MovieClip(parent).txt1 か?
530Now_loading...774KB:2008/12/04(木) 22:43:20 ID:zo49XH68
AS2です。
テキスト入力部分をクリックして、テキスト入力が可能になったら、ボタンbtn1を
無効にする。という処理をしたいのですが、どうしたら出来ますか?詳しい人いたら教えてください。
531Now_loading...774KB:2008/12/04(木) 23:47:45 ID:rMYDL1u+
hoge = [0,100];

a = hoge;
b = hoge;
c = hoge;

a[1] -= 50;
上記のように各変数a、b、cに配列hogeを代入してaの1番目の数から50を引きます。
これでa[1]は50になりますが、なぜかbとcの[1]まで50になってしまいます。なぜでしょうか?分かる方お願いします。
532Now_loading...774KB:2008/12/04(木) 23:51:04 ID:8iPI+nLr
参照型だからです
533Now_loading...774KB:2008/12/05(金) 00:02:07 ID:0pohxG9E
そういう仕様だからしょうがない。



ププッ
534Now_loading...774KB:2008/12/05(金) 00:03:31 ID:OnT6xeDE
>>532
レスありがとうございます。配列の場合は自動的に参照してしまうんですか?やはり
a = [0,100];
b = [0,100];
c = [0,100];
と記述するしかないのでしょうか?
535527:2008/12/05(金) 00:19:10 ID:oZdC1Kxi
>>529
Thx。出来ました。あと、

var ThisRoot:MovieClip=root as MovieClip; として、
stage.focus = ThisRoot.txt1; でもOKでした。
536Now_loading...774KB:2008/12/05(金) 00:28:37 ID:tODSg1xn
>>528
navigateToURL()でできそうだけどな。
ローカルでテストしててFlashPlayerのセキュリティにひっかかってるとか。
サーバーにhtmlとswfをうpしたらさっくり動くんじゃない?

ローカルでAS⇔JSするときにはちょっと設定が必要。
・FlashPlayerグローバルセキュリティ設定↓でローカルのswfファイルを「常に信頼する」に追加。
ttp://www.macromedia.com/support/documentation/jp/flashplayer/help/settings_manager04.html

ところでAS3、というかFlashPlayer8以降ならnavigateToURL()で"javascript:〜"するよりは
flash.net.ExternalInterface.call()する方がクールらしい。

ExternalInterface.call("window.close"); でおk。

ローカルでテストする場合は上記のセキュリティ設定が必要なの同じ。
537Now_loading...774KB:2008/12/05(金) 00:48:55 ID:tODSg1xn
>>530
txt1.onSetFocus = function(oldFocus:Object) { btn1.enabled = false; }
txt1.onKillFocus = function(newFocus:Object) { btn1.enabled = true; }
でどうだ?
538Now_loading...774KB:2008/12/05(金) 09:56:52 ID:tCbbrvg8
>>534
1つの物を3人が使おうとしても困るだろw
1人分ずつそれぞれのを作ってやる
539Now_loading...774KB:2008/12/05(金) 09:59:35 ID:+QSztMHP
>>534
すんごい分かりやすく言うと
a = hoge;
ってやってもaの中に格納されるのは[0,100]じゃなくてhogeっていう配列
だからaから引こうがcから引こうが変わるのはhoge
540Now_loading...774KB:2008/12/05(金) 12:07:59 ID:RhqQdpeP
flashdevelop + flashcs3 の環境で困っています。

flashcs3側で mcインスタンス tama を配置しました。

そして、 flashdevelop 側に tweener を入れてパスを通しました。
しかし以下のコードで main.as 20 未定義のプロパティtweener へのアクセスです とエラーが出ます。

package
{
  import flash.display.MovieClip;
import flash.display.Sprite;
  import caurina.transitions.Tweener;

public class Main extends Sprite
{
public function Main()
{
       Tweener.addTween(tama, {x:50, y:50, alpha:0.2, transition:"easeinoutquad"});
}

}
}

ちなみにパスが通っているかどうかは
import caurina.transitions.Tweener;
の行で f4 キーを押すと tweener の中身が表示されます。
よろしくお願いします。
541Now_loading...774KB:2008/12/05(金) 12:25:57 ID:OnT6xeDE
>>538-539
レスありがとうございます。配列の代入は普通とは違うんですね。勉強になりました。
542Now_loading...774KB:2008/12/05(金) 12:33:32 ID:RhqQdpeP
>>540
すいません。自己解決しました。
flashdevelop 側と flashcs3の両方に pathを通さないとだめだったみたいです。
543522:2008/12/05(金) 12:57:55 ID:sUCEXJRU
>>523
すみません。暫く調べてみましたが、解りませんでした。もしよろしければサンプル等を頂けませんか?
もしくは、ほんの少しのヒントでも構いません。助けてください……
544528:2008/12/05(金) 13:52:12 ID:SR9yn272
>>536

ありがとうございます!

情報後だしで申し訳ないのですが、すでにサーバにうp済みで、
それで困っていました。

後半で教えていただいた
ExternalInterface.call("window.close");
こちらでも試してみたのですが、上手くいきませんでした。
AS3自体まだ把握できてないところが多いので、
全く違うところでミスしているかもしれません。すみません。


やりたかったもののサンプルがAS3だったため
できるだけAS3でつくりたかったのですが、
AS2でも実現できたので、また別の機会に挑戦してみようと思います。

window.close自体は自己解決もできてない状態なのに申し訳ありません。
545Now_loading...774KB:2008/12/05(金) 13:59:19 ID:cJnUNDtf
>>544
もしかして、こういう問題だったりして。

[FireFoxでのwindow.close]
http://masakiflash.weblogs.jp/top/2006/05/firefoxwindowcl_c696.html
546528:2008/12/05(金) 15:32:36 ID:SR9yn272
>>545

いや、safariで試したんよ…

と思ったが、念のため windowsXP IE6 で
ExternalInterface.call("window.close");
といれてみたら、できたー!!!

>>536,545 トントン!!


ただ、なぜか「このウィンドウを閉じますか」のダイアログが2回出てくるので、
まだ解決しないといけないところはあるかもしれないです。
でも、とても助かりました。ありがとうございます!
547Now_loading...774KB:2008/12/05(金) 22:23:49 ID:y/AZb5iy
質問です。MX2004使用。

あるムービークリップ(movie1)に、
タイムライン別に二種類の絵柄を入れ、gotoAndPlay(フレーム)で絵柄が切り替わるようにしました

これをシーン上に置き、別のパーツを押すと
_root.インスタンス名.gotoAndPlay(フレーム) で指示を送り、絵柄を切り替える。これはうまくいったのです

で、別のムービークリップでシンボル(シンボル1)を作り、シンボル1の中にmovie1を入れ、
このシンボルをシーン上に置き、
また別のパーツから
_root.(シンボル1のインスタンス名).(movie1インスタンス名).gotoAndPlay(フレーム)と指示を出す。
ところが絵柄が切り替わらないのです。
二つのパーツの違いは、階層が一つ余計にあるだけ。
シンボル1の構造は一フレームだけで、中にムービークリップmovie1が置いてあるだけです
これは何が原因なのでしょうか?

インスタンス名を付け忘れていないかとか、そういうことは確認しました。
548Now_loading...774KB:2008/12/06(土) 00:27:09 ID:mpSZM6GB
自己解決スマスタ。
ムービークリップのインスタンス名に"-"マイナスを使用していたのが動作しない原因でした。
インスタンス名のマイナスを除くと、設計通りの動作をしました。


549Now_loading...774KB:2008/12/06(土) 01:00:58 ID:OPIsxcrd
文字列を参照渡ししたいときってどうすんの?
var obj:Object = { str:"aaa" };とかやって渡す?
もっといいやりかたない?
550Now_loading...774KB:2008/12/06(土) 02:13:56 ID:EicvLhrc
文字列だってオブジェクトだしふつーに参照渡しだろ?値は変更不可(immutable)だけど。
でも、気持ちは分かるよ。うん。
本質的には var obj:Object = { str:"aaa" }; みたいにやるしかないんじゃないかな。
ObjectよりはArray使う方が見た目スマートかなー。好みの問題かね。
var strref:Array = [ "hello" ]; とか。値の変更は strref[0] = "bye"; で。

それか public class MutableString { public var value:String; ... }; みたいにクラスを自作。
でも自作の労力に見合う使い道がなさそう。ObjectやArrayで十分じゃね?
551Now_loading...774KB:2008/12/06(土) 02:30:55 ID:nH5UQG5p
AS3に参照渡しなどない
552Now_loading...774KB:2008/12/06(土) 03:06:40 ID:OPIsxcrd
>>550
丁寧な回答THX!!
配列でやってみるよ!アリガトーニョ!
553550:2008/12/06(土) 03:54:48 ID:EicvLhrc
>>551
あーそか。参照型を値渡ししている、が正解かね?ガッコでやったような希ガス
でも549さんとは心が通じたみたいだからヨシとしようじゃないか。なぁ兄弟。
554Now_loading...774KB:2008/12/06(土) 05:28:35 ID:NW9gVOAx
>>551の嫌味に動じない>>553の漢気に惚れたぜ兄貴
555Now_loading...774KB:2008/12/06(土) 09:44:05 ID:dmddMvrv
MacOSX,CS3の環境です

ソースを読んでいてこんな処理があったんです
onProbability:Number = .2

=.なんて見たことなく、ググってもうまく見つからず、玄人の方々ならと思いやってきました。これってどんな処理なのでしょうか
556Now_loading...774KB:2008/12/06(土) 09:45:54 ID:yUp5Z/2g
0.2
557Now_loading...774KB:2008/12/06(土) 10:47:52 ID:6j2Jj+bY
AS3での質問です。

タイマーを使ってアニメを作っているのですが

/*
* mc bgshow を動かすタイマー
*/
var bgtimer = new Timer(500,1);
bgtimer.addEventListener(TimerEvent.TIMER,bgshow);
bgtimer.start();

/*
* mc domain を動かすタイマー
*/
var domaintimer = new Timer(100,1);
domaintimer.addEventListener(TimerEvent.TIMER,movedomain);
domaintimer.start();

とやってそれぞれ bgshow , movedomain を動かしています。
TIMERを一つだけ使って処理させた方が良いような気がするのですがどのようにすれば
良いのでしょうか。また、この場合、タイマーを終わらせる removeEventListerner はどこに記述すればよいでしょうか。
558Now_loading...774KB:2008/12/06(土) 11:04:21 ID:Qb6mhuqR
>>557
>TIMERを一つだけ使って処理させた方が良いような気がするのですがどのようにすれば良いのでしょうか
movedomainの中でbgshowを実行すれば良いんじゃね。
movedomainが5回実行されるたびにbgshowを実行すれば良いような。

>タイマーを終わらせる removeEventListerner はどこに記述すればよいでしょうか。
終了条件がわからないので何とも言えない。
まぁ逆に言えば「終了したい時に呼び出す」ってことなんだけど
559Now_loading...774KB:2008/12/06(土) 11:49:46 ID:6j2Jj+bY
>>558
ありがとうございます。それでやってみます。
また終了条件なんですが

var domaintimer = new Timer(100,50);//50回繰り返し処理
domaintimer.addEventListener(TimerEvent.TIMER,movedomain);

とすれば domaintimer が 50 回実行されたらストップしますよね。
その際は
domaintimer.removeEventListener(TimerEvent.TIMER,movedomain);

をやらなくても 大丈夫なんでしょうか。
50回繰り返し処理後に自動的に イベントリスナーが削除されるみたいな。
560Now_loading...774KB:2008/12/06(土) 15:07:03 ID:yG0aem3a
質問させて下さい。

ActionScript3.0でステージ全体ではなくて
特定のムービークリップだけを縦横比を保ったまま
ウィンドウに合わせるにはどう記述すればよいんでしょうか?

本を見てもステージスケールの事しか書いてなくて困っています。
561Now_loading...774KB:2008/12/06(土) 15:29:39 ID:lJidIBmN
すいません基本的な質問かもしれませんが聞いていいですか?

(x1、y1)から (x2、y2)へのMCのトゥイーンをアクションスクリプトで行う場合、
まず先にx座標だけトゥイーンし、xが完了後次にy座標のトゥイーンをするようにしたいのですが、
この場合、アクションスクリプトはどうなるんですかねぇ?
562Now_loading...774KB:2008/12/06(土) 16:10:23 ID:7qHGligw
>>561
そのまんま先にx座標を動かして次にy座標を動かせばいいんじゃないですかねぇ?
563Now_loading...774KB:2008/12/06(土) 16:24:36 ID:lJidIBmN
例えばインスタンスMCをTweenする場合

var Mytween:Tween = new Tween( MC, "x", Regular.easeOut, x1, x2, 3, true);
var Mytween:Tween = new Tween( MC, "y", Regular.easeOut, y1, y2, 3, true);

ってするとx、y座標同時にTweenしてしまうんです。
x→yの順序のつけ方が分からないんです。
564Now_loading...774KB:2008/12/06(土) 16:25:44 ID:PJudY1pc
xのトゥイーンは終わってからyをトゥイーンしろって事でしょ
565Now_loading...774KB:2008/12/06(土) 16:37:35 ID:lJidIBmN
同じフレーム内で行いたいのですが
566Now_loading...774KB:2008/12/06(土) 16:45:12 ID:ng+jMWIo
だれか>>543お願いします……
567Now_loading...774KB:2008/12/06(土) 16:55:07 ID:YLHhLiFt
var MytweenX:Tween = new Tween( MC, "x", Regular.easeOut, x1, x2, 3, true);

MytweenX.onMotionFinished = function(){
var MytweenY:Tween = new Tween( MC, "y", Regular.easeOut, y1, y2, 3, true);
}

とかじゃないの?
568Now_loading...774KB:2008/12/06(土) 17:11:29 ID:lJidIBmN
>567
ありがすっ! やってみます
569Now_loading...774KB:2008/12/06(土) 18:05:27 ID:yG0aem3a
560です。

他の板で教えて頂き解決しました。
ありがとうございました。
570Now_loading...774KB:2008/12/06(土) 18:37:41 ID:EicvLhrc
>>522,543
var array:Array = [[100,"c"],[30,"b"],[80,"c"],[70,"b"],[1000,"a"]];
array.sortOn(0, Array.NUMERIC);
571Now_loading...774KB:2008/12/06(土) 18:58:37 ID:3CTXVwTU
WinXP-ProでFlash-CS3-Proを使っています。ASは3.0です。

本やWebを参考にキーコードを得るASファイルを作成しましたが、Stage内のテキストフィールドを
クックしないと特定のキーコードしか得られないので困っています。

ASファイルのコンストラクタには
stage.addEventListener (KeyboardEvent.KEY_DOWN, keyCode_check);

と書いて、呼び出す関数には、
public function keyCode_check (keyEvt:KeyboardEvent) {
trace ("keyタイプ: "+keyEvt.type);
trace ("Keyコード: "+keyEvt.keyCode);
trace ("Charコード: "+keyEvt.charCode);
}

としました。この場合、単にキーを打つと特定のキーしかtraceで出力されず、Stage内のテキスト
フィールド(インスタンス名txt:何もイベントや関数を設定していない)をクリックして初めてtrace
が出ます。
例: 何もしない場合、Dキーを押すとtraceされるがAキーはtraceされない。Aキーはテキストフィールド
をクリックするとtraceできる。

考えられる原因は何でしょうか?
572Now_loading...774KB:2008/12/06(土) 19:52:23 ID:ng+jMWIo
>>570
どうもありがとうございました。でも、これだと小数点の時にソートが出来ないんですよね……
小数点の降順でソートする時にはどうすればいいのでしょうか……?申し訳ありませんが今一度お力を貸してください。
573Now_loading...774KB:2008/12/06(土) 20:05:42 ID:ng+jMWIo
array={タグ,13.792,null,2.142,ポイント,25.025,タグ,19.644,タグ,22.281,null,10.770,ポイント,31.686,タグ,78.304,タグ,54.513}
をtrace(tagmain.sortOn(1, Array.NUMERIC)); でソートすると
null,10.770,タグ,13.792,タグ,19.644,null,2.142,タグ,22.281,ポイント,25.025,ポイント,31.686,タグ,54.513,タグ,78.304
と成ってしまうんですよね……
パッと見上手くいったと思ったら2.142が真ん中に入ってる……
試しに1000倍してソートしても
null,10770,タグ,13792,タグ,19644,null,2142,タグ,22281,ポイント,25025,ポイント,31686,タグ,54513,タグ,78304
となるだけで変わってない。これって何ででしょう?
574Now_loading...774KB:2008/12/06(土) 21:43:14 ID:EicvLhrc
>>570
>でも、これだと小数点の時にソートが出来ないんですよね……
えー、そうなんだ。Array.NUMERICショボイな。んじゃ↓。

var array:Array = [[2,"c"],[1.3,"b"],[0.8,"c"],[0.7,"b"],[10.1,"a"]];
var compare:Function = function (o1:Object, o2:Object):int {
 var n1:Number = Number(o1[0]);
 var n2:Number = Number(o2[0]);
 return (n1 == n2) ? 0 : (n1 < n2) ? -1 : 1;
}
array.sort(compare);

降順なら、
array.sort(compare, Array.DESCNDING);
575574:2008/12/06(土) 22:05:22 ID:EicvLhrc
うへぇ typoした

降順なら、
array.sort(compare, Array.DESCENDING);

それか、compareの比較を逆にして単に array.sort(compare)。
var compare:Function = ... {
 ...
 return (n1 == n2) ? 0 : (n1 > n2) ? -1 : 1;
}
array.sort(compare);
576Now_loading...774KB:2008/12/07(日) 16:57:12 ID:RU7csk68
actionscript3.0です
TextFieldにhtmlTextでimgタグを使って画像表示しているのですが
この表示した画像のwidthとheightを調べる事ってできますでしょうか?
577Now_loading...774KB:2008/12/07(日) 20:27:14 ID:B9fQNmTv
そうめん便利だあああああああぁぁぁぁっ!!!
578Now_loading...774KB:2008/12/07(日) 20:49:50 ID:sKVeilRF
>>577
どういうときに使うのかわからん
スレッドねぇ…どう便利?
579Now_loading...774KB:2008/12/07(日) 20:52:29 ID:B9fQNmTv
>>578
一切EventListenerを使うことがなくなった!
EventListener地獄から抜け出せるということだけでも大満足!!
ついでにTweenerThreadを使ったプログラムからのアニメーションが超便利!!
興奮して鼻血でそー!!w
580Now_loading...774KB:2008/12/07(日) 20:57:38 ID:B9fQNmTv
>>578
SerialExecutorを使うと
簡単に タイトル画面 → ゲーム画面 → ゲームオーバー → タイトルに戻る
とかできるのも最高!
そうめん使ってないときはいろんなものが開放しにくかったから
まともにタイトル画面に戻るような処理ができんかった。

EventListenerでがんばるとスパゲッティになるしねw
581Now_loading...774KB:2008/12/07(日) 21:01:04 ID:B9fQNmTv
addEventListener( Event.INIT, 〜〜〜〜〜
とか一回実行されたらすぐ開放しなきゃならんとかアホらしw
そうめんそうめん!
582Now_loading...774KB:2008/12/07(日) 21:34:36 ID:6aQSaHuI
>>576
TextField.getImageReference()
583Now_loading...774KB:2008/12/07(日) 21:47:16 ID:yQu4fZBG
スレチ
584Now_loading...774KB:2008/12/07(日) 21:59:56 ID:nJnrJfmL
>>577
検索して初めて知った 凄く便利そうに見えるけどなんかよく分からない
簡単に説明して!
585Now_loading...774KB:2008/12/07(日) 22:11:03 ID:SQc0VfSj
スレ違い
586Now_loading...774KB:2008/12/07(日) 22:22:23 ID:B9fQNmTv
>>584
実はオレもマルチスレッドプログラミングしたことないからアレなんだがw

そうめんを使うとイベントリスナーを使う必要がなくなる
なぜなら、そうめんのthreadにeventメソッドが存在するから。

そうめんのeventメソッドは
event( mc, MouseEvent.CLICK, Click );
のように記述するんだけど、上記のコードはmcってムービークリップをクリックすると
Clickメソッドが呼ばれるのね。
ここまでの説明だとaddEventListernerと一緒。

だけどそうめんのeventは一回しか実行されない。
event( mc, Event.ENTER_FRAME, EnterFrame );ってやっても
EnterFrameはフレーム毎に呼ばれない。
そうめんのイベントは一回呼ばれたら即効でremoveEventListenerされると考えるといいかも(たぶん)
このおかげでremoveEventListenerする必要がない。

え?じゃあどうやってフレーム毎に処理すんの?って話だけどそれは
呼び出したEnterFrameメソッドの中でnext(EnterFrame)を書けばOK
これでEnterFrameメソッドがフレーム毎に呼ばれる。
nextメソッドは次に処理する関数を決めるもの。

この、nextメソッドに処理が移るタイミングは、そうめんの初期化で
Thread.initialize(new EnterFrameThreadExecutor());
決めることが出来る(上のコードはたぶんスレッドの実行タイミングをフレーム毎に設定して初期化という意味)
587Now_loading...774KB:2008/12/07(日) 22:24:46 ID:B9fQNmTv
スレチなのであとはマニュアルを熟読するのだ!!
おれはそうめんのおかげで天使になれたぜ!
588Now_loading...774KB:2008/12/07(日) 22:29:54 ID:nJnrJfmL
なんとなくわかったっ
AS2→3でEventListener馴染みないなー めんどくさいなー とか思ってたから
そうめん勉強してみようかな 何か色々楽そうだし
589Now_loading...774KB:2008/12/07(日) 22:33:15 ID:B9fQNmTv
>>588
おれは2日で脳みそからそうめん汁溢れたから
がんばってそうめん汁をすすり始めたほうがいい!ってオレなんでこんな宣伝してんだw
とにかく超便利!

みんなスマソ
590Now_loading...774KB:2008/12/07(日) 22:37:40 ID:lR9afnz8
そうめんというものを初めて知って
そんでもって印象は最悪だ うるさすぎ
591Now_loading...774KB:2008/12/07(日) 22:41:31 ID:B9fQNmTv
>>590
許して〜ニョ!
592Now_loading...774KB:2008/12/07(日) 22:49:33 ID:6aQSaHuI
スパムったせいでそうめんの印象が悪くなったな。
ID:B9fQNmTv は技術交換スレにでも逝っとけ。でもまたスパムって嫌わんなよw
593Now_loading...774KB:2008/12/07(日) 23:23:56 ID:w8+g9DjY
>>592
よくわからんが何でそんなに引き延ばしたがんの?
594571:2008/12/08(月) 04:50:17 ID:1fFM9P2d
すいません。上のキーコードの件、お願いします。
595Now_loading...774KB:2008/12/08(月) 11:09:22 ID:zibHGb6x
>>571
ほんとだ
ナニコレw
596Now_loading...774KB:2008/12/08(月) 11:14:25 ID:zibHGb6x
>>571
原因分かったよ!
えっとね、Aキーを押すと裏で動いてるFlash CS3が反応するからダメなの。
ようするにパブリッシュしたSwfを実行すれば反応する。
気にせず開発を続けるべし!!
597Now_loading...774KB:2008/12/08(月) 13:13:17 ID:DRcUGYbs
MCのswapDepthsが完了したかどうかのイベントって取得できますか?
598Now_loading...774KB:2008/12/08(月) 13:20:39 ID:2PaK7QqS
>>596
プレビューで確認する時は制御のキーボードショートカットを無効、にすればいい。
599571:2008/12/08(月) 17:27:10 ID:IE1Xiu0i
>>595-596
さんきゅう!
600Now_loading...774KB:2008/12/08(月) 17:29:31 ID:ZMzRJVbF
フラフラランダム移動にフェードインを付けたい。
右側から左方向へ移動させたい。
ttp://nuko.info/cps/#spr03
ttp://oshiete1.goo.ne.jp/qa912178.html
↑参考スクリプト
XP、AS1.0、ParaFla
------------------------------------------------------------------
onClipEvent(load){
//設定==========================
x1a = 100; //開始x座標 (1 = 1px)
x1b = null;
x2a = 25; //終了x座標 (1 = 1px)
x2b = 300;
y1a = 10; //開始y座標 (1 = 1px)
y1b = null;
y2a = 10; //y座標のズレ (1 = 1px)
y2b = null;
widtha = 150; //揺れ幅 (1 = 1px)
widthb = 250;
yspda = 10; //揺れ速度 (1 = 0.01θ/frame)
yspdb = 40;
xspda = 6; //下降/上昇速度 (1 = 0.1px/frame)
xspdb = null;
601Now_loading...774KB:2008/12/08(月) 17:30:12 ID:ZMzRJVbF
scalea = 100; //大きさ (1 = 1%)
scaleb = null;
alphaa = 100; //不透明度 (1 = 1%)
alphab = null;
rota = 50; //回転速度 (1 = 0.1°/frame)
rotb = null;
dupeca = 5; //発生間隔 (1 = 1frame)
dupecb = null;
remove = 0; //最後に [0:即座に消す / 1:数フレーム後に消す / 2:消さない]
remcount = 1; //↑が[1]の場合のフレーム数 (1 = 1frame)
objout = 1; //消え方 [0:普通に消す / 1:透明度を下げて消す / 2:縮小して消す / 3:1と2]
outalp = 4; //↑が[1]の場合の透明度低下量 (1 = 1%/frame)
outscl = -10; //↑が[2]の場合の拡縮率 (1 = 1%/frame ... +:拡大 -:縮小)
602Now_loading...774KB:2008/12/08(月) 17:31:03 ID:ZMzRJVbF
//以下数値算出===================
if(y1b == null || y1a == y1b){
y1 = y1a;
}else{
y1 = Math.floor(Math.random() * (y1b - y1a +1)) + y1a;}
if(y2b == null || y2a == y2b){
y2 = y2a;
}else{
y2 = Math.floor(Math.random() * (y2b - y2a +1)) + y2a;}
if(x1b == null || x1a == x1b){
x1 = x1a;
}else{
x1 = Math.floor(Math.random() * (x1b - x1a +1)) + x1a;}
if(x2b == null || x2a == x2b){
x2 = x2a;
}else{
x2 = Math.floor(Math.random() * (x2b - x2a +1)) + x2a;}
if(widthb == null || widtha == widthb){
width = widtha;
}else{
width = Math.floor(Math.random() * (widthb - widtha +1)) + widtha;}
603Now_loading...774KB:2008/12/08(月) 17:31:54 ID:ZMzRJVbF
if(yspdb == null || yspda == yspdb){
yspd = yspda / 100;
}else{
yspd = (Math.floor(Math.random() * (yspdb - yspda +1)) + yspda) / 100;}
if(xspdb == null || xspda == xspdb){
xspd = xspda / 10;
}else{
xspd = (Math.floor(Math.random() * (xspdb - xspda +1)) + xspda) / 10;}
if(scaleb == null || scalea == scaleb){
_yscale = scalea;
_xscale = scalea;
}else{
_yscale = Math.floor(Math.random() * (scaleb - scalea +1)) + scalea;
_xscale = _yscale;}
if(alphab == null || alphaa == alphab){
_alpha = alphaa;
}else{
_alpha = Math.floor(Math.random() * (alphab - alphaa +1)) + alphaa;}
if(rotb == null || rota == rotb){
rot = rota / 10;
}else{
rot = (Math.floor(Math.random() * (rotb - rota +1)) + rota) / 10;}
if(dupecb == null || dupeca == dupecb){
dupec = dupeca;
}else{
dupec = Math.floor(Math.random() * (dupecb - dupeca +1)) + dupeca;}
604Now_loading...774KB:2008/12/08(月) 17:38:53 ID:bXBeISnO
>>600-603

丸投げwwww
ParaFlaスレに池
605Now_loading...774KB:2008/12/08(月) 17:39:19 ID:ZMzRJVbF
theta = Math.floor(Math.random() * (Math.PI * 200)) / 100;
dy = y2 / ((x2 - x1) / xspd);
count = 0;
flag = 0;
stp = 0;
_x = x1;
zure = 0;
if(!_parent.num){_parent.num = 0;}
}
-
onClipEvent(enterFrame){
//フェードイン===================
if(objout == 2){
this._yscale += inscl;
this._xscale += inscl;
if(_yscale >= 0 || _xscale >= 0){
stp = 5;
this.removeMovieClip();}
}
606Now_loading...774KB:2008/12/08(月) 17:40:16 ID:ZMzRJVbF
//以下規定事項===================
if(stp == 0){
_y = Math.sin(theta) * width + y1 + zure;
_x += xspd;
_rotation += rot;
theta += yspd;
zure += dy;
if(flag == 0){
count++;}
if(count >= dupec && flag != 1){
_parent.num++;
if(_parent.num > 1000000000){_parent.num = 1;}
flag = 1;
duplicateMovieClip(_parent.a0,"a"+_parent.num,_parent.num);}
if(x1 > x2){
if(_x <= x2){stp = 1;}
}else if(x1 < x2){
if(_x >= x2){stp = 1;}
}
}else if(stp == 1){
if(remove == 0){
stp = 2;
}else if(remove == 1){
remcount--;
if(remcount <= 0){
stop();
stp = 2;}
}else if(remove == 2){
stop();
stp = 5;
}
607Now_loading...774KB:2008/12/08(月) 17:41:15 ID:ZMzRJVbF
}else if(stp == 2){
if(objout == 0){
stp = 5;
this.removeMovieClip();
}else if(objout == 1){
this._alpha -= outalp;
if(_alpha <= 0){
stp = 5;
this.removeMovieClip();}
}else if(objout == 2){
this._yscale += outscl;
this._xscale += outscl;
if(_yscale <= 0 || _xscale <= 0){
stp = 5;
this.removeMovieClip();}
}else if(objout == 3){
this._alpha -= outalp;
this._yscale += outscl;
this._xscale += outscl;
if(_alpha <= 0 || _yscale <= 0){
stp = 5;
this.removeMovieClip();}
}
}}
//---------できるだけコードも示す
608Now_loading...774KB:2008/12/08(月) 17:50:37 ID:LhJbcOYL
阿呆だな
609Now_loading...774KB:2008/12/08(月) 18:09:19 ID:SnhutCKe
質問するときは要点をまとめて簡潔にするもんだ
小汚いソース延々と貼り付けたところで誰も読まないよ
610Now_loading...774KB:2008/12/08(月) 19:15:59 ID:zibHGb6x
AS3でプログラミングしてるんだけど
ルートとかステージとかにアクセス出来たり出来なかったりするじゃん?
だから今までは必ずnewするときにnew Hoge(main);とかやって渡してたんだけど
もういっそのことドキュメントクラスにstaticなプロパティ追加して

public class Main extends MovieClip
{
public static var _this:Main;
public static var _stage:Stage;

public function Main()
{
_this = this;
_stage = stage;
}
}

ってやってどこからでも
Main._rootでルートにアクセス
Main._stageでステージにアクセスできるようにしちゃったんだけど
これってよくないのかなぁ?

どうもプログラミングスタイルが固まらない・・・。
611Now_loading...774KB:2008/12/08(月) 19:23:41 ID:i9pZxBuT
>>610
AS3.0のパス設定はオレも悩んだ(今でも悩むw) そこで、
var RootDesu:MovieClip=root as MovieClip;
とか
MovieClip(root) は?

612Now_loading...774KB:2008/12/08(月) 19:33:26 ID:SnhutCKe
rootやstageにアクセス出来たり出来なかったりってのは
表示リストに追加する前にアクセスしようとするくらいしか思いつかないが
addChildしてからアクセスしてる?

まぁスタイルは人それぞれだから好きにすればいいんだろうけど
613Now_loading...774KB:2008/12/08(月) 19:51:03 ID:zibHGb6x
>>611
ああーそれやるやるww
MovieClip(root)もやったw
MovieClip(root).addChild( hoge )とかw
ぱっと見なにしてんのかよくわかんないw

>>612
そうそう、addChildしたらアクセスできるようになるけれど
たとえばMovieClipを継承していないクラスがrootにアクセスしたいときとかさ!
そんなトキは起こらないのかな?
手元にaddChildされたMovieClipがあればrootやstageにはアクセスできるわけだから
そいつを通せばいいのか・・・??
ああー悩む

今回のpublic static var _this:Main; は便利だけどなんかしちゃいけないことをしているような気がする…。
614Now_loading...774KB:2008/12/08(月) 19:58:35 ID:zibHGb6x
そもそもオブジェクト指向言語において静的メンバの使い道がわからん
使った瞬間そっから超裏技プログラミングになるし
615Now_loading...774KB:2008/12/08(月) 20:15:54 ID:SnhutCKe
>>614
代表的なものでいうならSingletonパターンとかだろうね

デザインパターンの本を一通り読んだほうが解決が早いかもよ
おれは枕のかわりにしてしまっているけど
616Now_loading...774KB:2008/12/08(月) 20:56:20 ID:VZ4MUzo3
>>615
http://ja.wikipedia.org/wiki/Singleton_パターン
なるほど、privateなコンストラクタを定義して
オブジェクトを作ることのできないクラスを作るという発想は無かった
勉強になる!
615氏の枕代わりの書物の詳細きぼんぬ!
617Now_loading...774KB:2008/12/08(月) 21:16:38 ID:SnhutCKe
うれしいこと言ってくれるじゃないの

まい枕のタイトル
「オブジェクト指向における再利用のためのデザインパターン」
618Now_loading...774KB:2008/12/08(月) 21:19:00 ID:NC3lx8PJ
なんかクラスとかステージとかごちゃごちゃ出てきてわけわかめになったんだけど、
AS3.0でAS2.0のグローバル変数(_root.hogeみたいなの)に当たるものって無いの?

そういう相違ばっかり纏めた本が欲しいけど無いな…
なんかもう根本的に違うから相違みたいな書き方じゃ無理なのかしら
619Now_loading...774KB:2008/12/08(月) 22:08:39 ID:A7AcGFrt
読み物じゃないけど、相違の一覧なら。
ttp://livedocs.adobe.com/flex/3_jp/langref/migration.html


>>610がやってるような、Mainみたいにアプリケーション内で唯一かつ不変なものを
staticにしてグローバルにアクセスできるようにするのは一般的な手法だよ。

public class Main extends MovieClip {
 private static var _main:Main = null;
 public static function get main():Main { return _main; }

 public function Main():void {
  super();
  _main = this;
  ...
 }
}

「グローバル変数は悪」というけど全てが悪なのではないよ。適切な使い方もあるってことで。
620Now_loading...774KB:2008/12/08(月) 23:59:25 ID:Wpt98DKf
>>619
お!?一般的な手法だったんだ
それは知らんかった。
じゃあさっそくつかってやってみよっと
621Now_loading...774KB:2008/12/09(火) 00:02:44 ID:6eSR8THZ
>>619
お!?一般的な手法だったんだ
それは知らんかった!
じゃあさっそくつかってやってみるわ
おれも「グローバル変数は悪」と教わったけど、もしほんとうにそうなら
悪と感じるまでやってみればいいんだよな〜
622Now_loading...774KB:2008/12/09(火) 00:03:25 ID:6eSR8THZ
orz
2重で書いちった
623Now_loading...774KB:2008/12/09(火) 09:36:35 ID:NS/hq8Ga
>>610>>619
これは何をやってるの?最上位に仮のMC(オブジェクト?)っぽいもの作ってそこにみんなでアクセスしよう、ってこト?
624Now_loading...774KB:2008/12/09(火) 11:03:17 ID:vg1e6PmS
質問ですが、

子MCをremoveChildで削除したとき、その中で定義したイベントを親MCで一括し、removeEventListenerできますか?
通常、子MC内で定義したイベントってremoveChildだけじゃ消えないですよね??
625Now_loading...774KB:2008/12/09(火) 11:13:32 ID:FiPPvTgS
>>624
参照が無くなった場合にはいずれはGCされるけど、それまで無意味なリスナーの処理は動き続ける
そのMCでの終了処理(リスナーの非活性化とか)を行うメソッドを作っておいて、
削除するときはその前にそのメソッドを呼ぶようにするといい
626Now_loading...774KB:2008/12/09(火) 11:48:33 ID:XR1pnjqb
var mother:MovieClip = new MovieClip();
mother.addChild( new MovieClip() ); //←ここ
addChild( mother );

removeChild( mother );
mother = null;

これってmotherに作られたMovieClipってGCされる??
627Now_loading...774KB:2008/12/09(火) 11:54:11 ID:vg1e6PmS
>>625

ありがとうございました。
GCされるタイミングって決まってないんですよね?

子MCで
addEventListener(Event.REMOVED, finish);
function finish(e:Event):void{
hoge.removeEventListener(MouseEvent.CLICK, hoge1);
hoge.removeEventListener(Event.ENTER_FRAME, hoge2);
  ・
  ・
  ・
}
みたいな物を書いたのですが、どうも反応せず。Event.REMOVEDの使い方まちがっているのかな。
調べてみます。
628Now_loading...774KB:2008/12/09(火) 11:57:01 ID:Ljf3xFGx
>>624
Event.REMOVED か Event.REMOVED_FROM_STAGE を使うと良いと思う
removeChild が呼ばれたときに発生するイベント。
二つの違いはリファレンス見てくれ
629Now_loading...774KB:2008/12/09(火) 12:23:23 ID:XR1pnjqb
>>627
そうめんつかえばいいのに・・・
またスパムとか言われそうだけど
630Now_loading...774KB:2008/12/09(火) 12:49:14 ID:hi6RrxKI
acs2です。
setIntervalって定期的に実行するには便利だけど、
たとえば60秒周期でfunc()をファイアーさせようとすると、
setInterval(this, "func", 60000, arg1, arg2);
みたいな書き方になると思います。でもこれだと最初に60秒休んじゃうんだよね。
60秒休み
func()
60秒休み
みたいになるんだけど
func()
60秒休み
func()
みたいな感じにできないかね。
631Now_loading...774KB:2008/12/09(火) 12:56:57 ID:FiPPvTgS
>>630
最初にfunc()を1回呼んでからsetIntervalすればいんじゃね
632Now_loading...774KB:2008/12/09(火) 13:28:08 ID:hi6RrxKI
>>631
あー、
func()は一度呼び出すと行ったっきりになるんです。
で、intervalだとcelarIntervalできるんでいわゆる多重起動の防止になる、。。

と思い込んでいたが、clearintervalしても処理は続くよね。
なんとなくclearIntervalはkillしてくれるちうふうに勘違いしてた!
全然別のことだがバグが見えた!
633Now_loading...774KB:2008/12/09(火) 17:51:55 ID:zS3+bsZP
環境は OS:WinXP-Pro,ソフト:FlashCS3-Pro(Player9.0,AS3.0)

入れ子のMC内にaddChildAt()で追加したMCのフレームが移動できず困っています。

ステージ上のMC(axis0)内に子MC(newStage)を置き、ボタンをクリックしてaddChildAt()でこの中に複数の
円形MC(pathMC0〜pathMC5)を置くようにしています。
これら円形MCは2つのフレームを持っており、これ自体をクリック(MouseEvent.MOUSE_DOWN)することで
フレームアクションで2つのフレームを交互に行き来し色が変わるようにしたく思っています(白⇔オレンジ)

テストとして円形MCを単独でステージに置いてクリックすると白⇔オレンジの色変化は出来ますが、本題
のFlashに組み込むと変化が起こりません。以下は円形MCのフレームアクションの記述です。

function thisPressed (mouseEvt:MouseEvent) {
frameNum++; //frameNumはuint型
if (frameNum>2) {
frameNum=1; //frameNumが2を超えたら1に戻る
}
trace ("属性= "+this.name+", "+frameNum);
this.gotoAndStop (frameNum); //指定フレームに移動
}

この場合、フレーム移動しないのもさることならがら、traceで得られるframeNumが本来 1→2→1→2→・・・
となるべきものが同じ円形MCをクリックし続けても2のままです。
(属性のthis.nameは正しく得られています)

考えられる原因は何でしょうか?
634Now_loading...774KB:2008/12/09(火) 18:15:43 ID:UaiLR9eX
>>633
thisって一体何?
そのスクリプトだけだとムービークリップの参照ができてないと思うんだけど

frameNumの処理は正しいからちゃんと1→2→1→2って動いたよ
問題はそこ以外が絡んでる気がする
635Now_loading...774KB:2008/12/09(火) 20:24:07 ID:Q2Q7jScb
>>625
おれ、AS3からの新参者なんだけど、enterFrameとかマウス/キーイベントとか、
DisplayObject関係のイベントって、removeChildされてStage上から外れたら、
どうせイベント自体が届かなくなるからがんばってremoveEventListenerしなくても
GCまかせでいいやー、と思ってたんだけどちゃんと削除しとかないとマズイの?

ゴミがたまってメモリバカ喰いとかしてそのうち不安定になっちゃったりする?
636Now_loading...774KB:2008/12/09(火) 20:50:04 ID:FiPPvTgS
>>635
オブジェクトを消すときには、
リスナーの除去、タイマーの停止、MCのプレイヘッドのstop()、消すオブジェクトを
参照しているオブジェクトのチェックの4つをしましょう
参照を失ったMCでもstop()してないとGCされるまでプレイヘッドは動き続けます
幽霊がCPUパワーを奪っているわけですな
637Now_loading...774KB:2008/12/09(火) 20:51:48 ID:hi6RrxKI
acs2です。
呼び出し元にイベント通知をしたいんですが、うまく動きません。
何か勘違いしていますでしょうか。。?よろしくお願いします。

1フレーム目のスクリプトで以下の様に書いております。
------------------------------
import mx.events.EventDispatcher;
mx.events.EventDispatcher.initialize(this);

addEventListener("onCompleteShow2", this);

this.onCompleteShow2 = function()
{
 trace("fugafuga");
}

myclass = new myclass();
myclass.kick(); //これを実行したらonCompleteShow2が実行されてほしい。
------------------------------
続く
638637:2008/12/09(火) 20:52:27 ID:hi6RrxKI
続き。

■myclassの中身。
------------------------------
import mx.events.EventDispatcher;

class myclass extends mx.events.EventDispatcher
{
 function myclass()
 {
  ;
 }

 function kick()
 {
  // _rootのonCompleteShow2()を起動したい。
  dispatchEvent({ type:"onCompleteShow2", target:_root});
 }
}
------------------------------
639637:2008/12/09(火) 21:26:57 ID:hi6RrxKI
>>637
this.onCompleteShow2 = function()

function onCompleteShow2()
としてもだめでした。
640637:2008/12/09(火) 21:30:47 ID:hi6RrxKI
ごめ〜ん。解決した。
myclassで
addEventListener("onCompleteShow2", _root);
をやらなきゃいけなかったぽい。
myclassからみたらonCompleteShow2がどこにあるかわからない訳ね。
了解です。
641Now_loading...774KB:2008/12/09(火) 22:39:38 ID:/RPo5vhl
AC2で書いています。
連続で座標を取得していき、前の点と次の点が近かったら点を大きく、
離れていたら点を小さくするというのは、どうやって書いたら良いのでしょうか。

距離を足したら大きくなりますし、引いても上手くいきません。
どなたか宜しくお願いします。
642Now_loading...774KB:2008/12/09(火) 22:45:34 ID:Q2Q7jScb
>>636
レスさんくす。
MovieClipを使わない静的?なアプリケーションだったら気にせんでもいい?
フォーム入力みたいに基本的に動きがなくてユーザ操作で駆動するようなアプリ。
タイマーにaddして放置したらヤバイのは分かるので不要になったらremoveはしてる。
てか、タイムラインとかいまいち分かってなくてMovieClipやSceneを全く使ったことないww

今までJavaアプリ、DHTMLなWebアプリ畑を耕してたんだけど、Flashの感覚になじめてないw
643Now_loading...774KB:2008/12/09(火) 22:47:07 ID:nZ409/Gx
>>641
近かったら点を小さく、遠かったら点を大きく、は出来るの?
出来るなら最大半径mrから距離dを引いた値を点の大きさrとして、r<1ならr=1になおすとかやればいいんでない
距離は√(x2-x1)^2 + (y2-y1)^2で求めてもいいし、専用の関数(AS2であったっけ?)を使ってもいい
644Now_loading...774KB:2008/12/09(火) 22:49:45 ID:/RPo5vhl
>>643
即レス感謝です!
さっそくやってみます!
645Now_loading...774KB:2008/12/09(火) 22:51:35 ID:vcGLddFC
>>641
2つ変数を用意。例えば、oldDist, newDist とか。

oldDist > newDist → MCのスケール小
oldDist < newDist → MCのスケール大
そしてフレーム毎に oldDist = newDist;

では?
646Now_loading...774KB:2008/12/09(火) 22:53:05 ID:5Kv1Upds
WinXP-ProでFlash-CS3-Proを使っています。ASは3.0です。

CS3(AS3.0)でオブジェクトのパスを参照するにはどうしたら良いでしょうか?
Flash8以前(AS2.0以前)なら、例えばroot上に置いたインスタンス名mcAというMCに
on (release) {
trace("this= "+this);
}

と書けば、単純に this= _level0.mcA が得られパスが参照できましたが、AS3.0では
調べてもやり方が分かりません。

よろしく願います。
647633:2008/12/10(水) 00:12:11 ID:ZZ+V2imz
>>634
レス有難うございます。

thisは円形MC(pathMC0〜pathMC5)のことで、traceでは 属性= pathMC0, 2
などと表示されます。つまり、MCの識別は出来ているようです。

試しに、
 @ MouseEvent.MOUSE_DOWN → MouseEvent.CLICK
 A MouseEvent.MOUSE_DOWN → MouseEvent.MOUSE_OVER

としたところ、@のクリックではtraceさえ現れず、Aのロールオーバーでは
一瞬2フレ目に移行しても(gotoAndStopを書いていても)直ぐに1フレ目に戻ります。

現時点で分かっているのは、
 1) MOUSE_DOWNとCLICKでは2フレに移行できない
 2) MOUSE_OVERでは移行できるが、gotoAndStopは無効

です。 イベントフローのuseCapture:Boolean を使って調べようと思いましたが、
この使い方がよく分かりません。
う〜ん、なんでやねんw
648Now_loading...774KB:2008/12/10(水) 00:30:18 ID:jUseOv/S
すいません助けてください。
AS3.0ですが
_rootにcreateEmptyMovieClipを作って
その上にforで回しながらattachMovieでムービークリップを設置してます。
その設置したムービークリップの中にあるムービークリップに画像を読み込ませたいのですがうまくいきません。。お助けください。



_root._mc = this.createEmptyMovieClip("_root", 0);
for (i = 0; i < 10; i++){
var _loc2 = _root._mc.attachMovie("box_b", "box_" + i + "_mc", i);
ここでbox_b内のムービークリップimggに画像読み込ませるスクリプトが思い浮かびません。。
}

box_b詳細
「 _root ーーーー¬
| 「 imgg ¬    |
| |ここに |   |
| 論______」   |
| |
論________________」
649Now_loading...774KB:2008/12/10(水) 00:35:22 ID:djHvpi7u
 
650Now_loading...774KB:2008/12/10(水) 00:48:19 ID:EptZN1cW
>>648
節子、それAS3ちゃう。AS2や!
651Now_loading...774KB:2008/12/10(水) 00:50:52 ID:44yRIswE
>>648
AS3.0??
652Now_loading...774KB:2008/12/10(水) 00:51:43 ID:jUseOv/S
648です。
AS2かどうかもわかっていませんでした。。お恥ずかしいです。
653Now_loading...774KB:2008/12/10(水) 01:00:01 ID:B7xU5RAA
>>652
その場合のスクリプトって思い浮かぶ物じゃないだろ。
知ってるか知ってないか、でしかない。
AS2なら画像読み込みにはMovieClipLoader使え。
使い方はヘルプとか見れば書いてあるよ。
もっともAS2か3かの区別もつかないほど知識がないなら
もっと基礎的な本かサイトで勉強してからにしたほうが
いいんじゃないのか?
654Now_loading...774KB:2008/12/10(水) 01:08:04 ID:44yRIswE
>>653
ごもっとも!
しかし今すぐに実装したいならぐぐればすぐ出るだろうね!
がんばれ!
655Now_loading...774KB:2008/12/10(水) 01:21:33 ID:EptZN1cW
AS3のFLVプレイヤーを作っていて、ローカルでテストしています。

function testInit():void{
ns.play(url);
ns.pause();
ns.seek(0);
}
としておいて、
ns.togglePause();
を実行すると正常に再生されます。
が、このns.togglePause()より前に、
ns.seek(10)をするとシークされpause状態になりますが、
その後ns.togglePause()を行っても正常に再生されません。

NetStatusEventのinfo.codeを見てみると
NetStream.Buffer.Empty
NetStream.Buffer.Full
を延々と繰り返します。

ns.bufferTimeを指定すると画像は動きますが音声がでません。
しかも、やはりNetStream.Buffer.EmptyとNetStream.Buffer.Fullを繰り返します。

どなたかこの現象が分かる方はいらっしゃいますでしょうか・・・。

656Now_loading...774KB:2008/12/10(水) 03:29:07 ID:EptZN1cW
自己レスです。
どうやら0-bufferTimeを超えるシークを行った時に起こるようです。。。
自分の頭ではbufferTimeをdurationに設定するくらいしか思いつかなかったんですが、
いい方法とはいえないので、何か他に解決方法が無いでしょうかorz
657Now_loading...774KB:2008/12/10(水) 11:27:29 ID:RDSVzWSR
AS3 CS3を使用してます

1フレームで色々と作業させているのですが間違った時にボタンを表示させてそれを押すと
まっさらにして頭からやり直しもしくは、再読込させるブラウザの更新ボタンの様な方法がありましたら教えて下さい。
658Now_loading...774KB:2008/12/10(水) 11:49:37 ID:KFPFBpck
javascript呼び出してlocation.reload()すればいいんじゃね
659Now_loading...774KB:2008/12/10(水) 14:48:33 ID:dyUV6jUM
stageWidth : ステージの現在の幅。

でなく、

width : 表示オブジェクトの幅。

でもなく、

Flashコンテンツを作ったときに指定した幅
(ドキュメントプロパティで設定した幅)
って取得できない?
660Now_loading...774KB:2008/12/10(水) 15:08:46 ID:satIw+W/
FLASH lite1.1でperlと連動させようと思っているのですが

ボタンに
on (press) {
loadVariables("url.cgi", "/mc1", "GET");
}

ルートのmc1の1フレーム目に
t_mode=10;

perl側で
&ReadParse(*in);
$hoge=$in{'t_mode'};

と書いてるのですがどうもperlがt_mode=10を受け取ってくれません。

perlからswfにデータを返すことはできたのですが。
cgiにデータを渡したいときはどうしたらいいのでしょうか?
661Now_loading...774KB:2008/12/10(水) 15:10:50 ID:Eq4utNMz
AS3.0で、this.removeMovieClip();みたいな事をやるにはどうしたらいいんでしょうか
といってもremoveChildで「自分自身」の存在を消せればいいのですが……
あらかじめタイムラインにremoveChildが書かれたMCをaddChildでおきまくって、彼らには自発的に消えてもらいたいのです。

removeChild(this)とかやると
「指定した DisplayObject は呼び出し元の子でなければなりません。」
とか怒られます
662Now_loading...774KB:2008/12/10(水) 15:16:55 ID:dyUV6jUM
>>661
removeChild( this )じゃなくて
parent.removeChild(this)だべさ
663660:2008/12/10(水) 17:29:41 ID:satIw+W/
ボタンを
on (press) {
tellTarget ("/mc1") {
loadVariables("url.cgi", "/mc1", "GET");
}
}
にしたら解決しました。
お騒がせしました。
664Now_loading...774KB:2008/12/10(水) 17:31:57 ID:07nOJpY9
as2で言う、duplicateMovieClipのような事って、
as3だとどうやるんでしょうか?

bitmapDataなら、コピーする関数は用意されているのですが、
movieClipをコピーするのは無いような・・
665Now_loading...774KB:2008/12/10(水) 19:03:10 ID:0BK1eypC
flashdevelopってfl.transition使えないのかな?
666646:2008/12/10(水) 20:10:13 ID:BcDJ9MQu
(パス参照の件)
色々調べたところ、下記のサイトが手掛かりになりました。
ttp://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=7460&forum=20

この記述を元に下の関数をメインタイムライン1に置いてみたところ、MCのパスは得られました。

function func_RootToObj (eyedObj:DisplayObject) { // RootTL1.func_RootToObj(調べたいMC);
var pathStr:String = eyedObj.name;
var parentObject:DisplayObject = eyedObj.parent;
while (parentObject != eyedObj.root) {
pathStr = parentObject.name + "." + pathStr; //パス文字列の生成
parentObject = parentObject.parent;
}
trace ("RootPATH: root."+pathStr); // RootPATH: root.〜 で出力
}

しかし、この方法ではライブラリのMC内で定義したGraphicsオブジェクトのパス(とりわけ、addChildした
MC内のGraphicsオブジェクトのパス)を調べることができません。

引数の eyedObj:DisplayObject を変えたりして試しましたが、どうしてもGraphicsオブジェクトのパスが
参照できず困っています。
是非、アドバイスを願います。
667Now_loading...774KB:2008/12/10(水) 20:29:40 ID:kUMzq7Zz
>>666
Graphics そのもののパスを取得するなんて出来ないんじゃないの
DisplayObjectを継承してないし parentプロパティもないし
668Now_loading...774KB:2008/12/10(水) 20:38:27 ID:k5/A+bSp
>>665
FlashCS3があれば使える

>>666
ムービークリップが取得できたなら、それのgraphicsプロパティかあらアクセスすりゃいいんじゃね?

669Now_loading...774KB:2008/12/10(水) 20:50:46 ID:Eq4utNMz
>>662
返事遅くなって申し訳ない
出来た!本当にありがとう!
670Now_loading...774KB:2008/12/10(水) 22:04:21 ID:dyUV6jUM
>>669
感謝の気持ちはチップでどうぞ!!

つか誰か>>659頼むw
671Now_loading...774KB:2008/12/10(水) 22:51:05 ID:Eq4utNMz
>>670
ttp://f-site.org/articles/2006/09/28203339.html
古い記事なのでとっくに解消されてて違う問題かもしれないけど、
もしかしたらバグっぽい…?
672646&666:2008/12/11(木) 00:59:47 ID:Occy1Frx
>>667-668
レス有難うございます。オブジェクトが既にステージ上にある場合、パス自体は指定出来ます。

実際、 var RootTL1:MovieClip=root as MovieClip; として、予めステージ上にMCのsubStageM
を置き、この中で var GrObj:Graphics = graphics; と定義すると、円を描く場合は
RootTL1.subStageM.GrObj.drawCircle() でOKです。

ただし上でも書いていますが、addChild用MC内にgr1としてaddChildすると、このgr1がnull扱い
になります。
つまり、addChildしたオブジェクトでは描画が出来ない状態です。

668さんの方法では、どういう記述になるのでしょうか?確かにaddChildしたMCへのパスは
取得出来ましたが、「graphicsプロパティからアクセス」が分かりません。

よろしく願います。
673Now_loading...774KB:2008/12/11(木) 02:25:23 ID:A6IAbmI/
>>672
なんか根本的な認識が違う気がする。

Stageの上に子MCを配置、子MCにさらに孫MCを配置、、、といったカタチにするよね。
StageやMovieClip, SpriteなどはみんなDisplayObjectの仲間で、Stageを最上位とした
DisplayObjectの入れ子というかディレクトリツリーのような構造になるよな。

しかし、GraphicsオブジェクトはDisplayObjectの仲間ではないのでMCの子供とはいわない。
MCのxy座標やサイズ、背景なんかとなんらかわらない単なるプロパティの一つと考えるべきだ。
つまりDisplayObjectツリー構造における「パス表現」の中にGraphicsオブジェクトが出てくること
自体が不自然なこと。

パス表現から該当するMCを取得する関数getMovieClipByPath()があったとしたら、そのMCのもつ
Graphicsオブジェクトにアクセスして描画するには↓のようになるんじゃないかな。

var mc:MovieClip = getMovieClipByPath("root.mc1.mc2.mc3");
var g:Graphics = mc.graphics;
g.beginFill(0xCDCDCD);
...

でも、わざわざパスからMCを取得してGraphicsにアクセスするくらいなら、上の例ならmc3に
いきなり直接スクリプト書いたほうがラクでねーの?
mc3内のスクリプトなら、var g:Graphics = this.graphics; なわけだし。

674646&666:2008/12/11(木) 03:18:23 ID:Occy1Frx
>>673
レス有難うございます。

そうですね。このGraphicsオブジェクトの扱いに関しては、書かれているようにmc3で
制御した方が早いですね。
675Now_loading...774KB:2008/12/11(木) 08:26:10 ID:6ya0F1xr
AC2です、簡単なはずのifがよくわからなくなりました。
もしかしたら自分の勘違いかもしれませんが…宜しくお願いします。
変数countを毎フレーム1づつ上げて行って、countが100超えたら
フレーム2に移動するというのを書きたいのです。

なら、条件文は「countが100以上」だから
count >= 100; でいいんですよね…?

でも、

var count = 0;
this.onEnterFrame = function(){

if(count <= 100){
gotoAndPlay(2);
}
this.count++;
}

こう書かないと動かないんです…。
countが加算されていないのかと思ったんですが、そんなこともないので
不思議で仕方ありません。
考えられる原因はなんでしょうか、宜しくお願いします。
676Now_loading...774KB:2008/12/11(木) 08:26:54 ID:6ya0F1xr
>>675
AS2です間違えました…!
677Now_loading...774KB:2008/12/11(木) 09:21:15 ID:bq7J2OH+
移動したけどstop()がないからループしてるとか
678Now_loading...774KB:2008/12/11(木) 09:25:33 ID:6ya0F1xr
>>677
レス有り難う御座います。
フレーム1にはstop()かけてあります。
フレーム2にも必要…ですか?
679Now_loading...774KB:2008/12/11(木) 09:43:07 ID:i8fUBfbM
分かってんのか分かってないのか知らんが
>>674 の微妙な上から目線に驚いた朝
680Now_loading...774KB:2008/12/11(木) 11:12:04 ID:uHEfl8yM
>>678
とりあえずgotoAndStop(2)でやってみようYO!
681Now_loading...774KB:2008/12/11(木) 11:21:12 ID:6ya0F1xr
>>680
やってみましたYO!
でも変わらずじまいです…、条件文おかしいですよね?
でも逆にすれば一応動作するので…いいかなと思っていますが
私が間違っているのでしょうか…うーん…
レス有り難う御座いました
682Now_loading...774KB:2008/12/11(木) 12:19:12 ID:j0vFM4LA
as3です。
大きな画像をグンと動かす際に、どうしてもカクついてしまいます。
動かすときだけ画像の品質を非常に下げたいのですが、
下げるパラメータというのは存在するのでしょうか?、
683Now_loading...774KB:2008/12/11(木) 12:48:30 ID:dkCgwWNR
AS2で、外部テキストから変数を読み込む動作について質問です。
config.txt
 コメント:これは変数1です。
 hensu1=abc

このような外部テキストを作った際に、コメント部分をコメントアウトして
変数部分のみ読み込ませることはできますか?
684Now_loading...774KB:2008/12/11(木) 14:24:06 ID:uHEfl8yM
>>681
flaどっかにあげてチョ
気になって夜も眠れない
685Now_loading...774KB:2008/12/11(木) 14:30:03 ID:uHEfl8yM
>>682
どんだけデカイんだ?w
エフェクトとかシェイプはまったく使ってないの?

ん〜どうしようかね
BitmapDataクラス低解像度な入れ物を作って元の画像を描画。
動かす瞬間に低解像度の画像に差し替えるとか?

画像を動かす際、どうやって動かすかによって重さは変わってくるよ
たとえばX、Y座標の移動ならサクサク動くけれど
デカイ画像を回転させたりしたらまた重くなるだろうとおもう。
デカイ画像を縮小表示させてる状態でX,Y軸の移動を行うんだったら
ビットマップキャッシュを使うと幸せになれるかも
686Now_loading...774KB:2008/12/11(木) 14:31:45 ID:S1rDGeDL
flvコンポーネントを使って、動画をストリーミングして、再生するシステムを作ったんだけど、
WEBに上げたら凄い重い。んで、よくよく見てみるとmovie.flaのサイズが500M近く。
flvコンポーネントってそんなに重いの・・・?解決方法ってあるかな?
687Now_loading...774KB:2008/12/11(木) 14:33:32 ID:uHEfl8yM
>>683
外部テキストを読み込んだあとすぐに
正規表現かなんかつかってコメントを削除すればいいと思われ。
ってAS2は正規表現つかえないんだっけか…

まぁ読み込んだテキストを使う前にコメント部分を省けば解決!
688Now_loading...774KB:2008/12/11(木) 14:34:56 ID:uHEfl8yM
>>686
動画の解像度を落とす!
689Now_loading...774KB:2008/12/11(木) 16:12:17 ID:hGYMRJOL
AS3で import flash.display.*; とアスタリスクで纏めてインポートするのと
import flash.display.Sprite; と使うものだけ個別にインポートするのでflash動作が軽くなるとか影響はあるのですか?

690Now_loading...774KB:2008/12/11(木) 16:23:22 ID:YBOsIur4
>>686
本当にストリーミングorプログレDLなのか?
動画をファイルに埋め込んでないか?
691Now_loading...774KB:2008/12/11(木) 17:07:46 ID:S1rDGeDL
>>688
解像度は限界まで落としてます。ってか、それにしても多すぎる気が。。。

>>686
ストリーミングです。それは間違い無いです。動画自体も20M程度ですし。
まったくの謎なんすよね。。
692Now_loading...774KB:2008/12/11(木) 17:18:09 ID:uHEfl8yM
>>691
リセットして手順を追って初めから作り直してみるといい!
ファイルをあげてもらわないと俺たちは何もできないよん
693Now_loading...774KB:2008/12/11(木) 18:01:28 ID:b/mFaEPr
AS2でローカルでは動いているのですが鯖に乗せると動かなくて。。
やってるのはテキストファイルをloadしてそのデータをまわしています。
ロードができていないのかな?
694Now_loading...774KB:2008/12/11(木) 18:03:58 ID:qGhLApCU
バイナリモードで送ってんじゃないの
ローカルで動いてるならスレチ
695Now_loading...774KB:2008/12/11(木) 18:21:23 ID:iRoYiU2x
>>693
ロードに失敗しているのか、ロード完了を待ってないのか、まずはそこから。
696Now_loading...774KB:2008/12/11(木) 18:23:04 ID:b/mFaEPr
swfファイルはバイナリで送って確認ましたしたが一緒でした。。
ロードはMyVars = new LoadVars();
MyVars.load("sample.txt");
MyVars.onData = function (csv){
としてます。
697Now_loading...774KB:2008/12/11(木) 21:07:04 ID:DfQTFxDM
・テキストファイルの上げ忘れ
・テキストファイルのパスと実際にある場所が違う
こんなとこじゃね?
698Now_loading...774KB:2008/12/11(木) 22:40:05 ID:5DFTJ5BU
>>689
import文で * にしていても、スクリプトで使っているものしかswfには組み込まれないよ。
コンパイル速度には影響はあるかもしれないけど、flash動作には関係ないみたいだね。
ttp://livedocs.adobe.com/flex/3_jp/langref/statements.html#import
699Now_loading...774KB:2008/12/12(金) 00:22:04 ID:vnFtyd+d
AS2の_root.hogeと同じ感覚で
MovieClip(root).hogeとか使ってるんだけどまずいかな
今のところ問題なさそうなんだけど
700Now_loading...774KB:2008/12/12(金) 00:43:47 ID:/bsysxN+
>>699
thisがBitmapだったり、newしただけでaddChild()する前のSpriteだったりした場合はrootがMovieClipじゃない
こともあるけど、rootがMovieClipであることが確実に分かっている状況ならいいんじゃね?
詳しくはリファレンスのDisplayObjectのrootプロパティんとこを見るべし。
701Now_loading...774KB:2008/12/12(金) 00:59:47 ID:GPfv9yu8
ムービークリップにAS付けて、レイヤーパレット上では表示に設定してても
なんかパブリッシュ設定で非表示レイヤのチェックオフにしたらAS無効になった

うまく説明できてるかわかんないし間違えてるかもしれないけど
わかるかたいます?

オンにしてパブリッシュしたら動いたから結果としては助かったんだけど
なんでだろうと...
702Now_loading...774KB:2008/12/12(金) 09:40:28 ID:vnFtyd+d
>>700
ありがとん 特殊な状況だと使えないのね
ちょっと勉強してみます
703Now_loading...774KB:2008/12/12(金) 11:09:43 ID:uDLvnotn
>>689
FlashDevelopで開発している身としては
.*でインポートすると余計なものがリストアップされるので
個人的に.*は使わなくなったッス
704Now_loading...774KB:2008/12/12(金) 18:42:04 ID:uDLvnotn
数字を4桁とかで文字列に変換するにはどうするぽ?
705Now_loading...774KB:2008/12/12(金) 18:55:46 ID:AxWqkVkL
PNGを動的に読み込みたい時はどうするのが良いですか???
706Now_loading...774KB:2008/12/12(金) 19:17:02 ID:vGkKcTs9
>>704
var num:Number = 1;
("0000" + num).substr(-4);
とかいうことかな?

>>705
as2.0ならloadMovieで、as3.0ならLoader.loadじゃね?
707Now_loading...774KB:2008/12/12(金) 19:19:21 ID:uDLvnotn
>>705
var loader:Loader = new Loader( new URLRequest("unko.png") );
loader.contentLoaderInfo.addEventListener( Event.COMPLETE, Complete );
function Complete( e:Event ):void{
  loader.content; //←これがpng
}

確認しないで打ったから間違ってるかも
708Now_loading...774KB:2008/12/12(金) 19:25:05 ID:uDLvnotn
>>706
ありがとう!すごいやり方だ!
709Now_loading...774KB:2008/12/12(金) 19:59:06 ID:vnFtyd+d
文字列として0000を足さないで、数として10000を足してから文字列として一文字目消すのもアリ
710Now_loading...774KB:2008/12/12(金) 20:00:25 ID:AxWqkVkL
>>706-707
ありがとうございます

試しにやってみましたが、
loader.contentLoaderInfo ←コレがなぜか自分の環境では見当たりませんでした
他のサイトとも見比べてみましたが綴りに間違いはないようです

環境はFlexSDK3 AS3.0 で、IDEにFlashDevelopを使用しています
711710:2008/12/12(金) 20:24:06 ID:AxWqkVkL
あーーーーーーー出来ました!

URLLoaderとLoaderを間違えて使ってた様子
本当に助かりました
712Now_loading...774KB:2008/12/12(金) 22:59:24 ID:MATMfoCm
Flash8 AS2
Menuコンポーネントの使い方が載ってるサイトが無くて困ってます。
Menuをステージに配置するとどんな意味があるのでしょうか?使い方がよくわかりません。
713Now_loading...774KB:2008/12/12(金) 23:28:34 ID:a5WvRga9
XML弄るんじゃなかったかな
ライブドックに使い方載ってると思うよ
714Now_loading...774KB:2008/12/12(金) 23:55:43 ID:FyBOBGlH
質問です!
音にあわせたて動く波形的なものを作ろうとしているのですがやり方がどうすればいいのでしょうか?
3.0であれば実装できそうな方法を見つけたのですが、2.0に応用できそうにないです...
どうか、ご教授お願いします。
715Now_loading...774KB:2008/12/13(土) 00:42:56 ID:Cvhn4jOs
as3でフレームアクションでグローバル変数を宣言しても、
他のパッケージのクラスのインスタンスから参照できません。なずですか?
716Now_loading...774KB:2008/12/13(土) 02:22:34 ID:6XUnGwmV
>>714
AS3のコードをAS2でつかえねーどうにかしろってそりゃ無理だろw
>>715
参照できるけどなwまずおまいがどうやってるか書け
717689:2008/12/13(土) 02:51:28 ID:mS0N23wK
>>698
>>703
使っているのはCS3で、結局フラッシュの動作自体にも影響無いと聞いて安心しました
ありがとうございます
718Now_loading...774KB:2008/12/13(土) 15:41:04 ID:zWVQWQo6
Windowsでflash8を使っています。
FLVコンポーネントを配置して動画を再生するわけですが、
動画が再生を終了したときに自動的に次の"フレーム"へ進んでくれるようにするにはどうすればいいのでしょうか?
if文を使うのでしょうか?だとすれば、

if(再生を終えたらならば) {//←この()カッコ内になんと記述すれば良いのかわかりません
gotoAndPlay(2);
};

果たして考え方自体が合っているのかもわからないですが、わかる方教えてもらえれば助かります。
719Now_loading...774KB:2008/12/13(土) 18:31:41 ID:Jc6+AmEw
>>718

listener:Object=new Object();
listener.イベントハンドラ名 = function(evt:Object):Void{
  ここで処理する
}
FLVPlaybackインスタンス名.addEventListener("イベントハンドラ名",listener);
720Now_loading...774KB:2008/12/13(土) 18:35:10 ID:Jc6+AmEw
>>718

var listenerObject:Object = new Object();
listenerObject.complete = function(eventObject:Object):Void {
// ここにイベント処理コードを挿入する
  // 再生終了後の処理
  gotoAndPlay(2);
};
my_FLVplybk.addEventListener("complete", listenerObject);


http://livedocs.adobe.com/flash/9.0_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002982.html
721Now_loading...774KB:2008/12/14(日) 00:59:06 ID:cNG+AGB7
WinXP-Pro,FlashCS3-Pro(AS3.0)です。

ComboBox(プルダウンメニュー)での項目の追加方法が分かりません。
ステージ上のMCをクリックしたときにアイテム数を追加するように下記のAS
を実行したところ、
 ReferenceError: Error #1069: String にプロパティ data が見つからず、デフォルト値もありません。
と出ます。

function mcClick (evt:MouseEvent):void {
this.cBox.labelField="data"+num;
this.cBox.addItemAt ("str"+num, num);
trace ("リストの個数= "+this.cBox.length);
num++;
}

ComboBoxには最初何も無く、単純に各インデックスに文字列str0, str1, ・・・ を入れるだけです。
どうしたら良いでしょうか?

なお、手元の本もWebも殆どがAS2.0以前用で、AS3.0でのサンプルが見つかりませんでした。
722Now_loading...774KB:2008/12/14(日) 01:17:36 ID:DMcymhYh
>>719-720

大変ありがとうございます。お蔭様で動かす事が出来ました。
わざわざ解説まで付けていただいてご親切にありがとうございました。
723Now_loading...774KB:2008/12/14(日) 01:54:58 ID:l4nU5Usv
724Now_loading...774KB:2008/12/14(日) 02:01:10 ID:cNG+AGB7
>>723
Thx
やってみます。
725721:2008/12/14(日) 04:03:17 ID:cNG+AGB7
(連投スイマセン)

>>723
下記の記述で出来ました。nameTで任意のラベル名を指定することが出来ました。
function mcClick (mouseEvt:MouseEvent) {
num++;
this.cBox.addItemAt ( { label:this.nameT.text+num, data:num }, num);
trace ("個数= "+this.cBox.length);
}


関連してもう1つ質問なのですが、ラベルのフォントサイズは setStyle() で設定できないの
でしょうか?ヘルプを見ると、「ComboBox でのスタイルの使用」(AS3.0)のところにsetStyle()
の使用法が書いてあり、
this.cBox.setSize(100, 22);
this.cBox.setStyle("fontSize", 16);

とすると、ComboBoxのサイズはsetSizeで変更できますが、フォントサイズの変更はできません。
どうすべきでしょうか?
726723:2008/12/14(日) 07:59:10 ID:l4nU5Usv
>>725
リファレンスをもっと活用するんだ!!
スタイルのところで「継承されるスタイルを表示」してみると、textFormatってのがあるだろ。
var tf:TextFormat = cBox.getStyle("textFormat");
tf.size = 16;
cBox.setStyle("textFormat", tf);
でどうだ?
ちなみに俺はFlex使いで、CSを知らんからちょっと違うかもしれんが大筋こんな感じのはず。

わからんことはまずリファレンスをひくんだ。これだけでかなりのことがわかるぞ。
ttp://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/

ついでにCS3のドキュメントたちも貼っとく。
ttp://www.adobe.com/support/documentation/jp/flash/
いっぱいあるけど1から全部読む必要はない。目次を眺めてどれにどんなことが書かれてるか
だけをざっくり理解しておけば、何かあったときに調べられるぞ。がんばれ。
727Now_loading...774KB:2008/12/14(日) 10:03:49 ID:tVw7pewd
http://www.beyes.jp/recommend/20/
このサイトのようにカーソルの位置によってMCが
イージングしながら動くエフェクトを使いたいのですが、
これって一体どうやったらできるのでしょうか?

是非アドバイスください。
728Now_loading...774KB:2008/12/14(日) 12:13:07 ID:xVv/fsJ/
>>727
http://hakuhin.hp.infoseek.co.jp/main/as/mouse.html#MOUSE_02
まずこの計算式で指定した位置にゆっくり近づくMCを作ることが出来る
上のサイトではその「指定した位置」が「_root._xmouse」になってるよね
そこを、好きなように変えればいいとおもう。

たとえば「_root._xmouse」だとマウスにぴったりくっついてきちゃうでしょ?
だけど「( mc._xmouse * 0.1 )」とか入れたら
そのムービークリップから離れたマウスの距離の10分の1の位置にイージングするようになるよん
729Now_loading...774KB:2008/12/14(日) 12:18:12 ID:tbaAKg/i
AS3なのですが
紹介されているソースで、処理をさせる自作クラスにターゲットのSpriteをコンストラクタの引数に渡す時
受け取り側の変数がSprite型じゃなくて、DisplayObjectContainerで受け取ってたりするのは大きな意味があるのでしょうか?
730Now_loading...774KB:2008/12/14(日) 12:22:21 ID:xVv/fsJ/
>>729
多分、DisplayObjectContainerで受け取ることで
DisplayObjectContainerを継承しているSprite以外のクラスのインスタンスも
渡せるようになるので便利!って感じだと思う。
例えばMovieClipも渡せると。
731Now_loading...774KB:2008/12/14(日) 12:30:23 ID:tVw7pewd
>>728
サンクス
我輩AS3なんですが、原理は一緒ですかねぇ?
やてみま〜す♪
732Now_loading...774KB:2008/12/14(日) 13:20:07 ID:xVv/fsJ/
>>731
おんなじだよん♪
mouseXにするだけ
733725:2008/12/14(日) 14:29:02 ID:Oxt31tnR
>>726
有難うございます。
早速、Bookmarkしました。
734Now_loading...774KB:2008/12/14(日) 15:36:43 ID:tbaAKg/i
>>730
渡すオブジェクトの多様対応だったんですね
勉強になりました、ありがとうございました
735725:2008/12/14(日) 16:01:42 ID:Oxt31tnR
すいません。まだフォントサイズが変更できません。

726さんの記述をコンストラクタにそのまま書くと下記エラーが出ます。
 1118: 静的型 Object の値が、関連しない可能性が高い型 flash.text:TextFormat に暗黙で型変換されています。

色々試して、http://uproda11.2ch-library.com/src/11141453.jpg のようにしましたが、
今度は、サイズを50にしても変わりません。

アドバイス・ご指摘願います。
736723:2008/12/14(日) 16:53:42 ID:l4nU5Usv
>>735
>1118: 静的型 Object の値が、関連しない可能性が高い型 flash.text:TextFormat に暗黙で型変換されています。
あー、すまん。キャストが必要だった。var tf:TextFormat = TextFormat(getStyle("textFormat")); か。

>今度は、サイズを50にしても変わりません。
ぐぬぬ、Buttonとかの例を見るとこれでいけそうなのにな。ComboBoxにはひとひねり必要なのかな。

ComboBoxのプロパティを見たら、入力部分はTextInput, ドロップダウン部分はListからできてるね。
これらに直接setStyleしてみたらどうだろうか。
実際試してからレスりたいところなんだがCSもってないので。。。うまくいかなかったらゴメンね。
cBox.dropdown.setStyle("textFormat", tf);
cBox.textField.setStyle("textFormat", tf);
editable=falseなら、textFieldの方はdisabledTextFormatかもしれないな。
737Now_loading...774KB:2008/12/15(月) 02:12:14 ID:3Pi6Y63h
AS2.0以前とAS3.0の関係で質問(というか確認)です。

「フレーム毎の動作」はAS2.0以前では、定義を ABC.onEnterFrame = function(){ }
と書いて、止めるとき(破棄するとき)は ABC.onEnterFrame = undefined; としていましたが、
AS3.0の場合これらに相当するのは、
 ABC.addEventListener(Event.ENTER_FRAME, リスナー関数)
 ABC.removeEventListener(Event.ENTER_FRAME, リスナー関数)

で良いのでしょうか? つまり、対応として
 ABC.onEnterFrame = function(){ } 
 → ABC.addEventListener(Event.ENTER_FRAME, リスナー関数) 

 ABC.onEnterFrame = undefined;
 → ABC.removeEventListener(Event.ENTER_FRAME, リスナー関数)

は正しいのでしょうか?
738725&735:2008/12/15(月) 02:43:06 ID:yVRpJyFL
>>736
うーん、やっぱり駄目です。import fl.core.*; しているのですが、前者・後者共に
var tf:TextFormat = TextFormat(getStyle("textFormat"));について
 1180: 未定義である可能性が高いメソッド getStyle の呼び出しです。

が出ます。
現状では、CS3持ちの人の降臨を待ちます。
739Now_loading...774KB:2008/12/15(月) 05:53:31 ID:BCdze/rZ
http://jp.youtube.com/watch?v=PIeTMRwjWxg

この懐かしのゲームみたいに、画面端へ出ると逆から戻ってくる
このエフェクトをAS3でしたいのですが、一体これはどうなってるんでしょうか??
740723:2008/12/15(月) 06:33:17 ID:pB0VKBD9
>>738
ゴメン。cBoxが抜けてる。
var tf:TextFormat = TextFormat(cBox.getStyle("textFormat"));
でもgetStyle()してこなくても>>735のようにnewしても構わんと思うよ。
var tf:TextFormat = new TextFormat();

それにdropdownとtextFieldに直接setStyle()してもダメだったか。。。

えらそーにレスつけといて役に立たなくてスマンす。
741Now_loading...774KB:2008/12/15(月) 06:36:58 ID:4psV2xiU
>>739
ヒント: ステージ幅,オブジェクト(動く物体)の幅と座標。
742Now_loading...774KB:2008/12/15(月) 07:56:21 ID:BCdze/rZ
>>741
ハ、ハバ!?
つまりそれは、
Stage幅が500pixel MC幅が20pixelとすると
if(mc.x>500)の時
新mc.x = mc.x - 500
if(mc.x<500)時
新mc.x = mc.x + 500

的な。。。あれれ??
全然分かりません泣泣

ま、マリオみたくあんな、体半分右端、もう半分左端
ってほどピッタリやなてもいいんですが。。
743Now_loading...774KB:2008/12/15(月) 12:58:03 ID:mNdVQ9sy
>>742
先ず単純に一方向に動かして、フレーム毎にtraceでX座標を把握しなはれ。
次いで適当なXでif文をかませる。とにかく、traceを多用する。

というか、動作を図に描くと良い。画面の中だけで考えると混乱するぞ。
744Now_loading...774KB:2008/12/15(月) 13:07:49 ID:tdhBWlcQ
flvplaybackコンポーネントを使って、動画共有サイトを作ったのですが、動画を切り替えると
動画によって画面の大きさが変わってしまいます。多分、コンポーネントの基準点が真ん中になっているのが
原因だと思うのですが、どうやったら基準点を変えられるでしょうか?
745Now_loading...774KB:2008/12/15(月) 13:58:11 ID:c9/Zz7Dn
AS3で質問です。

package {
public class DrawMyClass {
var spriteArray:Array
function DrawMyClass() {
init()
}
public function init():void {
spriteArray = new Array();
この後spriteArrayに代入&処理
}
}
}

このDrawMyClassを親の方から何度も呼び出し、ソースのように処理の後始末に、
spriteArray = null して消さない場合、DrawMyClassを呼び出す度にArray(spriteArray)が作られ、
消えずにメモリに溜まり続ける事になるのでしょうか?
Spriteとかnewで生成した物はnullで消す作業をしないとずっと残ると聞きましたが、Arrayもそうなのでしょうか?
746Now_loading...774KB:2008/12/15(月) 14:09:36 ID:+CEzAfDW
CS3 + FlashDevelop + AS3でシューティングゲームを作ってます。

FlashCS3で弾の絵を描いてbullet.swfで書き出して置いておく
ゲームのプログラムでLoaderを使いbullet.swfを読み込み
キーが押されたら読み込まれたbullet.swfが自機から打ち出される
というプログラムを組んだのですが
弾を2発打つと一発目の弾が消えてしまいます。

理由は、bullet.swfを一つしか読み込んで無く
複数のMovieClipからMovieClipにインスタンス化されたbullet.swfを参照したからだと思うのですが
MovieClipインスタンスに描画されているベクトルデータを複製することってできますか?

ちなみにMovieClipインスタンスのgraphicsプロパティを他のMovieClipに代入したら
読み取り専用ですとか怒られました・・・><
747Now_loading...774KB:2008/12/15(月) 15:09:53 ID:+CEzAfDW
弾を撃つたびに毎回bullet.swfをLoaderを使って読んで撃つような仕組みにしたら
とりあえず直ったけれど、これって良くないよなぁ・・・。
ダウンロードしたファイルはキャッシュに残るからいいのかなコレでも。
748Now_loading...774KB:2008/12/15(月) 15:14:09 ID:S7x3KRw/
そもそも何故そんな仕組みにしたんだ
AS3はまだ触れ始めたばかりでよく分からんがその仕様のほうが処理早いのか?
749Now_loading...774KB:2008/12/15(月) 15:23:16 ID:qYfw9yGo
750Now_loading...774KB:2008/12/15(月) 15:32:18 ID:+CEzAfDW
>>749
なにこのブラクラ
751Now_loading...774KB:2008/12/15(月) 15:35:29 ID:+CEzAfDW
>>748
FlashDevelopで開発しているから、ベクトルデータを外部ファイルとして
読み込みたかったんだYO!
そしたらFlashCS3が無い環境でも開発できるからさ

つかLoader優秀すぎ!
弾を撃つたびファイルロードしてるけど全然軽い!
でも一発目が重いから
ゲーム始まる前にLoader使って一度ロードすれば完璧だ!
Loader愛してる♪
752Now_loading...774KB:2008/12/15(月) 22:03:08 ID:ezaAAAsc
AS3で質問です。

oya.clickArea.addEventListener(MouseEvent.CLICK, onOpen);

private function onOpen(e:MouseEvent):void {
//すでに子にオーバーしている状態で、
e.currentTarget.parent.mouseChildren = false;//すると、アウトが発生してしまう。
e.currentTarget.parent.addEventListener(MouseEvent.MOUSE_OUT, onClose);
}
private function onClose(e:MouseEvent):void {
trace("なんでやねん");
}

子にオーバーしている状態で、親のmouseChildrenをfalseにするとMouseOutが発生してしまい困っています。
内包するMcをクリック > 親のマウスアウトを検知したいのですが、何かいい方法は内でしょうか。
どなたかお願いします(´;ω;`)
753Now_loading...774KB:2008/12/15(月) 23:07:04 ID:pB0VKBD9
>>751
キャッシュが効くとはいえ、外部swfを毎回ロードってすごい荒業だなw

FlashDevelop(というかFlexSDK)からFlashCS3のライブラリのリンケージシンボルを読んだりできないの?
リンケージできれば本体に埋め込めるし毎度ロードしなくてもnewでインスタンス作りまくれるのにな。
なんかいい方法はないんかねぇ。
754Now_loading...774KB:2008/12/15(月) 23:08:28 ID:RwA0soGB
var hoge:MovieClip = new fugo();
addChild(hoge);
hoge.x = 100;
hoge.y = 50;

既に配置されているMC"test"のタイムラインで上記を実行すると、
出来るMC"hoge"を参照したい時はtext.hogeとしなければなりませんよね?
そうでなく直接hogeと指定出来るようになりたい(ステージ上に置きたい(?))のですが、どのような書き方をすれば良いでしょうか。
addChildの前にstage.だとかparent.だとか置いてみましたが上手く行きません。

ご教示お願いします
755753:2008/12/16(火) 01:00:16 ID:iYmNiYSB
>>751
CS3から弾丸の絵(名前をBullet、クラスはMCかSpriteで)をswcで書き出して、
FlashDevelopではそのswcをインクルードしたら、new Dangan()でインスタンス作れたりしないのかね。
と、CS3を買おうか迷ってる貧乏人が興味津々なご様子。
756Now_loading...774KB:2008/12/16(火) 01:20:04 ID:YwKA0010
>>754
numChildrenをtraceで出力して、そのMovieClip上に幾つインスタンスが登録されているか
を随時チェックして、ちゃんとaddChild出来てるかを確認していくといい。
多分、登録する前に参照しようとしてる、とかじゃないかと思える。
処理のタイミングは、stageのタイムライン→MovieClipのタイムラインのハズ

ちなみにparentがMovieClipなら、MovieClip(parent).addChild(hoge);
757Now_loading...774KB:2008/12/16(火) 02:17:48 ID:+BWlhY5p
FlashCS3_proをWinXPで使っています。

AS編集時に上の「自動フォーマット」を押すと、付けていた () が消えてしまうことがあります。
例えば、
var ar1:Array=new Array(); → var ar1:Array=new Array ;
10 * (ab + xy); → 10 * ab + xy;

のような感じです。
一応、アップデートして最新の状態にしているのですが、時々このような症状が出ます。なお、
FlashCS3を再起動すると直ります。

これって、バグですか?
758Now_loading...774KB:2008/12/16(火) 03:54:35 ID:qCMMstiK
>>755
お、その発想は無かった!
swcで書き出しができるのならできるんじゃない?
ちょっと調べてみる!
759Now_loading...774KB:2008/12/16(火) 04:08:14 ID:qCMMstiK
ん、待てよ・・・
その方法だと結局Embed使うのと同じか・・・
760Now_loading...774KB:2008/12/16(火) 06:26:48 ID:ptTh9I6G
paraflaでムービークリップアクションとしてactionscriptを
onClipEvent(enterFrame){
this.インスタンス名.width = インスタンス名.width * 119 / 120;

}
って書いたんですが,プレビューでまったく動いていません
打開策を教えてください
761Now_loading...774KB:2008/12/16(火) 06:41:29 ID:SvFFdKwD
FlexSDK使いの貧乏なおれはswfの画像ファイルをEmbedでコンパイル時に
組み込んでSpriteオブジェクトを生成してます
762Now_loading...774KB:2008/12/16(火) 06:53:02 ID:izUoeO/U
ゲームの弾丸を毎回loadって、、、最低の設計だなw
弾を撃つたびにGC対象を作ってなんてw
763753:2008/12/16(火) 10:26:30 ID:iYmNiYSB
FlexオンリーならもちろんEmbedでサックリすますさ。
でもEmbedってCS3でもコンパイルできるんかいな?
FlexとCS3を両方使うとかチームで共同作業するときにCS3側でパブリッシュできなくなるんじゃつらいよ。
てか、>>746はそういう話なのかと思ってた。
常に最終的なswf生成をFlashDevの方でするんなら迷わずEmbedだな。
764Now_loading...774KB:2008/12/16(火) 10:47:17 ID:qCMMstiK
>>563
うん、そういう話+ベクトルデータとゲーム本体を分離したいわけだわよ
ビットマップデータだと楽にできるのに(たぶん)
765Now_loading...774KB:2008/12/16(火) 10:48:04 ID:M+QDOpFW
>>759
public interface Clonable { function clone():MovieClip }
を弾のswfで実装して、
loadしたswfのMovieClipをClonableでキャストして、
(もちろんメインムービーFlashDevelopの方にもClonableのソースは置いておいて)
MovieClip bullet = ((Clonable)swfmc).clone();
で弾の量産ができるような気がするから、試してみてよ!だめだったらごめん!
766Now_loading...774KB:2008/12/16(火) 10:51:10 ID:qCMMstiK
だからEmbedもswcもダメぽ?
いまんとこLoaderに頼るしかないかー

762氏の言葉が胸を痛めるぜw
767Now_loading...774KB:2008/12/16(火) 10:53:26 ID:qCMMstiK
>>765
お、神コメの予感!
インターフェイス実装したことないからこの機会に
勉強がてら試してみる!Thx!!
768765:2008/12/16(火) 10:58:01 ID:M+QDOpFW
>>767
ごめん、一部Java文法で書いちゃった。適当にASに直してね!
769Now_loading...774KB:2008/12/16(火) 11:02:27 ID:qCMMstiK
>>768
お、おう!
てか、>>765の方法で量産できたら
俺の目ん玉はすごい飛び出てしまうんだけど
どういうこと??勉強不足でよくわからんち・・・。
770Now_loading...774KB:2008/12/16(火) 11:08:21 ID:iYmNiYSB
>>765
クローンの実装を毎回作るのもしんどくね?
import flash.utils.*;
function getClass(value:*):Class {
 return getDefinitionByName(getQualifiedClassName(value)) as Class;
}
var Bullet:Class = getClass(読み込んだbullet.swfのMC);
とかやったらnew Bullet()しまくれないかな。
それなら最初にLoaderで読み込まんとダメなのは変わらんけど毎回ロードはしなくてすむ。

ダイナミックプロパティがあってクラスオブジェクトだけ取ってきてもダメかな。。。
771Now_loading...774KB:2008/12/16(火) 12:48:25 ID:5XRYrzEv
CS3でAS3なんですが、
キーボードイベントでキーコードに応じた処理をする場合、
ネットで例を探すと、大抵 if (evt.keyCode == 65)とかいうように
数値をそのまま使ってるみたいなんですが、
const KEYCODE_A:uint = 65;というような定数定義をして、
if (evt.keyCode == KEYCODE_A) というようにするのはまずいんでしょうか?
772Now_loading...774KB:2008/12/16(火) 13:01:09 ID:phcM1dFs
>>771
個人的には後者のがいいと思うがね。
決めうちは後々面倒だし、キーカスタマイズさせられないし。
単に手っ取り早いとかサンプルまんまとかの理由で、変数を使ってないのではと推測。
773Now_loading...774KB:2008/12/16(火) 13:16:19 ID:y1Ja37ox
夢見てるバカばっかだなこりゃw
774771:2008/12/16(火) 13:59:20 ID:5XRYrzEv
>>772
ありがとうございます。

個人的には何でKeyboardクラスにテンキー以外の文字キーの
キーコードの定数定義が無いんだと思いましたが、
charCodeをfromCharCodeで変換して文字列と比較しろということみたいです。
Adobe AIR のドキュメントにキーボードショートカットの実装例があるのを
さっき見つけました。
http://help.adobe.com/ja_JP/AIR/1.1/devappsflex/WS5b3ccc516d4fbf351e63e3d118666ade46-7d5a.html
775Now_loading...774KB:2008/12/16(火) 20:17:08 ID:pbNqYLj1
Flash8 AS2

_root.attachMovie("FLVPlayback","mc_flvplayer",this.getNextHighestDepth());
_root.mc_flvplayer._width = 400;
_root.mc_flvplayer._height = 300;
_root.mc_flvplayer.load("movie/movie01.flv");

FLVPlaybackコンポーネントでflv動画を読み込んでいるんですが、
もしflv動画のパスが間違っていた場合やダウンロード中にエラーが発生した場合の
エラー処理の書き方を教えてください。
776Now_loading...774KB:2008/12/17(水) 03:24:54 ID:GB5dfgzu
環境)OS:WinXP-Pro,ソフト:FlashCS3-Pro(Player9.0,AS3.0)

AS3.0でComboBoxにあるリスト名を変更するにはどうしたら良いでしょうか?

例えばリストアイテムが計10個あり、インデックス番号5のリスト名 5banDesu を NasiDesu に
変えたく思っています。
777Now_loading...774KB:2008/12/17(水) 03:39:58 ID:5r08LTRt
778Now_loading...774KB:2008/12/17(水) 04:22:38 ID:GB5dfgzu
>>777
さんきゅう。
やってみます。
779Now_loading...774KB:2008/12/17(水) 11:52:25 ID:AqJZjgnm
関数hoge:intが1,2,3だったらtrueという条件式を作りたいのですが、正規表現等を使って短く書く方法は無いでしょうか。

if (hoge==1 || hoge==2 || hoge==3) {
//
}
これでも望んだ効果は得られますが、長くなってしまうので
if (hoge==/1|2|3/) {
//
}
などと書きたいのです。ちなみに上記を試したら
「静的型intの値と、関連しない可能性が高い方RegExpの値とを比較しています。」
と怒られました
780Now_loading...774KB:2008/12/17(水) 12:02:05 ID:hVLlQf19
正規表現使えてなぜ比較演算子を知らない・・・
781Now_loading...774KB:2008/12/17(水) 13:16:48 ID:FN29HB3I
if((/1|2|3/).test(hoge.toString()))
782Now_loading...774KB:2008/12/17(水) 13:22:49 ID:fAWNBvzF
>>781
これをやるなら俺はswitchか>>799の一番上を使う!

switch( hoge )
{
case 1:
case 2:
case 3:
  〜
  break;
}
783Now_loading...774KB:2008/12/17(水) 14:00:41 ID:/FdEUKUb
ゲームを作っていて「→」を押しながら移動中に
スペースでたま飛ばそうとすると
押しているにもかかわらず「→」での移動が止まってしまいます。
この辺のキー操作関連で詳しいWEBサイトとかありますでしょか
探してみたけど見つからないです。
784783:2008/12/17(水) 14:15:38 ID:/FdEUKUb
少し、スレ違いかもだったですね。
それらしい所見つけました
汚してすません。
785Now_loading...774KB:2008/12/17(水) 15:12:38 ID:fAWNBvzF
>>784
せめてそれらしいところのリンク先キボンヌ
786Now_loading...774KB:2008/12/17(水) 20:03:44 ID:oTH5gjJS
AS3.0で、
AとBのビットマップ画像を、ABという風に並んだ状態で一つのビットマップにすることってできますかね?
787Now_loading...774KB:2008/12/17(水) 22:42:56 ID:fAWNBvzF
>>786
できるよん
788Now_loading...774KB:2008/12/17(水) 23:05:47 ID:oTH5gjJS
>>787
どんな感じに記述すればよろしいのでしょうか?
789Now_loading...774KB:2008/12/18(木) 00:12:48 ID:iADRc+iZ
新しいBitmapDataにcopyPixels()でAとBを転写。
790Now_loading...774KB:2008/12/18(木) 01:10:18 ID:VckqiaNl
Flash8 AS2
ScrollPaneコンポーネント内に表示するものをユーザの選択によって切り替えなければなりません。

TextInputなどのコンポーネントを生成して、
そこに値を設定する処理がなぜ正常に行われないのかを考えたところ、
生成の命令を出してから実際にコンポが表示されるまでに遅延があるので
すぐに値を代入しても受け付けないとわかりました。

具体的に生成方法は、ScrollPane.contentPathにリンケージ名(TextInput入りのMC)を使うのと、
数フレームあるMCをScrollPaneに入れてgotoAndStopしてみました。

コンポーネントを使わないという方法以外でこの問題を解消するにはどうしたらいいのでしょう?


乱文スマソ疲れてるみたいです
791Now_loading...774KB:2008/12/18(木) 02:21:38 ID:eUDrahrQ
>>789
おおお、ありがとうございます!
792Now_loading...774KB:2008/12/18(木) 11:18:44 ID:cIq4peil
Suzuka, SWF6 で ActionScript を書き始めたのですが
基本的なところで躓いてしまいました。

変数の初期化をまとめて行うには
どこが適切なのかわからないんです。

とりあえずボタンを一つ配置していますが
ボタンが読み込まれた時に行う処理、
もしくはFlash自体が読み込まれた時に行う処理は
どこに書けば良いのでしょうか?
793Now_loading...774KB:2008/12/18(木) 12:56:03 ID:vstXzcPY
>>792
言ってることがよくわかんないけど
変数の初期化は変数を宣言したと同時にやるのが基本

クラスのプロパティであればコンストラクタで初期化
794Now_loading...774KB:2008/12/18(木) 14:05:07 ID:kR6QqjZT
>>793
具体的に質問させていただくと、

on (release)
{
if (flag == true){
//ここに何か処理
flag = false;
} else {
//ここに何か処理
flag = true;
}
}

この時変数 flag を初期化するのはどこで行えば良いのでしょうか。
795Now_loading...774KB:2008/12/18(木) 14:19:31 ID:urVHSqPi
質問です。

on (release) {
System.useCodepage = true;
my_lv=new LoadVars();
my_lv.name1 = name1_txt.text;
my_lv.send("aaaaa.cgi",my_lv, "POST");
_root.name2_txt.loadVariables("datasave.txt");
}

で、cgiの方にデータを送り、datasave.txtにname1_txt内の文をコピーすると言う記述までは出来たのですが、このままだと別窓(ファイル名.cgi)が開いてしまうので解決策はないでしょうか?
別窓を開かずに、尚且つname1_txt内の文だけdatasave.txtに送る方法があれば教えていただきたいです。
ちなみにFlash MXを使ってます。
796Now_loading...774KB:2008/12/18(木) 14:37:47 ID:0jBePYwC
>>795
sendじゃなくてsendAndLoad
797Now_loading...774KB:2008/12/18(木) 14:50:31 ID:urVHSqPi
>>796
おお、確かに飛ばなくなりました!ありがとうございます…

後は画面の切り替えをせずにデータの送受信をする記述があればお願いします。
798Now_loading...774KB:2008/12/18(木) 20:29:47 ID:vstXzcPY
if( object is Unko ){
}
else if( object is Manko ){
}
else if( object is Chinko ){
}

って、Switchに出来ないよね??
799Now_loading...774KB:2008/12/18(木) 20:31:03 ID:vstXzcPY
あ、ちなみにtoStringだとスーパークラスのときfalseになっちゃうからNG
800Now_loading...774KB:2008/12/18(木) 21:22:58 ID:Lf8opoZS
>>798
出来ない。switchでの比較は===しかない。
isじゃなくてinstanceofだよな。
801Now_loading...774KB:2008/12/18(木) 22:14:33 ID:iADRc+iZ
>>800
instanceofはprototype継承を調べる演算子でインタフェースはチェックできない。
JavaScriptでは活躍するけどAS3ではほとんど使わん。AS3ではisでいいだろ。
802Now_loading...774KB:2008/12/19(金) 00:57:11 ID:B0tT9/KP
http://www.uniqlo.co.uk/​

海外のユニクロサイトのトップにあるようなFLASHを作りたいのですが
どのようなフレームワークが必要かわかりますでしょうか。
(SWF内でクリックした場所を中心にしてタイル状に画像が沈んでから、外側へ新しい画像に変わるもの)
ちなみにFLASHのタイムラインに画像を配置するやりかたではなく
ActionScript3のみを使用しての実現方法です。

いろいろと調べてみたのですが
・Tweener
・papervision3d
・scaena
・polygeek?
のここらへんを使えば実現できそうな気はするのですが
いまいち実現方法を見出すことができません。
他に必要(これを使うべき)というものはありますか?
またサンプルがあるサイトがございましたらアドバイスをお願いできますでしょうか。

当方の環境 VISTA+AS3+FLASH CS3 です。
よろしくお願いします。
803Now_loading...774KB:2008/12/19(金) 01:33:15 ID:kBtYCfj5
>>802
ttp://oshiete1.goo.ne.jp/qa4564264.html

マスク使えばできるんじゃね?
804Now_loading...774KB:2008/12/19(金) 12:37:09 ID:sp8XmqN7
_root上に置いた

siID = setInterval(function () {
this.gotoAndStop(_currentframe +1);
}, 2000, this);


を色んなMCから呼び出して、その呼び出したMCに
this.gotoAndStop(_currentframe +1)を適用するには
どう書いたらいいでしょうか?

function.apply(this)でできそうな気がするのですが
色々試したのですができません
805Now_loading...774KB:2008/12/19(金) 16:51:10 ID:aAexxFZc
AS2で質問です。flvplaybackコンポーネントを使って、動画共有サイトを作ってみました。
で、キューポイントを使ってコメントを投稿・表示出来るようにして、コメントが来た時は一時停止
するようにしたのですが、投稿した時間と、表示される時間が若干ずれる事があります。それで、
停止する前にスロー再生すればズレは多少無くなるかな、と思ったのですが、スロー再生の仕方はどうやるのでしょうか?
もしくは、この問題を解決する方法は他にあるでしょうか?どなたか詳しい方がいらっしゃったら教えてください。お願いします。
806Now_loading...774KB:2008/12/19(金) 22:02:12 ID:4QHBS+Og
AS3で、全てのEventListenerをいっぺんに無効にするようなことは出来ますか?
やはりポーズ画面などを作るには個々に細工しなきゃいけないんでしょうか
807Now_loading...774KB:2008/12/19(金) 22:28:12 ID:tfjPRaEl
>>806
出来ない。ポーズは設計段階で盛り込まない限りそんなに簡単には作れない。
リスナ全部を無効にしたところでポーズ解除は誰が受け付けるんだ。
808Now_loading...774KB:2008/12/19(金) 23:02:50 ID:4QHBS+Og
そ、そうですよね
序盤のうちに色々仕込んで何とかしてみます
全部一本に纏めればポーズとかも楽になるのかな
809Now_loading...774KB:2008/12/20(土) 00:13:26 ID:Ymi2tqlo
Flash CS3で作っているのですが、何故か動的(?)に配置したMCのアニメーション速度が二分の一になってしまいます
原因が分かる方はおりますでしょうか
810Now_loading...774KB:2008/12/20(土) 00:50:54 ID:llnhP+OR
>>809
どこかの処理が絡んでるんじゃないのかね。
問題が再現する最小の環境を作って
何が原因だったかを絞っていくのがバグ取りの正攻法
811Now_loading...774KB:2008/12/20(土) 18:00:09 ID:6MK6aoH7
どなたか805お願いします……
812Now_loading...774KB:2008/12/20(土) 18:44:07 ID:E+N3cAWr
スロー再生できないよ。できても問題の解決手段になるのかな?

cuePointイベントってFLVがキューポイントに到達したか経過した時に発行されるイベントみたいだね
つまりコメントは最大でFLVのキューポイント間隔分の誤差が生じるわけだ
onEnterFrameで再生時間を監視するように仕様変更してみたら?
813Now_loading...774KB:2008/12/20(土) 22:06:20 ID:nfVD/qNj
>>804
function waitAndGotoAndStop(mc:MovieClip) {
 siID = setInterval(function () { mc.gotoAndStop(mc._currentframe + 1); }, 2000);
}
をいろんなMCから呼ぶんじゃだめかい?
814Now_loading...774KB:2008/12/20(土) 23:48:07 ID:6MK6aoH7
>>812
と言う事はシステムの処理速度にも依存する訳ですね……
onEnterFrameで再生時間を監視するってどういう事でしょうか?監視して、どうするのですか?
漠然としてて少し意味が解りませんでした。申し訳ありませんが、もう少し詳しくお聞かせ頂けますか?
815Now_loading...774KB:2008/12/21(日) 00:43:45 ID:KI9G2pOT
どのmcがstageからなるツリーのどこらへんにいるか、みたいなのってどこかで見られませんか?
http://hakuhin.hp.infoseek.co.jp/sozai/as3/container00.png こんな感じの)
デバッグ画面に行ってみましたがあるのかないのか良く分かりません
いつもaddChildして一体mcがどこに潜り込んでいるのか凄く謎です…
816Now_loading...774KB:2008/12/21(日) 10:18:13 ID:I6FsYDuC
AS3.0でのことなんですが、
flashVarsでFlashにアドレスを渡して、そのアドレスの先のXMLを読みにいく。
という処理をさせているんですが、
IEとSafariでは問題なく動くんですが、なぜかFirefoxだと不安定なんです。
体感的にはほとんど読めなくてたまに読める感じです。
Firefoxの場合なにか記述を変える必要があるのでしょうか。
ご存知の方がいましたらよろしくお願いします。
817Now_loading...774KB:2008/12/21(日) 11:27:47 ID:a1uDhPg+
>>816
問題はflashVarsの値が参照できないということ?
それともXMLを読み込めないということ?
あるいは、XMLの読み込みが終わっていないのに内容を参照しようとしてるということ?
818Now_loading...774KB:2008/12/21(日) 11:37:20 ID:I6FsYDuC
>>817
おお・・・
そうですね、その検証が済んでいませんでした。
重要な観点ですよね。
ありがとうございます。
819804:2008/12/21(日) 16:51:40 ID:T/DXlL9L
>>813
できました・・!!!
ありがとうございますありがとうございます(;ω;)
820Now_loading...774KB:2008/12/21(日) 21:29:11 ID:iBKRUeIF
AS3の事です。

配列って中身によって処理付加も違うんでしょうか?
array1[0] = n1; int変数
array2[0] = n2; Number変数
array3[0] = container Spriteインスタンス

この3つの配列の内一つの配列が存在した場合
array3 > array2 > array1 の順に配列自体の処理負担がある・・・なんて事ありますか?

あとjavascriptですがint型変数が4バイトというのもどこかで見たことがありましたが
AS3でこのような変数や中身の入った配列自体のバイト容量を調べる方法ってありますか?
821Now_loading...774KB:2008/12/21(日) 23:24:18 ID:IF/XlhGW
>>820
性能を気にするなら測定すべし。しかし本当に気にする必要があるかを先に考えるべきだ。

AS3のintは32ビット(4バイト)整数であることは決まっている。
が、intの変数を1つ用意すると4バイトより多くメモリを消費する(型情報とかいろいろ)かもしれない。
配列自体やその各要素がどれだけメモリを消費するかは仕様で決まってないし調べる方法もない。
822Now_loading...774KB:2008/12/22(月) 08:27:13 ID:DJjcNyvR
(Math.random() * 20) / 20



Math.random()

って何か違いがあるんですか?

他の人が書いたコードの中にあったんですが。
823Now_loading...774KB:2008/12/22(月) 09:54:18 ID:uKai0NKB
微妙に違う。*20した段階で入りきらない桁が削られる
けど普通に使うなら大して違いはない

Math.floor(Math.random()*20) / 20だったら大分違う
824820:2008/12/22(月) 10:16:28 ID:9f9cjPTZ
>>821
レスありがとうございました。
要素自体を調べる方法は無いんですね・・・。
特に疑問なのですが、asファイルで書いた場合の別々のfunctionの受け渡し方で、

public function a():void {
ローカルなSpriteを大量生成
用途別にnameを付ける
arrayにSpriteのnameを入れる ★
}
public function b():void {
arrayに入ったnameを元にgetChildByNameでSpriteを呼び出し
Spriteに処理
}

この場合arrayの中身はStringですが
ふと、★の所でarrayにSpriteインスタンスを直に入れた方が便利なのでは?と思ったのですが、
arrayに大量にString入れるのとSprite入れるのとでは、Sprite入れた方が処理負荷が高くはならないんでしょうか?
totalMemoryを使ってみましたが全体処理の数値?が出てしまい具体的にはわかりませんでした。
この配列の中身による処理負荷違いがあるのかどうか知っていましたら教えて下さい。
825Now_loading...774KB:2008/12/22(月) 11:35:47 ID:81v0n8CO
getChildByNameのコストが大きいでしょ
本来なら配列にSpriteの参照を格納して、インデックスで
アクセスすればいいわけだし

どうしても名前付けてアクセス汁ってならしょうがないけど
826Now_loading...774KB:2008/12/22(月) 13:46:07 ID:9f9cjPTZ
>>825
レスありがとうございます。
getChildByNameって重かったんですか・・・Sprite自体をarrayに入れておくよりarrayにnameのString入れてByNameで呼んだ方が
負荷が少ないと勝手に思い込んでずっとやっていました。勉強になりました・・・。
このgetChildByNameが重いというのは、その情報が何かに書いてあるとかじゃなく、
やっぱり自分でテスト環境作って調べて見る他無いんでしょうかね。
827Now_loading...774KB:2008/12/22(月) 14:20:51 ID:w+4fMX+W
これってどうやってやってるの?
ttp://www.kanfoo.jp/contents.php?cID=70
828Now_loading...774KB:2008/12/22(月) 14:21:28 ID:MIZBsSoF
>>826
それくらいは常識的に考えればわかる範囲。単純に勉強不足では?

> Sprite自体をarrayに入れておくよりarrayにnameのString入れてByNameで呼んだ方が負荷が少ないと勝手に思い込んでずっとやっていました。
参照って理解してる?
array[0] = spriteObject; //spriteObjectへの参照が格納される。spriteObjectのデータがコピーされて配列に格納されるわけではない。
全然重くない処理です。

getChildByNameについてはリファレンスに
> getChildByName() メソッドでは子にアクセスするためにリンクされたリストを移動する必要があります。
と書いてあるので、処理がそれなりに重いとわかる。(連想配列じゃないのねー)
829Now_loading...774KB:2008/12/22(月) 15:16:59 ID:1wILzefQ
はじめまして。

環境Mac Os-X AS2.0

MacのWheelにも対応のスクロールバーを
http://www.trick7.com/blog/2006/11/10-193601.php

↓flaファイル↓
//flaファイルのフレームスクリプト
import com.trick7.ui.WheelScrollBar;
var wsb:WheelScrollBar=new WheelScrollBar(content_mc,mask_mc,bar_mc,slider_mc);

↓ASファイル↓
//WheelScrollBarクラス:
import com.pixelbreaker.ui.MouseWheel;
class com.trick7.ui.WheelScrollBar {
中略
}

公式サイトらしきところにサンプルがあるのですが、
http://blog.pixelbreaker.com/2006/11/08/flash/swfmacmousewheel/

ダウンロードしてもflaファイルがありません;;

これはAS2.0ではできないのでしょうか?
830Now_loading...774KB:2008/12/22(月) 15:18:40 ID:1wILzefQ
すいません。上記の記事かいたものですけど、上記のスクリプトでjsファイルも定義済みなのですが、動きません。

どうぞ宜しくお願いいたします。
831Now_loading...774KB:2008/12/22(月) 17:08:01 ID:b7TaA+6z
FLASH CS3 AS2.0です。
外部JPEGをロードして、その画像の縦横サイズを取得し、
横幅分、X軸上に移動するとしたいのですが、できますでしょうか。
832822:2008/12/22(月) 21:41:50 ID:1mBETYce
>823
なるほど。
ありがとうございました。
833Now_loading...774KB:2008/12/22(月) 23:51:57 ID:oy8J0xtD
CS3、AS3.0です。

処理中のイベントや、既に発生している他のイベントの処理を済ませてから処理されるように
イベントを送出することってできますか?
WindowsのPostMessageのように動作して欲しいんです。
dispatchEventだと、SendMessageのようにその場でリスナーが呼ばれてしまいます。

短いdelayでタイマイベントを起こすという方法を考えついたんですが、
もっとスマートな方法があればお願いします。
834Now_loading...774KB:2008/12/23(火) 00:58:06 ID:GYdH4aeo
>>833
基本的なアイディアはそんなもんじゃね?
でもプログラムのあちこちでタイマ処理をガリガリ書くのはメンテしにくそうなので、
そのためのクラスを新しく作るのがいいんじゃないかい?

たとえばEventQueueクラスとか作って、送出したいイベント(とターゲット)を登録。
EventQueueの実装ではタイマイベントかStageあたりのenterFrameでキューを
チェックして、イベントがあればdispatchEventするような作りにする、とか。
835Now_loading...774KB:2008/12/23(火) 01:26:34 ID:0uG0k7bc
FlexBuilder3 AS3.0です。
php経由でDBを読み書きしたいんですが、
「Error #2044: ハンドルされていない ioError : text=Error #2032: ストリームエラー」
が出ることがあります。
そこでエラー処理で、IOエラーが出た時はもう一度同じ関数を呼ぶ、という風に動作させたくて
try{var loader:URLLoader = new URLLoader (request);}
catch (error:IOError) {read();}
のように書いたのですが、同じくエラーメッセージが出ます。
エラーは複数のFlashから同じテーブルにアクセスした時に発生しやすいようなんですが、
そもそもエラー処理は書いてるのに、何で「ハンドルされてないエラー」と出てしまうんでしょうか…?

836Now_loading...774KB:2008/12/23(火) 02:02:03 ID:cqFLcs/C
>>831
http://itpro.nikkeibp.co.jp/article/COLUMN/20061018/251030/

この辺見てみて試行錯誤してみるとよろしい
837Now_loading...774KB:2008/12/23(火) 02:57:44 ID:GYdH4aeo
>そもそもエラー処理は書いてるのに、何で「ハンドルされてないエラー」と出てしまうんでしょうか…?
もう一度呼んだところでまたエラーになってそれがハンドルされていないんじゃね?

ところで、URLLoaderのI/Oエラーって例外であがるの?
httpStatus (or httpResponseStatus), ioErrorイベント周りの処理はやってますか?
838835:2008/12/23(火) 04:08:33 ID:0uG0k7bc
再起呼び出しの中では改めてエラーイベントは送出されないんですね。
その事すら知りませんでした。
以下も、イベント処理に関して全くの無知なんで、頓珍漢なこと書いてたらすいません。

>httpStatus (or httpResponseStatus), ioErrorイベント周りの処理はやってますか?
ioErrorイベントの処理というのは、
addEventListener(IOErrorEvent.IO_ERROR,this.er);
function er(er:IOErrorEvent):void{this.read();}
というようなのでいいんでしょうか?
(read()はphpへアクセスする関数です)

httpStatusに関しては全く分かりません。
同じくHTTPStatusEventというののイベントリスナーを登録してやればいいんでしょうか?
839835:2008/12/23(火) 04:18:12 ID:0uG0k7bc
実は以前にも同じ問題が起きて、その時は適当にtry catchで囲んで、
エラーなら再起呼び出しとしてやると上手くいったように見えたんですが…。
今回のと読み取るDBも同じで、phpも同じサーバーの同じディレクトリにあるもので、一体何が違うのかよく分かりません。
強いて違いを挙げるとすれば、今回のは2つ以上のFlashPlayerが同じテーブルに同時にアクセスする可能性がある事ぐらいなんですか。
こういうストリームエラーって、どう対処するのが定石なんでしょうか?
840Now_loading...774KB:2008/12/23(火) 04:19:03 ID:bnYgIFRj
ActionScript1.0でJsonを使って外部とやり取りしたいんですが、
as2でのやり方はウェブ上にあったのですが、
http://www.ark-web.jp/blog/archives/2007/01/read_json_in_flash_by_as2.html
as1で参考になるサイトがありませんでした。
どこかにありませんでしょうか?
841835:2008/12/23(火) 04:23:55 ID:0uG0k7bc
連投申し訳ありません。
httpStatusについてはリファレンス見て理解しました。
842837:2008/12/23(火) 06:32:26 ID:GYdH4aeo
>>838
>再起呼び出しの中では改めてエラーイベントは送出されないんですね。
ん?Youは勘違いしてないか?
>>835のコードが断片的でイミフだった(try/catchブロック各々の役割を正しく理解してるか不安)のと、
catch節のread()からIOErrorがあがったりしたらそれに対しては無防備なんじゃ?と心配したのです。

再起呼び出しってことはread()の実装がおおよそ >>835のtry ... catchである、てことなのかな。
それでread()からIOErrorがあがることはない確信があったのか?
そもそも「書いたエラー処理」はエラー時にホントに実行されてるか?traceで確かめるべし。

Flash/AS3のエラー通知は例外とエラーイベントの2種類があり、そのタイミングや方法が違う。
エラーによって例外だったりイベントだったり。
URLが異常なときには呼んだ即例外だろうが、通信エラーなどこっちの都合お構いなしのものは
イベントなんじゃないのかな。リファレンスをよく見て違いを理解しましょう。

それよりも例外があがってエラーだから再帰呼び出しでリトライするって危険な設計だな。
ずっとエラーだったら無限再帰でスタック食いつぶしちゃうぞ。
最大リトライ回数を決めてループとかイベントハンドラでリトライするようにすべきだろ。

基本動作としては>>838のようにioErrorイベントハンドラでread()する感じになるだろう。
ここでまたエラーが発生した場合、どのようにコードが動くかをしっかり把握することが重要だ。

さらにエラー状態になったLoaderオブジェクトの後始末もしっかりやらないと、中途半端にサーバ
と繋がったままになったりしていつまでもGCされずにリソース食いつぶしかねないぞ。
843Now_loading...774KB:2008/12/23(火) 13:58:06 ID:NvSVo1/g
 
844835:2008/12/23(火) 17:31:12 ID:4rZSoNYF
>>842
解答ありがとうございます。
>再起呼び出しってことはread()の実装がおおよそ >>835のtry ... catchである、てことなのかな。
そうです。POST変数代入等を省略して書くと、
function read(){
   (URLVariablesの処理)
  try{
   request = new URLRequest ("DBread.php");
   loader = new URLLoader (request);
   loader.load(request);
  } catch (error:IOError) {
   this.read();
  }
}
といった感じです。あとこのクラスのイベントリスナーとして
  function er(er:IOErrorEvent):void{
   this.read();
  }
も登録してあります。
ご指摘の通りtry/catchを誤解してるも知れません。
漠然とtryブロックの中でエラーが起きたらcatchの処理をしてくれる、程度の認識で
read()→try{load()}→catch(read())→read()…でエラーが出なくなるまでread()してくれるだろうという意図でした。
とりあえずtraceで挙動を観察します。

>ずっとエラーだったら無限再帰でスタック食いつぶしちゃうぞ。
やはりそうですか…。回数制限付けます。

ところでストリームエラーの出る行番号がloader.load(request);ではなく
request = new URLRequest ("DBread.php");の行なんですが、これは普通にあることなんでしょうか?
845Now_loading...774KB:2008/12/23(火) 21:06:32 ID:biI7YQOl
FLASH CS3 , AS2.0
外部Jpegのスライドショーを作っています。
アクションは、fuse kitを使い、左から移動してくるように
したいと考えています。
//インポート
import com.mosesSupposes.fuse.*;
ZigoEngine.simpleSetup(Shortcuts,PennerEasing);
//初期値
photo._x = 0;
//移動アクション
photo.slideTo('450','null',1,'easeInOutQuint',0.5);

で、この移動アクションをx軸上に、Loopで450ずつ動くように
したいのですが、うまくいきません。
助言していただけますでしょうか。よろしくお願いいたします。
846Now_loading...774KB:2008/12/23(火) 23:52:39 ID:GYdH4aeo
>>835
それはそうと「ioError #2032 ストリームエラー」そのものの解明も必要だな。
とりあえずPHP側やDBのログに何かエラーが吐かれてないかを確認してみたら?
パケットモニタで通信内容を覗いてみるのも手だね。
847Now_loading...774KB:2008/12/24(水) 12:42:40 ID:m0Bg63mS
>>845

引数 'null' を 0 にするのでは
848Now_loading...774KB:2008/12/24(水) 16:08:35 ID:q+yzLneE
CS4,AS3
FLASHプレーヤー10の新しいテキストエンジンのAPIの事でお聞きしたいのですが、
ttp://www.adobe.com/go/textlayout_flashcomponent_overview
リンク先のPDFにある、ダイナミックテキストの項のサンプルで
テキストの色は変えられる様ですが、その他、フォントの大きさ、縦書き等を
実現するにはどのように書けば良いんでしょうか?
以下サンプル
import flash.display.DisplayObject;
import fl.controls.TextLayout;
/* textLayout_flash is the base class for the Text Layout component.
If you bring up the properties on the TextLayout Component in the library, you will see this.*/
var myTextComponent:TextLayout;
// Instantiate the textLayout_flash class to create a TextLayout Component.
myTextComponent = new TextLayout();
// Add the new component to the Stage.
var myTextComponentOnStage:DisplayObject = addChild(myTextComponent);
// Get the Text Flow from the TextLayout Component.
var myTextFlow:Object = myTextComponent.textFlow;
// Change the color of the text to red.
myTextFlow.color = 0xFF0000;
849Now_loading...774KB:2008/12/24(水) 17:32:55 ID:NwuI15EA
var mEnemy:MovieClip = new enemy1();

このenemy1()を変数を使って表したいのですが、どうすれば良いでしょうか。
var mEnemy:MovieClip = new ["enemy"+count]();
とかやってみましたが恐ろしい勢いで怒られました
850Now_loading...774KB:2008/12/25(木) 13:36:40 ID:eggYYQvB
851Now_loading...774KB:2008/12/25(木) 13:59:13 ID:BjQAfs6q
>>850
なんと、こんなことが出来たのですね…
誘導ありがとうございます。ちゃんと読まなくてすみません
852Now_loading...774KB:2008/12/25(木) 14:32:40 ID:ls2/iaAQ
AS3を使っています。
navigateToURLに関して、
Flash内のリンクから「http://test/?para[]=1¶[]=2」へ飛ばしたいのですが、

(方法1)
var url:String = "http://test/";
var linkURL:URLRequest = new URLRequest(url);
var getParam:URLVariables = new URLVariables;
var para:Array = ["1", "2"];
getParam.para = para;
linkURL.data = getParam;
navigateToURL(linkURL);
この方法だと「http://test/?para=1¶=2」へ飛んでしまいます。

(方法2)
var url:String = "http://test/?para[]=1¶[]=2";
var linkURL:URLRequest = new URLRequest(url);
navigateToURL(linkURL);
この方法だと当然うまくいくのですが、
URLVariablesなどを使ってスマートに指定できないでしょうか?

よろしくお願いします。
853Now_loading...774KB:2008/12/25(木) 14:39:09 ID:ls2/iaAQ
&の辺りが文字化けしてしまいました…。
3行目:Flash内のリンクから「http://test/?para[]=1&para[]=2」へ飛ばしたいのですが、
13行目:この方法だと「「http://test/?para=1&para=2」へ飛んでしまいます。
16行目:var url:String = "http://test/?para[]=1&para[]=2";
以上です、連投で申し訳ないです。
854Now_loading...774KB:2008/12/25(木) 15:05:32 ID:h0LdfFB6
>>850
ありがとうございます。
煮詰まっててすっかり見落としてました。

もう一つ、恥を覚悟でお聞きしたいんですが、以下のようなコード場合.fla側には
なんて書けば良いのでしょう?

今回の場合
var test:TextFlowExample = new TextFlowExample();
とだけ、書いてもうまくいきません。

コンストラクタの中身を直接flaファイルに書いて実行はできるのですが‥
たびたび申し訳ありませんが、教えて頂けるとうれしいです。
855Now_loading...774KB:2008/12/25(木) 18:56:40 ID:puDnh6S9
AS2.0の配列について質問です。
配列にデータを格納した後、別のデータと比較をして格納データが一致する
配列の番号を取得したいと思っています。

var data_ary:Array = ["abc","def","ghi","abc"];
var num_ary:Array = new Array();
var data_str:String = "abc";
var j:Number = 0;
for(i:Number = 0; i <= data_ary.length; i++){
if(data_ary[i] == data_str){
num_ary[j] = i;
j++
}
}

現状こんな感じでnum_aryに格納するよう組んでいるのですが、
もっとシンプルな方法があれば教授願います。
856Now_loading...774KB:2008/12/25(木) 21:42:15 ID:e+BIBAzu
>>852
getParam["para[]"] = 値;
とかは試せる?

>>854
クラスパスの設定と import してる?
857Now_loading...774KB:2008/12/25(木) 21:45:49 ID:e+BIBAzu
>>855
スマートといえるかどうかわからないけれど
for 文の記述は二行に縮めることはできる

for(i:Number = 0; i <= data_ary.length; i++)
if(data_ary[i] == data_str) num_ary[j++] = i;
858Now_loading...774KB:2008/12/25(木) 21:55:03 ID:e+BIBAzu
変数 j はなくして num_ary.push(i);
こっちのほうがいいか
859833:2008/12/25(木) 23:13:47 ID:0MD0EN9L
>>834
今更ですがありがとうございます。

そうか、enterFrame使うなら、タイマなんて面倒くさいこと考えなくても、
空のMovieClipを1個用意してArrayでも持たせておいて、
enterFrameで何か登録されてたらdispatchEventするなり
実行するなりして削除、っていうのでいけそうですね。
860Now_loading...774KB:2008/12/26(金) 02:49:00 ID:KccD1Fe+
質問させてください。

シーンに配置した、空(透明)のムービークリップに
Math.randomとattachMovieで、
別の複数のムービークリップをランダムに呼び出しているのですが
このムービー全体のフレームレート(再生速度)を
ボタンで変更したいようにしたいのですが、どうしたら良いでしょうか?

ttp://hakuhin.hp.infoseek.co.jp/main/as/fps.html#FPS_03
上記のページで、フレームレートを変更する方法は書いてあるのですが、
上手くいきませんでした。

私のムービーの場合、ランダムでシーンに配置した空のムービークリップに
別のムービークリップを呼び出しているので、
シーンに配置した空のムービークリップに、
上記サイトで説明されているようなActionScriptを記述してみたのですが、
ダメみたいです…

どなたか、ご教授いただけたら幸いです



861Now_loading...774KB:2008/12/26(金) 04:41:27 ID:uNNEmmRs
【質問】

ライブラリパネルにあるムービークリップを動的に表示することはできたのですが、そのムービークリップ内のタイムラインが進みません。

playだとかgotoAndPlayしてもステージに配置してないmcは再生できないようです。どうしたら動的にmcを配置してそのmcを再生することができるのでしょう…?
862861:2008/12/26(金) 04:54:36 ID:uNNEmmRs
言語はAS3です
863Now_loading...774KB:2008/12/26(金) 06:38:14 ID:jwjbbqLr
>>857-858
どうもありがとうございます。
push便利ですね。これを使ってみます。
864Now_loading...774KB:2008/12/26(金) 09:34:10 ID:izBu0xwQ
>>861
mcである以上playしなくても自動再生されるはず。
その上位にある何かが悪さしてる可能性大
865Now_loading...774KB:2008/12/26(金) 10:15:18 ID:eOHet9ch
>>856
遅くなりましたが返信ありがとうございます。
getParam["para[]"] = ["1", "2"]としたところ
しっかり「http://test/?para[]=1&para[]=2」へ飛んでくれました!!
866Now_loading...774KB:2008/12/26(金) 16:34:16 ID:KccD1Fe+
質問です

指定したフレームにランダムに飛ばす
フレームアクションはどうしたらいのでしょうか?
gotoAndPlay()の行き先はランダムになる感じです。
例えば、1フレーム、5フレーム、9フレームにランダムに飛んで
ループ再生されるようにしたいです。
例えば、
1→5→9→5→1→9→1→9→5
みたいに、ランダムに再生させたいと思っています。
アドバイスよろしくお願いします。
867Now_loading...774KB:2008/12/26(金) 16:43:33 ID:izBu0xwQ
gotoAndPlay(Math.floor(Math.random()*9)+1);

1,5,9だけに絞りたいなら[1,5,9]という配列hoge作っておいて
gotoAndPlay(hoge[Math.floor(Math.random()*3)]);
868Now_loading...774KB:2008/12/26(金) 17:22:49 ID:KccD1Fe+
>>867
有難うございます!
早速やってみます!
869Now_loading...774KB:2008/12/27(土) 02:20:26 ID:Wu151gWQ
>>26
解決です、ありがとうございました!メインタイムラインの長さが足りなかったようです
870Now_loading...774KB:2008/12/27(土) 15:32:27 ID:Wu151gWQ
外部クラスのドキュメントクラスを指定してCS3でFLASHを作りました。

これにローディングバーを付けたいのですが、タイムラインは空の1コマだけでドキュメントクラスを使っているので、どこにローディングバーを入れたらよいか解りません。

as3でメジャーなやり方などあるのでしょうか?
871Now_loading...774KB:2008/12/27(土) 21:46:28 ID:wc3xp6S+
ActionScript2.0の質問です。
お絵かき用のカラーパレットを作っています。
color1からcolor4までインスタンス名を付けたムービークリップを画面に配置し、
_rootのタイムラインに以下のスクリプトを書きました。
やりたいこととしては、色を配列に入れておき、画面をクリックしたとき、
color1〜4のムービークリップ上なら、配列の該当する色をとってきて、ブラシに色を付けるといったことです。

var colorList:Array = [0x33FF33, 0x00CCFF, 0xFF99CC, 0xFF99CC];
var nowColor = colorList[0]; //現在の色
//カラーパレット設定
function colorSelect() {
 for (N=1; N<=_root.colorList.length; N++){
  _root["color"+N].onRelease = function(){
   trace(N);  //←ここで値は、なぜか5とでます。
   _root.nowColor = _root.colorList[N-1];
   _root.brushColorChange();
  }
 }
}
//クリック時の動作(カラー選択)
_root.onMouseDown = function(){
_root.colorSelect();
}

続きます
872Now_loading...774KB:2008/12/27(土) 21:47:15 ID:wc3xp6S+
続きです。

上記のスクリプトを動作させてみたところ、どのムービークリップ上でクリックしても、Nの値が5と出てしまい、配列から色を持ってこれませんでした。
_root.color1.onRelease = function(){
 _root.nowColor = 0x33FF33;
 _root.brushColorChange();
}
のように、forで回さず、一個一個書いていけば、ちゃんと動くのですが、
最終的には色数が50色以上に増える予定なので、処理をまとめたいと思います。
なにか良い解決方法ありますでしょうか?このスクリプトを直してもらってもいいですし、
こういう方法の方がいいよ!っていう書き方、まとめ方がありましたら、ご教授よろしくお願いします。
873Now_loading...774KB:2008/12/27(土) 21:57:00 ID:foOfTMfg
その部分はクリックして初めて実行される部分なのでfor文の中では実行されません
クリックした時にはすでにfor文を抜けたあとでNが5になってるので、何回押しても5になります

for文を回すときに値を["color"+N]の中に保存しておいて、クリック時にそこから取り出せばいいんじゃないでしょうか
874Now_loading...774KB:2008/12/27(土) 22:11:56 ID:wc3xp6S+
>>873
ありがとうございます。
Nが5になるということは、説明で理解できました。

>for文を回すときに値を["color"+N]の中に保存しておいて、クリック時にそこから取り出せばいいんじゃないでしょうか
ここがまだ理解できないのですが、もう少し詳しくご教授願いますでしょうか。
よろしくお願いします。
875Now_loading...774KB:2008/12/27(土) 22:18:31 ID:foOfTMfg
たとえばcolor1〜4のムービークリップの中に変数myColorなどを作っておいて
for文で回したときに
_root["color"+N].myColor = _root.colorList[N-1];
などしておいて、クリックしたときに
_root.nowColor = this.myColor;
とかすれば解決するんじゃないでしょうか
876Now_loading...774KB:2008/12/27(土) 22:23:52 ID:hTFWKEtM
ActionScript2.0の質問で質問させてください。
イメージギャラリーを作っているのですが、ムービーの配置転換に困っています。

casaフレームワークで先にステージ上にすべての画像を読み込みして、そのひとつずつの画像ごとに
リンケージ「box」中の「img」というムービーに置き換えてから表示させたいと思っています。
どうしたらいいでしょうか。

_mc = this.createEmptyMovieClip("_mc", 0);
var thumbs:Array = myLoadGroup.getLoads(); ←フレームワークcasaを使って複数画像読み込み
for(var i:Number=0;i<thumbs.length;i++){
var container:MovieClip = thumbs[i].getMovieClip(); ←ここに一つずつ画像が。
var mc = _mc.attachMovie("box","mc"+i, i+1); ←リンケージboxを配置
   ここでbox内のムービークリップimgを置き換え処理!?
}

置き換えたmcを一回転させながら表示しようと考えたときに置き換え処理をしなければならないと考えました。どなたかお教えください。



877Now_loading...774KB:2008/12/27(土) 22:32:18 ID:wc3xp6S+
>>875
ありがとうございます。
>などしておいて、クリックしたときに
>_root.nowColor = this.myColor;

これはどのムービークリップをクリックされたのか判定するのに、どう判定するのでしょうか?
僕の頭では、またforで回し、そのなかに.onReleaseで_root.nowColor = this.myColor;
を入れてやるという思考しかできないのですが、これだと
また.onReleaseのときには5になってしまい、よく分かっておりません。すいません・・・。
878Now_loading...774KB:2008/12/27(土) 23:01:58 ID:foOfTMfg
>>876
置き換え処理というのがどういうことをしたいと思っているのかよくわかりませんが
imgのxとyを取得して同じ場所にmcを配置すればいいんじゃないでしょうか


>>877
別にfor文の中で無名関数を設定する必要はないと思います
たとえばそれぞれのムービークリップの中にあらかじめ関数を作っておいてfor回すときにそれを設定するとか

ムービークリップの中で関数を定義
function onReleaseHandler(){
_root.nowColor = this.myColor;
_root.brushColorChange();
}

for文で設定
for (N=1; N<=_root.colorList.length; N++){
  _root["color"+N].onRelease = _root["color"+N].onReleaseHandler();
}

AS2はよくわからないのでこれであってるのかわかりませんが。。。
879Now_loading...774KB:2008/12/27(土) 23:36:51 ID:wc3xp6S+
>>878
ありがとうございます。
僕の力不足で、理解ができませんでした。申し訳ないです。
これ以上続けてもぐだぐだになりそうなので、これで終わります。
本当にありがとうございました。
880Now_loading...774KB:2008/12/28(日) 00:11:06 ID:aBn+iBNA
>>876
ただ単に配置だけなら_x _yだけの処理でよかったのですが、リンケージboxの中心でboxを(box内のimgに画像を当て込んで一緒に)1回転させたいのです。
_x _yで配置するとboxだけが回転して画像はそのままなので。。。
881Now_loading...774KB:2008/12/28(日) 00:38:39 ID:/kqJNsuL
画像もbox内に入れたら一緒に回転するのでは?
882Now_loading...774KB:2008/12/28(日) 00:47:16 ID:aBn+iBNA
>>881
そうなんです。ですが私が未熟でbox内にどのように入れたらよいかわからず。。
しかも複数画像を読み取るためにプリローダーを入れないといけないことからまず画像を一括読み込みし
画像の数だけforでループ+attachMovieで額縁を当て込んでその中に入れるということが
複雑すぎて恥ずかしながら混乱しています。
883Now_loading...774KB:2008/12/28(日) 02:43:18 ID:B2zgSzBs
行いたい処理の流れを細かく箇条書きにでもして
一つずつ解決していくといい
884Now_loading...774KB:2008/12/28(日) 05:48:15 ID:3LCIaMK9
>>870
シュン…
885Now_loading...774KB:2008/12/28(日) 06:44:28 ID:/kqJNsuL
>>884
FlashDevelopの中にAS3 Project with Preloaderというものがあるので
それを参考にするといいですよ
886Now_loading...774KB:2008/12/28(日) 09:14:42 ID:3LCIaMK9
>>885
お返事どうもありがとうございます!そのようなものがあるのですか、ちょっと見てみますね。恩に着ます!(*^^*)
887Now_loading...774KB:2008/12/28(日) 15:04:59 ID:TMsqMGiH
AS2で質問です。CS3を使っているのですが、
ウィンドウ→サンプルライブラリ→ボタンの中にボタンのサンプルがありますよね?
あのボタンの文字が初期ではEnterになっているのですが、この文字を変える事は出来ないのでしょうか?
888Now_loading...774KB:2008/12/28(日) 17:04:04 ID:y/9SBdU+
作成したPreloaderクラスでのプリローダーで読み込みが終わった時、以下のコードでこのPreloaderクラスと同じディレクトリに置いてあるMain.asクラスを実行したいと思っています。

var mainClass:Class = getDefinitionByName('Main') as Class;
addChild(new mainClass());

しかし、
ReferenceError: Error #1065: 変数 Main は定義されていません。
        at global/flash.utils::getDefinitionByName()
        at Preloader/init()
        at Preloader/onEnterFrame()

というエラーが出て再生できません。

以下のようにすればMainは実行されるのですが、依存関係で必要なクラス群が全てロードされてからプリローダークラスの実行が始まるそうで、プリローダーが使えません。

var mainClass:Main=new Main();
addChild(Main);

一体どうしたらプリローダー→Mainと正しく実行されるのでしょうか。どうかよろしくお願いします。

889888:2008/12/28(日) 17:07:45 ID:y/9SBdU+
言い忘れました。ドキュメントクラスはPreloaderで、以下のサイトも参考にしたのですが、解決しませんでした。

http://d.hatena.ne.jp/flashrod/20070317/1174093786
http://www.libspark.org/svn/as3/Thread/trunk/samples/flickrsphere/src/org/libspark/flickrsphere/FlickrSphereRoot.as
890Now_loading...774KB:2008/12/28(日) 17:24:23 ID:B2zgSzBs
> ReferenceError: Error #1065: 変数 Main は定義されていません。

Main へのパス指定が間違っているのでは。
test というパッケージに Main がある場合

getDefinitionByName('test.Main') as Class;

と指定する
891Now_loading...774KB:2008/12/28(日) 17:45:25 ID:y/9SBdU+
>>890
どうもです。私もそう思ったのですが、同じディレクトリで、両方ともパッケージは無名でいつもなら問題ないはずなのですが。謎です
892Now_loading...774KB:2008/12/28(日) 20:20:17 ID:q++LKdYM
>>891
ドキュメントクラスはPreloader。ソース上はPreloaderからMainへの依存関係がない。
それでCS3はswfにMainを入れる必要がないと思ってコンパイルしてないんじゃないか?
888のはてな日記を見て思ったんだが、ドキュメントクラスはあくまでMainで、
MainのファクトリがPreloaderであることをFrameメタデータで指定するんじゃね?
893Now_loading...774KB:2008/12/28(日) 20:58:22 ID:y/9SBdU+
>>892
どもです!ありえると思います、それならMainが見つからないっていうのも尤もですね。ドキュメントクラスはMainですね!

ただ、Flash CS3で作成していてFrameメタデータというのが使えないようなのですが(Flex専用?)。ずっと検索してましたがFlash CS3ではどうしたらよいのか検討が付きません…
894892:2008/12/28(日) 21:29:12 ID:q++LKdYM
>>893
あー、そうなんだ。FrameはFlex専用なんだ。
というかFlexでもマニュアルに載ってない一般非公開のメタデータなんだけどね。

んじゃCS3ではやはりドキュメントクラスはPreloaderにして、
後はswfにMainを入れてくれるようCS3をなんとか説得するしかないのかな。

ライブラリに空のMCをクラス名=Main、swfに書き出し=Yesで登録して実際のコードはMain.asに書く、
でやったらどうだろう?
895Now_loading...774KB:2008/12/28(日) 22:14:35 ID:vDpusQgf
●というラベルの、○コマ目に飛ぶ、というASは
どう書いたらいいでしょうか?

ラベルをシーンに変えないとダメでしょうか?
896Now_loading...774KB:2008/12/28(日) 22:57:13 ID:y/9SBdU+
なんと、Preloaderがドキュメントクラスですが、Mainの一部が動きました!プリローダは表示されませんでした。

プリローダは先ほどのはてな日記のもので、Mainを作ってaddするinit()が呼ばれた時、trace(framesLoaded)は1となり、flaのフレームを1→2と増やすと、trace(framesLoaded)は2となりました。フレームじゃだめのようです。

話がそれました、以下が出たエラーです。

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

Mainのどこかなと調べてみると、

mat_array[jj].translate(-stage.stageWidth/2, -stage.stageHeight/2);

現在stageを参照するとnullが返るという状態です。
897Now_loading...774KB:2008/12/28(日) 23:20:49 ID:vDpusQgf
>>887
ボタンをステージに配置>Wクリック
Enterの文字をWクリック>書き換える

でできませんか?
898Now_loading...774KB:2008/12/28(日) 23:39:05 ID:q++LKdYM
>mat_array[jj].translate(-stage.stageWidth/2, -stage.stageHeight/2);
>
>現在stageを参照するとnullが返るという状態です。

Mainのコンストラクタの中(=Stageに追加される前)でstageにアクセスしてるからだろ。
stageが必要な処理はaddToStageイベントハンドラでやるべし。
899Now_loading...774KB:2008/12/28(日) 23:44:00 ID:B2zgSzBs
>>895
ラベルに飛んだ後
currentframe + 進みたいフレーム数
ではどう?
900Now_loading...774KB:2008/12/29(月) 04:13:34 ID:SHtthhqF
ActionScriptで
名前._visible=false
名前.stop をかけたムービーインスタンスは、
その間もCPUに負担をかけ続けるんでしょうか。
901Now_loading...774KB:2008/12/29(月) 10:38:48 ID:tjDzh/Yl
>>898
できました(涙)MainコンストラクタでaddToStageイベントリスナ、コンストラクタ外でステージ使う処理をしました。コンストラクタ実行時はまだステージに乗ってないのですね、勉強になりました!

プリローダの問題はもう少し調べてみることにします
どうもありがとうございました!!
902Now_loading...774KB:2008/12/29(月) 15:54:42 ID:E9Xc/im1
AS3のMath.random()の戻り値は
1を含むのか含まないのかどちらでしょうか。
ググッてもどちらも載っている感じがします。
主に小数で書いている所は含む、分数は含まない感じです。
903Now_loading...774KB:2008/12/29(月) 16:07:50 ID:h0gb40dO
>>902
1は含みません。0は含みます。
リファレンスを読みましょう。明記してあります。

http://livedocs.adobe.com/flex/3_jp/langref/Math.html#random()
> random () メソッド
> public static function random():Number
> 言語バージョン: ActionScript 3.0
> ランタイムバージョン: 1.0 9
> 疑似乱数 n を返します(0 <= n < 1)。計算には必ず非ランダムのエレメントが含まれるので、返される値は非公開の方式および疑似乱数で計算されます。
> 戻り値
> Number — 疑似乱数です。
904902:2008/12/29(月) 16:14:31 ID:E9Xc/im1
>>903
わかりました。ありがとうございます。
905895:2008/12/29(月) 19:42:07 ID:lYKcWjx8
>>899
レス有難うございます!
ラベルの先頭2フレームは別の処理待ちで行ったりきたりしているので
ちょっと難しいです・・・

フレーム番号指定だと、前の方にラベル追加した時困るので
ラベル+フレーム番号で指定ができれば便利だな〜と思ったのですが・・
906Now_loading...774KB:2008/12/29(月) 19:48:01 ID:Dy0I7RwG
>>905
どういう構造でどういうことしたいのかよくわからんのだが、
飛びたい先に別のラベルをつければいいんじゃないのか??
ラベルも○コマ目も同一タイムラインでの話じゃないのか?
907905:2008/12/29(月) 20:15:40 ID:lYKcWjx8
>>906
こんな感じです↓
______________________________________________________________________________
|  ラベル1    |  ラベル2    |  ラベル3    |
______________________________________________________________________________
|キー入力待ち   |キー入力待ち   |キー入力待ち   |


>飛びたい先に別のラベルをつければいいんじゃないのか??

全くその通りなのですが、そんな方法があれば
見た目もスッキリして後々直しやすいのになぁという願望でした。
908Now_loading...774KB:2008/12/29(月) 20:49:16 ID:LtEvYtpU
環境)OS:WinXP-Pro,Mem=3GB,ソフト:FlashCS3-Pro(Player9.0,AS3.0)

メモリ開放の方法で質問です。

外部テキストを読み込み、特定の文字列があるかどうかをチェックするASを書きました。これは
目的の動作をしたのですが、予想以上に(特にSWFをスタンドアローンで動かした時に)メモリを
消費しています(外部テキストが26MBあるので仕方ないかも知れませんが・・・)

大まかな流れは以下の通りです。
var fileLoader:URLLoader=new URLLoader(); //fileLoaderオブジェクト
  ↓
fileLoader.load (new URLRequest(目的ファイル名));
  ↓
public function file_loaded (fileEvt:Event) { 読み込み後に文字列チェック }

文字列有無の判定は1回だけですので、不要なオブジェクトはさっさと消してメモリ領域を開放
したいのですが、うまく出来ません。
(プレビューで130MB,スタンドアローンで420MBも使っています)

調べて試したのは、fileLoader=new URLLoader(); での再定義と removeEventListener ()
です。本当はガーベージコレクション(GC)をしたいのですが、これはデバッグ用とのことなので
使えませんでした。

どうしたら良いでしょうか?
909Now_loading...774KB:2008/12/29(月) 21:00:00 ID:7D/6AcUN
流れぶったぎってすみません。
これ↓ってフラッシュなんですか?

http://i180.photobucket.com/albums/x1/bbdaddio/derail.gif

こういうスライドショーっぽいのってどうやって作ればいいんでしょうか?
Webサイト構築をやっているのですがド素人なのでヒントだけでも頂けるとありがたいです。
まったくスレ違いだったらすみません。(その時は誘導お願いします。。。)
910Now_loading...774KB:2008/12/29(月) 21:05:30 ID:yR1eSK85
これはgifアニメです
911Now_loading...774KB:2008/12/29(月) 21:40:46 ID:7D/6AcUN
>>910
どうもありがとうございます。
去りますね。。。w
912Now_loading...774KB:2008/12/29(月) 21:43:19 ID:z6uPcLer
拡張子ってものを知っておくと役立つかもね!
913Now_loading...774KB:2008/12/29(月) 22:28:18 ID:DQoyEF/N
914Now_loading...774KB:2008/12/29(月) 22:36:53 ID:F4WhMoSh
>>908
URLStreamクラスを使うってのはどうだ?読み込み途中でもデータにアクセスできるよ。

URLStreamがアクセス済みのデータをメモリ溜め込まずにどんどん捨てるような実装に
なっていればメモリをバカ食いすることはないのではないかと思うのだが、そこは確認して
ないので分からんので解にならないかもしれんけど、試してみる価値はあるんじゃないかな。どう?
915Now_loading...774KB:2008/12/29(月) 23:13:38 ID:LtEvYtpU
>>914
ありがとうございます。
確かに途中でアクセス出来るのは魅力的ですが、目的の文字列は大抵テキストの
終わり辺りにあるので、全部読み込むのと変わらないかと思います。

あと、URLStreamクラスにメモリ開放させるメソッド類があれば良かったのですが、
リファレンスを読む限り無さそうです。
916914:2008/12/29(月) 23:34:35 ID:F4WhMoSh
progressイベントでURLStreamからreadしてあげれば、readされた部分は
URLStreamも最後までメモリ上に保持する必要はないはずなのでどんどん
捨てるような実装(たとえばリングバッファとか)になってないのかなぁ、と。

もしそうなってるのなら、どんだけデカいデータを読んでもメモリ消費量は
一定に抑えられるのではないか、と思ったわけです。
917908:2008/12/30(火) 00:11:19 ID:wpqOZnXM
>>916
なるほど、もう少し調べてみます。
というか、何か作ってみますw
918Now_loading...774KB:2008/12/30(火) 02:47:21 ID:bRZK2E4z
URLStreamってバイナリだろw
23MBのテキストをURLLoaderで読み込んで何か問題あるの?
メモリ解放はユーザーのタイミングではできませんw
919914:2008/12/30(火) 03:36:25 ID:boG7lgXO
>URLStreamってバイナリだろw
IDataInputインタフェース実装してるからreadMultiByte()で文字コード変換も可能だよ。

でも1バイトずつreadして改行文字を探しつつByteArrayに放り込んで、
1行溜まったらByteArray.readMultiByte()で文字列化するのがいいと思う。
その方が後の検索処理なども考えやすそう。

>23MBのテキストをURLLoaderで読み込んで何か問題あるの?
やたらとメモリを食ったからなんとかしたいって話なんだろ?いいじゃないか。
クライアント環境のスペックが厳しいなんてことはザラにあるべ。

>メモリ解放はユーザーのタイミングではできませんw
だからメモリをガバガバ確保しにいかない方法を提案しようとしてるんじゃが…

ワシが悪いんか?ワシが悪かったんか?のぅ、トメさんや。
920Now_loading...774KB:2008/12/30(火) 03:49:06 ID:bRZK2E4z
必要なメモリを食うのは当たり前で、それで実際に弊害がなければ問題ないでしょw
変にバイナリから変換なんて効率の悪いことをするのはお勧めできない
むしろオブジェクトが必要なくなった時に、きちんと非活性化してGC対象にするってのを
心がけた方が良い
921914:2008/12/30(火) 04:39:18 ID:boG7lgXO
>変にバイナリから変換なんて効率の悪いことをするのはお勧めできない
URLLoaderだってdataに設定するStringを作るときに中でコード変換が入るだろ。
だから外で明示的にreadMultiByte()を呼んでコード変換するのと有意な差があるとは思えん。

>必要なメモリを食うのは当たり前で、それで実際に弊害がなければ問題ないでしょw
必要なメモリっていうけど、23MBのテキストをランダムアクセスするんなら丸々全体が必要だけど
検索のためにシーケンシャルにしかアクセスしないんなら、必要なのは今読んでる周辺だけ。
だからスキャン済みでもう必要なくなった部分は捨てる。といってるんだけどな。

>むしろオブジェクトが必要なくなった時に、きちんと非活性化してGC対象にするってのを
それは当然だ。まぁ確かに>>908のプログラムも23MBものテキストを扱う周辺だけでも
こまめに不要になった変数にnullを入れて参照を断ち切っていくだけでもメモリ使用量を
もっと抑えられるかもね。
922908&915:2008/12/30(火) 10:34:44 ID:hosU71Hi
>>918-921
有難うございます。

試しに(勉強がてら)、919さんのURLStream案でASを組んでいますが、

> 1バイトずつreadして改行文字を探しつつByteArrayに放り込んで、
 1行溜まったらByteArray.readMultiByte()で文字列化

の具体的な方法が分かりません。多分、while文で溜め込み&文字列形成するということだと思うのですが、
手元の本やWebからはヒントが得られませんでした。

現時点では、addEventListener() で弱参照にして更にremoveEventListener()する という二重の処理を
施しています(メモリ開放が任意のタイミングで行えないので、気休め程度かもしれませんけど)。
923914:2008/12/30(火) 14:34:09 ID:boG7lgXO
private var stream:URLStream;
private var completed:Boolean = false;
private var buffer:ByteArray = new ByteArray();
private var line:String;

private function readLine():Boolean {
 line = null;
 while (true) {
  if (stream.bytesAvailable == 0) {
   if (!completed) return false; // ロード未完で行途中
   if (buffer.length == 0) return false; // ロード完了でもう行なし
   break; // ロード完了で最後の行は末尾に改行なし
  }
  var b:int = stream.readByte();
  buffer.writeByte(b);
  if (b == 10 /* LF */) break; // 改行発見
 }
 buffer.position = 0; // バッファのカーソルまき戻し
 line = buffer.readMultiByte(buffer.length, "shift-jis");
 buffer.position = buffer.length = 0; // 次の呼び出しに備えてリセット
 return true; // 行あり
}
924914:2008/12/30(火) 14:35:30 ID:boG7lgXO
// 923つづき

private function onProgress(event:Event):void {
 while (readLine()) doSomething();
}

private function onComplete(event:Event):void {
 completed = true;
 while (readLine()) doSomething();
 // 後処理が必要ならココで。
}

private function doSomething():void { /* lineを好きなようにいじる */ }
925908&915:2008/12/30(火) 22:50:33 ID:qIxt6EdK
>>923-924
有難うございます。
試してみます。
926Now_loading...774KB:2008/12/31(水) 13:45:06 ID:xGuIOO2F
AS3.0です
FlexBuilderでActionScript書いて簡単なゲームを作ろうと思ったんですけど,
MouseMoveイベントが起こるたびにgraphicsオブジェクトの
GraphicsクラスのdrawRectメソッドやLineToメソッドで描画しているのですが
処理がめっちゃ重くなります.
どういうふうに描画したら軽くなるんですか?
よろしくお願いします.
927Now_loading...774KB:2008/12/31(水) 14:20:04 ID:iAdst8vY
>>926
更新時にgraphicsの内容をクリアしてないとか
あるいはリアルタイムに描画しすきとかじゃないの
928Now_loading...774KB:2008/12/31(水) 14:22:51 ID:eaN0G8Pb
BitmapDataにdrawする

929Now_loading...774KB:2008/12/31(水) 16:20:53 ID:xGuIOO2F
>>926-927
クリアしてませんでした.
だいぶ軽くなりました助かりました
930Now_loading...774KB:2009/01/01(木) 20:59:04 ID:R0JEsuo+
AS3.0のKeyboardEventを使ってキー入力イベントを作りたいのですが
A〜Zのようなメイン部分や一部のキーコードを指定しても反応しません。

カーソルキーやスペースキーなど逆に一部は指定すれば反応します。
この原因は何なのでしょうか。
931Now_loading...774KB:2009/01/01(木) 22:57:51 ID:G9SPvqWF
>>930
flash.ui.Keyboardクラスのキーコードを使って指定してないか?
A〜Zなんかは、Airじゃないと動かないよ。
932Now_loading...774KB:2009/01/01(木) 23:51:25 ID:R0JEsuo+
>>931
どうもです!
FLASH以外の知識がないので、正しいかはわかりませんが
Flexを使わないとテンキー周りのキーや修飾キー以外使用できないんですね。

今使えるキーだけでやってみようと思います。
933930:2009/01/02(金) 06:03:41 ID:VWbg2VQG
>>931
いや、そうじゃなくて、
flash.ui.Keyboardクラスに定義されてる定数が使えないのであって、
A〜Zなどのキーを指定する場合は、
キーコードを直接数値で指定すればいいってこと。
934930じゃなくて931:2009/01/02(金) 17:17:15 ID:77R1SF8N
間違えた。
>>931じゃなくて>>932
935Now_loading...774KB:2009/01/03(土) 00:50:06 ID:FEl77jin
質問させてください。
movie01というインスタンス名のムービークリップに
識別子(リンケージ)で、それぞれnote1、note2、note3と名づけた3つムービーを、下記のスクリプト
ここから---------
//変数 a に 1〜3 の整数をランダムでセット
var a = Math.floor(Math.random()*3)+1;

// _root に 識別子 "note"+a を
// "note" というインスタンス名で 呼び出す
_root.attachMovie(["note"+a], "note", 0);

// "note" の x座標とy座標を設定
_root.note._x = 10;
_root.note._y = 10;
ここまで---------

で読みこみ、
note1、note2、note3をランダムに再生しています。
が、このランダムに再生されているnote1、note2、note3にアクションが効きません(泣)

例えば、ボタンインスタンスに
on (release) {
_root.movie01.stop();
}
というスクリプトを書いても、
ランダムに読み込み・再生されている
note1、note2、note3は再生されっぱなしになってしまいます。
インスタンスmovie01内に、note1、note2、note3を読み込んでいるわけですから、
上手くいくと思っていたのですが、、、
こういった場合はどうしたら制御出来るのでしょうか?
どなたかご回答よろしくお願いします。
936Now_loading...774KB:2009/01/03(土) 01:52:20 ID:Jaj3v9WQ
>>935
読み込みとattachMovie()は別ものだよ?
movie01として扱えるのは、外部swfをMovieClipLoaderなどでmovie01にロードした場合か
attachMovie()する時に、movie01というインスタンス名を指定した場合。
ここでは_rootにnoteというインスタンス名でattachしてるんだから、ターゲットパスは、_root.note
movie01は上記のスクリプトではまったく関係ない。
ちょこっと基本事項を確認したほうがいいと思う。
937Now_loading...774KB:2009/01/03(土) 02:43:46 ID:FEl77jin
>>936
有難うございます。
movie01は関係ありませんでしたね。
お恥ずかしい限りです。
見直して、自分でやってみます!
なるべく自分でやってみて
また、分からなかったら質問するかもしれません。
すみません…
とりあえず本当に有難うございました!




938Now_loading...774KB:2009/01/03(土) 10:57:47 ID:dEIZS4Xi
AS2.0での質問です
attachMovieで作ったmcを一定条件をクリアした場合にremoveMovieClipさせているんですが、
その一定条件をクリアした後、1000ミリ秒待った後にremoveMovieClipへ移行させるといったことは可能でしょうか?
どなたか回答お願い致します。
939Now_loading...774KB:2009/01/03(土) 14:47:53 ID:Spl5Bsev
>>938
setInterval
940Now_loading...774KB:2009/01/04(日) 14:28:11 ID:kxybylcD
画面を自由に動き回るMC_Aと
キー操作で自由に動かせるMC_Bが
ぶつかってもめり込まないようにするにはどうしたらいいですか?

今は、ぶつかったら互いに進んだ分戻る、という処理をしていますが、
どうしてもめり込んでいってしまいます。><

AS2です。宜しくお願いします。
941Now_loading...774KB:2009/01/04(日) 15:12:30 ID:b1NN9ba1
>>940
めり込まない位置まで戻すか
進む前に判断してめり込まない位置まで進ませる
942940:2009/01/04(日) 15:34:19 ID:kxybylcD
>>941
レス有難うございます、一応前者の方法(HITしたら移動の3倍戻る)で
やってるんですが動きがおかしいです。(原因不明)

片方が動いていない時は、めり込まないのですが
両方が動いている場合、MC_Bをキー操作でMC_A側に押し続けると
なぜかめり込んでいってしまうんです。
ガクガク動きながら通り抜けてしまう事もあります。

通り抜けた後は、ものすごく動作が重くなります。
何が原因なのでしょうか?
943Now_loading...774KB:2009/01/04(日) 17:07:11 ID:b1NN9ba1
>>942
例えばMC_Aが画面下方向に動いててMC_Bを上方向に動かした時、
MC_Aが動く量も考えてMC_Bを戻さないとだめなんじゃないの?
944940:2009/01/04(日) 17:38:51 ID:kxybylcD
>>943
有難うございます!お互いがこんな感じで
-----------------
■MC_A
↓1移動

↑5移動
■MC_B
-----------------
HITしたら、
-----------------
↑3移動
■MC_A
■MC_B
↓15移動
-----------------
と思いっきり突き放しているので、通り抜ける訳ないのですが
お互いがお互いに向かっている時、キーを押し続けていると
通り抜けてしまうんです。

あと、動作が異様に重くなるのは、traceを消したら直りました!
945Now_loading...774KB:2009/01/04(日) 17:40:49 ID:UPHwNT+0
それなんか根本的なところミスしてんじゃないの
ヒットチェックの前に移動ルーチンがあったり
移動している方向逆だったり
946940:2009/01/04(日) 19:41:55 ID:kxybylcD
>>945
うーん確認したんですが
そんな事はないようでした。

思ったんですが
------------
■MC_A
→1移動

↑5移動
■MC_B
------------
の時HITしたら
------------
■MC_A
←3移動

↓15移動
■MC_B
------------
でこの時点で動きがおかしくなってる気がするので
この積み重ねで異様な動きになってるのかもしれません。

もう少し色々やってみます。
有難うございました!
947Now_loading...774KB:2009/01/04(日) 23:03:39 ID:DZmlCsN+
Flashでメールフォームを作ってます。
メールフォームのCGI本体はレンタルなので、別ドメインにあるのですが、
これが原因で送信ボタンを押してもloadVariablesNumが機能しません。

ローカルではきちんと動くのですが、サーバに上げると動かなくなってしまいます;
何か解決策はないでしょうか…
948Now_loading...774KB:2009/01/04(日) 23:10:36 ID:ycIrHY5g
>>947
「Flash」「クロスドメイン」について検索
949Now_loading...774KB:2009/01/04(日) 23:12:58 ID:Z3OHDq7E
>>947
CGI要らないやり方がいいよ
http://www.geocities.jp/flashiroha/script/as33.html
950Now_loading...774KB:2009/01/04(日) 23:14:35 ID:ylQYhXZ2
>>947
(参考程度に)
「ローカルOKでサーバ上が駄目」だけだったら、アップロード用ソフト(FFFTPとか)の設定
に左右されることがある。
例で言うと、 ttp://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=8213&forum=8
のように「常にバイナリモード」でUpすると良いかも(今回のCGIでの確証はないw)
951Now_loading...774KB:2009/01/04(日) 23:25:28 ID:ylQYhXZ2
>>949
おー、こういう方法もあるのか。
952Now_loading...774KB:2009/01/05(月) 04:31:06 ID:lFA507q0
AS2.0での質問です
ブラウザのサイズに合わせてムービークリップ(contents)を拡大・縮小させたいのですが、
それはうまくいっているのですが、
contentsを常にステージの上下100ピクセルあけてかつ左右の中央にくるようにしたいのです。
左右がうまくいかず、左あわせになってしまいます。
スクリプトは下のように書いています。
どうかアドバイスお願いします。


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

var MW:Number = contents._width;
var MH:Number = contents._height;

contents._y = Stage.height+100;
contents._x = Stage.width/2;

var sListener:Object = new Object();

sListener.onResize = function() {

contents._height = Stage.height-200;
contents._width = MW/MH*(Stage.height -200);

}

updateAfterEvent();

Stage.addListener(sListener);

sListener.onResize();
953Now_loading...774KB:2009/01/05(月) 06:48:37 ID:T70J4qop
アドバイス欲しいって言うから意地悪するよ。
onResize = function() {〜};の間で右辺の欠けている三つの式を完成させよ

Stage.scaleMode = "noScale";
Stage.align = "TL";
var MW:Number = contents._width;
var MH:Number = contents._height;
var sListener:Object = new Object();
sListener.onResize = function() {

contents._x = ;
contents._y = ;
contents._height = ;

updateAfterEvent();
};
Stage.addListener(sListener);
sListener.onResize();
954Now_loading...774KB:2009/01/05(月) 11:14:55 ID:lFA507q0
>>953
onResize = function() {〜};の間に位置を指定するんだったですね。
ありがとうございます!出来ました!

Stage.scaleMode = "noScale";
Stage.align = "TL";
var MW:Number = contents._width;
var MH:Number = contents._height;
var sListener:Object = new Object();
sListener.onResize = function() {

_root.contents._y = +100;
_root.contents._x = Stage.width/2;
contents._height = Stage.height-200;
contents._width = MW/MH*(Stage.height -200);


updateAfterEvent();
};
Stage.addListener(sListener);
sListener.onResize();
955Now_loading...774KB:2009/01/05(月) 14:58:47 ID:ZVQXS+SQ
AS3です。
HogeSuperのオーバーライド関数のShowMsgを
HogeSub2で実行するにはどうすればいいでしょう。

var hoge:HogeSuper = new HogeSub1();
hoge.ShowMsg();
hoge = HogeSub2; //エラー 暗黙で型変換されている
hoge.ShowMsg();
956Now_loading...774KB:2009/01/05(月) 15:01:15 ID:ZVQXS+SQ
HogeSuperがスーパークラス、
HogeSub1、HogeSub2がサブクラスです。
記述でオーバーライドと書く必要がありますが、
やりたい事はポリモーフィズムです。
957Now_loading...774KB:2009/01/05(月) 15:10:08 ID:/ntb7oUA
>>955
HogeSub2ってどっから出てきたんだよw
958Now_loading...774KB:2009/01/05(月) 15:25:49 ID:ZVQXS+SQ
>>957
ありがとうございます。ヒントになりました。
これでいいでしょうか。
一応、HogeSub1、HogeSub2両方を表示できました。

var hoge:HogeSuper;
var hoge1:HogeSuper = new HogeSub1();
var hoge2:HogeSuper = new HogeSub2();

hoge = hoge1;
hoge.ShowMsg();
hoge = hoge2;
hoge.ShowMsg();
959Now_loading...774KB:2009/01/07(水) 14:48:20 ID:1HjaqTH0
WinXP-ProでFlash-CS3-Pro(AS3.0)です。

メーラーを立ち上げず、CGIも使わないで、スタンドアローンFlashのみでメールを送信する
方法はありますでしょうか?
目標はPC内で時間が掛かる処理を行わせて、その処理状況をメールで携帯などに知らせ
るものです。

先ずは、「お知らせタイマー」みたいな感じで、固定メアドに一定間隔(30分毎とか)でメール
を送信したく思っています。

上の>>949にCGI不要の方法はありますが、これは送信毎にメーラーを立ち上げる必要がある
ので取り入れられない状況です。

よろしく願います。
960Now_loading...774KB:2009/01/07(水) 15:05:16 ID:uOLSGPaa
そんなスパム砲台をweb上で使用できるFlashムービーでできるわけないじゃん
できたらウィルスの類として報告されるレベル
きちんと自分でサーバー立ててメール送信用のCGI置きな
961Now_loading...774KB:2009/01/07(水) 17:25:03 ID:FMp6/lBO
>>960
Thx
なるほどFlashでは無理でつか。
962Now_loading...774KB:2009/01/07(水) 19:28:45 ID:FL5Luyqc
ムービークリップインスタンスを
setInterval()を使い、ボタンでフレームレートを
遅くしたり、早くしたり出来るサンプルがあるのですが、
このムービークリップインスタンスを、ボタンアクションで
on (press) {
_root.インスタンス名.stop();
}
と書いても、停止出来ません。
説明不足かもしれませんが、考えられる理由を
アドバイスいただけたらと思います。
よろしくお願いいたします。




963Now_loading...774KB:2009/01/07(水) 20:38:41 ID:F50lGVk1
>>962
clearInterval()しないといけないんじゃないかな?
964Now_loading...774KB:2009/01/07(水) 22:43:35 ID:3GJmIH73
>>961

メールサーバー(ラディッシュとかだっけ?)を立ち上げて
Flashはメールサーバーにソケット通信を使ってメールサーバーへ
アクセスして、メールを送信ってのは可能だったような。

前やったときは日本語がうまくいかなくて投げた。


素直に外部サーバー+PHP使ったほうがスマートだべ
965Now_loading...774KB:2009/01/08(木) 00:52:51 ID:Vca2hgXu
AS3です。
同じスーパークラスからの
サブクラス(息子兄弟クラス)の間で、
使えるようなアクセス制限(開放)みたいなのが
ありましたら教えてください。
966Now_loading...774KB:2009/01/08(木) 01:53:38 ID:il/qVBLh
>>965
そんなのない。

その息子兄弟はそれなりに蜜な関係にあるんだろうから同じパッケージにして
デフォルト(=internal)のアクセス権にするのがいいとこじゃね?
それにしてもへんなアクセス制限だな。なんでそんなに隠したがるんだ、シャイだな。
どうしてもパッケージを分けたきゃすなおにpublicにするんだね。

カスタム名前空間にするという方法もあるが、適切な用法なのかわからん。
967Now_loading...774KB:2009/01/08(木) 05:18:20 ID:Vca2hgXu
>>966
ありがとうございます。

どういうアクセス制限をするべきかは分かっていなくて、
簡単なゲームを作りながら、いろいろ試していました。

また、packageは使い方がよく分からなくて、
エラーが出ない方法だった、1つのファイルに
名前の無い1packageを作って、ファイルの内容全てを囲み、
その中にファイル名と同じ名前の1クラス(public)だけを作っていました。

packageの名前付け、メソッドにinternalを使う、
クラスにpublic以外を使う、辺りをいろいろ試して見ます。
968Now_loading...774KB:2009/01/08(木) 08:36:34 ID:o6uB+piC
そりゃ普通にprotectedで済むんじゃねーの?
969Now_loading...774KB:2009/01/08(木) 09:43:05 ID:ddoqCZyE
>>968
サブクラス同士でのアクセス権限の話かと
970965:2009/01/08(木) 21:48:30 ID:Vca2hgXu
>>967のを試してみました。
(FlexSDK3、AS3、mxmlc.exe、警告:ture、strict:ture)

>packageの名前付け
同じ名前のフォルダにファイルを入れないといけなく不便です。
(フォルダに入れたことでパッケージしたとも言えるから、
packageに名前をつける意味はないような)

>メソッドにinternalを使う
教えていただいた、「同じパッケージにして
デフォルト(=internal)のアクセス権」で意図した事ができました。

>クラスにpublic以外を使う
internalは使えましたが、private、protectedはエラーが出ました。
また、1ファイルには1クラスのみしか使えなく不便です。

>>968>>969
そうです。⇔の所です。
superのをsubは使えますが、逆はoverrideでしか使えないので、
packageを使わない方法では難しいのかもしれません。

super 
↓   ↓
sub1⇔sub2
971Now_loading...774KB:2009/01/09(金) 00:46:30 ID:TvsAyI2B
環境)OS:WinXP-Pro,Mem=3GB,ソフト:FlashCS3-Pro(Player9.0,AS3.0)

ByteArrayクラスとURLStreamクラスで質問です。

「ActionScript 3.0 逆引きクイックリファレンス」(毎日コミュニケーションズ)のp323にある画像読み取りAS
を改変してテキストも読み込もうとしていますが上手くいきません。下記は(著作権上)抜粋したものです。

stream.addEventListener(ProgressEvent.PROGRESS, progressHandler);
stream.addEventListener(Event.COMPLETE, completeHandler);
stream.load(new URLRequest("photo.png"))// ←※ Txt.txtに変える
function progressHandler(event:ProgressEvent):void {
if (event.target.bytesAvailable) {
event.target.readBytes(imageData, imageData.length); //元々はPNGなのでオブジェクト名はimageData
}
}
function completeHandler(event:Event):void {
loader.loadBytes(imageData);
}

矢印のURLRequestの引数 photo.png を1KBほどのテキストファイル Txt.txt に変えると以下の
エラーが出ます。
 Error #2044: ハンドルされていない IOErrorEvent : text=Error #2124: 読み込まれたファイルの形式が不明です。

ところが、この引数にJPGやGIFを入れると問題なく動作します。何故、テキストファイルだとこのようなエラーが
出るのでしょうか?

ヘルプで見ても、エラーは
 checkPolicyFile または securityDomain プロパティ (context パラメータのプロパティ) が null 以外であった場合
ということなのですがよく分かりません。
972Now_loading...774KB:2009/01/09(金) 03:52:44 ID:j4Eanj5h
エラーがどこであがったのかも詳しく。
loader.loadBytes()のとこか?stream.load()のとこか?
addEventListener("ioError", ...) して正しく把握してみるべきだ。

それから、今回のエラーと関係があるかはわからんが、imageDataへの追加を
progressイベントでしかやっていないが、completeイベントでもやるべきだ。
completeイベントでもstreamにデータが入ってきていることもあるので。
さらにいうと、データが少ない場合などprogressが全く呼ばれずいきなりcompleteということもある。
973Now_loading...774KB:2009/01/09(金) 14:09:27 ID:cD2xAG6e
Flash8pro AS2
文字列(関数名)から関数を実行することはできますでしょうか。
使えるならどうすればよいのでしょう。
974Now_loading...774KB:2009/01/09(金) 14:18:34 ID:fIcgkc0K
>>973
eval とか 配列演算子アクセス で調査
975Now_loading...774KB:2009/01/09(金) 14:53:45 ID:iu4nW0Uy
オブジェクト消去で質問です。(WinXP-ProでFlashCS3Pro,AS3.0)

使用メモリ低減のため、不要なオブジェクトを消去したいのですが、null,delete,undefined の使い分け
と実際の記述が分かりません。

調べたところ、
null : データが無いことを示す
delete : オブジェクトの動的プロパティを消去
undefined : 未定義

ということは分かりました。ttp://www.himco.jp/articles/pdf/AS3_tutorials.swf のように例えばobject1を
消そうとしたとき、
delete object1.data;
object1=null;

では、deleteのところでエラーになります。delete object1.data; 無しなら無問題です。

一応、object1については addEventListener で弱参照にして、処理後 removeEventListener していますが
オブジェクトの消去では、弱参照と removeEventListener と object1=null; で十分なのでしょうか?
976Now_loading...774KB:2009/01/09(金) 14:57:27 ID:cD2xAG6e
>>974
ありがとうございます。使えました。
977Now_loading...774KB:2009/01/09(金) 15:17:06 ID:fIcgkc0K
>>975
エラーの内容は?

GCについてはこことかも参考に
ttp://www.be-interactive.org/works/20081219/be-lt05-gc.pdf
978Now_loading...774KB:2009/01/09(金) 15:48:04 ID:iu4nW0Uy
>>977
さんきゅうです。エラーはプロパティについてですが、
 1189: 固定プロパティ fileLoader を削除しようとしています。削除できるのは、動的に定義されたプロパティだけです。
と出ます。

※ リンクPDF中の「Adobe 上条さんの記事〜」の1つ目のURLは Page Not Found になっています。
979Now_loading...774KB:2009/01/09(金) 16:59:19 ID:XIjxXHqi
AS3.0はプロパティの「値」をdeleteできないよ
null代入しとけばよい

delete使うのはダイナミックな要素(プロパティ)扱う時くらいにおぼとけばいいんじゃね?

var o:Object ={a:1,b:2,c:3};
for each(var oo:String in o)trace(oo);
trace("---");
delete o.a;
for each(oo in o)trace(oo);
980Now_loading...774KB:2009/01/09(金) 21:39:27 ID:oMP6izwg
mySoundっていうサウンドオブジェクトがあって外部から曲流してるとき
mySound.stop();で曲とめれんのはいいけど、最初にもどしてストップさせるのってどうすりゃいいの
mysound.start(0,1);の直後にmySound.stop();でいい?
なんかもっとそれ用にメソッドとかありそうなきがするんだけど
981Now_loading...774KB:2009/01/09(金) 23:59:48 ID:ec/4EHp7
初めて質問させていただきます。
AS3.0です。


ttp://hakuhin.hp.infoseek.co.jp/main/as3/loader.html#LOADER_01
を使って、外部ファイルを読み込むまではいいのですが、
BGMが再生されるswfを読み込んだ際、別のものを読み込んだ時も再生されっぱなしになります。
なので別の外部ファイルを読み込んだ際、前に読み込んだものを完全に停止、もしくは破棄するには
どうしたらいいでしょうか?
close()は読み込みが完了すると使えませんし、
unload()はやるとエラーが出ます。
助言よろしくお願いします。

環境:WinXP 使用ソフト:Flash CS3 Pro
982971:2009/01/10(土) 14:49:05 ID:swhbTV9t
>>972
すいません、レスが遅くなりました。エラー箇所はデバッグモードで実行しましたが
場所は特定できませんでした。とりあえず下記の表示になります。
 Error #2044: ハンドルされていない IOErrorEvent : text=Error #2124: 読み込まれたファイルの形式が不明です。

お教え頂いた、"ioError"はどこで使えば良いのでしょうか?
 stream.addEventListener(ProgressEvent.PROGRESS, progressHandler);
      ↓
 stream.addEventListener("ioError", progressHandler);
の変更でしょうか?

あと、
> imageDataへの追加をprogressイベントでしかやっていないが、completeイベントでもやるべきだ。

の意味が分かりません。event.target.readBytes() をcompleteHandler内でも行うということでしょうか?
実際にこの中でreadBytes()しましたが、何も変化はありませんでした。

983Now_loading...774KB:2009/01/10(土) 15:42:02 ID:VXQ5mdQe
>>982
>>971のコードで気になるのは、completeHandler内の、
loader.loadBytes(imageData); ←これ
streamで読み込んでるのに、loaderってどっから出てきてるの?
984983:2009/01/10(土) 16:03:03 ID:VXQ5mdQe
>>982
すまん。何か誤爆した。
985983:2009/01/10(土) 16:20:57 ID:VXQ5mdQe
>>982
Loaderがサポートするのは、
SWF、GIF、JPEG、PNG、ということらしい。
吊ってくる。
986Now_loading...774KB:2009/01/10(土) 17:54:03 ID:u1pRSNmw
ASで例えばAというmcをstage.addChild(A)して、
さらにBというmcをA.addchild(B)した場合、
Aをstage.removeChild(A)して、さらにA = new C() as MovieClipとして
新しく初期化する場合、
A.removeChild(B)は実行する必要がありますか?
わかりづらくてすいません。
987Now_loading...774KB:2009/01/10(土) 19:03:20 ID:bZsJjvym
>>986
他からの参照が無ければ必要はない(GC対象になる)が非活性化は必須
988Now_loading...774KB:2009/01/10(土) 19:15:21 ID:u1pRSNmw
ありがとうございます。それが知りたかったのです。
989Now_loading...774KB:2009/01/10(土) 19:47:39 ID:lYK0lpxu
使用ソフト:Flash 8 (AS2)
OS:Windows Vista 64bit

ある特定のキー(今回は↓キー)が押されたときに、MC内のSEを鳴らそうと思って
適当に"sound_mc"という名前のMCを作って、その中にSE(同期:ストリーミング)を入れました
sound_mcには

on (keyPress "<Down>") {

sound_mc.play();

}
と入れて、↓キーが押されたときに、sound_mcの内部で再生するようにしました
SEを配置したレイヤーの最初と最後にはthis.stop();を入れて、勝手に流れないように制御しました

以上のようにしたのですが再生されません
何方か助けてください
990Now_loading...774KB:2009/01/10(土) 20:30:16 ID:pjCGGBp6
>>989
on(){}内にtrace()いれてボタンが生きてるか確認。
sound_mcの2フレーム目にtrace()入れて動いてるか確認。
SEのファイルをルートに置いてちゃんと鳴るか試す。
ストリーミングの場合sound_mc内のフレームは音声ファイルの再生させる長さ分のフレームが必要、
1フレームじゃ駄目。
こんなところかな。


991Now_loading...774KB:2009/01/10(土) 20:36:32 ID:pjCGGBp6
あ、ごめん、ボタンじゃないのか
Mcに書いたならthis.play()にしなくちゃ。
992Now_loading...774KB:2009/01/10(土) 20:46:49 ID:lYK0lpxu
>>990-991
どうもです!どうにか音がなりました!
ただ、「ぴんぽーん」って効果音だとしたら、今は↓キー連打しても「ぴんぽーん、ぴんぽーん」って感じなんですけど
これを↓キー連打したら「ぴぴぴぴぴぴぴひぴぴぴ…」みたいな感じに、一回目の効果音がなり終わる前に、
すぐ二回目の効果音を鳴らす事はActionScriptでは出来ませんかね?
993Now_loading...774KB:2009/01/10(土) 20:53:59 ID:lYK0lpxu
すみません
自己解決しましたo...rz
お騒がせ&スレ汚し申し訳ないです;
994Now_loading...774KB:2009/01/10(土) 20:55:07 ID:pSo8MV8T
>>992
押したらサウンドをstop()してからplay()とか?
995972:2009/01/10(土) 21:09:12 ID:E5kd3Lki
>>982
>stream.addEventListener("ioError", progressHandler);
うへぇ。URLStreamとかLoaderのリファレンスくらい読みなさい。
stream.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
function ioErrorHandler(event:IOErrorEvent):void { trace("ioError: " + event); }

>の意味が分かりません。event.target.readBytes() をcompleteHandler内でも行うということでしょうか?
そう。まだreadBytes()してないデータが残ってる場合があるから。
function completeHandler(event:Event):void {
 if (event.target.bytesAvailable) {
  event.target.readBytes(imageData, imageData.length);
 }
 // もうこれで確実に全バイトがimageDataに取り込まれる。あとは好きなようにいじる
 ...
}

>実際にこの中でreadBytes()しましたが、何も変化はありませんでした。
completeでもデータが残っている「場合がある」のであって今回はそうではなかったんだろう。

ところで >>983-985 の指摘がビンゴっぽい。エラーを吐いたのはLoaderかね。エラーメッセージの内容と
もつじつまがあうし。コードをよく把握してなかったが、たしかにLoaderにテキスト与えても意味ないよな。

何をしたいのかな。読み込んだテキストファイルの内容を文字列として取得したいのか?
なら、completeHandlerでloader.loadBytes()じゃなくて
var str:String = imageData.readMultiByte(imageData.length, "shift-jis");

クラスや関数の使い方が分からないときはまずリファレンスを一読。サンプルもついてるぞ!
996Now_loading...774KB:2009/01/10(土) 22:06:08 ID:+SPf06V3
環境:WinXP FlashCS3 AS3.0

Loaderで呼び出したファイルを複製しBackGround(MovieClip)に入れ、
その一つ一つにEventListenerをつけたいと考えています。
実行したところaddEventListenerした行でERROR#1010が出てしまいます。
CopyObjectにaddEventListenerした後、addChildで格納しても同じエラーでした。
下記のforを実行しているのは別のMouseEventの関数の中です。
どのようにしたらエラー回避して、addEventListenerすることができるでしょうか
よろしくお願いします

for(var i=0;i<3;i++){
var CopyObject=new Array();
CopyObject[i]=new Object();
CopyObject[i]=FileLoad;// FileLoadはファイルを呼び出したLoader
BackGround.addChild(CopyObject[i]);
BackGround.getChildAt(BackGround.numChildren-1).name=String('CopyObject['+i+']');
BackGround.CopyObject[i].addEventListener(Event.ENTER_FRAME,MoveCopyObject);
// MoveCopyObjectはローカルで定義した関数
}
997Now_loading...774KB:2009/01/10(土) 23:39:21 ID:E5kd3Lki
BackGroundにCopyObjectというプロパティがないから7行目のBackGround.CopyObject[i]
が未定義プロパティへのアクセスでエラーになったんだろう。正しくはこうか?
BackGround.CopyObject = new Array(3);
for (var i = 0; i < 3; i++) {
 var obj = ...; // FileLoad? 複製したファイル?
 obj.name = "CopyObject[" + i + "]";
 obj.addEventListener(Event.ENTER_FRAME, MoveCopyObject);
 BackGround.addChild(obj);
 BackGround.CopyObject[i] = obj;
}
998Now_loading...774KB:2009/01/11(日) 00:58:55 ID:Bg4qWwLv
埋め
999Now_loading...774KB:2009/01/11(日) 01:11:46 ID:Bg4qWwLv
埋めどす
1000996:2009/01/11(日) 01:30:48 ID:IcFQ/UMi
>>997
ありがとうございます。無事に動作しました。

>BackGroundにCopyObjectというプロパティがないから
子Objectに追加することはプロパティの生成にはならないんですね
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。