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

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

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

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

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

関連スレ
Flash製作初心者の質問スレッド レイヤー35
http://pc10.2ch.net/test/read.cgi/swf/1163236142/l50
Flashの超基本的な質問はここでしろ! part32
http://pc10.2ch.net/test/read.cgi/swf/1162018067/l50

サイト、参考書籍、関連情報は>>2-10あたり
2Now_loading...774KB:2007/01/20(土) 16:25:57 ID:8gfBlSxX
ASお勉強さいと
FLASH ActionScript Helper (初級〜中級。ASの概念をじっくりと
ttp://homepage3.nifty.com/ginga-b/
はりぼてあくしょんすくりぷと (ホンさんの分かりやすい解説
ttp://www.geocities.co.jp/Milano-Cat/4036/bote/index.html
FumioNonaka.com (AS辞書正誤表なども
ttp://www.fumiononaka.com/

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

Flash情報交換フォーラム
ttp://www.mediacreator.jp/
ttp://www.flash-jp.com/
3Now_loading...774KB:2007/01/20(土) 16:27:21 ID:8gfBlSxX
アドビ本家(30日間無料トライアルのダウンロードもここ)
ttp://www.adobe.co.jp
AS3.0ドキュメントの和訳
ttp://www.adobe.com/support/documentation/jp/flex/
AS3.0はFlex2か以下のFlashPreviewで実行可能(英語版のみ)
ただし、ASのみの評価版のためFlash8Proが必要
ttp://labs.adobe.com/の
Flash Professional 9 ActionScript 3.0 Preview
ASエディタse|pyのHP(ダウンロードは一番下のとこ)
ttp://www.sepy.it/
.solエディタはここ
ttp://www.alexisisaac.net/
4Now_loading...774KB:2007/01/22(月) 12:12:28 ID:mzw5AimT
MX2004でベクター絵からモザイクを作るサンプルってありませんでしたっけ?
ググッても見つからなかった。 誰か教えてくだせえ。
5Now_loading...774KB:2007/01/22(月) 13:37:28 ID:Wb7fC2ce
モザの1こ1このマスはsetRGBで色を変えられるけどピクセル単位で色を取得するのは無理
6Now_loading...774KB:2007/01/22(月) 16:24:51 ID:j2HK4/VU
FLASH内のボタンでブラウザウインドウを閉じる方法を教えて下さい。

_root.getURL("javascript:window.close()");
と書いたところ、Sleipnirでは大丈夫なのですが、
IEでは動作しません。

WindowsXP Flash8Basicです。
7Now_loading...774KB:2007/01/22(月) 17:40:53 ID:BAY/d3Nt
FlashMX2004でサウンドノベルを作っています
画面をクリックする度に以下の処理をしていきたいのですが、巧くいきません
1)背景画像が変化するか否かをチェック、変化するならば画面暗転し背景を立ち絵共に変更し更に画面のテキストを空っぽにし4へジャンプ
2)背景が変化しなかった場合に人物の立ち絵の変化をチェック
3)文章量をチェック、テキストフィールドを空っぽにするか
4)文章を読み込む
以下のasで関数のread_data(データ読み込み)、bgload(画面暗転、背景読み込み)、picload(立ち絵を読み込みしなおす)、txtload(テキストデータを読み込む)は単体で動くのは確認してます
bgload終了時にtxt_flugを3に、picloadは2に変更するようにしてます
質問の仕方も悪いと思いますがご教授お願いします
問題の全画面のボタンに以下のasを仕込みました
一番の問題は、画面暗転に時間を要するためにテキスト読み込みが同時に行われてはならないことです・・・
on(press){
_root.step ++; //文章を何回読み込んだか
onEnterFrame = function(){
if(_root.txt_flug==0){
if(!(read_data(step,0)==read_data(step-1,0))){bgload();}else{_root.txt_flug ++;}
}
if(_root.txt_flug==1){
if(!(read_data(step,1)==read_data(step-1,1))){picload()}else{_root.txt_flug ++;}
}
if(_root.txt_flug==2){
if(read_data(step,4)==1){_root.txt="";}else {_root.txt_flug ++;}
}
if(_root.txt_flug==3){
txtload();
}
else if(_root.txt_flug==4){
_root.txt_flug =0;
delete this.onEnterFrame;
}
}
}
8Now_loading...774KB:2007/01/22(月) 17:41:29 ID:BAY/d3Nt
ちなみにデータ読み込みは以下の関数です

function read_data(read,item){
k=0;
switch(read){
/* 背景、人物、音楽、効果音、文量、エフェクト、テキスト*/
case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら1。\n"]; break;
case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら1。\n"]; break;
case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら2。\n"]; break;
case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら3。\n"]; break;
case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら4。\n"]; break;
case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら1。\n"]; break;
case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら2。\n"]; break;
case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら3。\n"]; break;
case k++ : _root.txtdata=[1, 1, 1, 1, 0, 0, "さようなら4。\n"]; break;
}
return _root.txtdata[item];
}
9Now_loading...774KB:2007/01/22(月) 17:46:29 ID:BAY/d3Nt
一応・・・、一連の関数もへったくそで見苦しいですけど・・・
function bgload(){
onEnterFrame = function(){
if(_root.ef_flug==0){_root.ef.gotoAndStop(read_data(step,5));_root.ef._alpha += 4;_root.ef_counter += 4;}
if(_root.ef_counter ==100){_root.ef_flug=1;_root.bg.gotoAndStop(read_data(step,0));_root.pic.gotoAndStop(

read_data(step,1));_root.txt="";}
if(_root.ef_flug==1){_root.ef._alpha -= 4;_root.ef_counter -=4;}
if(_root.ef_counter ==0){_root.ef_flug=0;delete this.onEnterFrame;}
}
_root.txt_flug = 3;}
function picload(){
onEnterFrame = function(){
if(_root.pic_flug==0){_root.pic._alpha -= 4;_root.pic_counter += 4;}
if(_root.pic_counter ==100){_root.pic_flug=1;_root.pic.gotoAndStop(2);}
if(_root.pic_flug==1){_root.pic._alpha += 4;_root.pic_counter -=4;}
if(_root.pic_counter ==0){_root.pic_flug=0;delete this.onEnterFrame;}
}
_root.txt_flug =2;}

function txtload(){
counter = 0;
_root.moji=read_data(_root.step,6);
this.onEnterFrame = function() {
_root.txt += _root.moji.charAt(counter++);
if (counter>moji.length) {
counter = 0;
_root.txt_flug =4;
delete this.onEnterFrame;
}}}
10Now_loading...774KB:2007/01/22(月) 18:09:15 ID:EdFeqY1+
簡単なものを作ってみればいいんじゃないかな
分岐がおおいと凡雑になって作業しにくいし
スクリプト丸写しされても見る人は少ないですよ
11Now_loading...774KB:2007/01/22(月) 18:11:38 ID:WpxrCGxr
スマンが
・マジックナンバーの使用
・上による条件分岐の不透明性
・flug->flag
・caseの謎な使用法(多次元配列使えよ)
etc..

で読む気がうせる。致命的なのは状態の流れがめっさ分かりにくい事。
多分書いた本人もわかってないんじゃないかね。

で、肝心の何が上手くいかないのか書かれてないんだけど、このコードで問題になってるのは何の点?

>一番の問題は、画面暗転に時間を要するためにテキスト読み込みが同時に行われてはならないことです・・・
これ?意味が取れないから、スマンが分かりやすい表現でたのむ。
12Now_loading...774KB:2007/01/22(月) 18:35:09 ID:WpxrCGxr
追記。自分も簡易ノベルエンジンを作ったことがあるから言うんだけど、データ形式は一般に流通してる
ノベルエンジンのような形式にしたほうがいい。例えば、

[
 [ "load_bg", 0 ], 
 [ "load_image", 3 ]
 [ "message", "テストだお" ],
]

例えばこんな二次元配列にして、switch ( data[nowPoint][0] )で分岐したほうがプログラム組むのも楽だし
データ書くほうも楽。
自分が作ったエンジンは200行程度の簡単なものだけどね。
13Now_loading...774KB:2007/01/22(月) 18:41:10 ID:aGL4/+Bj
>>12
オブジェクトの方が「それ」っぽい気がするんだが
{
load_bg:0,
load_image:3,
message:"テストだお"
}

取るときはfor..in
14Now_loading...774KB:2007/01/22(月) 19:01:49 ID:WpxrCGxr
>>13
オブジェクトにすると、トランジションみたいな時間が必要な処理や、messageみたいなクリック待ちの
処理が面倒になるよ。まぁ配列に変換すればいいんだけどさ。

あと複数の引数をとるときちょっと冗長になるかな、
message: [ 0, "てすとだお" ]
みたいにしないといけない。

でもアイデアとしては面白いと思う。フォローありがとう。
15Now_loading...774KB:2007/01/22(月) 21:01:26 ID:HPlY4UBz
※※ キューポイントアクション処理

function cuePoint(e) {
if (e.cuePointTime == 2) {
my_FLVPlybk.pause();
_root.terop1.gotoAndPlay(2);
timer_ID = setInterval(function () {
my_FLVPlybk.play();
_root.terop1.gotoAndPlay(21);
clearInterval(timer_ID);
}, 3000);
trace(e.cuePointTime);
} else if (e.cuePointTime == 3) {
my_FLVPlybk.pause();
_root.terop2_01.gotoAndPlay(2);
_root.terop2_02.gotoAndPlay(2);
timer_ID = setInterval(function () {
my_FLVPlybk.play();
_root.terop2_01.gotoAndPlay(21);
_root.terop2_02.gotoAndPlay(21);
clearInterval(timer_ID);
}, 6000);
trace(e.cuePointTime);
my_FLVPlybk.addEventListener("cuePoint", this);
16Now_loading...774KB:2007/01/22(月) 21:02:59 ID:HPlY4UBz
続きです。

※※ムービーのループ再生
_root.onEnterFrame = function() {
if (my_FLVPlybk.playheadTime>=my_FLVPlybk.totalTime) {
//今の再生時間がFLV最後の時間だったら
my_FLVPlybk.stop();
//停止する
my_FLVPlybk.play();
//再生する
}
};
17天安門事件:2007/01/22(月) 22:31:08 ID:mMzeDlwG
って・・
18Now_loading...774KB:2007/01/23(火) 11:55:57 ID:5SeRxRvt
どこの誤爆だか、、、他のサイトかな
19Now_loading...774KB:2007/01/23(火) 17:50:28 ID:pd6RhC+L
以下のASが最新の環境(フラッシュプレイヤー9)で動作してくれません。
どこか記述が間違っているのでしょうか。7や8では問題なく動作します。


gallery = new MovieClipLoader ();
Listener = new Object ();

gallery.addListener (Listener);

Listener.onLoadStart = function (target_mc) {
this.stop();
};

Listener.onLoadComplete = function (target_mc) {
_root.gotoAndPlay(2);
};

Listener.onLoadInit = function (target_mc) {
};

gallery.loadClip (_root.img, _root.board);


入れ子imgは
on (release) {
_root.img="15.jpg";
}
のように書かれたボタンで画像を挿入して読み込ませています。
何故画像を読み込んでくれなくなったのでしょうか。
20Now_loading...774KB:2007/01/24(水) 08:37:27 ID:uHzLb8Fz
>>19
7,8で動くというのでちとわからんが、特に理由がなければ
onLoadInitの方に初期コーディングするけど。
21Now_loading...774KB:2007/01/24(水) 18:38:56 ID:KqMqaJ7w
>>20
本来は7や8でも動かない間違った記述ってことですか?
ttp://www.fumiononaka.com/TechNotes/Flash/FN0405003.html
onLoadInitでググッたらでてきましたがこの辺が解決手段ですか。
よくわかりませんが…
2219:2007/01/26(金) 16:50:00 ID:vmJucEAn
playerのバージョンに関わらず、エクスプローラーのswfをIEにいれると問題なく読み込む…
アップ先のさくらサーバが問題なのか?さっぱりだ
2319:2007/01/26(金) 17:28:51 ID:vmJucEAn
ごちゃごちゃやっていたら一応解決しました
スレ汚しすいませんでした
24Now_loading...774KB:2007/01/26(金) 22:58:58 ID:kENieO41
http://labs.unoh.net/2007/01/pcjavascriptsave2localjs.html
こんなのが出てるけど、sharedObject の保存期間っていつまで?
ブラウザ閉じるまで?それとも他の画面に遷移するまで?
25Now_loading...774KB:2007/01/26(金) 23:44:15 ID:lnHwngLc
>>24
ユーザが消すまで
26Now_loading...774KB:2007/01/27(土) 22:01:31 ID:BO2hcxVC
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7)

文字列を読み取り、それに応じたド・レ・ミの音を出したく思っています。
つまり、Aをド,Bをレ,Cをミ,Dをファ,Eをソとして

 ABDE・・・・ = ドレファソ・・・・

という感じです。去年の今頃に同じ質問をした時には、確か(その時点
では)将来的には可能という返事を頂きました。
現段階では可能でしょうか? 可能な場合は手順をお教え下さい。
27Now_loading...774KB:2007/01/27(土) 22:27:53 ID:QX87TBv2
>>26
1. ActionScriptの基本を一通り習得する
28Now_loading...774KB:2007/01/27(土) 23:10:03 ID:IYnWmRUd
>26

文字コードを一文字ずつ調べて対応する文字を出す

sentence = "BBCAC";
list = ["たこ", "なす", "いちご"];
for (i=0; i<sentence.length; i++) {
for (ii=65; ii<=90; ii++) {
if (sentence.charCodeAt(i) == ii) {
trace(list[ii-65]);
break;
}}}
29Now_loading...774KB:2007/01/28(日) 00:40:39 ID:xsKjkgHo
>>26
ドレファソ・・・・の音をsoundクラスに割り当て
function S(n){ //n文字目の文字に対応する音を出す
  target = "ABBE";
  moji = moji.charAt(n); //n文字目の文字を取得
  switch(moji){
  case "A": DO_sound.start();
  }
}
id = setInterval(n,1000); //一秒ごとに呼び出す。

試してないけどこういうやり方でいけると思う。for使ったら一瞬で終わるのでsetIntervalね。
ABCとか一文字ではなく固定長で音階、音符や休符の情報を持たせれば
その文字列を渡しただけで自動的に演奏してくれるってことも可能(っていうかそういうサイトがあった気がする)。

これなら去年の時点で出来たと思うけど…。
30Now_loading...774KB:2007/01/28(日) 04:17:01 ID:BjE85RB4
>>26
一年間なにも自分で勉強しなかったの?
3126:2007/01/28(日) 09:53:27 ID:6mlDGhmI
>>27-30
レスありがとうございます。
前回の回答がうろ覚えだったため、質問が言葉足らずになりました。当時は、
『その動作はAS3.0で可能』という回答をもらった記憶があります。

DO_sound.start(); でドの音が出せるのですね。勉強になりました。
32Now_loading...774KB:2007/01/28(日) 10:00:14 ID:blrwTBI9
分かってないような気がする・・・
「DO_sound.start(); がエラーになります。ドの音が出ません」とか
言いそうな・・・・
33Now_loading...774KB:2007/01/28(日) 11:34:49 ID:x7ua7V+f
長短をいじれないからな・・・。

MIDIコントロール出来るようにならないかね・・・。
34Now_loading...774KB:2007/01/28(日) 22:26:08 ID:dsE6BgHY
>>31
そんな回答あったかな。あれば、激しくつっこんでると思うが。
3526&31:2007/01/29(月) 07:20:44 ID:KGmpKNFJ
レスありがとうございます。29さんのASを使いましたが実行できないため、
改変して一応音を鳴らすことが出来ました。
SWFは http://swfup.info/view.php/6077.swf で、S12ボタンで鳴ります。
文字の読み取りと音の発生部分は、ボタンアクションで
on (press) {
n = 0;
}
on (release) {
function seqSound() {
//n文字目の文字に対応する音を出す。交互に音を出す。
target = "ABABAB";
moji = target.charAt(n);
//n文字目の文字を取得
switch (moji) {
case "A" : s1_sound.start();
case "B" : s2_sound.start();
}
n++;
}
id = setInterval(seqSound, 1500);//1.5秒ごとに呼び出す
}

これだと、音は1.5秒間隔で音は鳴りますが、最初に1.5秒ほどの無音時間が
あり、次にs1_soundとs2_soundが同時に鳴り、そしてs2_soundが単独で鳴ります。
個別の音は右側のボタン列で鳴らせます。
考えられる原因は何でしょうか?
36Now_loading...774KB:2007/01/29(月) 09:56:23 ID:oBdoHJ7w
>>35
ソースはよく見ていないが、setIntervalはカウント開始時にはその関数は呼ばない。
つまりカウント0は無しで、1.5秒経過ごとに何度も呼ばれる。
37Now_loading...774KB:2007/01/29(月) 10:04:25 ID:ZLd37Iww
とりあえずcaseとbreakはセットで覚えなさいね
3826&31:2007/01/29(月) 19:02:30 ID:Ef8DOHCm
>>36,37
さんきゅうです。イントロの無音部分の問題はsetIntervalとの兼ね合いで
解消していませんが、個別に交互に音を鳴らすことは出来ました。以下は
そのASです。
on (press) {
n = 0;
target = "ABABAB";
}
on (release) {
function seqSound() {
//n文字目の文字に対応する音を出す
trace("n= "+n);
moji = target.charAt(n);
//n文字目の文字を取得
switch (moji) {
case "A" :
s1_sound.start();
break;
case "B" :
s2_sound.start();
break;
}
n++;
if (n>target.length) {
clearInterval(id);//文字列以上ではIDを破棄
}
}
id = setInterval(seqSound, 1500);
}
39Now_loading...774KB:2007/01/29(月) 19:12:52 ID:pAVKd85J
つかインデントしてから晒せよハゲ
40Now_loading...774KB:2007/01/29(月) 19:17:19 ID:kFSQfsAy
>>38
無音部分解消したければ、seqSound()をon(release)内で一回だけ呼べばいいよ
41Now_loading...774KB:2007/01/30(火) 18:22:19 ID:jwHZxKlh
flash mx 2004
入力テキストフィールドを10行に制限して
10行以上の入力があった場合注意を促す表示をする物を作りたいのですが

var pass=テキストフィールドの変数へのパス
textfield.onChanged=function(){
if(this.bottomScroll>=10){
pass=pass.substr(0,pass.length-1);
error_mc._visible=true; エラーメッセージ表示
}
}

普通にテキスト入力して行って11行目に入ったと同時に最後の文字を消して
10行目にとどまらせる様にしてあるのですが
11行以上ある文章とペーストした場合は10行以内に収まりません。
アドバイスお願いします。
42Now_loading...774KB:2007/01/31(水) 01:12:39 ID:pQ8BQppe
>>41
textfieldがインスタンス名ならコピペでもなるけど?
4342:2007/01/31(水) 01:18:58 ID:pQ8BQppe
>>41
ごめん勘違いしてた。
10行ぎりぎりまでの文字数を数えてその部分までsubstringするか、
this.bottomScroll<10の条件を満たすまで一文字ずつ削っていけばいい。
44Now_loading...774KB:2007/01/31(水) 18:37:49 ID:u/Lx8dHp
>>43
サンクスです。一応解決しました。
10行ぎりぎりの文字数は文字によって例えば"あ"と"i"では一行に収まる
文字数が倍くらい違ってしまい、一定ではないため
後者の方法でやってみました

var pass=テキストフィールドの変数へのパス
var maxline=10; 最大行数
textfield.onChanged = function(){
//一度の消去する文字数
var delchar=100;

while(this.bottomScroll>maxline){
//消去しすぎた場合の為に保存しておく
var tmp=pass2;
//delchar分消去
pass=pass.substr(0,pass.length-delchar);
//消去しすぎた場合の処理 delcharを1/2にして消去前のtmpを代入
if(this.bottomScroll<maxline){
delchar=Math.floor(delchar/2);
pass=tmp;
}
}
}

↑10行をはるかに超える量をペーストした場合一文字ずつ消去したのでは時間がかかりすぎるため
上記のように100文字ずつ消去して調整していくような形にしてみました。
一応うまくいったのですが、連続でペーストすると二回目以降のペーストではうまくいかず
10行を超えてしまうのですが、原因が掴めません。
わかる方いたらよろしくお願いします。
4544:2007/01/31(水) 18:45:12 ID:u/Lx8dHp
すいません今試したら
連続でペーストしてもうまくいきました。

お騒がせしました。ありがとうございました。
46Now_loading...774KB:2007/02/01(木) 15:13:27 ID:t4yQhwNA
あるボタンを押したらAAAというムービーを1階層に呼び出すという
ASはどうすればいいのでしょうか?

参考書を見てon(press){loadMovie("AAA.swf",1);}
というようにやってみたのですがうまくいきません。
47Now_loading...774KB:2007/02/01(木) 15:19:16 ID:O8bjIDBH
>>46
MCに読み込んでそのMCインスタンスの深度を指定する
48Now_loading...774KB:2007/02/01(木) 16:17:28 ID:t4yQhwNA
>>47
やってみたのですが、
MCが消えるだけで読み込みができません。
URLの指定の仕方がおかしいんでしょうか・・?
49Now_loading...774KB:2007/02/01(木) 16:22:18 ID:RHdVSnA/
>>48
できないという場合は、どうやったのか書きましょう。
何かがが間違っているかどうかすら、他の人にはできません。
間違っていてもどこが間違っているのかわかりません。

ところで>>46はfla4とか携帯用swfを作ってるのか?
そうでないなら、使ってる参考書とやらが古すぎる。
50Now_loading...774KB:2007/02/01(木) 16:42:39 ID:vjlEisiK
http://www.saturn.dti.ne.jp/~npaka/flash/as30/index.html
上のページ通りにFlex 2 SDKをインストールし、HelloWorld.asを
コンパイルしたところ、下記のような表示が出て上手く行きません。
なぜでしょうか。ソースはunicodeで保存しました。

C:\as3\HelloWorld>mxmlc -default-size 240 240 -default-frame-rate=30 -default-background-color=0xFFFFFF HelloWorld.as
設定ファイル "C:\flex_sdk_2\frameworks\flex-config.xml" をロードしています
C:\as3\HelloWorld\HelloWorld.as: エラー: source-path のファイルには、外部から可視的な定義が必要です。ファイル内の定義が外部から可視的であることを意図している場合は、パッケージ内に定義を配置してください。
51Now_loading...774KB:2007/02/01(木) 16:59:09 ID:19Swiozq
質問お願いします
オブジェクトのコピーってどうやるのでしょう?

var o1:Object = {c1:'aaa', c2:'bbb'};
var o2:Object = o1;

とやると参照が渡ってしまいますよね。

for (var idx:String in o1) o2[idx] = o1[idx];

これならコピーができそうですが

o2 &= o1;

みたいな感じで値をコピーする
便利なステートメントはないでしょうか?
5250:2007/02/01(木) 17:05:41 ID:vjlEisiK
自己解決しました。MXの時のプレイヤーとコンフリクトしていたようです。失礼しました。
53Now_loading...774KB:2007/02/01(木) 18:26:11 ID:EJukLyV0
>>51
ないよ。for..inで正解。
自分も深いコピーなんざ言語にあってしかるべき機能だと思うんだけどね…
54Now_loading...774KB:2007/02/01(木) 18:26:41 ID:MBT/JoKn
>>49
on (release) {BBB.loadMovie("AAA",1);}
BBBというMCにAAAを読み込むって感じです。

読み込むswfとかjpgファイルって決まった場所に置いて
おかないといけないものなんでしょうか?
デスクトップとかフラッシュと全く関係ない場所に
あるとやっぱりダメなんですかね。
5551:2007/02/01(木) 18:42:23 ID:19Swiozq
>>53
やっぱりないんですね
ありがとうございました
56Now_loading...774KB:2007/02/02(金) 00:38:43 ID:c/7aY47b
>>54
BBB.loadMovie("AAA.swf")
じゃないの?

絶対パスや相対パスで指定できるのでどこにおいてあってもいい。
ただ、パスに日本語が入っている場合はどうかはわからない。
57Now_loading...774KB:2007/02/02(金) 00:58:14 ID:c/7aY47b
>>51
関数作っちゃえばいいんじゃない?

var o1:Object = {c1:'aaa', c2:'bbb'};
var o2:Object = new Object();

ObjCopy(o1, o2);

trace("o2.c1="+o2.c1); // aaa
o2.c1 = "henkou";
trace("o2.c1変更後="+o2.c1); // henkou
trace("o1.c1="+o1.c1); // aaa

function ObjCopy(moto:Object, saki:Object) {
for (var obj in moto) {
saki[obj] = moto[obj];
}
return saki;
}
58Now_loading...774KB:2007/02/02(金) 02:15:27 ID:MIu/hvTv
>>56
何度もすみません。
そのフラッシュに配置してない画像やswfファイルを
フラッシュ内の操作で読み込むことができるようにしたいんですが、
それらをパスで指定するのはファイル名を書くだけではダメってことですよね?
いろいろ試してるんですが、全くうまくいきません。
59Now_loading...774KB:2007/02/02(金) 06:26:23 ID:PSZYOH5u
行き詰った・・・・

弾幕系STGを作っているんだが、どんなに頑張っても重い。
なんとかして、60FPSで200程度のMCを同時に動かしたいんだが、
やはりCeleronとかの旧世代CPUだとかなり重くなってしまう。

たのむ、なんかアイデアか参考資料をくれええええええええええええええええええええ!
60Now_loading...774KB:2007/02/02(金) 06:35:54 ID:gF8Fga8J
AS3+flashplayer9だ!
俺はしらんがw
61Now_loading...774KB:2007/02/02(金) 07:33:11 ID:oMYwWT+d
無理
選ぶ言語を間違ってる
62Now_loading...774KB:2007/02/02(金) 10:24:13 ID:B2i+qnKf
>>59
MCの大きさを小さくする。グラデーションは使わない。背景を単純にする。
基本的に画面描画にコストがかかるので、実行したときの再描画領域を
出来るだけ小さくする。

まあ、新しいパソ買うのがいいかと。
63Now_loading...774KB:2007/02/02(金) 11:04:32 ID:aC+cPksi
やっぱ無理かな。

>>62
なるほど。
既に、ほぼ白と黒だけでかなりシブい製作になってるw

メインPCはかなり良いスペックで結構サクサク動くんだけど、
FLASHゲーで遊ぶ人は、それほど良いPC持っていないんじゃないかな。
その辺りを想定して作っておきたいぜ!
64Now_loading...774KB:2007/02/02(金) 11:13:16 ID:/Gc5E82W
> FLASHゲーで遊ぶ人は、それほど良いPC持っていないんじゃないかな。
> その辺りを想定して作っておきたいぜ!

これ大事だよな。
大抵作る奴は一般よりいいマシンもってたりするから、自機でサクサクでも安心できないんだよ。
65Now_loading...774KB:2007/02/02(金) 11:20:15 ID:B2i+qnKf
普通のPCとラップトップと携帯は処理能力が全然違うから、
それぞれ別に考えた方が良いかと。
最新のPC、ブロードバンド環境で動くというのでいいと思うけどな。
66Now_loading...774KB:2007/02/02(金) 12:22:13 ID:NZdyxwpT
OS=WinXP Flash=mx2004(pro)
TextFiled の 選択範囲の文字をActionScriptから消す方法をおしえてください。
FlashのHelpに、replaceSel()で、"テキストを挿入および削除できます"
とあるので、
---
//テキストフィールドのインスタンス名:i_txt
Selection.setFocus("i_txt");
Selection.setSelection(lstart, lend);
i_txt.replaceSel("");
---
としても、lstart~lend の範囲のテキストが選択されるだけで、削除までされません。
replaceSel(viod(0))、replaceSel(null)等もためしてみましたがだめでした。
よろしくお願いします。
67Now_loading...774KB:2007/02/02(金) 23:29:47 ID:PTAPVDT7
>>59
まずはプロファイリングをしてコード部か描画部かどちらがボトルネックになってるか診断。

描画がボトルネックになってる場合、MCをBitmapに変換してBitmapDataに直書きしたら速度は向上するよ。
描画が重い場合はベクタデータ扱わないのが重要。

コード部が重い場合はアルゴリムの見直しや、コーディングが適正かどうかを調べる。
適切にコーディングしてたらJava並の速度はでる。
型指定を使う、ダイナミックオブジェクトは使わない、Arrayは詰めて使うetcで十分に速くなる。
特に型指定はかなり効くよ。AS2の癖で型指定して無いなら今すぐすべき。
68Now_loading...774KB:2007/02/02(金) 23:31:13 ID:/II9cBy8
_qualityで画質犠牲にすれば多少マシになるんじゃない?
69Now_loading...774KB:2007/02/02(金) 23:31:21 ID:PTAPVDT7
追記。以上は基本的な事項だから、実行しているなら役に立てずスマソ。
70Now_loading...774KB:2007/02/02(金) 23:42:29 ID:M5agard0
携帯用アニメーションのバナーを作りたく、
お願いいたします。
最初の数秒は1回再生、最後の数秒を無限に繰り返す
バナーです。
71Now_loading...774KB:2007/02/02(金) 23:50:58 ID:/II9cBy8
gotoAndPlay(最後の数秒);
72Now_loading...774KB:2007/02/02(金) 23:51:50 ID:CP2B5J8Y
>>70
製作依頼はスレ違いですよ
73Now_loading...774KB:2007/02/02(金) 23:59:07 ID:M5agard0
書き方わるかったですね、ごめんなさい。
自分で作る用です。
ありがとうございました。
74Now_loading...774KB:2007/02/03(土) 00:23:47 ID:CnNV1sjZ
質問です。
POST形式のデータがPHPファイルに送られます。
そのPHPファイルにはswfファイルが読み込まれるように記述してあるのですが
PHPファイルが受け取ったPOST形式データをswfで読み込ませることはできるでしょうか?
<流れ>
「input.htmlのフォーム」-POSTデータ→「receive.php(receive.phpによって作られたページにdisp.swfが表示される)」
←このdisp.swfにPOSTデータを受け取らせたい。

OSはXPでFLASH8を使っていてPHP5です。よろしくお願いします。
75Now_loading...774KB:2007/02/03(土) 01:51:24 ID:cPfxhPDf
>>74
1.swf?d=xxxみたいに引数を渡してdisp.swfを表示する。
2.phpからテキストに書き出してdisp.swfないからloadVarsクラスで見に行く。
3.phpのセッションに入れておいてdisp.swfからloadVarsクラスで取りに行く。
(セッション自体はswf引数で渡しておき、それをキーとして取りに行く。)
4.htmlのhiddenに入れておいてjavascriptを介して取りに行く。
5.クッキー。

俺phpのことは知らないんだけど、多分3番の方法がベスト。
disp.swf?s=data ←セッション名っていうのかな?、それ渡す。
disp.swf内で
var my_lv = new LoadVars();
my_lv.s = _root.s;
my_lv.SendAndLoad("getdata.php") //←SendAndLoadだったかは不明。

postのデータがページ番号とかの大して重要じゃない情報なら1番。
76Now_loading...774KB:2007/02/03(土) 14:16:00 ID:GAA5IxMZ
>>59
描画の問題。
すべてビットマップにしろ
拡大するな、回転するな、色を付けるな。
移動しか使うな
解像度を落とせ
77Now_loading...774KB:2007/02/03(土) 15:33:39 ID:CnNV1sjZ
>>75
レスサンキュー!
そっか。セッションか。ちょっと初体験だけどやってみる。
78Now_loading...774KB:2007/02/04(日) 15:52:59 ID:TUzhUPPn
質問です。

ビデオの読み込みで、flvを読み込んで再生させてるのですが、
パラメータのところでコントロールパネル(音量調整とかストップとか再生とか)をある程度デフォルトであるのに変えられますが、
ストップボタンだけをもうひとつ作りたいのですが、ボタンに書くスクリプトはどうしたらいいでしょうか?
79Now_loading...774KB:2007/02/04(日) 21:29:10 ID:BdreTH4V
>>78
onClipEvent(load)とか、フレームの1番目に初期値を設定したら?
80Now_loading...774KB:2007/02/04(日) 21:32:02 ID:MRC7TsOt
環境)OS=WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro

WebのHPをXMLで読み込み、そのテキストだけを表示させたく思っています。
ASは、_rootのフレームアクションに
System.useCodepage = true;
my_xml = new XML();
my_xml.ignoreWhite = true;//改行は無視
my_xml.onLoad = function() {
txt1 = my_xml.toString();//txt1に表示
};

ボタンアクションに
on (release) {
my_xml.load(site1+".html");
}

としました。
このページ『ActionScript 誰かが物凄い勢いで解答するスレ 15 』の
URLを打ち込んだところ、txt1には

<html><head><meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<base href="http://pc10.2ch.net/swf/"><title>ActionScript 誰かが物凄い勢いで解答
するスレ 15</title></base></meta></head></html>

とだけしか出ません。アドバイスを願います。
8180:2007/02/04(日) 21:51:23 ID:MRC7TsOt
(補足)
URLの入力先(コピペ先)はテキストフィールドsite1です。
82Now_loading...774KB:2007/02/04(日) 22:52:28 ID:i6paMedH
>>80
まずはmy_xmlの中身を確認してみては?
83Now_loading...774KB:2007/02/04(日) 23:07:35 ID:x6Il/ncv
>>80
onData
8480:2007/02/04(日) 23:49:33 ID:5cmbI5Wp
>>82-83
レスありがとうございます。

my_xml.onData = function() {
trace(my_xml);
txt1 = my_xml.toString();
};

としましたが、今度はtrace(),txt1共に何も現われません。
どうしたらいいでしょうか?
85Now_loading...774KB:2007/02/05(月) 00:48:47 ID:Kffvlqjo
8680&84:2007/02/05(月) 01:19:57 ID:7/jC0Hvv
Htmlタグは含まれていますが、出来ました。
my_xml.onData = function(xd) {
trace(xd);
txt1 = xd.toString();
};

で出ました。
87Now_loading...774KB:2007/02/05(月) 11:10:15 ID:xKXS46iv
質問です。
マスクされた範囲内で大きい画像を縮小表示させていて、
マウスがマスクに乗ったらカーソルのある場所がズームされるように

するにはどうすればいいでしょうか?
マウスを動かすと追従してズーム表示されている部分が動くというようにしたいです。

onEnterFrameでズームするところはできました。(step:Number=10)
this._xscale = this._yscale += (100-this._yscale)/step;

マウスを動かすと追従するところがわかりません。
マウスを乗せた位置を基準としてズームしたいのに、画像の左上からしか
ズームしてくれません。なので右下あたりにマウスを乗せると画像が左上からいちいち
ズームしています。マウスの位置に応じてx座標を変えればいいんでしょうけど…
this._x -= (gazou_mc._xmouse+this._x)/step;

おながいします!
88Now_loading...774KB:2007/02/05(月) 11:28:25 ID:UbmC2m0e
初心者質問スレでスルーされたのでこちらで質問させて下さい。
tabキーを押した時に黄色くクリック領域が見えてしまうのですが
これを見れないようにするにはどうすればいいんでしょうか?
環境はFlashMX2004です。よろしくお願いします。
89Now_loading...774KB:2007/02/05(月) 12:29:10 ID:75VJDerf
>>88
インスタンス.tabEnabled = false
でタブオーダーから外せるよ。
9088:2007/02/05(月) 14:37:02 ID:UbmC2m0e
>>89
ありがとうございます。
91Now_loading...774KB:2007/02/05(月) 22:35:10 ID:Tiahve6f
>>87
クリック時のカーソル位置を画像の縦横に対する比率として記録、拡大時の中心をその比率に移動。
ってやってもいいが、ムービークリップをネストして中の図形の中心位置を
ずらして(外側は逆にずらす)から外側を拡大すると楽。
92Now_loading...774KB:2007/02/06(火) 09:38:50 ID:fdHiE+e2
バージョン:Flex2 SDK

親Spriteから子Sprite内のメソッドが呼び出せずに困っています。
修飾子関係かインタフェース周りのような気もするんですが、
AS1系で育ったので意味わかんねっすorz

サンプル
http://n-mattun.net/tmp/as3/question/TargetPathEx/TargetPathEx.as ←as本体
http://n-mattun.net/tmp/as3/question/TargetPathEx/SpriteAndMethod.as ←子Spriteにあたるやつ
http://n-mattun.net/tmp/as3/question/TargetPathEx/TargetPathEx.bat ←コンパイル用バッチ

一体どこを直せばいいんでしょうか?
93Now_loading...774KB:2007/02/06(火) 13:04:16 ID:YNO8upZ+
Flexは使ってないのでわからないが、とりあえずFlash9で
stage.addChild(new TargetPathEx());
はちゃんとガッと表示された。
94Now_loading...774KB:2007/02/06(火) 13:19:18 ID:YNO8upZ+
Flex2 SDK入れてためしてみた

//TargetPathEx.as(8)
public var sample_spr:Sprite;

public var sample_spr:SpriteAndMethod;

でいいんじゃないすか?
SpriteクラスにはMethodメソッドが定義されてないためだと思う。
95Now_loading...774KB:2007/02/06(火) 13:22:23 ID:YNO8upZ+
SpriteAndMethodのインスタンスはSprite変数に代入可能であるが、
一度代入するとSpriteクラスとして扱われるってことですな。Java的
96Now_loading...774KB:2007/02/06(火) 14:05:01 ID:HOKXUG+E
ActionScript3で質問です。
拡大縮小や回転で使われる基準点を設定する方法は無いのでしょうか?
Spriteを入れ子にして擬似的に表現するしかないのでしょうか?
97Now_loading...774KB:2007/02/06(火) 14:45:57 ID:YNO8upZ+
>>96
マトリックスつかうとか、回転拡縮しつつ位置も移動するとかあると思うけど、
やっぱり入れ子が簡単かな。
98Now_loading...774KB:2007/02/06(火) 14:52:21 ID:w9DRZVW8
マトリックスでアフィン変換すればいいらしいよ。
99Now_loading...774KB:2007/02/06(火) 14:58:57 ID:lCO7jDhw
ttp://wwwz.fujitv.co.jp/blogpong/entry/blogentry.html?codes=207000001&bangumi=
のようなブログパーツ作りたいのですが
どこかマニュアル載ってるサイトなどありますか?
ご教授願いたいです
100Now_loading...774KB:2007/02/06(火) 15:33:26 ID:CphaQX58
>99
どの部分の話をしてるのかわかりません
101Now_loading...774KB:2007/02/06(火) 15:39:27 ID:lCO7jDhw
rss吸い取って表示したりとかです
102Now_loading...774KB:2007/02/06(火) 15:50:02 ID:CphaQX58
>101
rssは見当たらないなぁ、俺の環境のせいか?
103Now_loading...774KB:2007/02/06(火) 16:27:58 ID:HOKXUG+E
>>97-98
基準点を変更する方法は無いのですね。デフォルトで(0,0)等ヘルプで書いてあるものですから、
てっきりできるものかと…

代替案で我慢する事にします。
104Now_loading...774KB:2007/02/06(火) 17:23:13 ID:KEvO0aWz
>>93-95
なるほど・・Spriteのサブクラスなのに
Spriteでキャストをかけつつインスタンスを生成した結果、
SpriteAndMethodメソッドが死んだイメージですね。

わざわざSDK入れてもらって実験していただいてありがとうございました!
(しかし>>93は解せないなぁ、Flash9だと挙動違うんかな・・・)
105Now_loading...774KB:2007/02/06(火) 20:08:41 ID:n/vM83Br
読み込んだ外部ファイルの中の操作で
大元のファイルの変数を変更したりすることってできますか?
106Now_loading...774KB:2007/02/06(火) 20:09:53 ID:2BRUzg9G
できないよ
セキュリティ的に問題あるから

変更したいならCGI側でそういう仕組みを作っておいて、
それを呼ぶような仕組みが必要
107Now_loading...774KB:2007/02/06(火) 21:04:49 ID:n/vM83Br
>>106
やっぱりムリですか。
どうもです。
108Now_loading...774KB:2007/02/07(水) 00:17:02 ID:4kpGpCYR
>>105
ファイルってswfのこと?
loadMovieで読み込んだswfからなら変更できる。
読み込まれるほうに _parent.hensu=123
そういう話じゃ無いならスルーして。
109Now_loading...774KB:2007/02/07(水) 19:15:53 ID:BZR4sY7T
おもしろいFLASHみつけたのですが、
http://www.warnermycal.com/
これってどうやってつくっているのですか?
どなたかよろしくおねがいしまーすぅ。

110Now_loading...774KB:2007/02/07(水) 20:19:14 ID:zfwv9aEz
>>109
激しくスレ違いだけど、JavaScriptとの組み合わせ。後は自分で調べるか他のスレ行って。
111Now_loading...774KB:2007/02/07(水) 20:46:48 ID:shFpCXWk
>>110
激しくスレ違いの上マルチポスト。
112Now_loading...774KB:2007/02/07(水) 21:08:49 ID:MDUnslzn
>>108
レスどうもです。

>loadMovieで読み込んだswfからなら変更できる。
まさしくswfのことです。
普通に違う階層に埋め込んだMCと同じ扱いでいいんですね。
ありがとうござしました。
113Now_loading...774KB:2007/02/07(水) 22:08:30 ID:BZR4sY7T
109
ありがとうございました。
110・111
114Now_loading...774KB:2007/02/09(金) 08:28:25 ID:icDY7ILc
リンクの設定がうまくいきません。
使用ソフト FLASHMX2004
リンク用ボタンを「シンボル ボタン」にして
アクションフレームで「現在の選択からリンクボタン」を選んで
on (release) {
this.getURL("リンクさせたいアドレス");

}

と書き込みましたがパブリッシュすると

**エラー** シーン = シーン 1, レイヤー = rinku,
フレーム = 1 :行 1:
マウスイベントはボタンインスタンスでのみ使用できます。
on (release) {
ActionScript エラー数 :1 報告済みエラー :1

と出てしまい動きません;;

getURLを書き込む時、アクションフレームの中の
現在の選択にあるリンクボタンを選んだんですが
エラーメッセージからするとそれが間違ってるんでしょうか?
115Now_loading...774KB:2007/02/09(金) 09:24:52 ID:QSeX58l5
>>114
ならば、別の手順も試してみると良い。
116Now_loading...774KB:2007/02/09(金) 09:47:59 ID:7oEOM1+m
>>114
エラーに書いてあるとおりなのでは?
ボタンを選択して書いたつもりが、rinkuってレイヤーのフレーム内に書いてるんだろう。
117Now_loading...774KB:2007/02/09(金) 10:38:36 ID:icDY7ILc
>>115
>>116
ナルホド・・・もう一度よく見てやってみます><;
回答ありがとうございました
118Now_loading...774KB:2007/02/09(金) 13:44:44 ID:swiHiw5K
すごく初歩的な質問だと思うんですが、
カレンダー表示で月のところを「2」「3」という
数字ではなく「Feb」「Mar」という風に
英語表示にしたいんですが
どうやるかわかりません。

↓現在のヤツ

onClipEvent (load) {
myDate = new Date();
var yobi:Array = new Array
("sun", "mon", "tue", "wed", "thu", "fri", "sat");
var y = myDate.getFullYear();
var m = myDate.getMonth()+1;
var d = myDate.getDate();
var yb = myDate.getDay();
$date = y+"."+m+"."+d+"."+"("+yobi[yb]+")";
day.text = $date;
}

具体的に教えていただけたら有り難いです。よろしくお願いします。
119Now_loading...774KB:2007/02/09(金) 13:55:44 ID:kUi+ghtx
>>118
曜日と同じで配列でやりゃいーじゃん
120Now_loading...774KB:2007/02/09(金) 14:10:56 ID:KYzFSyf8
121Now_loading...774KB:2007/02/09(金) 18:11:49 ID:0ggABsH+
質問です。
loadMovieで読み込んだ外部swfファイルから
大元の_parentや_rootへの操作(変数の変更など)を
禁止または制限することはASで可能でしょうか?
122Now_loading...774KB:2007/02/09(金) 23:52:26 ID:rc3EXV4h
Flex2 SDK でActionScript3を使用しているのですが、
loaderInfo.parametersの情報が取り出せません。

for (var value:String in loaderInfo.parameters) {
tf.appendText("\n" + value);
}

これで何か間違ってるのでしょうか…何も表示されません。
ご教示宜しくお願いします。
123122:2007/02/10(土) 00:40:39 ID:2qXTGLAu
すみません、自己解決しました。
paramタグのFlashVarsの項目しか読み込まないのですね。
ご迷惑をお掛けしました。
124Now_loading...774KB:2007/02/10(土) 00:42:43 ID:A8KCR3PK
>>121
loadMovieで読み込むswfをすり替えられて変更されたら困るってことなら、
mc.loadMovie("hoge.swf")で読み込んだときに
hoge.swfから親にパスワードを送ってそれが違ったら消してしまうとかかな。
125Now_loading...774KB:2007/02/10(土) 01:47:29 ID:2FyXyfKH
>>121
読み込み元のムービーのスクリプトをクラスファイル化して、変数をprivateにしたらいいと思うよ。
126Now_loading...774KB:2007/02/10(土) 02:25:42 ID:A8KCR3PK
>>125
俺の勘違いだったら悪いんだけど、それやったら大元からも変更できなくならない?
127Now_loading...774KB:2007/02/10(土) 03:16:06 ID:t5dtHQkG
現在Flex2を勉強中です
Flex2とStrutsを用いてアプリを作ろうと思い、
下記サイトのサンプル(FlexTagLibは使ってません)を試してみたのですがうまく動作しません
http://blog.livedoor.jp/flex_study/archives/50081238.html

JSPベースであればうまく動作します
原因に心当たりのある方はいらっしゃいますでしょうか?
ご教授願えればと思います。よろしくお願い致します。
128Now_loading...774KB:2007/02/10(土) 03:17:15 ID:t5dtHQkG
エラー内容は以下の通りです

[RPC Fault faultString="HTTP request error"
faultCode="Server.Error.Request"
faultDetail="Error: [IOErrorEvent type="ioError"
bubbles=false cancelable=false eventPhase=2
text="Error #2032: ストリームエラー。
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler()
at mx.rpc::Responder/fault()
at mx.rpc::AsyncRequest/fault()
at ::DirectHTTPMessageResponder/errorHandler()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/flash.net:URLLoader::redirectEvent()
129Now_loading...774KB:2007/02/10(土) 03:38:15 ID:Tc8TjOjo
天安門事件
130Now_loading...774KB:2007/02/10(土) 03:48:02 ID:2FyXyfKH
>>126
窓口関数を用意して、そこで所定の手続きをした場合のみアクセスできる(様にしとく)…と理解してるが間違ってるのかな?
131Now_loading...774KB:2007/02/10(土) 03:55:52 ID:cvXHvQRt
質問です

環境:Mac OS 10.2 Flash MX
やりたいこと:
任意のユーザーの指定したムービークリップや画像を読み込んで
15パズルをつくりたい
…そのためにまずはひとまず
「任意のムービークリップを適当なサイズの複数のムービークリップに分割する」
…という動作をActionScriptでやりたいのですが
これにはどのような関数を用いればよいのでしょうか?
132Now_loading...774KB:2007/02/10(土) 04:38:02 ID:2FyXyfKH
>>131
MXだとビットマップコピーが無いから、MCを15個に複製してそれぞれに15分の1のサイズのマスクを適用するしかなさそうだね。
133Now_loading...774KB:2007/02/10(土) 04:54:57 ID:cvXHvQRt
>>132
こんな朝早くに返信ありがとうございます
なるほど…やはりMXでは機能的に難しいわけですね

ところでではもし最新のソフトでやるとすると
どのような関数を用いることになるのでしょうか?
134121:2007/02/10(土) 06:01:58 ID:1L0KgpJJ
>>124-126
読み込み元に対するクロスムービースクリプトそのものに
制限をかけるというのは無理のようですね・・・
教えていただいた方法をいろいろと試して頑張ってみます。
ありがとうございました。
135Now_loading...774KB:2007/02/11(日) 21:33:36 ID:b84ns6mo
すみません、質問よろしいでしょうか?

当方、WinXpProにて、
Flash8のActionScript2.0を使ってアクションゲームを作成しているのですが、
キーボードのボタンを押した時と離した時、それぞれ別のイベントを用意しています。
そのため、最初にキーを押した時だけイベントを起こすようにフラグで管理しています。
その場合、例えばXを押しっぱなしにしている時にYを押してすぐに離すと、
キーが離されたと認識して、キーが押されているという情報が消えてしまい
その後にXを離しても認識されない状態になってしまいます。

どうやらこれは、[ KeyUp ] が「ボタンを押して離した時」という認識で起動するからのようです。
解決案として、どのキーを離した時も、一度全てのキーを押しているというフラグをリセットする
というやり方で試してみましたが、動作はしませんでした…
純粋に、「ボタンを離した時」で認識してくれれば良かったのですが…

ネットや参考書などを調べてもわかりませんでした、よろしければ
解決策を教えてはいただけないでしょうか?
136Now_loading...774KB:2007/02/11(日) 23:58:23 ID:x2HDPnwq
>>135
キーごとにフラグを持てばいいんじゃないの?
もしくは対象のキー以外はフラグの値を変更しないようにする。
137Now_loading...774KB:2007/02/12(月) 00:35:18 ID:OaQVMKs3
iKey = false;
kKey = false;
↑どこかで初期化

onClipEvent(enterFrame){
  if(Key.isDown(73)){
    if(!(iKey)){
      iKey = true;
      trace("'i'キーが押された");
    }
  }
  if(!(Key.isDown(73))){
    if(iKey){
      iKey = false;
      trace("'i'キーが離された");
    }
  }
  if(Key.isDown(75)){
    if(!(kKey)){
      kKey = true;
      trace("'k'キーが押された");
    }
  }
  if(!(Key.isDown(75))){
    if(kKey){
      kKey = false;
      trace("'k'キーが離された");
    }
  }
}

これくらいしか思いつかなかった。
138Now_loading...774KB:2007/02/12(月) 02:24:21 ID:HeAz+Dm7
親swfのmcにループムービーの子swfを再生して、一定時間経ったら
自動的にまた別の子swfにチェンジ再生というスクリプトは
どう書いたらイイんでしょうか?
139Now_loading...774KB:2007/02/12(月) 02:28:58 ID:OaQVMKs3
140Now_loading...774KB:2007/02/12(月) 02:40:08 ID:l6bTO3CS
>>137
その記述で試してみましたが、押す部分と離す部分が同じ[Key.isDown]内ですので
押されたと離されたを繰り返すという結果になりました。
自分の場合このような記述にしております。

メインタイムラインのフレームに
iKey = false;
kKey = false;

ムービークリップに
onClipEvent(keyDown){
if(Key.getCode() == 73){
if(_root.iKey == false){
_root.iKey = true;
trace("Iキーが押された");
}
}
if(Key.getCode() == 75){
if(_root.kKey == false){
_root.kKey = true;
trace("Kキーが押された");
}
}
}
141Now_loading...774KB:2007/02/12(月) 02:41:36 ID:l6bTO3CS
onClipEvent(keyUp){
if(Key.getCode() == 73){
if(_root.iKey == true){
_root.iKey = false;
trace("Iキーが離された");
}
}
if(Key.getCode() == 75){
if(_root.kKey == true){
_root.kKey = false;
trace("Kキーが離された");
}
}
}
この記述の場合、Iキーを押し続けている最中にKキーを押して離すと
その後のIキーを離したというイベントが実行されません。
もう一度Iキーを押し直さないとIキーが離されたと認識されないようです。
Iキーを押し直さずにIキーが離されたと認識させるにはどうすればいいでしょうか?

自分のイメージですと、スクリプトの届かない最下層に「ボタンを押した」「ボタンを離した」
のフラグがあるように感じます…
長文、失礼いたしました。
142Now_loading...774KB:2007/02/12(月) 03:12:02 ID:dwQ1NE5W
>>138
>一定時間経ったら
これはsetInterval

>>141
キーリスナーを使う

var key_obj = new Object();
var i_bln = false;
var k_bln = false;
key_obj.onKeyDown = function() {
    key = String.fromCharCode(Key.getAscii());
    if (key == "i") {
        i_bln = true;
    } else if (key == "k") {
        k_bln = true;
    }
};
key_obj.onKeyUp = function() {
    key = String.fromCharCode(Key.getAscii());
    if (key == "i") {
        i_bln = false;
    } else if (key == "k") {
        k_bln = false;
    }
    trace("["+key+"] UP");
};
Key.addListener(key_obj);
143Now_loading...774KB:2007/02/13(火) 06:23:36 ID:aIVBT6xu
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7)

フレーム間でのデータの受け渡しについて質問です。

1フレ目のボタンアクション
on (press) {
bun1 = "おはよう";
bun2 = "ございます";
}
on (release) {
bun3 = bun1.concat(bun2);
}

2フレ目のフレームアクション
bun3_ins.text = bun3;

1フレ目で文字列「おはようござます」を生じさせて、これを2フレ目の
テキストフィールド(インスタンス名:bun3_ins)に表示させたいのです
が上手くいきません。

とりあえず2フレ目のtraceで trace("文3= "+bun3); はOKですが、
肝心のテキストフィールドが駄目です。どうしたらいいでしょうか?
144Now_loading...774KB:2007/02/13(火) 10:11:51 ID:e0aCUVbt
インスタンス名を付けてないとか、パスが違うとか。
145Now_loading...774KB:2007/02/13(火) 13:15:41 ID:c4GVorJV
クリックして遊ぶムービーを作ったのですが、
操作を何もせず放置して、一定時間が経過すると、
あるURLに飛ぶように・・・という設定が出来ません。
どなたかアドバイスお願いします。
(テンプレのサイトにも目を通したのですが、もし見落としていたらすみません。)
146Now_loading...774KB:2007/02/13(火) 13:34:27 ID:e0aCUVbt
setInterval
147Now_loading...774KB:2007/02/13(火) 13:53:41 ID:awqjUvdR
夢中になって遊んでたら突然グロ画像表示されるFlashを思い出した
148Now_loading...774KB:2007/02/13(火) 19:24:46 ID:6djz/zjw
>>147
アァーッ!
149143:2007/02/13(火) 19:25:03 ID:d/2WbSk/
>>144
すいません。アホやってしまいました。
テキストフィールドの文字を背景と同じ白に設定していました。。。。

だれか、私のお尻を打って下さい。
150Now_loading...774KB:2007/02/13(火) 19:39:00 ID:6djz/zjw
リンゲージに関しての質問です

↓のファイルの _root - 1フレーム - Ret関数 の部分なんですが実行されると_xと_yの指定を無視してx=0,Y=0に配置されてしまいます
何がいけないのでしょうか
よろしくお願いします
http://www.uploda.org/uporg692396.fla.html
151Now_loading...774KB:2007/02/13(火) 19:39:32 ID:mJ1J8BEe
            ∧∧
 ∧_∧      ノ⌒ヽ) アッー!
 ( ・ω・)=つ≡つ( ノ
 (っ ≡つ=つ. _ノノ>
 /   ) バババ レ
 ( / ̄∪
152Now_loading...774KB:2007/02/13(火) 21:54:06 ID:IJVBW96Y
何がしたいのかよく分からんけど・・・・
movex = 270;
movey = 20;
これは関数の外に出すんじゃね
んで、シンボルのプロパティのタイプをグラフィックじゃなくてムービークリップにすればいいんじゃね。
153152:2007/02/13(火) 23:33:29 ID:6djz/zjw
>>152
なるほど・・・
ムービークリップにするってのは盲点でした・・・・
あと関数内で設定した変数は関数から出ると初期化されてしまうんですね・・・

このフラッシュはC言語のソースを背景で1文字ずつ表示されていくのが表現したくて作っていた物です
設置されてる変数はデバッグ用です

無事解決しましたありがとうございました
154Now_loading...774KB:2007/02/14(水) 02:54:15 ID:E+OeB9IA
>>142
KeyUp自体が「キーを押して離した時」の認識のようでして、
やはり認識しませんでしたが、
>>139
に書かれているとおり、Flash Playerを8から7に変えたら認識されるようになりました。
これは意図的なものなのかバグなのかわかりませんが…新規バージョンでは7の
ボタン認識を基準にしてくれたらと思います。

とりあえず解決いたしました。
相談にのっていただき、ありがとうございました。
155150:2007/02/14(水) 04:18:12 ID:EQ6IDonK
何度もすみません

>>152で一度解決したのですが
同じ文字を2度表示するとそれ以前に表示していた文字が x,0 y.0の位置になってしまいます
配列は直接使用できないみたいで八方塞です
何か良いアイデアないでしょうか
よろしくお願いします

case "l":
  _root.attachMovie("Ls", "Word[Num3]", sindo);

  _root.Word[Num3]._x = movex;
  _root.Word[Num3]._y = movey;
  movex += 8;

  break;
http://www.uploda.org/uporg693037.fla.html
_root 1フレーム目 269 - 277
156152:2007/02/14(水) 04:50:27 ID:O/dgGfgt
適当。

case "l":
_root.attachMovie("Ls", "Ls"+sindo, sindo);
_root["Ls"+sindo]._x = movex;
_root["Ls"+sindo]._y = movey;
movex += 8;
break;
157150:2007/02/14(水) 04:59:55 ID:EQ6IDonK
>>156
無事出来ました
配列と同じような働きをしてくれるのかな・・・
あとは自分で調べてみます
2度もありがとうございました
158Now_loading...774KB:2007/02/16(金) 11:09:37 ID:EyCeWAMG
テキストを関数内でロードしたときに下記のように記述したんですがうまくいきません
loadtext();
function loadtext() {
loadVariables ("text.txt", this);
displaytext(date1);
}

function displaytext(txt) {
textdisplay = txt;
}

何が間違っているのでしょうか?
159Now_loading...774KB:2007/02/16(金) 11:45:59 ID:0yNSRlxa
>>158
ロードにはたとえ一瞬であれ時間がかかるので、読み込み待ちの処理が必要。
それから、とくに理由がないならFla4スタイルはやめてLoadVarsを使え。
160Now_loading...774KB:2007/02/16(金) 13:54:55 ID:EyCeWAMG
>>159
解決しました
ありがとうございました
161Now_loading...774KB:2007/02/17(土) 03:05:23 ID:otBDLE5c
ttp://qwerqwer1234.hp.infoseek.co.jp/mudah/mudah.swf?Target=
                                   ^^^^^^^
ここのflashのようにURLから変数を取得したいのですがどのようなasを書けば良いのでしょうか
検索してもhtmlにswfを載せる際、同時に変数を記述する方法しか見つかりませんでした

MX2004を使用しています
162Now_loading...774KB:2007/02/17(土) 05:13:25 ID:RVa/j1Dr
>>161
_root._urlを使いたまへ
あとはsplitでどうとでもなる
163Now_loading...774KB:2007/02/17(土) 05:32:36 ID:eH69iisg
フラッシュでパスワードを求めて正しいパスワードなら指定URLに飛ぶフラッシュを作りたいんですが
どの程度のセキュリティがありますか?
今のところ考えているのは正しいパスワードを別途ファイル記述する程度しか思いつきませんでした
アドバイスお願いします。
164Now_loading...774KB:2007/02/17(土) 05:43:02 ID:RVa/j1Dr
>>163
外部CGIとかに認証をまかせるのがお手軽でオススメ・・・だが、
その指定URLをswfの中に記述してたらパスなんて関係なく簡単に見れちゃうのでその辺は要工夫
165Now_loading...774KB:2007/02/17(土) 07:12:33 ID:aoCZ5ZDv
>>161
swf内で _root.Target で取得できる。
swf?の後ろに付いた文字がそのまま変数になり、=の後ろが代入される
日本語を使う場合はURLエンコードする。

>>163
LoadVarsクラスでcgiにPostして、cgi内でチェック。
正しければhtmlをprintするなりどっかに飛ばすなりお好きなように。
166Now_loading...774KB:2007/02/17(土) 07:12:42 ID:eH69iisg
>>164
やはりフラッシュのみに任せるのは荷が重いですね・・・
CGIの勉強ちょっとして見ます
ありがとうございました
167161:2007/02/17(土) 09:43:36 ID:otBDLE5c
ご回答ありがとうございました!
168Now_loading...774KB:2007/02/17(土) 10:41:39 ID:uXkRHmL3
>>163
パスワードをファイル名にして、URLをファイルに記述
169Now_loading...774KB:2007/02/17(土) 11:38:59 ID:aF/tNEaH
まず、Object::registerClass を使用して attachMovie した MC を作成しました。

次にその MC をコンストラクタに指定して Sound オブジェクトを作り、attachSound→start で
サウンドを再生しようとしても出来ません。(その MC だと TrantisionManager も一部動作しなくなる)

Flash 上でリンケージ指定した MC では再生できるのですが…
どうしてかアドバイスお願いします。
170Now_loading...774KB:2007/02/17(土) 14:07:45 ID:/C+4gSgZ
171Now_loading...774KB:2007/02/17(土) 15:50:02 ID:aF/tNEaH
>>170
必ず埋め込む必要は無いですよね?
_root 直下に空の MC を作成し、それを引数にサウンドオブジェクトを作ると
他のサウンドオブジェクトとは区別して制御できるんです。

でも Object::registerClass を使用して作成した MC では制御出来ません。
しかもその MC の子も同じ現象になります。

何故こうなるのか全然分かんないんです><
172Now_loading...774KB:2007/02/18(日) 03:07:31 ID:ZtJ0tJkQ
外部の改行を含むテキストファイルを読み込んで配列に分けて入れようとしてるんですが、
どうも改行コードを置換する処理がうまく行きません。
ASでの改行コードの扱いはどうなってるのでしょうか?

ちなみに書いているスクリプトは↓
root.yomikomi.data.split("\n").join(",");//改行コードを","に変更
this.datalist=_root.yomikomi.data.toString().split(",");
173Now_loading...774KB:2007/02/18(日) 03:51:10 ID:2w9GN82c
>>172
this.datalist=_root.yomikomi.data.split("\n");
これじゃうまくいかんの?

ついで\nじゃなくて\rだったりするテキストもたまにあるけど・・・
174172:2007/02/18(日) 04:16:03 ID:ZtJ0tJkQ
>>173
\rも試してもできなくて、さっき\r\nで試してみたらできました!

どうやらWindowsの改行キーが違ってたみたいでした・・・orz
175Now_loading...774KB:2007/02/18(日) 09:53:59 ID:xhNg/og0
マウスを右クリックした瞬間××フレームに飛ぶ…という処理を作りたいんですが可能でしょうか。
色々ASサイト見て回ったのですが見あたらなかったので質問します。
環境はFLASH8。宜しくお願いします。
176Now_loading...774KB:2007/02/18(日) 10:36:08 ID:fL/6iNl7
右クリックは使えないんじゃ無いっけ
177Now_loading...774KB:2007/02/18(日) 10:54:44 ID:W4FfhX81
>>175
右クリにオリジナルのメニューを設定することはできるが
右クリはFlashPlayerが使っているから、右クリした瞬間にという動作は無理なはず。
右クリ以外の処理にするしかない。
178Now_loading...774KB:2007/02/18(日) 11:49:56 ID:xhNg/og0
>>176-177
ありがとうございます。
↓のページを見て、応用すれば右クリでページ切り替えができるかと思ったのですがやはり無理でしょうか。
ttp://hakuhin.hp.infoseek.co.jp/main/as/menu.html#MENU_02
179Now_loading...774KB:2007/02/18(日) 11:53:39 ID:W4FfhX81
>>178
そいつは失礼。
直前に関数が走るのはしらんかった。
で、すきなフレームにgotoAndStop()する関数をつくって関連づければいけるよ。
そのページ見てもわからないのはどこの部分?
180Now_loading...774KB:2007/02/18(日) 12:01:06 ID:W4FfhX81
>>178
いや、ちょっと待て。
その例だって、右クリした瞬間には表示しないぞ。
とりあえずコンテキストメニューが表示されてから表示が切り替わるよな?
そういう方法でもいいの?
コンテキストメニューをすっ飛ばして動作ってのは無理じゃないだろうか。
181178:2007/02/18(日) 12:17:55 ID:FML0Yg2+
コンテキストメニューが表示されるのは構いません。
上記の解説ページのサンプルを見て、処理が必要とされるフレームに以下のASを記述してみたんですが、
右クリックしてもフレーム18に移動しません。
尚、サンプルから改変したのは
function teisi (){【ここの部分】}
だけなので、その記述の方法が間違っているのか、他の部分の記述も変える必要があるのかが分かりません。
度々すみません。以下、自分が記述したAS。

menu_cm = new ContextMenu (); // コンテキストメニュー作成
menu_cm.onSelect = teisi; // 右クリックメニューが呼び出される直前に呼び出される関数を割り当て

function teisi (){
gotoAndPlay(18);
}

_root.menu = menu_cm; // コンテキストメニューをメニューに割り当て
182Now_loading...774KB:2007/02/18(日) 12:31:38 ID:fMjqwGyZ
>>181
普通に動くよ。gotoAndPlayの前行にtraceで確認してみそ
たぶんgotoAndPlayの行き先ちがうとか、stop()してないとかでしょう
183Now_loading...774KB:2007/02/18(日) 12:49:48 ID:FML0Yg2+
>>180 >>182
解決しました。
右クリックメニューを制限する
fscommand ("showmenu", "false");
の記述が入っていると上手く動作しないようです。これを消したらちゃんと動作しました。
重ね重ねどうもありがとうございました。
184Now_loading...774KB:2007/02/18(日) 21:05:03 ID:YZy54+vz
外部から画像を読み込んで、その画像を使いまわしたいのですが、

ムービークリップに画像を読み込んだ後に
duplicateMovieClip();
でムービークリップをコピーしても画像入りのムービークリップを
コピーできません。

カードゲームの柄を何時でも変更出来る様に外部に持ちたいのですが、
カード自体は大量の枚数なので、その度に読み込めないですし…

本当にアホな質問ですみません…
185Now_loading...774KB:2007/02/19(月) 08:03:47 ID:w+QnnEpR
>>184
どういうASを書いてダメなのかを書かないとだれもわからん
186Now_loading...774KB:2007/02/19(月) 10:15:09 ID:SHyiBWEu
>>184
duplicateMovieClip()で複製できるのはもとのシンボルから作ったインスタンスだけ。
そこにロードした内容までは複製できない。
複製してからロードするか(キャッシュがあるのではやいはず)、8以降なら
ビットマップキャッシュでなんとかなるんじゃね?
187Now_loading...774KB:2007/02/19(月) 15:58:03 ID:giU2QRUL
読み込み専用swfを作ったんですが再生するフラッシュによってサイズを変更するのは大変なので
外部テキストにサイズを記述しようと思ったのですがサイズを変更するためのスクリプトがわかりません

何かアドバイスお願いします

ちなみに変更するのはムービークリップではなく読み込み用フラッシュ自体の大きさです
188169-171:2007/02/19(月) 21:05:41 ID:mE52BRaZ
うーん…分からん
189Now_loading...774KB:2007/02/20(火) 00:37:04 ID:HNPBUgPZ
>>187
swfのステージサイズはASでは変更できない。
swfを直したくないのならhtmlに埋め込んでるタグ部分の幅を変えるとか。
190Now_loading...774KB:2007/02/20(火) 08:36:41 ID:7D0IyZ3a
>>185-186
ありがとうございます。
ビットマップキャッシュを試してみます。
191Now_loading...774KB:2007/02/20(火) 21:51:07 ID:ytQBRt3d
Flash8 BasicでMGを作っていたのですが
ASによる計算を多用したため、とても負荷がかかります。

そこで高速と言われるAS3.0を使いたいと思ったのですが、
Flex2では音楽にあわせたエフェクトなどを表現しにくいと思います。
タイムラインベースでAS3.0を使える環境が欲しいのですが
Flash8 Proにアップグレードして、そこから
Flash9 alphaを使うしかないでしょうか?
192Now_loading...774KB:2007/02/21(水) 02:22:36 ID:XL1h/FmK
FLASHでゲームを作っているんですけど、
256色透過PNG中の特定の色を別の色に変えることってできるんですか?
FLASHでフルスクリーンとかできるんですか?
あとFLASHでゲームパッドってつかえるんですか?
193Now_loading...774KB:2007/02/21(水) 02:50:09 ID:TmtHvW1y
寝ヴォケながら答えてみます。

>>192
パレットアニメですか?色変えたい部分のドットのみMC化して
ASで変化させてやればそれっぽく見えるかもしれないです。

フルスクリーンはスタンドアロンアプリ化したらいけると思います。
といっても、ウインドウをモニタいっぱいに引き伸ばしただけで
一般的なゲームのようなDirectXを利用した画面切り替えとは
違いますです。

ゲームパッドはFlashのランタイムでは感知してくれないので
JoyToKey使ってとかFlashPlayerEXで遊んでなどと、プレイヤーに
一工夫を求めるしかないのかもです。
194Now_loading...774KB:2007/02/21(水) 07:00:09 ID:Ff/s3VQk
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7)

フレーム共通の動作について質問です。

gotoAndPlay()を使い、ボタン操作によってシーンを切り替える1〜20フレームのSWF
を作りましたが、あるテキストフィールド(インスタンス名:input1_ins 場所は_root)の
背景を途中のフレーム以降全てで水色にするにはどうしたらいいでしょうか?

水色の背景は input1_ins.backgroundColor = 0x00FFFF; なので、例えば3フレ以降
を全てキーフレームにして、その全てのフレームアクションとして上の記述を書けば
出来そうですが正直面倒です(2個のフレームで試した場合はOKでした)。

区間に共通して適用させる方法を教えて下さい。
195Now_loading...774KB:2007/02/21(水) 07:26:54 ID:P4CovQQV
>>191
AS2.0での作りを考えた方が良いよ。ちなみにASの計算なんて負荷のほんの少し。
>>194
最初に設定したら背景色はそのままのはずだけど。
196191:2007/02/21(水) 13:59:20 ID:kRLz19hF
>>195
他に方法は無いということですね。わかりました。
負荷についてですが、ムービー内のオブジェクト全てを透視変換しているので
描画よりもそちらで処理を食っているということは確認していました。
そこで
ttp://www.be-interactive.org/index.php?itemid=172&tag=3D
こちらの記事を見てAS3.0による解決を図ろうと思った次第です。

AS2.0で行列計算のルーチンを見直してみようかと思います。
ご回答ありがとうございました。
197Now_loading...774KB:2007/02/21(水) 14:14:16 ID:qlF/9KsC
Flex2で出力した部品クラスをFlash上に配置できりゃいいんだけどね
Flash9待ちかな

そういやFlex2SDK無料な今、Flash9ではBASIC/Proの区分けにあまり意味がなくなりそうだな。
Proでプログラマユースな奴はFlex2SDKに抵抗ないだろし。
どうなるんだろ
198Now_loading...774KB:2007/02/21(水) 16:15:48 ID:oYzFPlQy
Flash Lite2.0対応の携帯用に直線を描写するようなFLASHを作っています
こんな感じに書いても(100, 100)から描写されず(0, 0)から描写されてしまいます。
どうすれば(100, 100)から描写できるようになるのでしょうか。

aaa = ccc(10);

_root.lineStyle (2, 0x00ffff, 100);
_root.moveTo (aaa, aaa);
_root.lineTo (200, 200);

function ccc(bbb) { so.data.count=10; answar=bbb*myso.data.count; return(answar); }

SharedObject.addListener("OpenCount", ccc);
var OpenCount = SharedObject.getLocal("OpenCount");
199Now_loading...774KB:2007/02/21(水) 16:37:14 ID:VNqM9i2c
>>198
実機もってないし、ソースも斜め読みだからわからないけど、
もう少し単純なケースから検証したほうが良いんじゃない?

たとえば線が引きたいだけなら、
//----
_root.lineStyle (2, 0x00ffff, 100);
_root.moveTo (100, 100);
_root.lineTo (200, 200);
//----
で試すとか

下のほうはso、myso、OpenCountとSharedObjectらしきもの
がいろいろあって混乱してるからその辺から見直せ。
多分全部同じものを指したいんじゃないのか?
200Now_loading...774KB:2007/02/21(水) 16:39:32 ID:ZzEjJOOS
>>198
なぜSharedObject使わなきゃいけないのかわからんが
_root.moveTo (100, 100);
201192:2007/02/21(水) 16:42:32 ID:nBuQk+fR
>>193
格ゲーの色違いキャラみたいなのをやりたかったんですけど、
例えば服だけ色を変えたりとかしたかったんです。
如何せん絵の枚数が多いもので・・・

FLASH側で画面の解像度を変えたりとかできないんですね?

あとなんですけど、FLASH9ではどのくらい高速化されるんですか?
具体的には今はFLASH8で640*480の画面で60fpsで動かして、
モバイルペンティアム1.7GHzでもかなりきつい動作をさせているんですけど。

要はFLASHで格ゲーを作っているんですけど、
もちろんFLASH以外で作った方がいいとは思ってはいるんですが・・・
202Now_loading...774KB:2007/02/21(水) 16:59:06 ID:l/5i/pTI
>>199
>>200
×answar=bbb*myso.data.count
○answar=bbb*so.data.count
でした

SharedObjectを使うのは携帯を開いた回数をカウントするためです
そしてカウントに連動して線を描写したいんですが上手くいきません
ちなみにカウントだけ、描写だけなら上手くいきます。


203Now_loading...774KB:2007/02/21(水) 17:05:45 ID:bzkUGV+N
>>201
FLASH以外で作った方がいいよ。
204Now_loading...774KB:2007/02/21(水) 17:09:32 ID:nBuQk+fR
>>203
いやでもFLASHの線画によるアニメーションが好きなんで、
それでキャラのモーションを描いたりとかもしているんですよ。
で、大体形は出来上がっているんで、
折角だからもっと高速化できないかとか考えていたんですよ。
CかなんかかでFLASHを制御したりとかはできるんですか?
205Now_loading...774KB:2007/02/21(水) 18:47:03 ID:wF05r43f
描画の雰囲気をFlashプレーヤー風にしたいなら結局はFlash
プレーヤーの描画速度に依存するから無理。
Cでswfファイル解析して自分で画面描画処理をDirectXなりに
出力する気ならがんばって。
206Now_loading...774KB:2007/02/21(水) 19:51:11 ID:qlF/9KsC
Flexかなり速いよ。32x32のマップチップやオブジェクト数百枚とかで画面埋め尽くしてみても平気で30fps出る(macmini 1.42GHz)
VGAサイズ60fpsでも、ビットマップ転送ならそれなりに軽めでいけそう。

でもベクター扱うとやっぱり重いな。
Flash8で吐いたオブジェクト読ませると旧VM読込む形になるようで、結局その部分の処理は大差ない様子だし。
計算やロジックが主の負荷ならかなり改善を期待できるかな。

Flash9出たら、内蔵MCを一度AS側でビットマップレンダリング保持しなおして高速処理とかできないかなとか妄想してみたり
207Now_loading...774KB:2007/02/22(木) 02:48:41 ID:k68r2I3C
AS3でRPGを書こうと思うんだけど
マップ・キャラチップをフレーム毎にBitBltするのと
キャラだけSpriteにして合成するのはどっちが扱いやすいかな
AS3を始めたばかりで迷う・・・
208Now_loading...774KB:2007/02/22(木) 12:48:25 ID:fiHoCW+H
delete this; って有効ですか?
209Now_loading...774KB:2007/02/22(木) 17:03:56 ID:r6p1eU6X
>>207
おれは、描画処理クラスはマップやキャラクラスから切り離してます。
クラスには位置情報や状態、画像アニメーションセットへの参照とかなるべく軽くしてる。

クラスは最低限の情報のみにして、大量のnewに耐えられるようにしたいなと思ったためですね。
何かをextendしたクラスを大量にnewするのってなんか気がひけます。
あと考えた点だと、処理最適化時に描画エンジンだけ考えられる状態にしたいなとか。
210Now_loading...774KB:2007/02/22(木) 17:28:33 ID:mm7bESkf
FLASH5です。
youtubeの様なプレイヤーを作りたいのですが、
コントロールバーに使うボタン
(再生位置を取得しつつMouseDownで位置指定できる奴)
の仕組みがよく理解できません。
実際外部から読み込むのはswfで、フレーム数の取得関係は出来ています。

あれはボタン1個のオブジェクトアクション1枚で書く物なのでしょうか?
211Now_loading...774KB:2007/02/22(木) 17:33:55 ID:edwqvRjp
>>208
有効
>>210
flash5でyoutubeって、、いつの時代の話ですか
212Now_loading...774KB:2007/02/22(木) 17:39:08 ID:U/6fb+es
>>210
> あれはボタン1個のオブジェクトアクション1枚で書く物なのでしょうか?

いまいち疑問とするところがわからんのだが、
とりあえずFlash5でのスクロールバーの作り方とか見てみたら参考になるんでない?
ボタンじゃなくてMCを使って、クリップアクションであれこれ設定するんだったような。
213Now_loading...774KB:2007/02/22(木) 17:40:41 ID:RhcRLQLK
>>211
自分基準で決め付けるのは良くないよ。
企業とかでもまだ5を使ってる会社もあるし。
イラレ8やフォトショ6もいまだに多くの企業で健在してるよ。
214Now_loading...774KB:2007/02/22(木) 17:43:40 ID:edwqvRjp
>>213
イラレ、フォトショは印刷関係で広く使われているから仕方ない面もあるが、
フラッシュだぞ。しかも動画扱うんだろ。基準が違う。
215Now_loading...774KB:2007/02/22(木) 17:51:50 ID:lh727Jx9
flv無いし
イラレやフォトショと同じじゃない
自分基準はどっちだか
216Now_loading...774KB:2007/02/22(木) 17:56:46 ID:mm7bESkf
>>212
ありがとう、ちょっと表現がおかしかったかもしれない。
プレイヤーのコントロールバーとスクロールバーの違いといえばよかったかも?
プレイヤーの方は絶えず再生位置を取得して移動させつつも、
ユーザーのアクションで再生位置を指定すると言うものなので
2重ボタンとかの工夫が必要なのかとおもったんだ。。

ていうかFLASH5レベルでスクロールバーだと位置を相互で取得してるって
自体あんまりなくて参考になるのが見つからず、、もしかして不可能?
FLASH5レベルだとmp3プレイヤーにしてもコントロールバーが付いてるものが
ほとんどみかけないんですが、、、

>>213-215
古くてすまんかった
217Now_loading...774KB:2007/02/22(木) 19:58:40 ID:MiANG5Hm
MX2004
win XP
ですが、

arrayで複数の数字の配列を作っておいて、ifの条件にそのarray内の数字の一つでもifの条件に入ってたら特別な動作を実行するって可能ですか?

わかりにくくてスマソ
218Now_loading...774KB:2007/02/22(木) 20:42:42 ID:edwqvRjp
>>217
可能
219Now_loading...774KB:2007/02/22(木) 21:07:49 ID:vdaAe8fo
>>217
var a = new Array(94,54,85,97,84,20,66,48,41,94,1,11,8,38,86,18,8,94,77,13,45,7);
for(var i=0;i<a.length;i++)if(30<=a[i]&&a[i]<40){ //30以上40未満の数字が含まれているか
trace("あった"); //特別な動作
break;
}
220216:2007/02/22(木) 22:15:17 ID:mm7bESkf
ちょっと話ずれるけどFLASH5でボタンの中のMCにSWF読ませるとか出来ませんか?
例えばなんだけど構成こんな感じで。
_root

├ボタン2─MC(loadMovieのtarget)
└ボタン1(pressでloadMovie)
出来ない原因としてボタン1のloadMovieで指定するパスが通らないみたいで
ボタンにインスタンス名が付けられない為?他に手法無いでしょうか?
221217:2007/02/22(木) 22:19:36 ID:MiANG5Hm
>>218-219

トンクス
222Now_loading...774KB:2007/02/22(木) 22:25:49 ID:Of72djQG
>>220
ボタンじゃなくてMCにするべし
223216:2007/02/22(木) 22:40:04 ID:mm7bESkf
>>222
サンクス、つまりボタンの用にMCを扱うしかないってことだよね、、
そこに限界があればそこまでってことか。。。
224Now_loading...774KB:2007/02/22(木) 23:47:15 ID:x2hluW9Q
>>223
どのへんが限界なの?
ボタンのなかってのは基本的にASの操作対象外だから、考え方自体を変えるしかないっしょ。
MCのなかにボタンとターゲットMC置くとか、なんか方法あると思うけどね。
225Now_loading...774KB:2007/02/23(金) 05:15:07 ID:3dJF6ggq
>>209
Thx、やっぱり大量にインスタンス生成するのは負荷が凄いよね
昔ながらの方法でやろうと思います
226Now_loading...774KB:2007/02/23(金) 16:42:04 ID:0alEW4FW
テキストファイルを読み込んで表示させる物を作っているのですが
埋め込みフォント使うとどうも読みにくいって言うか汚くなりますよね
あれどうにかならないのでしょうか?
マスクを使わずに
表示の必要が無い部分を背景色と同じmcなどで隠す方法をやってみたのですが
読み込むテキストが大量になる場合はどうも重くなってしまい、
マスクを使うとかなり軽くなるのですがその分汚くなる
アドバイスお願いします。
227Now_loading...774KB:2007/02/23(金) 16:59:02 ID:UUT4Oc5K
日本語でおk
228Now_loading...774KB:2007/02/23(金) 17:10:47 ID:0alEW4FW
すいません
わかりにくいですよね
要はフラッシュ掲示板みたいなものだと思ってください
で、ログをテキストフィールドに読み込んで
そこにマスクして埋め込みフォントにした訳なんですけど
どうにもフォントが綺麗に出ないそれをどうにかしたいんですが
お願いします。
229Now_loading...774KB:2007/02/23(金) 17:58:42 ID:lYG5dPgJ
>>228
テキストフィールドの「文字の埋め込み」のことだよね?
230Now_loading...774KB:2007/02/23(金) 18:05:17 ID:K6259D/L
普通、フォント埋め込むとアンチエイリアスがかかって逆に綺麗に見えるもんだと思うが。

とりあえずレイヤーマスクじゃなくて、MovieClip.setMask()使ったら?
231Now_loading...774KB:2007/02/23(金) 19:05:31 ID:0alEW4FW
レスサンクス
>>229
そうです文字の埋め込みの事です。
>>230
setMask()やってみたけど同じでした。
なんか文字が若干太くなってぼやけてる感じ見える

http://m-flo.com/index2.html
↑このサイトのcontents→biograghyのところなんですけど
これ最初は縦長のテキストフィールドを含んだMCにマスクかけて
スクロールバーの動きにあわせて上下させてるのかと思ったんだけど
もしかして、1行動くごとにMCごと元の位置に戻してテキストフィールドを1行ずらす
見たいな感じのスクリプトになってるんでしょうか?
232Now_loading...774KB:2007/02/23(金) 19:20:33 ID:K6259D/L
>>231
setMaskをつかって、文字は埋め込まないという意味なのだが
233Now_loading...774KB:2007/02/23(金) 19:47:22 ID:0alEW4FW
>>232
できました。ありがとうございます。
ってかなんでsetMask()でやると埋め込まないでいいようになってるんだろ
埋め込むだけで無駄に容量でかくなるのに埋め込みなんて必要ないような
まぁいいや、助かりました。
ありがとうございます。
234Now_loading...774KB:2007/02/23(金) 22:21:18 ID:1Kp1CBUl
テキスト&マスクは大昔からの制限だからしょうがないやね。
いまは少なくともスクリプトで何とかなるんだから昔よりはだいぶ良いよ。
235Now_loading...774KB:2007/02/24(土) 06:14:31 ID:dfCZRJFk
FlashMX(6.0)で作ったswfをFlashPlayer8以降で実行させると
以下のプログラムの値が参照されるので困ってる。

_root.stat[10 + i].st = Math.floor(_root.stat[_root.prty[i]].st);

左辺の_root.stat[_root.prty[i]].stには小数点以下を含む数値が入っていて
Math.floor()で小数点以下を切り捨てて右辺の_root.stat[10 + i].stに入れているのだが、
なぜか元の左辺の_root.stat[_root.prty[i]].stの数値も小数点以下が切り捨てられた値になっていた・・・

なんとかならないものか・・・
236Now_loading...774KB:2007/02/24(土) 07:55:31 ID:dfCZRJFk
力技で自己解決しました(T T;
237Now_loading...774KB:2007/02/24(土) 11:18:53 ID:OI/RjSKY
マウスカーソルの位置でスクロールするメニューを作りました。
スクロールするメニューのMCの上にカーソルを持っていったときにだけ
スクロールしてほしいと思い、以下のASをメニューのMCに書いたのですが、
ムービーをロードしたときにスクロールしてしまいます。
1回メニューのMCの上にカーソルを持っていくと正常に動くのですが。

ムービーをロードしたときに、スクロールをとめる方法がありましたら教えてください。

onClipEvent (load) {
nSpeed = スピード調整;
nStageWidth = ステージの幅;
//スクロールフラグ
fScroll = true;
//===function定義
function xScroll() {
if (fScroll) {
this._x -= (_root._xmouse-nStageWidth/2)/nSpeed;
if (this._x >= 0) {
this._x = -(メニューMCの幅);
} else if (this._x <= -(メニューMCの幅) {
this._x = 0;
}
}
}
}
onClipEvent (enterFrame) {
xScroll();
}
238237:2007/02/24(土) 11:35:32 ID:OI/RjSKY
書き忘れましたが、メニューのMCの
入れ子の個々のMCには以下の記述をしています。

on (rollOver) {
_parent._parent.fScroll = true;
}
on (rollOut) {
_parent._parent.fScroll = false;
}

よろしくお願いします。
239Now_loading...774KB:2007/02/24(土) 14:36:34 ID:mV7qlbjI
//スクロールフラグ
fScroll = true;
はfalseなんじゃね
240Now_loading...774KB:2007/02/24(土) 19:14:36 ID:+Momik6z
皆様こんにちは。さて質問なのですが、

SharedObject.addListener("my_so",my_so_Handler);
function my_so_Handler(){
 〜〜〜〜略〜〜〜〜
};

の意味を教えてください。私が読んだ入門書によると、リスナーというのは
「監視するための部門のようなもの」と書いてありました。また、教えてFlashには「アルバイトを雇う」
のような比喩で記されていました。しかし、上記のスクリプトの、

SharedObject.addListener("my_so",my_so_Handler);
                   ↑     ↑
の引数の部分の意味が分かりません。どなたか教えてください。
"my_so"というのは、インスタンス名だと思うのですが、次の引数のmy_so_Handlerという
のは何なのでしょうか?
241Now_loading...774KB:2007/02/24(土) 19:50:37 ID:2z7A7l91
どう見てもユーザ定義関数ですが?
242Now_loading...774KB:2007/02/24(土) 20:31:07 ID:3t70ozBD
SharedObjectにaddListenerなんてあったかな?と思ったらFlashLiteか。
http://livedocs.adobe.com/flashlite/2_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts_wEcute&file=00000749.html
どっから持ってきたソースかは知らないが、まずリファレンス引こうな。
243237:2007/02/25(日) 01:00:01 ID:2b3FXY7C
>>239
その通りでした!(^^;
どうもありがとうございました〜!
244Now_loading...774KB:2007/02/25(日) 19:27:27 ID:LUKgINM4
質問です。
httpからフォームで入力された文章をPOST形式にしてphpで受け取って***.swf?moji=$mで
フラッシュに送って表示させているのですが
(テキストフィールド.text=_root.moji)
フォームに入力した改行がフラッシュ内で反映されません…。
(改行箇所が半角スペースになっている)
この場合、改行を反映させるにはどうしたらよいでしょうか?
OSはXPでフラッシュ8をつかっています。
245Now_loading...774KB:2007/02/25(日) 19:28:52 ID:UAOxCaE2
MX2004、AS2.0で質問

mx と打つと(識別子のに)色が変わるんでつがこれって予約語なの?索引見ても載ってないお
246Now_loading...774KB:2007/02/25(日) 19:50:08 ID:6ArzqWml
>>244
改行コードってエンコードされるんじゃなかったっけな?
代替文字(ex:\n→@@)決めてやってみれば。
それかloadVarsでPHP叩いて読み込む。

>>245
パッケージ名じゃなかったかな?
247Now_loading...774KB:2007/02/26(月) 15:02:36 ID:BSGtZx50
actonScript2.0でデフォルパラメータを持った関数を作りたいのですが
たとえば下記のような関数で

funtion hoge(a:Number, b:String){
  trace(a);
  trace(b);
}

関数の呼び出しが
hoge(100);
であった場合

100 値なし。

といった結果を表示させたいのですが


248Now_loading...774KB:2007/02/26(月) 15:33:46 ID:KG8mV8sn
>>247
funtion hoge(a:Number, b:String){
  trace(a);
  trace(b || "値なし。");
}
249Now_loading...774KB:2007/02/26(月) 16:29:38 ID:OpNlSCUe
>>247
ですがどうなの?
250Now_loading...774KB:2007/02/26(月) 21:02:38 ID:VKKanrhv
複数のBGMが流れているFlashを作っているのですが
複数の中のBGM“A”を●フレームから×フレームまでActionScriptを使って音量を下げたいのですが
どのようにすればいいのでしょうか?
251Now_loading...774KB:2007/02/26(月) 21:24:34 ID:xZDIlo1u
サウンドオブジェクトを作る
複製してBGMを鳴らす
指定フレームで音量を下げる
252Now_loading...774KB:2007/02/26(月) 23:08:29 ID:VKKanrhv
>>251
サウンドオブジェクトについてIEで検索して調べてみたのですが
いまいちよく分かりません|ω・`)
お手数ですが、どの様に書けばいいのか書いていただけると幸いなのですが…
253247:2007/02/27(火) 02:33:53 ID:/9nNDkam
>>248
レス有難う御座います。

仕事帰りに書店で参考書を調べたところ
argumentsオブジェクトで引数の状況を調べられる事が
分かりました。

>>252
ここに音量の制御について書いてありますよ。
ttp://hakuhin.hp.infoseek.co.jp/main/as/sound.html

254Now_loading...774KB:2007/02/27(火) 18:59:24 ID:9VBuuLs4
質問いいですか?
loadMovieで読み込む画像の大きさを変えることってできませんか?
フォトアルバムを製作中なんですが、最初に全ての画像をサムネイルのように小さく表示したいんです。
よろしくお願いします。
255Now_loading...774KB:2007/02/27(火) 19:17:30 ID:JNhOS6on
>>254
読み込んだ先のMCの_xscale,_yscaleを調整する
256Now_loading...774KB:2007/02/27(火) 19:25:09 ID:9VBuuLs4
>>255
なるほど、読み込んだ先のMCの大きさを読み込む画像の大きさにしておいて、それから縮小するんですね。
ありがとうございます。Flash始めてまだ一週間足らずなもので、助かりました。
257Now_loading...774KB:2007/02/27(火) 21:35:50 ID:9VBuuLs4
連投失礼します。インスタンス名がimage1_mcのMCをクリックしたら、インスタンス名がimage_mcのMCに画像を読み込みたいのですが、以下のようにすると動きません。
_root.image1_mc.onPress = function() {
  _root.image_mc.loadMovie("image/1.jpg");
};
このスクリプトはメインの1フレーム目に書いています。
どこが誤っているのでしょうか?参考書などを見ても全くわかりませんorz
258Now_loading...774KB:2007/02/27(火) 21:56:18 ID:KixdAkVQ
こんな記述方式あったっけ
259Now_loading...774KB:2007/02/27(火) 21:59:27 ID:sIC2IEb6
無名関数か
260Now_loading...774KB:2007/02/27(火) 22:02:45 ID:9VBuuLs4
ttp://oshige.com/flash/note/2005/02/post_16.html
ここにも書いてあるんですが…。何か勘違いしてますかね?
261Now_loading...774KB:2007/02/27(火) 22:48:52 ID:7gcbu7FO
なんで絶対指定なの?
262Now_loading...774KB:2007/02/28(水) 00:32:44 ID:12dDMD7Q
>>257
絶対指定はあかんけど、それで普通に動くと思うけどもな
わからん、エラーログでも書くといいのでわ

まさかプログレッシブjpgというオチちゃうよね・・・
263Now_loading...774KB:2007/02/28(水) 00:52:04 ID:pWFQBIS8
>>262
エラーは出ないんですが、ボタンが押せないんです。
マウスが乗っても指マークにも変わらないし…。
さっきから試行錯誤してますが全然ダメですorz
264Now_loading...774KB:2007/02/28(水) 01:02:09 ID:HIuvl/cs
>>263
ルートのフレーム1にimage1_mcは存在してる?
265Now_loading...774KB:2007/02/28(水) 01:05:08 ID:pWFQBIS8
>>264
はい、createEmptyMovieClipで作りました。
汚いですがソース貼ります。

System.useCodepage = true;
my_lv = new LoadVars();
my_lv.load("setting.txt");
my_lv.onLoad = function() {
number = Number(my_lv.number);
_root.createEmptyMovieClip("image1_mc", 1);
_root.image1_mc._x = 10;
_root.image1_mc._y = 325;
_root.image1_mc._width = 400;
_root.image1_mc._height = 300;
_root.image1_mc.loadMovie("image/1.jpg");
_root.image1_mc._xscale = 20;
_root.image1_mc._yscale = 20;
for (i=2; i<=number; i++) {
instance_name = "image"+i+"_mc";
_root.image1_mc.duplicateMovieClip(instance_name, i);
j = i-1;
eval("_root.image"+i+"_mc")._x = eval("_root.image"+j+"_mc")._x+85;
eval("_root.image"+i+"_mc")._y = 325;
eval("_root.image"+i+"_mc").loadMovie("image/"+i+".jpg");
}
_root.image1_mc.onPress = function() {
_root.image_mc.loadMovie("image/1.jpg");
};
};
266Now_loading...774KB:2007/02/28(水) 01:32:34 ID:HIuvl/cs
>>265
読み込み完了を待たずにonPressを定義していることが原因。
loadMovie()を実行すると、ターゲットMCに定義されたメソッドなどはクリアされてしまう。
この場合MovieClip.loadMovie()を使うのはおすすめしない。
MovieClipLoaderを使って読み込み完了後に関数定義処理を行えば平気。
それから左辺にevalを使うのは推奨されていない。
配列アクセス演算子を使うべし。
更に、一度にforで複数のloadMovie()を実行するのもよろしくない。
しつこいようだがMovieClipLoaderを使う。
267Now_loading...774KB:2007/02/28(水) 01:38:24 ID:pWFQBIS8
>>266
ありがとうございます。
意見を参考に参考書で調べながら頑張ってみます。
268Now_loading...774KB:2007/02/28(水) 01:42:33 ID:QVKReT/D
オススメではないが、とりあえずこのままあまり変えずに行きたいなら・・・
もう一階層createEmptyMovieClipで作ってそっちにloadMovieする手もあるかな。
//読み込むとこ
_root.image1_mc.createEmptyMovieClip("loader", 1);
_root.image1_mc.loader.loadMovie("image/1.jpg");

まぁ、やりたいことがあるのは良いが、基本をしっかり押さえていったほうが良いよ。
269Now_loading...774KB:2007/02/28(水) 02:15:55 ID:u0JHqtDP
>>266>>268
出来ました!!ありがとうございました。
これからも勉強に励みます。
270250:2007/02/28(水) 22:11:29 ID:6zJiJ+nc
>>253様、返事が遅れて申し訳ないのと同時に参考になるサイトをありがとうございます。
そちらのサイトを拝見させてもらい、自分でどうにか試行錯誤しましたがどうにも上手くいきません…。
やり方としては…

複数のBGMが流れる中から音量をいじりたいBGM「A」の識別子を「main」にする
次にBGM「A」を「bgm」と言うMCの中にセットしておく
シーン1まで戻って、レイヤーを作り、そこにアクションを書く

---------------------

so = new Sound(_root.bgm);
so.attachSound("main");
_root.so.start(0,999);

---------------------
これで次に音量を小さくしたいフレームに
---------------------

so.attachSound("main");
_root.so.setVolume( 10 );

---------------------
と記入する。

とこの様にやってみたのですが、これで実際見てみると他のBGMまで音が小さくなってしまいます。
また、別にこの記入が無くってもBGMが勝手に再生される為、根本的に間違っていると思うのですが
何度試行錯誤してもエラーを吐いたり等と先に進めません。
初歩的な質問で大変申し訳ないのですが、何方か解決策をお教えください;
271Now_loading...774KB:2007/03/01(木) 00:33:18 ID:AFdcuq2+
272244:2007/03/01(木) 00:37:34 ID:MP0Qbx0J
>>246
返信遅れましたがレスありがとうございます。
代替文字(\n→@@)だとその代替文字の組み合わせが入力に使えなくなってしまうので
ちょっと避けたいところです。(掲示板の入力的なものを考えていたので)

***.swf?moji=$mの形でSWFに読み込むとどうしても改行がとれないようです。
なので、データをいったんテキストファイルにしてからloadVarsでファイルを読み込むことにしました。
273Now_loading...774KB:2007/03/01(木) 00:51:53 ID:AFdcuq2+
>>272
phpはしらんけどswfに渡すときにURLエンコードされた状態にしとけばいいんじゃない?

hoge.swf?moji=%E6%94%B9%0D%0A%E8%A1%8C

//swf内
my_txt.text = unescape(this.moji);

すでにやっていたらごめんよ。
274Now_loading...774KB:2007/03/01(木) 01:57:50 ID:pbC4kkVk
FLASH8で、動的に埋め込みフォントを設定する方法ってあるでしょうか?
デザイン画面ではフォントを_sansとかにしておいてモードによってフォントを
切り替えたいんですが、埋め込みフォントだとうまくいきません。
別のダイナミックテキストを用意しておいて、そこに埋め込んでますが、そのテキストフィールドでは
正しく表示されるんですが、setNewTextFormatでフォントを設定したところは規定のフォントのままです。
275Now_loading...774KB:2007/03/01(木) 02:53:39 ID:pVWdcRAP
loadMovieについて質問したいのですが、

mother.swfでloadMovieを使ってchild.swfを読み込んだ場合、
child.swfのASでの_rootはmother.swfの_rootに変わってしまいます。

child.swfのASを改変せずにchild.swfの_rootを保つにはどうすれば良いですか?
276Now_loading...774KB:2007/03/01(木) 07:40:28 ID:XzIxkgta
>>274
動的にできないから、埋め込むわけです。やるなら、書いているように使いたいフォント種類分の
テキストフィールドを用意して、それぞれに埋め込むしかない。swfサイズが大きくなるから、
日本語を使う場合はお勧めできない。
>>275
↓_lockrootを使う。
ttp://livedocs.adobe.com/flash/8_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002482.html
277Now_loading...774KB:2007/03/01(木) 15:37:11 ID:uSfyV3Kf
ActionScript2.0で、
javaでいうVectorクラスみたいなリストが使いたいと思ってリファレンス漁ってたんだけど、
結局Arrayクラス使えば大丈夫なのかな。

splice()を使えばvector(リスト)と同じことは実装できるんだけど、
データ構造がリストで扱われてないと、
要素数が膨れ上がったときに値を詰めるのにやけに時間がかかったりしそうな懸念があるんだけど、
ちゃんとリストで扱われてるのかな?
教えてエロイ人。(´・ω・`)
278Now_loading...774KB:2007/03/01(木) 15:53:36 ID:XzIxkgta
>>277
要素数が膨れあがった時の具体的な数値を言わないとわからん。
279Now_loading...774KB:2007/03/01(木) 16:02:37 ID:uSfyV3Kf
>>278
膨れ上がったといってもせいぜい100〜200くらいかな。
280Now_loading...774KB:2007/03/01(木) 17:58:02 ID:7XxfYyY0
>>279
速度に関しては実際に試してみればいいんじゃまいか?

ASのArrayは内部的にはたぶんHashで実装されてるんじゃないかと思う。
配列アクセスが、オブジェクトのメンバーの参照と同じスピードだったし。
281Now_loading...774KB:2007/03/01(木) 18:24:06 ID:uSfyV3Kf
>>280
ハッシュかー。ハッシュだとspliceってどうしてるんだろ…。
そだね。試しに実装してみるよ。
dクス。
282Now_loading...774KB:2007/03/01(木) 19:22:11 ID:FplwnCgx
質問失礼します

当方、flashMX2004を使っています
eval("nantoka"+i) = 3; //iは適当な数字
このようにeval()で繋げたあと変数に代入したいのですが
>代入演算子の左側は、変数またはプロパティでなければなりません。
とエラーが出てきます

試しに以下のようにsetスクリプトで試してみたのですが未定義と出てしまい、やはりうまくいっていません
i=5
set(eval("nantoka"+i), 2);
trace(eval("nantoka"+i));

今までは後ろに_xなどをつけて操作をしていたのでこんなエラーがあるとは初めて知りました
なにか代用策みたいなものはあるのでしょうか
素人な質問だと思いますが、ご教授お願いします
283Now_loading...774KB:2007/03/01(木) 19:26:12 ID:uSfyV3Kf
>>282
例えば、_rootにあるhogeMC0〜hogeMC5とかにアクセスしたいとすれば、

hoge = "nantoka"+i;
_root[hoge]._x=なんたらでいける。

勿論直接、_root["nantoka"+i].〜でも大丈夫。
284Now_loading...774KB:2007/03/01(木) 19:27:38 ID:uSfyV3Kf
ミス。(´・ω・`)

hoge="hogeMC"+i;と、

_root["hogeMC"+i].〜

の間違えね。すまん。
285282:2007/03/01(木) 19:40:47 ID:FplwnCgx
i=5;
_root["nantoka" + i] = 4;
trace(_root["nantoka" + i])

で無事トレースすることが出来ました
ありがとうございます!
286275:2007/03/01(木) 21:43:38 ID:pVWdcRAP
>>276
サンクス
後で試してみます
287272:2007/03/02(金) 00:07:11 ID:S7oTIYgO
>>273
レスありがとうございます。
hoge.swf?moji=%E6%94%B9%0D%0A%E8%A1%8C
//swf内
my_txt.text = unescape(this.moji);
試してみたのですが、うまくURLエンコード部分がうまくとれません。
どうやらURLエンコード方式を読み込もうとするとFLASHの方で勝手に変な?デコードをしてしまうようです。
(%E6%94%B9%0D%0A%E8%A1%8C のような形ではなく壊れた文字列になってFLASHに取り込まれます)
288272:2007/03/02(金) 01:11:04 ID:S7oTIYgO
で、調べてみたところ_urlを使うのが良いらしくて
文字列として取った"**/**/hoge.swf?moji=%E6%94%B9%0D%0A%E8%A1%8C"を処理するやり方です。(←URLエンコードはUTF-8に変換済み)
var moji:Array = (_root._url).split("=");
moji = moji[1].split("%0A"); // 改行x2を回避する処理
var moji0:String = moji.join("");
this.s1.text = unescape(moji0);
でできました\(^o^)/
289Now_loading...774KB:2007/03/02(金) 10:37:06 ID:nKcKRNuN
FlashMXでベジェ曲線のポイントをスクリプトで操作することは可能でしょうか?
また、マニュアルでいうと、どの分野に解説されていることでしょうか?
290Now_loading...774KB:2007/03/02(金) 11:31:14 ID:CISwML4N
描画メソッド
291Now_loading...774KB:2007/03/02(金) 11:51:32 ID:upPz6jee
新たに曲線を描くならcurveTo
すでに描かれてる曲線を制御する方法はない
292Now_loading...774KB:2007/03/02(金) 12:18:43 ID:nKcKRNuN
>>290-291
さんくすこです
293Now_loading...774KB:2007/03/02(金) 19:07:03 ID:3zP0ohx3
MX2004のSharedObjectについて質問でつ

function dataSave(){//セーブ処理のユーザ定義関数
var SD=SharedObject.getLocal("dataName","/");
SD.data.dataX=charX;
SD.data.dataY=charY;
.
.
SD.flush();
delete SD;//オブジェクト消去(アクセス不可に)
}
このように画面を閉じた時や意図しない所で自動でセーブされないように処理ごとに
オブジェクトを消去してまつ セーブやロード時にonStatus ハンドラでエラーを検出したい場合は
どうすればいいの? オブジェクトを消去したら無理?
onStatus ハンドラについて詳しく解説されてるサイトも教えて先生!
294Now_loading...774KB:2007/03/02(金) 19:20:16 ID:CISwML4N
>>293
SOの値自体ををプログラムで使用しなければ何も問題ないのでは?
普通はセーブするときだけ転送してflushかけるけどな。
295293:2007/03/02(金) 22:48:38 ID:t+5jEzdO
レスありがとう先生
なるほど 転送てのは一時的な変数に入れて処理って事でつね
296Now_loading...774KB:2007/03/03(土) 11:40:41 ID:9fNcCXjp
いま、サンプルを見ながらスクリプトの勉強をしていますが、
function メソッド名(url:String) : Void{
や、
function メソッド名() : Void{
といったVoidクラスが付けられたものが出てきましたが、
これについて解説がされていないので、Voidを付けることによって
どうなるのかが分かりません。ヘルプの意味もよく分かりません。

また、: Voidを外しても普通に動作し、見た目に違いはありません。
別に記述しなくても良いものなのでしょうか?
297Now_loading...774KB:2007/03/03(土) 12:09:48 ID:XrQGPzqF
>>296
その関数にreturn "AA";を記述して実行してみそ
298296:2007/03/03(土) 12:42:55 ID:9fNcCXjp
>>297さん
ありがとうございます。
Voidでは戻り値(return)は使えません。って出ました。
戻り値を使用しない場合でも結局、記述してもしなくても別にいいのでしょうか?
Voidを”記述しない”ことによって何か不具合でもあるのでしょうか?
299Now_loading...774KB:2007/03/03(土) 13:06:26 ID:XrQGPzqF
>>298
ASでは無いよ。
なんで、型宣言するかどうか考えてみそ。
バグをコンパイラが見つけ出してくれるんだ、こんな便利な手段を使わない手はないと思うぞ。
300296:2007/03/03(土) 13:28:48 ID:9fNcCXjp
つまり、Voidの活用方法は、
スクリプトがきちんと実行されているかなどの
バグ探しなどに使うもの???

まだ自分には使いこなせない感じです。。。
301Now_loading...774KB:2007/03/03(土) 15:18:26 ID:4DMY/THh
じゃあ型宣言しなきゃいい
302296:2007/03/03(土) 16:16:02 ID:9fNcCXjp
>>Now_loading...774KBさん
ありがとうございました。
Now_loading...774KBさんが言っている意味がしっかり理解できるようになるまで
頑張ります。
303Now_loading...774KB:2007/03/03(土) 17:11:41 ID:RkjYkRpS
変数に文字列って最大何文字くらい入れることが出来るのかな?
304Now_loading...774KB:2007/03/03(土) 23:33:04 ID:/+EUnXTq
ASをまじめに勉強しようとしています。
AS3を少ない資料で最初から勉強するのか、
とりあえず、AS2をやっといて、後々3に移行するのでは
今の状況だと、どちらがいいですか?
305Now_loading...774KB:2007/03/03(土) 23:55:47 ID:4DMY/THh
>>304
AS2
306Now_loading...774KB:2007/03/04(日) 01:55:07 ID:vyDnR3Zj
>>304
AS3
AS3はぜんぜん資料少なくないよ。オンラインヘルプで十分。


なーんてな
307Now_loading...774KB:2007/03/04(日) 03:22:40 ID:Wo/lCNf5
AS3は実行速度が早いらしい。
実務的な処理とか複雑なゲームとかにはいいかもしれない。
でも普通にビジュアリーなフラッシュ的なものを目指すならAS2で十分。
処理が早くなってもAPIな画像表示がネックになるからね。
308Now_loading...774KB:2007/03/04(日) 10:02:56 ID:vyDnR3Zj
うちのサイトではAS3に対応するプレイヤー(9以降)を使用しているユーザーが6割程度だ。
もうAS3で組んだコンテンツを出してもいい頃合かなと思っている。

ただWii向けとかPSP、ケータイ向けなども考えるとAS2の開発も押さえておきたいね。
309304:2007/03/04(日) 19:18:42 ID:48Ups/3N
みなさんありがとうございます

AS2とAS3は今後は共存していくのですかね。
AS2は携帯などの軽量VM用の開発として、
AS3はウィジェットみたいなのを作る、
中規模デスクトップアプリとして。

Apolloにも興味があるので、なるべくAS3を
習得しようかなと思ってきました。
310Now_loading...774KB:2007/03/04(日) 19:33:03 ID:Wo/lCNf5
>>288
超補足。。。
FLASHはGET方式ではUTF-8のみサポートなので
UTF-8をURLエンコードしたものならそのまま読めるます。unescape(***)はいらない子でした・・・。
311Now_loading...774KB:2007/03/04(日) 22:38:49 ID:OAhwLHan
質問です。
onEnterFrameイベントハンドラメソッドを実行しているMCにloadClipで画像を読み込むとonEnterFrameが止まってしまいます。
これを止まらないようにするにはどうすればよいのでしょうか。
具体的には、下記のソースが所望の動作をしません。
これはimage1_mcをクリックすると、image_mcの画像がフェードアウトし、その後image_mcの画像がimage/1.jpgに切り替わり、フェードインするというものです。
しかし、フェードアウトまでは上手くいくのですが、その後の挙動がおかしいです。
trace文を入れて原因を探ったところ、上記のことが原因とわかりました。
(下記のソースを実行すると、false、false、false…、と出力されて、trueと一回出力された後、traceによる出力が止まる。)
どうかご教授お願いします。長文失礼しました。
image1_mc.onPress = function() {
flag = false;
flag2 = false;
image_mc.onEnterFrame = function() {
trace(flag);
if (flag2 == false) {
if (flag == false) {
if (this._alpha<50) {
flag = true;
} else {
this._alpha -= 5;
}
} else {
my_mcl.loadClip("image/1.jpg", image_mc);
flag2 = true;
}
} else {
if (this._alpha>=100) {
this._alpha = 100;
} else {
this._alpha += 5;
}}};};
312Now_loading...774KB:2007/03/04(日) 22:51:01 ID:eVaoxhNp
>>311
>loadClip
loadMovie?
loadMovieで画像を読み込み先のmcと画像が置き換わる。
onEnterFrame書いてるmcの中にからのmcを用意してそこに読み込む。
313312:2007/03/04(日) 22:52:51 ID:eVaoxhNp
> >loadClip
> loadMovie?
ごめん。下のAS見てなかったわ。
多分loadClipでも同じだから読み込み用のmcは別に作った方がいい。
314Now_loading...774KB:2007/03/04(日) 22:53:56 ID:8GcsZNGW
MovieClipLoaderの話だろ
315Now_loading...774KB:2007/03/04(日) 22:58:16 ID:OAhwLHan
>>313
要するに、image_mcより上に表示される真っ白なMCを用意して、それの_alphaを変化させて擬似的にフェードインアウトをしろということですか?
ちょっとやってみます。ありがとうございました。
316Now_loading...774KB:2007/03/04(日) 23:16:47 ID:OAhwLHan
>>315の方法で上手くいきました!
皆様ありがとうございました。
317Now_loading...774KB:2007/03/05(月) 13:03:42 ID:I/Blgxtx
実行文が1行のif構文で中括弧省略するやつ死ね

スクリプト精査する人の気持ちを考えろ

余計な手間かけさせんな
318Now_loading...774KB:2007/03/05(月) 13:34:58 ID:/AfLEXm3
>>317
ごめん
319Now_loading...774KB:2007/03/05(月) 13:37:46 ID:/NU0KH0E
なんか酷いコードにでもあたってるのかい?

中括弧省略で訳判らなくしてるコードを見た事がない訳じゃないが、
インデントが適切なら混乱せんけどな。
むしろ一覧性上がる場合だってある。省略できる仕様自体に罪はなかろう

仕事でそうコーディングポリシー決めてんのに違反してるっていうなら、反論の余地はないだろうけどな。

つかこれはマ板の話題だな
320Now_loading...774KB:2007/03/05(月) 14:58:27 ID:WjrWBy/p
プログラムの世界に
VBから入った人間がよく中括弧抜きのif文を書く
Cから入った人間は、構文に{}つける安心感を知ってる
321Now_loading...774KB:2007/03/05(月) 17:34:07 ID:3kl0JBfE
Cから入ったのに中括弧抜いてしまう俺は><
322Now_loading...774KB:2007/03/05(月) 18:07:12 ID:/NU0KH0E
むしろ今switch文内のインデントで揉めてましたw
caseとかbreak有無によって、インデントの仕方が仲間内四人で微妙に全員違ってた

いや、別にどうでも致命的じゃないけど
323Now_loading...774KB:2007/03/05(月) 18:32:47 ID:+m+B2uEI
たしかにswitchのインデントって微妙だよなw
324Now_loading...774KB:2007/03/05(月) 19:10:28 ID:p2DdtO2x
うぜー
325Now_loading...774KB:2007/03/05(月) 19:33:15 ID:QA1Pm96+
switch(i)
{
[tab] case 0:
[tab] [tab] 関数や構文
[tab] [tab] [tab] [tab] 実行文
[tab] [tab] [tab] 二重if構文など
[tab] [tab] [tab] [tab] 実行文
[tab] break;
//-------------------case 0 end.
[tab] case 1:
....
....

}
326Now_loading...774KB:2007/03/05(月) 19:43:05 ID:p2DdtO2x
こういうキチガイが寄ってくるからやなんだよ
余所でやれようぜー
327Now_loading...774KB:2007/03/05(月) 20:03:05 ID:pjsIT/2x
switch文は使わないよ派
328Now_loading...774KB:2007/03/05(月) 20:24:36 ID:/AfLEXm3
質問させてください。
AS3.0というかFlex2 SDKで、
http://〜/〜.swf?hoge=1
みたいに、htmlから変数と値を渡すことって出来るのでしょうか。
同じFLASHを使いまわして、ページごとにちょっとだけ違った挙動をさせたいのですが。
329Now_loading...774KB:2007/03/05(月) 20:30:07 ID:pjsIT/2x
>>328
_root.hogeじゃないの?
330Now_loading...774KB:2007/03/05(月) 22:17:10 ID:8notW38b
質問失礼します。
flash8Pro/as2.0にて

System.useCodepage = true;
my_lv = new LoadVars();
my_lv.onLoad = function() {
a1 = Number(my_lv.a1);
trace(my_lv.a1);
};
my_lv.load("data.txt");

というスクリプトで外部テキストファイルからデータを
読み込むテストをしています。
swfでは読み込み可能なのですが
同じflaファイルから書き出したexeファイルでは
一切読み込んでくれません。これは仕様なのでしょうか?

よろしくお願いします。
331Now_loading...774KB:2007/03/05(月) 22:26:56 ID:8notW38b
補足させてもらいますと
テキストファイルはUTF-8で
内容は

a1=10

というシンプルなものです。
332Now_loading...774KB:2007/03/05(月) 23:34:06 ID:8pI8dfcU
>>330
このSWFってプレビューのこと?
そもそも、開発環境と独立したEXE形式で読み込んだかどうかの判定は
どうしてるの?
333Now_loading...774KB:2007/03/05(月) 23:39:26 ID:XWnjukxr
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7)

配列のデータとして、
moji[0] = "あ",moji[1] = "い",moji[2] = "う",・・・・ ,moji[9] = "5"
(moji:あ,い,う,え,お,1,2,3,4,5)
があるとき、これらをASを使って番号を指定して 1 → 6 ("い" → "2")
8 → 3 ("4" → "え")と順番を入れ替えて表示させるにはどうしたら
いいでしょうか?

本やヘルプを見ましたが分かりません。よろしく願います。
334Now_loading...774KB:2007/03/05(月) 23:49:29 ID:pjsIT/2x
>>333
入れ替え元のデータはどこへ行かせる?
335Now_loading...774KB:2007/03/06(火) 00:00:01 ID:YY0c3cpl
>>333
階層に2バイト文字が含まれていると読み込みに失敗するというバグが8で再発したとかいう話を聞いたような。
違う話だったかもしれんので間違いだったらすまん。
一応、そういう可能性はないすか?
336333:2007/03/06(火) 00:07:23 ID:sRs2E10D
早速レスありがとうございます。

入れ替えたデータは最終的にはテキストフィールドに出力しますが、
その前にtrace()でチェックします。
最初、switch ... case で場合分けをしようと思いましたが、事ある
ごとにこの記述を変更しないといけないので(汎用性がないので)止めました。

>>335さんは330さんへの答えでは?
337Now_loading...774KB:2007/03/06(火) 00:38:39 ID:YY0c3cpl
指摘サンクス。確かに間違った。
>>335は、>>330あてっす。

ついでに
>>336
spliceやsliceを使えば配列要素の入れ替え自体はできるはずだが、詰まっているのはどこ?
338Now_loading...774KB:2007/03/06(火) 01:34:36 ID:EdJmYxr4
>>333
function change(a,b){
 var tmp:String = moji[b];
 moji[b] = moji[a];
 moji[a] = tmp;
}
change(1,6);
change(8,3);
こゆこと?

}
339333:2007/03/06(火) 02:17:08 ID:SuPxzWEj
>>337
今、別の本を見たらspliceによる順番換えの方法が書いてありました。

>>338
関数呼び出しによる処理ですね。うーん、今回は先ずspliceの方を使って
みます。アドバイスありがとうございました。
340333:2007/03/06(火) 04:26:11 ID:yai8S8kU
spliceによる再配置できました。

moji = new Array();

on (press) {
str1 = "あ,い,う,え,お,1,2,3,4,5";
a = 1;
b = 8;
}
on (release) {
moji = str1.split(",");
c1 = moji[6];
c2 = moji[3];
moji.splice(a, 1, c1);
moji.splice(b, 1, c2);
trace("再配置= "+moji.join());
}
341330:2007/03/06(火) 08:08:00 ID:NW4U0fSt
レス遅れまして申し訳ありません。
>332
簡単なテキストフィールドで表示させてました。
>335
2バイト文字…確かにかなり上の階層に含まれてました。
それでフォルダを移し変えると動作しました。

ということでスッキリしました。
おかげてクライアントさんに余計な注文しないですみました。
お答えいただいた方々感謝です。


342Now_loading...774KB:2007/03/07(水) 07:39:53 ID:Ve7E4F2o
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7)

傾いたMCの幅の維持で質問です。

SWF内で作成した配列データ(tmpData[n])を元に、2本の棒の長さが変化する
ムービーを作りました(http://swfup.info/view.php/6344.swf 操作は、Data→
(Speed)→Start) 
 
このASでは、setInterval()で一定時間(Speed)毎に呼び出される関数
barExpander() で
bar1._height = tmpData[n]*10; //長さはtmpDataの10倍
bar2._rotation = 60; //60度傾ける
bar2._height = tmpData[n]*10;//同じく10倍

と、棒(bar1, bar2)のうち右側の棒(bar2)を60度傾けて伸縮させるようにしました。
しかしながら、実行したムービーでは、長辺方向は確かに伸縮していますが、短辺
方向も伸縮してしまいます。

短辺の長さは固定させて、長辺のみ伸縮させるにはどうしたらいいでしょうか?
343Now_loading...774KB:2007/03/07(水) 07:58:15 ID:cCzZUYZx
343
344Now_loading...774KB:2007/03/07(水) 11:02:24 ID:KP3rvbzM
>>342
_heightじゃなく_yscaleを使え
345Now_loading...774KB:2007/03/07(水) 15:16:22 ID:kVVJ7xE9
hoge.html?value=1
のようにURLからswfに変数を送りたいので、
javascriptでdocument.write('<object
のようにタグを書き出しているのですがswfが丸ごと表示されず
右クリックすると ムービーをロードできません と表示されます。
ググってみたところjavascriptを外部ファイルとして読み込むとうまくいくような
ことが書いてあったので、ためしたのですがうまくいきません。
javascriptを使わないときちんと表示されるのですが変数が送れなくなります
何かいい方法は無いでしょうか?お願いします。
346Now_loading...774KB:2007/03/07(水) 15:26:21 ID:vrn1XO/z
javascriptで作った文字列が間違ってる
347Now_loading...774KB:2007/03/07(水) 15:34:47 ID:kVVJ7xE9
>>346
ありがとうございます。
それがローカルだと表示されるんです。
348Now_loading...774KB:2007/03/07(水) 15:51:16 ID:gd4i4GhH
LoadVarsでtxtを読んで、その値をあらかじめ作ってある2次元配列の対応したところに入れる
ということをしたいんですがどう書いたらいいか分かりません。
お願いします。

test.txtの内容
a[0][0]=1&a[0][1]=2&a[1][0]=2&a[1][1]=2

fla側
a = [[0,0],[0,0]];
349342:2007/03/07(水) 17:26:45 ID:059/vH15
_yscaleで出来ました。
350345:2007/03/07(水) 17:27:23 ID:kVVJ7xE9
SetVariableを使ってどうにか変数を渡す事に成功しました。
ありがとうございました。
351Now_loading...774KB:2007/03/07(水) 22:11:28 ID:N4InGFX6
メインタイムラインに3つのシーン(ラベルでscene1〜3と区別)があり、
シーン1(scene1)に出てくるボタン(buttonA)を押すと
シーン1が最後まで再生された後シーン3(scene3)に飛び、
押さないとシーン1が最後まで再生された後シーン2(scene2)に飛ぶというように動かしたいのです


ただのgotoでは、ボタンが押された瞬間にシーン3に飛んでしまうのですが、
どのように記述すればよいのでしょうか?
なるべくメインタイムラインに記述という形をとりたいのです

よろしくお願いします
352Now_loading...774KB:2007/03/07(水) 22:59:12 ID:im3WgJm0
>>351

playSelect = false;;

buttonA.onRelease = function(){
playSelect = true;
}

if(playSelect == true){
sceneMC.gotoAndPlay("scene3");
}else{
sceneMC.gotoAndPlay("scene2");
}

/*
sceneMC内にアニメーションを作成する。
メインタイムラインに直接作らない。メインタイムラインは1フレームのみ
sceneMC内にbuttonAをいれた場合buttonAのパスが変わる。
*/
353Now_loading...774KB:2007/03/08(木) 17:07:03 ID:bpKtgxq0
AS2.0で
外部xmlから2バイト文字を読み込み
テキストフィールドに表示させたところ□□□と文字化けして表示されました。
文字化けせずに表示させる方法を教えてください。
宜しくお願いします。
354Now_loading...774KB:2007/03/08(木) 17:18:46 ID:bpKtgxq0
AS2.0で
外部xmlから2バイト文字を読み込み
テキストフィールドに表示させたところ□□□と文字化けして表示されました。
文字化けせずに表示させる方法を教えてください。
宜しくお願いします。
355Now_loading...774KB:2007/03/08(木) 17:49:18 ID:hqsod0Ma
外部xmlの文字コードを確認
356Now_loading...774KB:2007/03/08(木) 17:56:49 ID:bpKtgxq0
>>355
コードをUTF-8にしたら上手くいきました。有難う御座います。
357Now_loading...774KB:2007/03/08(木) 20:10:05 ID:8NBMy8Gt
http://www.au.kddi.com/swf/index_promotion.swf

こちらのメニューの折りたたみ式のフラッシュメニューを
作りたいのですが、それにあたって、サンプルとなるフリーサンプルなど
ありましたら、お教えください。
宜しくお願い致します。
358Now_loading...774KB:2007/03/08(木) 21:05:45 ID:TAcwGzWk
ロールオーバーと状態管理が把握できてりゃ、あとは配置と動きのセンスですね
とりあえずそういう.flaは寡聞にして知らずスマソ
てことでヘルプをどうぞ
359Now_loading...774KB:2007/03/08(木) 21:19:19 ID:QwHU9K6u
ユーザとしては、Flashで作ったナビゲーションとか
とかはイライラする事が多い。
360Now_loading...774KB:2007/03/09(金) 03:42:02 ID:Qltp+459
配列に500個ぐらいデータを入れてるんですが
全く同じデータが見つかったら消して配列の順番を詰める、
という処理をしたいんですがですがこんなことは可能ですか?
例をいただけるとありがたいです。
361Now_loading...774KB:2007/03/09(金) 06:08:01 ID:5SJp9aIs
>>360
(安易な発想で)for文で同じデータを探し、splice()で最後に移動させ、
pop()で削る。これを残った要素分繰り返す。
362Now_loading...774KB:2007/03/09(金) 06:16:06 ID:mtIA5bfE
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7)

sort(),reverse()を使って2次元配列(markDepth[n1][n2] =100×3個)の
ランダムな数値をn1毎に降順に並べ換えるASを書いています。 例として
n1=0 のとき、
 -2.26935119368136         1.13388068042696
 1.13388068042696     を    -0.33435720950365
 -0.334357209503651        -2.26935119368136

としたく思っています。 このための関数changeDepth()を下のようにしましたが
必ずしもtraceが降順になりません("<<< else"が出ます)。
function changeDepth() {
markDepth[n1].sort(); //最初昇順にする
markDepth[n1].reverse(); //反転して降順にする
for (n2=0; n2<3; n2++) {
trace("id, Depth= "+n2+", "+markDepth[n1][n2]);
}
if (markDepth[n1][0]<markDepth[n1][1] && markDepth[n1][1]<markDepth[n1][2]) {
trace("--- 昇順 ---"); //確認用
} else if (markDepth[n1][0]>markDepth[n1][1] && markDepth[n1][1]>markDepth[n1][2]) {
trace("--- 降順 ---"); //確認用
} else {
trace("<<< else"); //確認用
}
n1++;

}

どうしたらいいでしょうか? 最終的には、3つのMC(mark0〜mark2)の深度を
markDepth[n1][n2]に応じて重ね順を変えたいと思います。
363362:2007/03/09(金) 06:19:26 ID:mtIA5bfE
(上の補足)traceで出た数値(100個全部は見ていない。途中まで)を見る
限り、降順にはなっているのですが・・・・
364Now_loading...774KB:2007/03/09(金) 10:29:30 ID:4/RU8E+H
丸め誤差とかのせいじゃないの?と、テキトーにこたえてみる。
365Now_loading...774KB:2007/03/09(金) 15:22:19 ID:JKLuKd+b
n2をsortしてないのでは
366Now_loading...774KB:2007/03/09(金) 15:30:49 ID:1PPdbTvq
>>360
二次元配列作って、一次目にデータ、二次目にtrueとか入れてけば重複分は勝手に消えないかな。
367Now_loading...774KB:2007/03/09(金) 15:41:52 ID:JKLuKd+b
n1の初期値
368362:2007/03/09(金) 16:45:05 ID:jB1lOFIb
>>364-367
ありがとうございます。とりあえず10組だけtraceしましたが、この分に
限っては正しくても(降順でも)確認のif文で"<<< else"や昇順になった
り、sort()→reverse()が作用していないものもありました。

はっきり言ってバラバラです(あるいは気まぐれ)。他に良い方法はありませんか?
369Now_loading...774KB:2007/03/09(金) 17:13:52 ID:JKLuKd+b
>>368
ソートオプションが数値でないとかじゃね
370Now_loading...774KB:2007/03/10(土) 00:00:43 ID:Of4aW7SR
var fTxt_fmt = new TextFormat();

fTxt_fmt.size=30;

this.createTextField("labelTxt",100,x,y, width, height);

labelTxt.setTextFormat(fTxt_fmt);
labelTxt.text = "ああああ";

delete fTxt_fmt;


setTextFormatが反映されません。
解決法をまたは他にテキストフィールドのサイズを変更する
方法を教えてください。お願いします。
371362&368:2007/03/10(土) 02:24:16 ID:LZwZIJ02
>>369
ありがとうございます。原因が分かりました。降順でソートするための比較
関数が無かったため、実質『文字列』として比較され、このような症状が出
ていました。

訂正したASは
function changeDepth() {
function valSort(dA, dB) { //比較関数
return dB-dA; //これが正なら降順
}
markDepth[n1].sort(valSort);
//markDepth[n1].reverse(); //反転させる必要は無い
for (n2=0; n2<3; n2++) {
trace("id, Depth= "+n2+", "+markDepth[n1][n2]);
txt2 = txt2+n2+", "+markDepth[n1][n2]+"\n";
}
if (markDepth[n1][0]>markDepth[n1][1] && markDepth[n1][1]>markDepth[n1][2]) {
trace("--- 降順 ---");
txt2 = txt2+"--- 降順 ---"+"\n";
//確認用
}
  --以下同じ--

出来たSWFは http://swfup.info/view.php/6378.swf にあります。
左欄にランダムな3個1組の数値が現れ、右欄がソートされたものです。
372Now_loading...774KB:2007/03/10(土) 19:00:20 ID:ywoXRM+6
>>370
なんでdeleteしてるのかわからん
373Now_loading...774KB:2007/03/10(土) 19:40:22 ID:4cqOwna5
winXP
flash MX2004
です。
現在、画像スライドビュアーのような物を作っていまして
方向キーにて「進む」「戻る」という操作をさせようと思っています。
画像ごとにラベルで仕切り、ステージ外に置いた「操作用_mc」に
onClipEvent (enterFrame) {
if (Key.isDown(Key.RIGHT)) {
_root.gotoAndPlay("_root.ラベル2");
}
if (Key.isDown(Key.LEFT)) {
_root.gotoAndPlay("_root.ラベル8");
}
と書く事で、画像のスライドはできたのですが
キーを押すと、物凄い勢いで画像が入れ替わり、
希望の画像で止める事すら難しい有様となってしまいました。

現在の「操作用_mc」を入れ子にした「親操作用_mc」を作り
タイムラインを伸ばした先に「操作用_mc」を配置して、
遅延処理をさせようとも考えましたが
遅延処理をAsにて実現できる方法はありますでしょうか?

お教えいただければ幸いです
374Now_loading...774KB:2007/03/10(土) 21:46:47 ID:ywoXRM+6
gotoAndStopなんじゃね
375Now_loading...774KB:2007/03/10(土) 23:43:42 ID:qc2k7pbU
>>373
>遅延処理をAsにて実現できる方法
setInterval
376Now_loading...774KB:2007/03/11(日) 16:53:08 ID:McbbX/ZK
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)

2次元配列の列のソートで質問です。

100行5列のデータ(data1)があり、この列ごとに降順ソートしようとしています。
この配列は、data1 = new Array(); → data1[gyou] = new Array(); のように
行を先に定義しているので、行毎のソート(列の数値でソート)なら単純に
data1.sort(降順を定義する関数)

で出来るのですが、行を飛ばして列でソートする方法が分かりません。
よろしく願います。
377Now_loading...774KB:2007/03/11(日) 16:55:41 ID:YvA9wbs/
>>376
列ごとに新しい配列にコピーしてからソートして書き戻したら?
378Now_loading...774KB:2007/03/11(日) 19:07:59 ID:uWcnx/n0
>>376
具体的にどういう事でというのが解らないから何とも。
比較関数と複合キーでどうにでもなると思うけど。
379376:2007/03/11(日) 19:43:42 ID:Z7IJM+nP
>>377
すみません。割愛していましたが、その方法も頭によぎりました。
ただ、もっとスマートな方法はないかと思い聞きました。

>>378
複合キーとは何ですか? Googleとヘルプを見ましたが分かりませんでした。


一応、377さんの方法でやってみます。
380Now_loading...774KB:2007/03/11(日) 19:51:54 ID:uWcnx/n0
>>379
例えば、国語、算数、理科、社会の点数をソートするときに
算数、理科、国語、社会の順やら、理科、算数、社会、国語の順で表示したいとかの時に作る
キーを複合キーっていうけど。データベース、外部キー、比較関数なんかでぐぐるといいかも。
381376&379:2007/03/11(日) 21:24:19 ID:Z7IJM+nP
>>380
ありがとうございます。
377さんの方法で成功しました。
382Now_loading...774KB:2007/03/11(日) 21:34:59 ID:9JyC5tE9
フレームアクションで、onClipEvent(enterFrame)のような、
例えそのフレームがstop()していたとしてもイベントを繰り返し
発生し続けるにはどうすればいいんですか?
383Now_loading...774KB:2007/03/11(日) 21:47:37 ID:IzebmnQ/
>>382
_root.onEnterFrame=function(){}

_rootじゃ無くてもMCなら何でもOK。
384Now_loading...774KB:2007/03/11(日) 22:27:11 ID:9JyC5tE9
>>383
ありがとうございます。
解決しました。
385Now_loading...774KB:2007/03/11(日) 23:00:29 ID:NCHHBLXz
すごく疑問に思って食事も喉を通らないのですが・・・

(例)
this.onEnterFrame = function() {
処理;
};

などと関数を使う場合の最後のブラケットをセミコロン';'で括って'};'と書いてある
記述も見かけるのですが、この場合にセミコロン ';' を付けることにはどんな意味が
あるのでしょうか?
386Now_loading...774KB:2007/03/11(日) 23:40:39 ID:M26BuoaB
>>385
代入する処理の一文だから。
387Now_loading...774KB:2007/03/12(月) 00:24:13 ID:pgySbD3t
>>386
ありがとうございます。
思っているとおりで納得&安心しました。
セミコロンが無くてもエラーとはならないのですが、文法的にはやはり書くべき
なのですね。

念のためお聞きしたいのですが、以下はネット上の他人様の書いたものです。

function ArmRotationLeft(move_mc){
 //イベントの動作を定義している
 move_mc.onEnterFrame = function() {
  //角度は「度」で指定し、時計回りの方向が「正」である。
  //つまり、これは1度ずつ反時計回りをしている。
  move_mc._rotation -= 1;
 }
}


この例では、
 move_mc.onEnterFrame = function() {
に対して }; とセミコロンで括っていないのは厳密には文法違反という解釈で
よろしいでしょうか?
388Now_loading...774KB:2007/03/12(月) 00:39:15 ID:mr3dxv7w
>>387
続かないことが明確な文末と{の後には、セミコロンが自動挿入されるから
文法違反じゃないよ。

そういうことが気になるなら、ECMA-262の仕様書を読みましょう。
ttp://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf
389Now_loading...774KB:2007/03/12(月) 01:29:16 ID:pgySbD3t
>>388
たびたびありがとうございます。
初めて「自動フォーマット」って機能を使って確認してみたら確かに自動挿入
されました。
これで喉に支えていたものがすっきりしたので安心して食事が出来ます。

仕様書のほうも一度目を通して勉強してみます。
心から感謝いたします!
390Now_loading...774KB:2007/03/12(月) 02:11:23 ID:Pddig4Jm
>>380
質問者は多分列ごとに並べ替えをしたかったんだろうな。

3 4 5 6
1 2 7 8
2 3 2 1

1 2 2 1
2 3 5 6
3 4 7 8

みたいな感じで。
列の状態で行を並べ替えるなら378でいってるとおりだとおも
391Now_loading...774KB:2007/03/12(月) 14:28:48 ID:/BBUgz7Z
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)

ローカル座標への変換で質問です。

_root上に描画用MC(stage1)があり、ここに2つのMC(ball1, ball2)をattachMovie()
を置き、これらを線で結ぼうとしていますが線が現れません。
試した手順は以下の通りです。まずボタンアクションで
newMark = "ball"+id1+"c"; //新しい名前。id1は1と2。
this.stage1.globalToLocal(prop); //propでstage1内の座標を指示
this.stage1.attachMovie("ball"+id1, newMark, id1, prop); //各深度はid1
trace("ball= "+this.stage1.newMark._x+", "+this.stage1.newMark._y); //←←←座標確認

では、stage1に2個のボールが現れましたが、線の描画で
this.onEnterFrame = function() {
this.stage1.clear(); //前の描画を消す
this.stage1.lineStyle(5, 0x666666, 50); //太さを5pt、色を赤、透明度(アルファ)値を50に設定
this.stage1.moveTo(this.stage1.ball1c._x, this.stage1.ball1c._y); //始点
this.stage1.lineTo(this.stage1.ball2c._x, this.stage1.ball2c._y); //線を描く
};

では線が現れません。どうしたらいいでしょうか?
また、『←←←』で書いた座標確認には何も現れません。この点もご指摘願います。



>>390
そうです。
392Now_loading...774KB:2007/03/12(月) 15:15:52 ID:0n9g95kO
>>391
newMarkは文字列で、MCインスタンスじゃないから_xプロパティなんて無いとおも。
赤色はFF0000なのではないかな。
393Now_loading...774KB:2007/03/12(月) 15:21:19 ID:jUYUZ+YP
>>391
this.stage1[newMark]._x
ではどうだろうか?
394Now_loading...774KB:2007/03/12(月) 15:40:04 ID:2xErCeE9
複数のボタンを次のように動かしたいと考えています。

A ボタン共通の動き:マウスオーバーするとボタンの背景が同じ光り方をする。
B ボタン個々の動き:マウスオーバーするとオーバーしたボタンによって別の
アクションを行う(特定のエリアに指定した画像を表示する)。

実際に行った設定は次のとおりです。

1:シンボルbtn_bgを作成し、シンボル内の第1フレームアクションで光るアクションを設定
this.onRollOver = function() {};

2:メインのタイムライン上に複数個btn_bgを配置し、
それぞれにbtn1_mc 、btn2_mc、btn3_mc …… とインスタンス名を与え、
第1フレームアクションで個々の動作(画像表示)を設定

_root.btn1_mc.onRollOver = function() {};
_root.btn2_mc.onRollOver = function() {};
_root.btn3_mc.onRollOver = function() {};


実際にマウスオーバーすると、ボタンは光るのですが、
B(個々のアクション)が実行されません。
インスタンスのスクリプトをonRolloutなどに変更するときちんと動きます。
シンボルとそのインスタンスの両方にonRollOverを設定しているのがいけないのでしょうか?
そもそも他の実現方法があるのでしょうか?
みなさま、ご助言よろしくお願いいたします。
395391:2007/03/12(月) 16:07:10 ID:/BBUgz7Z
>>392-393
どうもです。色の設定は前のASを流用していたため、灰色のままでした。FF0000が
正しいです。座標の確認に関しては、this.stage1[newMark]._x を使って
trace("ball, id1= "+this.stage1[newMark]._x+", "+this.stage1[newMark]._y+", "+id1);

で出来ました。しかし、線の方は、
this.stage1.moveTo(this.stage1[ball1c]._x, this.stage1[ball1c]._y); //始点
this.stage1.lineTo(this.stage1[ball2c]._x, this.stage1[ball2c]._y); //線を引く

としましたが、変わらずです。また、試しにMC:stage1内のフレームアクションとして
this.onEnterFrame = function() {
this.clear();
this.lineStyle(5, 0xFF0000, 50);
this.moveTo(this[ball1c]._x, this[ball1c]._y);
this.lineTo(this[ball2c]._x, this[ball2c]._y);
};

は駄目でした。[]を外しても同じでした。間違いをご指摘下さい。
396Now_loading...774KB:2007/03/12(月) 16:21:02 ID:0n9g95kO
>>395
なんで、下の方のonEnterFrameではstage1が無いの?
this.stage1.moveTo(this.stage1.ball1c._x, this.stage1.ball1c._y); //始点
...
でどうなのかな。
397Now_loading...774KB:2007/03/12(月) 16:26:16 ID:jUYUZ+YP
>>395
じゃあ
this.stage1["ball1c"]
で。
398Now_loading...774KB:2007/03/12(月) 16:26:39 ID:0n9g95kO
ああ、stage1に書いたのね。ちと構造がわからんので、直前で座標traceしてみるとかかな。
399Now_loading...774KB:2007/03/12(月) 17:02:52 ID:2jGsuax6
>>394 シンボルとそのインスタンスの両方にonRollOverを

たぶんこれじゃない?
いっそボタン個々にA,Bの動作を1つにまとめたら?
400391&395:2007/03/12(月) 17:08:03 ID:YdxiFwXI
>>396-398
レスありがとうございます。this.stage1["ball1c"] では座標は出ますが、線は現れません。
また、stage1内の1フレ目に線引き用のAS
this.onEnterFrame = function() { //このthisはstage1
trace("ball1c x= "+ball1c._x);
this.clear();
this.lineStyle(5, 0xFF0000, 50);
this.moveTo(ball1c._x, ball1c._y);
this.lineTo(ball2c._x, ball2c._y);
};

を書いたところ、traceで座標は出ましたがやっぱり線は出ません。
(以後、stage1内の1フレ目に描画のASを書きたいと思います)
401Now_loading...774KB:2007/03/12(月) 17:16:39 ID:0n9g95kO
>>400
moveTo(0,0);
lineTo(100,100);
とかで出るか確認
402391&395:2007/03/12(月) 17:21:54 ID:YdxiFwXI
>>401
試してみます。ちなみに、this.onEnterFrame = function() 内の最後に 
ball1c._x += 1;
if (ball1c.hitTest(ball2c) == true) {
trace("--- hit! ---");
}
を書くと、ball1cは右に移動出来て、かつball2cと衝突判定が出来ます。
403391&395:2007/03/12(月) 17:28:22 ID:YdxiFwXI
連投になりすいません。
this.moveTo(0, 0);
this.lineTo(100, 100);
は駄目でした。いまのところ問題は線引きだけです。
404Now_loading...774KB:2007/03/12(月) 20:26:26 ID:0n9g95kO
>>403
ダメならとりあえず新規作成でその線だけ引けるようにしてみそ。
405Now_loading...774KB:2007/03/12(月) 21:00:08 ID:2xErCeE9
 >>399さん
  
 レスありがとうございました。
 レスを見逃していて返答が遅れてしまいました。
 申し訳ありません。

Aの部分(共通の動きをするボタンの背景部分)を、複数のムービーで使いまわしているため、
共有用のムービーを別途作成し、シンボル化&「ランタイム共有用に書き出し」の設定をして、
読み込んで使用する予定です。

ですので、Aの動作のasは、このシンポル上に記述したほうが更新性がいいかと思ったのですが、
やはり、この背景を使用する、個々のムービーの個々のボタンに対して、
A、Bの動作をまとめて記述するしか方法はないのでしょうか?
406391&395:2007/03/12(月) 21:28:02 ID:wrVedZIe
>>404
新規作成して、_root上にMC:stage1のみを置き、この内部に単純に
this.onEnterFrame = function() {
this.lineStyle(5, 0xFF0000, 50);
this.moveTo(0, 0);
this.lineTo(100, 100);
};

を書きましたが線が現れません。もしかして、入れ子のMC内の線は不可
なのでしょうか?
407Now_loading...774KB:2007/03/12(月) 21:42:41 ID:0n9g95kO
>>406
ttp://www.geocities.jp/wasabi_toppo/res406.fla
作ってみたけど、こんな感じになるよ。
408391&395:2007/03/12(月) 22:15:05 ID:wrVedZIe
>>406
さんきゅうです。私の方でもres406.flaの線が見れました。
これを元に自分のflaのstage1をカラのMCにしたところ線が見れました。

どうやらstage1の色自体が影響しているようで、stage1のアルファを50%
にしたところ、線もボールも色が薄くなりました。
409391&395:2007/03/12(月) 22:16:55 ID:wrVedZIe
まちがった
>>407さんだった。
410394 & 405:2007/03/12(月) 22:32:01 ID:2xErCeE9
何度もすみません

405 = 394

です。よろしくお願いします。
411Now_loading...774KB:2007/03/12(月) 23:16:12 ID:0+WDWEqm
>>410
同じonRollOverメソッドを定義しなおせば、上書きされてしまうはずだ。
シンボル内に書くのをやめて、フレームで同時に定義するか
共通化した関数を作るか。
412Now_loading...774KB:2007/03/12(月) 23:33:24 ID:pgySbD3t
>>410
具体的なアドバイスは出来ないけど考え方としては>>411が言うように
http://www.geocities.jp/myflashsouko/flash/index5.html#function
が参考になると思われ。
413410:2007/03/13(火) 00:55:39 ID:TJjEZWuS
>> 411&412

レスありがとうございました。

なるほど上書きされてしまうわけですね。
412さんに紹介していただいたページを参考に、
共通化した関数を作る方向で頑張ってみます。

ありがとうございました。
414Now_loading...774KB:2007/03/13(火) 01:07:29 ID:80vOrbbe
>>405
Aの動作を共通関数にしてしまって個々のボタンから呼ぶ。
function Common(){
 共通処理
}
btn1_mc.onRollOver=function (){
 Common();
 画像1表示処理
}
btn1_mc.onRollOver=function (){
 Common();
 画像2表示処理
}

Bの個々の動きってのも異なる画像の表示だけなら共通化できそうな予感。
415Now_loading...774KB:2007/03/13(火) 02:29:52 ID:5hQ/nsbk
AとBの違いはマウスオーバーで個々に特定の位置に画像を表示するってだけの
違いだから、その位置を引数として渡してやれば1つの関数内で十分完結する希ガス
416410:2007/03/13(火) 03:31:36 ID:TJjEZWuS
414さん&415さん

レスありがとうございました。

414さん

おかげさまで、やりたいことが実現できました!
411&412さんからもご指摘を受けましたが、
共通関数を定義して呼び出すのですね。すっきりしました。
オブジェクト指向?がきちんとできていないのがいけないんですね。
勉強不足で申し訳ありません。

415さん
すみません、言葉が不足していましたが、
Bの個別の動きとは、画像の位置はすべて同じで、
各ボタンへマウスオーバーしたときに画像が入れ替わる
(できればフェードインフェードアウトで)
という意味のつもりでした。

いずれにしても、414さん415さんがコメントをくださったように、
おそらくBも共通化できるのでしょうね。
(attachMovieあたりですか?)
こちらも、頑張ってみようと思います。

いろいろとありがとうございました。


417Now_loading...774KB:2007/03/13(火) 10:50:02 ID:5RKEAwd6
超初心者スレでここまで教えていただいたのですが、ここから先が分かりません。
教えてください、お願いします。スロットマシンのFlashを作りたいのですが、

//スタート位置を変える
_root.slot0_mc.gotoAndPlay(3);
_root.slot0_mc.gotoAndPlay(1);
_root.slot0_mc.gotoAndPlay(7);
//ストップボタンに番号を持たせる(どのスロットを止めるか判別)
_root.stop0_mc.num = 0;
_root.stop1_mc.num = 1;
_root.stop2_mc.num = 2;
//ストップさせる処理
_root.stop0_mc.onRelease = _root.stop1_mc.onRelease=_root.stop2_mc.onRelease=function () {
bangou = this.num;
_root["slot"+bangou+"_mc"].stop();
this.tometa = true;
this.enabled = false;
if (_root.stop0_mc.tometa == true && _root.stop1_mc.tometa == true && _root.stop2_mc.tometa == true) {
//3つとも止まったとき
//絵柄を取得 各絵柄の現在のフレームから取得
egara0=_root.slot0_mc._currentframe;
egara1=_root.slot1_mc._currentframe;
egara2=_root.slot2_mc._currentframe;
//出力
trace("スロット1=絵柄"+egara0)
trace("スロット2=絵柄"+egara1)
trace("スロット3=絵柄"+egara2)
}
};
まではご教授いただきました。この後、数字が揃った場合のアクションを追加するにはどうしたらよいでしょうか?
例えば、777が揃った場合、getURLのようなアクションで「大当たり」ページに飛ばすような事は可能でしょうか。
宜しくお願い致します。
418Now_loading...774KB:2007/03/13(火) 15:47:53 ID:Wt4d+dnQ
>>417
超初心者スレで続きを教えてもらいましょう
419Now_loading...774KB:2007/03/13(火) 18:08:47 ID:hnxkZy48
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)

TextFieldクラスのプロパティで質問です。

_rootのステージに2つのダイナミックテキスト型のTextFieldをcreateTextField()で作り、
この中に文字列を表示させようとしていますが、文字の大きさとフォントのタイプが指定
通りになりません。
ASは下の通りで、全て_rootの1フレ目に書いています。

this.createTextField("txt1", 1, 50, 20, 300, 100);
this.createTextField("txt2", 2, 50, 130, 300, 100); //縦に2個生成
for (id=1; id<3; id++) { //プロパティの指定
this["txt"+id].type = "dynamic";
this["txt"+id].border = true;
this["txt"+id].size = 30; //←←←※
this["txt"+id].textColor = 0x000000;
this["txt"+id].font = "MS Pゴシック"; //←←←※
}
txt1.text = "AcitonScriptのことなら 初歩的な質問でもなんでもおk "; //出力される文字列
txt2.text = "ActionScript 誰かが物凄い勢いで解答するスレ 15 "; //出力される文字列

出来たSWFは http://swfup.info/view.php/6415.swf ですが、どう見ても文字のサイズと
フォントは設定と違います(MSP明朝の11ptくらい?)。原因は何でしょうか?
なお、textColorを0xFF0000(赤色)にすると、ちゃんと文字が赤くなります。
420Now_loading...774KB:2007/03/13(火) 18:51:36 ID:Wt4d+dnQ
.fontなんてプロパティあったっけ
421Now_loading...774KB:2007/03/13(火) 18:53:12 ID:Z1cSVOWy
function hoge(x, y = 0)
{
// 処理
}


みたいに、関数の引数としてディフォルト値を設定できましたっけ?
MX2004(AS2.0)です。
422Now_loading...774KB:2007/03/13(火) 18:54:27 ID:Wt4d+dnQ
>>421
ここに書く時間で実験できると思うが
423Now_loading...774KB:2007/03/13(火) 19:00:41 ID:Z1cSVOWy
>>422
ダメでした(;;)

function hoge(x, y=0)
{
return x + y;
}

trace(hoge(1));
trace(hoge(1,2));


-----

**エラー** シーン = シーン 1, レイヤー = レイヤー 1, フレーム = 1 :行 1:')' または ',' が必要です。
function hoge(x, y=0)

ActionScript エラー数 :1 報告済みエラー :1
424Now_loading...774KB:2007/03/13(火) 19:41:31 ID:psWuiWft
うん、まずはECMA262の構文を覚えることから始めたらいい
425419:2007/03/13(火) 19:55:32 ID:rWX+uvPv
>>420
あります。というか、Flash8で書くと予約語として青く表示されます。
補足ですが、this["txt"+id].type = "dynamic"; this["txt"+id].border = true;
は共に有効です。
426Now_loading...774KB:2007/03/13(火) 19:58:33 ID:Wt4d+dnQ
>>425
ちゃんとヘルプ見たの?
427419:2007/03/13(火) 20:17:01 ID:rWX+uvPv
>>426
すいません。本(逆引き550-p222)に書いてあったのでそのまま適用しました。
改めてヘルプを見ると確かにあったのでヘルプからコピペします。

font (TextFormat.font プロパティ)
public font : String
このテキストフォーマットでのテキストフォント名を示すストリング。
デフォルト値 null はプロパティを未設定にします。
使用できるバージョン : ActionScript 1.0、Flash Player 6

ということで、Player7,AS2.0では不可でした。
でも、馬場ぎんがさんの本見るとTextFormatクラスのプロパティとして
Player6以降で使えるようです。

どっちが本当(fontかw)か分かりません。
428Now_loading...774KB:2007/03/13(火) 20:19:50 ID:Wt4d+dnQ
>>427
テキストフィールドには.fontというプロパティは無い。
TextFomatオブジェクトを作ってそこにフォントなりを設定して、
それをテキストフィールドに適用する。他の方法は無いよ。
429Now_loading...774KB:2007/03/13(火) 20:29:40 ID:dmQdqr6j
>>427
全然ちゃんと読んでないじゃん。
TextFormat クラスとTextField クラスは別物。
430419:2007/03/13(火) 20:32:36 ID:rWX+uvPv
>>428
さんきゅうです。うーん、たかがフォント1つ設定するのに幾つかの手順
を踏まないといけないとは・・・・ とりあえずやってみます。
431Now_loading...774KB:2007/03/13(火) 22:32:17 ID:kHiYH6+0
データをローカルのハードディスクではなく
swfファイルがおいてあるサーバー上に保存することは
出来るのでしょうか?
逆引きという本を見るとcgiに渡す方法はあるようですが…
432Now_loading...774KB:2007/03/13(火) 22:36:15 ID:kHiYH6+0
すいません
なんでもありません
スレ汚し大変失礼しました
433Now_loading...774KB:2007/03/14(水) 16:22:47 ID:xrNBn6U7
AS3で質問です。スタティッククラスのクラス名をストリング値で指定して同名のクラスを
取得する方法ってありませんでしょうか?
例えば以下のように
var str:String = "Elastic"
↑のElasticのクラスを取得したい場合、 mx.effects.easing[str]では駄目ですし、
getDefinitionByName("mx.effects.easing."+str) as Class でも取得できないようです。
Object や配列で予めクラスとストリングを関連付けておけば可能なのですが、
直接取得する方法はありますでしょうか?
434Now_loading...774KB:2007/03/14(水) 23:07:47 ID:VWXJAFTo
>>433
Object や配列で予めクラスとストリングを関連付けておけばいいんじゃね?
mxのクラスってPlayerの内部クラスじゃないから、先にリンクしておかないと
読み込めない(どこにもない)んじゃないかな。
435Now_loading...774KB:2007/03/15(木) 00:05:50 ID:AlJUsPZV
>>434
レスありがとうございます。importしただけでいいかと思ってたんですが事前にどこかで
読んであげないと駄目なんですね。クラスを事前に読み込んだらgetDefinitionByName
でも取得できました。
436Now_loading...774KB:2007/03/15(木) 15:13:02 ID:2Ief0Xsf
FileReferenceについて質問させてください。
ファイルをアップロードしたときに
セッションを使って事前にログインした際の情報を
判定したいのですが
IEでは大丈夫なのですが、FirefoxやSafariでは
ファイルアップロードのときだけ
セッションが別のものになってしまいます。
これは仕様なのでしょうか?
ちなみにFlex2です。
437Now_loading...774KB:2007/03/15(木) 15:20:14 ID:DEdX6lox
>>436
サポートしているブラウザをチェックしてみるとか
438Now_loading...774KB:2007/03/15(木) 15:50:52 ID:vyohDQeS
仕様です
439436:2007/03/15(木) 17:01:25 ID:2Ief0Xsf
そうなのですね。残念。
他の方法を考えます。
440Now_loading...774KB:2007/03/16(金) 11:28:07 ID:YDRvG0uW
MCが読み込まれる度に一回だけ攻撃がヒットさせたいんだけど
どうすればおk?(現時点ではまったく反応せず
onClipEvent (load) {
for (i=0; i<26; i++) {
hitFlag[i] = true;
}
}
onClipEvent (enterFrame) {
for (i=0; i<26; i++) {
if (hitFlag[i] == true) {
if (this.hitTest(_root.map[_parent.army+i].model.hitObj)) {
power = (_parent._parent.AT-_root.map[_parent.army+i].DF);
if (power<=0) {
power = 1;
}
_root.map[_parent.army+i].HP -= power;
trace("アッー!");
hitFlag[i] = false;
}
} else {
}
}
}
441Now_loading...774KB:2007/03/16(金) 13:06:28 ID:tOAxwGeG
>>440
onClipEvent (load) {
var hitFlag:Array = new Array();
for (i=0; i<26; i++) {
hitFlag[i] = true;
}
}
442Now_loading...774KB:2007/03/18(日) 23:25:06 ID:6gIqoiNS
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)

複製したMCのドラッグで質問です。

mc0というroot上のMCに
on (release) {
newName = "mc1"; //新しい名前は『mc1』
prop = {_x:this._x-50}; //左に-50の位置に出現
this.duplicateMovieClip(newName, 100, prop); //深度は100
}

を書いて複製は出来ました(mc1が出現)。しかし、これをドラッグするために
rootのthis.onEnterFrame = function() { } 内に
this.mc1.onPress = function() {
this.startDrag();
};
this.mc1.onRelease = function() {
this.stopDrag();
};

を書いたところ、ドラッグは出来るものの、Releaseする度にその場所から左に-50
の位置に移動します。

原因は何でしょうか?
443Now_loading...774KB:2007/03/19(月) 02:14:50 ID:/DjmSpb2
ブラウザ上だと再生速度が低下しちゃうバグの対策に、

<param name="wmode" value="opaque" />

のタグを打ったんだけど、
何故かこれをブラウザ(IE)で開くと逆に再生速度が早くなってしまう…。(´・ω・`)

この問題が起こるのは、
今回作った30fpsで動作するアクションゲームだけで、
上記のバグ対策なしだとおよそ24fps程度になって、
対策を入れると30fps〜34fpsくらいになる。

普段は30fpsで動作してるようなんだけど、
何かアクションを起こすとfpsが上昇する。

ソースに問題がありそうなんだけど、
誰かこんな症状聞いたことある人いる?

ソースは1万行弱あって、
問題がありそうな部分とか抽出できず情報が少なくて申し訳ない。
ただ一般的な書き方をしてて形式事態に特別問題があるわけではないと思う。

誰か少しでも何か知っている人いたら教えてつかあさい。m(_ _)m

■環境情報
FlashMX 2004
WindowsXP Professional
PentiumM 1.4Ghz
Memory 1024MB
VRAM 64MB(on Borad)
444442:2007/03/19(月) 02:53:13 ID:vkKELzOL
自己解決しました。

どうやらduplicateMovieClip()では、元のMC(mc0)がASを含めて丸ごと
複製されるみたいで、新しいMC(mc1)にもprop = {_x:this._x-50};
が有効になっています。

解決策:MCでの記述を止めて、フレームアクションで行うようにしました。
445Now_loading...774KB:2007/03/19(月) 02:57:01 ID:dKyWc3f/
>>442
onEnterFrameのなかに onPress=function(){}を書くのはどうかと思う。

で、その原因は良くわからんけど以下のようにASをすべてフレームに記述すれば解決。
this.mc0.onRelease = function() {
    newName = "mc1";
    prop = {_x:this._x-50};
    mc1 = this.duplicateMovieClip(newName, 100, prop);
    mc1.onPress = function() {
        this.startDrag();
    };
    mc1.onRelease = function() {
        this.stopDrag();
    };
};
446Now_loading...774KB:2007/03/19(月) 13:20:42 ID:1L7bj7AA
textFieldのことについてなんですが
textFieldに変数をリンクして変数の値が変わったら
何も記述しなくても表示変わってくれる様にする事は出来ないでしょうか?
今現在毎回replaceText()で置き換えていて少々不便なもので。
447Now_loading...774KB:2007/03/19(月) 13:27:09 ID:R9ye/fBJ
>>446
どこが不便なの?
448Now_loading...774KB:2007/03/19(月) 13:33:12 ID:8z0CNBDV
>>446
変数の値がどういうタイミングでどこから変更されるのかわからんが、
変数の値が変更されるタイミングでテキストフィールドに表示するという
関数を自分で作ればそれほど不便てことはないと思うが?
何にせよ、基本的に必要な動作は自分で記述する必要がある。
後は設計によって便利か不便かが別れるのではないだろうか。
449Now_loading...774KB:2007/03/19(月) 16:36:35 ID:2D5R29+B
MovieClipを拡張したMyMovieClipを使いたいんだけど
オーサリング環境で画面に置いたMovieClipインスタンスが
MyMovieClipで作られるようにすることは可能ですか?
450Now_loading...774KB:2007/03/19(月) 17:24:07 ID:R9ye/fBJ
>>449
ちと、よくわからんが普通にライブラリに作ったMCをドラッグすればいいんでは?
451Now_loading...774KB:2007/03/19(月) 18:31:45 ID:SWMATI6l
getURLでボタンを作ったんですが、IEでは動作するのですが
firefoxでうまく動作しません。
なにか記述で対策はあるのでしょうか?

on (press) {
getURL("http://...", "_blank");
}

と書いています。
452Now_loading...774KB:2007/03/19(月) 18:43:36 ID:nQTI0bud
再現しないなぁ@Firefox2
ポップアップブロックか「新規タブで開く」モードで勘違いしてるとかないかい
453Now_loading...774KB:2007/03/19(月) 19:02:19 ID:SWMATI6l
>>452
レスありがとうございました。
自ブラの設定がポップアップブロックになってました・・
吊ってきます
454Now_loading...774KB:2007/03/19(月) 19:05:42 ID:R9ye/fBJ
>>451
サポートされているブラウザの環境をチェック
455Now_loading...774KB:2007/03/19(月) 20:33:57 ID:4gzwlSGw
>>449
AS3なら普通に可能。
AS2ならリンケージ設定でクラスを指定。
456Now_loading...774KB:2007/03/20(火) 00:43:29 ID:ITKteIYu
>>443
しょぼぼぼぼ
457Now_loading...774KB:2007/03/20(火) 07:31:15 ID:QmjzzeEj
>>456
画面再描画が追いつかなければ自動的に間引きされるから、
必然的にfpsは下がるわな。
実行時に右クリックで再描画領域のチェックしてみれば?
458Now_loading...774KB:2007/03/20(火) 11:13:52 ID:2CLiIh9w
先生! MovieClipLoaderのイベントハンドラについて質問でつ(MX2004、AS2)

mcListener.onLoadComplete = function( ターゲットA:MovieClip ) { trace("読み込み終了"); }
mcListener.onLoadInit = function( ターゲットA:MovieClip ) { trace("先頭フレームのアクションが実行された"); }

ローカルでは onLoadComplete と onLoadInit の処理はほぼ同時に処理されるはずなんでつが
何かのキーを押していると微妙に onLoadInit の処理されるタイミングが遅れまつ これって仕様?
キー入力に関するコードも書いてますがMovieClipLoaderに影響は無い内容でつ しかもなぜか
Key.isDownで設定してないキーを押してもタイミングが遅れまつ
459Now_loading...774KB:2007/03/20(火) 11:19:58 ID:QmjzzeEj
>>458
ロードされました。というのと、ロードし終わって処理を開始しますの違いでしょ。
後者に処理を書けば問題ないのでは?
460458:2007/03/20(火) 12:32:48 ID://mBYTpb
レスありがとー先生
たしかにおっしゃる通りでつが当初不具合の原因がわからず混乱しまつた
まあ報告みたいなもんでつ
461Now_loading...774KB:2007/03/20(火) 21:47:51 ID:Vwj3ea7P
あまりに基本的な問題で申し訳ないですが、以下のコードで深度も変わらない、
複製も出来ない原因はどこにあるのでしょうか?

//深度100に空のムービークリップを作成
this.createEmptyMovieClip("myMovieClip", 100);
trace("作成したmyMovieClipの有無確認 = " + this["myMovieClip"]);
trace("作成したmyMovieClipの深度確認 = " + this[myMovieClip].getDepth());

//深度101にムービークリップを複製
this.myMovieClip.duplicateMovieClip ("myCopyMovieClip", 101);
trace("複製したmyMovieClipの有無確認 = " + this["myCopyMovieClip"]);
trace("複製したmyMovieClipの深度確認 = " + this[myCopyMovieClip].getDepth());

//深度999にムービークリップを移動
this.myMovieClip.swapDepths(999);
trace("変更したmyMovieClipの有無確認 = " + this["myMovieClip"]);
trace("変更したmyMovieClipの深度確認 = " + this[myMovieClip].getDepth());


【traceの結果】

作成したmyMovieClipの有無確認 = _level0.myMovieClip
作成したmyMovieClipの深度確認 = -16384

複製したmyMovieClipの有無確認 = _level0.myCopyMovieClip
複製したmyMovieClipの深度確認 = -16384

変更したmyMovieClipの有無確認 = _level0.myMovieClip
変更したmyMovieClipの深度確認 = -16384
462Now_loading...774KB:2007/03/20(火) 22:01:51 ID:vPpUiTv+
>>457
いや、逆にブラウザ上でバグ対策すると、
fpsが上がって早くなりすぎるから、
ゲームにならなくて困ってるんだ。(´・ω・`)

以前OCNのなつゲーコンテストに応募したときも、
うpされてたのがこれと同じ症状になっててマジ萎えた。

いくらググっても全く同じ症例が見あたらないんだよね…。

34fpsくらいでパブリッシュして、
バグ対策なしでうpするしかないか…。(´・ω・`)
463Now_loading...774KB:2007/03/20(火) 22:59:11 ID:lG3bp2TE
どうしても分からないので教えてください。
環境はWinXPでFlashMXを使用しています。

ムービークリップに記述するアクションスクリプトの話です。
#を押した時に動作するようにしたいのですがやり方が分かりません。

on(press, keyPress "#"){
}

ではなく、

onClipEvent(enterFrame){
  if( Key.isDown() ){
    色々;
  }
}

のような感じでやりたいのですが、Key.isDownの()の中に何を書けばいいか分かりません。
キーコードで調べても#は見当たらないのですが、どうすればいいのでしょうか?
464Now_loading...774KB:2007/03/20(火) 23:04:56 ID:Vwj3ea7P
>>463
ttp://hakuhin.hp.infoseek.co.jp/main/as/key.html#CODE
が参考になると思います。
サンプルも書かれていますよ。
#のキーコードについてはちょっとわからないですけど。
465Now_loading...774KB:2007/03/20(火) 23:05:27 ID:8vE+Gx++
>463
#はShiftを押しながら入力しないか?
つまりそういうことだ。
466Now_loading...774KB:2007/03/20(火) 23:21:28 ID:Eq7g28mN
>461
this.myMovieClip.getDepth()
じゃないか?
467463:2007/03/20(火) 23:35:18 ID:lG3bp2TE
>>464
調べてみると、3と#はキーコードは同じで
アスキーコードは違うみたいですね。
Key.isDownでアスキーコードは扱えないのでしょうか?

>>465
Shiftと3が同時に押された時に処理しろということでしょうか?
PCで操作する場合はそれでいいのですが、
携帯用に作成しているFLASHなので別の方法はないでしょうか?
468Now_loading...774KB:2007/03/20(火) 23:43:13 ID:Vwj3ea7P
>>466
[]を消してthis.myMovieClip.getDepth()にすると指定したとおりの値が得られました。
ありがとうございました。

//深度100に空のムービークリップを作成
this.createEmptyMovieClip("myMovieClip", 100);
trace("作成したmyMovieClipの有無確認 = " + this.myMovieClip);
trace("作成したmyMovieClipの深度確認 = " + this.myMovieClip.getDepth());

//深度101にムービークリップを複製
this.myMovieClip.duplicateMovieClip ("myCopyMovieClip", 101);
trace("複製したmyMovieClipの有無確認 = " + this.myCopyMovieClip);
trace("複製したmyMovieClipの深度確認 = " + this.myCopyMovieClip.getDepth());

//深度999にムービークリップを移動
this.myMovieClip.swapDepths(999);
trace("変更したmyMovieClipの有無確認 = " + this.myMovieClip);
trace("変更したmyMovieClipの深度確認 = " + this.myMovieClip.getDepth());

//指定した深度にムービークリップが存在するか確認
trace(this.getInstanceAtDepth(100));
trace(this.getInstanceAtDepth(101));
trace(this.getInstanceAtDepth(999));

//存在するムービークリップの最大深度
trace(getNextHighestDepth());
469Now_loading...774KB:2007/03/20(火) 23:44:49 ID:Vwj3ea7P
改行が多過ぎと怒られたので続きです。

【traceの結果】
作成したmyMovieClipの有無確認 = _level0.myMovieClip
作成したmyMovieClipの深度確認 = 100
複製したmyMovieClipの有無確認 = _level0.myCopyMovieClip
複製したmyMovieClipの深度確認 = 101
変更したmyMovieClipの有無確認 = _level0.myMovieClip
変更したmyMovieClipの深度確認 = 999
undefined ←swapDepthしたのでundefinedで正解
_level0.myCopyMovieClip
_level0.myMovieClip
存在するムービークリップの最大深度 = 1000
470463:2007/03/21(水) 00:23:32 ID:WUx7HYxO
>>463の質問の内容に少し補足を・・・。

463の内容か、もしくは、

on(press, keyPress "#"){
}

で、キーを押した瞬間だけ動作させるように出来ないでしょうか?
471Now_loading...774KB:2007/03/21(水) 00:48:03 ID:418HxdiX
>>463
Key.getAscii()
472Now_loading...774KB:2007/03/21(水) 02:12:11 ID:uU5MlBdI
>>462
なるほど、言いたいことは分かったがそんな症状には出会ったこと無いな。
力になれなくてスマン。
473Now_loading...774KB:2007/03/21(水) 03:21:49 ID:7l7T3dPd
>>462
ttp://blog53.fc2.com/k/king75/file/owata_test.html
一定量のクマがいるとfpsが上昇したり、クマが落下してる時はfpsがあがったりって報告が

少し質問

mc.onRollOut= function(){
test
}

mc.onDragOut= function(){
test
}

↑このスクリプトを関数とか使わずにfunctionひとつで書く方法ってある?
474Now_loading...774KB:2007/03/21(水) 03:48:41 ID:0eJuWNpc
mc.onRollOut= function(){
test
} ;
mc.onDragOut= mc.onRollOut;

こういうこと?
475Now_loading...774KB:2007/03/21(水) 04:17:06 ID:tzUR1Vum
>>473
mc.onRollOut = mc.onDragOut = function(){
test
}
ってこと?
476Now_loading...774KB:2007/03/21(水) 04:40:24 ID:PAVuuw3I
トイレの窓から出ようとして窓に挟まっちゃってる女のやつないですか?
477Now_loading...774KB:2007/03/21(水) 14:48:16 ID:SoNH4SGb
申し訳ありませんが
風香は扱っておりません
478Now_loading...774KB:2007/03/21(水) 15:22:46 ID:7l7T3dPd
>>474-475
どっちの書き方も全く知らなかった・・・
教えてくれてありがとう。勉強になった
479Now_loading...774KB:2007/03/21(水) 19:31:00 ID:WhbD2OWM
function tester() {
test
}
mc.onRollOut = tester;
mc.onDragOut = tester;

おれはこういう書き方の方がなじむな。見やすいし。
480Now_loading...774KB:2007/03/21(水) 20:16:04 ID:8xEPoS3w
>>475が見やすい
481Now_loading...774KB:2007/03/21(水) 21:21:14 ID:/Se6Uqdx
HTMLファイルからフォームでいくつかの文字列を送って、
Flash側でそのURLを分解して変数に格納してダイナミックテキストか何かで表示したいのですが、どうすればいいのでしょうか?
482Now_loading...774KB:2007/03/21(水) 22:01:50 ID:LkD4zN+g
>>481
htmlをflashにする。これで解決。
483Now_loading...774KB:2007/03/22(木) 00:26:25 ID:ci1Y/IiL
>481

<form action="hoge.swf" method="get">
<input type="text" name="var1">
<input type="text" name="var2">
<input type="submit" value="submit">
</form>

というフォームで送信すると、hoge.swfで最初に

_root.var1
_root.var2

の変数に対応するテキストが代入される
484Now_loading...774KB:2007/03/22(木) 02:03:13 ID:zMultIb9
>>479
関数とか使わないで、って書いてたのでファンクション宣言を使いたくないのかと。
まぁメソッドクロージャも匿名関数だけどね。
485Now_loading...774KB:2007/03/22(木) 02:24:14 ID:J9B+3fNj
>>483
ありがとうございます。


英数字はそれで問題がなかったのですが、日本語を表示するには
<form action="test.swf" method="get">
<input type="text" name="var1">
<input type="submit" value="submit">
</form>


var2 = unescape(var1);

と、こんな感じで"var2"を表示させたらいいのだろうと思ったのですが、どうしても文字化けしてしまいます。
なぜでしょうか?

質問してばかりですみません...
486Now_loading...774KB:2007/03/22(木) 05:16:50 ID:ci1Y/IiL
>485
HTMLフォームの文字コードをUTF-8にしてる?
487Now_loading...774KB:2007/03/22(木) 14:01:15 ID:vSVtj/5O
今までコンポーネント単位に配置していたイベントスクリプトを、1フレーム目に #include する一つのASファイルにまとめようとしています。

例:
ボタン button1 のイベント
on(press) {
Alert.show('test');
}
 ↓
ASファイルに書き直し
_root.button1.onPress = function()
{
Alert.show('test');
}

最初のフレームのイベントは問題なく移行できたのですが、2フレーム目移行のキーフレームに配置したオブジェクトのイベントが動作しません。
もしかしてコンポーネントがあるキーフレームの単位で #include する必要があるのでしょうか?
キーフレームの位置はレイヤごとに様々で一定ではないため、できれば1つのASファイルにまとめたいと思っています。
やり方を知っている方、教えてください。
488487:2007/03/22(木) 14:02:20 ID:vSVtj/5O
環境を書き忘れていました

Windows XP SP2
Flash 8 Professional

よろしくお願いします
489Now_loading...774KB:2007/03/22(木) 14:37:22 ID:guvbz4IY
>>486
ありがとうございます、うまくいきました。
ほかのサイトで見たものはShiftJISだったので、
何か特別なことをしなければいけないものだと思いこんでいました。
490Now_loading...774KB:2007/03/22(木) 17:28:02 ID:7cOVwns4
#includeでASファイルを読むってのは、#includeされた位置にASファイルのスクリプトを丸々コピーするってことになる。
つまり今>>487がしていることは2フレーム以降にあるオブジェクトのイベントを
全て1フレーム目に書いてるっていうこと。普通に考えたら動作しないよな
フレーム単位で#includeするとか、functionで括るとか対策は色々あるけど・・・
外部ASファイルにするメリットは「テキストエディタでSWFの挙動を変更できる」くらいで
動作速度が遅くなるとか、スクリプトが丸見えだとかデメリットが多いってことは既知?
491Now_loading...774KB:2007/03/22(木) 17:31:57 ID:UxWGsCpH
作例CD付きのテキストにあった物をちょっと弄ったものですが
メインタイムライン1行目に
myListener = new Object();
myListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
per_txt.text = Math.floor(loadedBytes / totalBytes * 100);
};
myListener.onLoadComplete = function() {
nextFrame();
};
my_Lod = new MovieClipLoader();
my_Lod.addListener(myListener);
my_Lod.loadClip("xxx.swf", loader_mc);
stop();

として、読み込み割合を表示→読み込み100%後xxx.swfをloader_mcに表示しているのですが
自分が用意した、画像がフェードアウトするだけの簡単なswfを読み込ませたら
最初の読み込み割合の表示中と同時にswfの再生が始まってしまいました
ちゃんと読み込みが100%になってからswfを再生させるにはどのようにすれば良いのでしょうか?
492Now_loading...774KB:2007/03/22(木) 17:49:42 ID:xwNf5jPy
1文字代入しようと思うんですが、上手くいきません。
toStr[0] = str[0];
すごい単純な事だと思うのですが・・・
493492:2007/03/22(木) 18:30:02 ID:xwNf5jPy
494Now_loading...774KB:2007/03/22(木) 20:05:04 ID:44if0N3r
>>490
>動作速度が遅くなるとか、スクリプトが丸見えだとかデメリットが多いってことは既知?
その話どっから持ってきたんだよ。
まさか、swfと*.asファイル一緒じゃないと動かないとか思ってないか?
495Now_loading...774KB:2007/03/22(木) 21:18:50 ID:1u/w/3/y
>>490
自分も知りたい。
> 動作速度が遅くなるとか、スクリプトが丸見えだとか

これってソースはどこ?
何と比較してそう言ってるの?
コピペされるだけなら、flaファイルのフレーム1に書くのと同じことじゃないのか?
動作速度にしても解析可能にしてもflaに直接書くのと変わりないと思ってたけど?
496Now_loading...774KB:2007/03/22(木) 22:03:34 ID:E12IPIEm
どっからそんなトンデモ知識身に付けてきたんだよw
497Now_loading...774KB:2007/03/22(木) 23:41:07 ID:7cOVwns4
ごめん。俺が間違ってたw
>>494の言ってるように、.asがインタプリタ型のincludeと同じ扱いになる思ってたわ

コンパイラディレクティブ : 指定したファイル内のコマンドを呼び出し元のスクリプトにインクルードし、
そのスクリプトの一部であるかのように扱います。#include ディレクティブは、コンパイル時に起動されます。
このため、外部ファイルに何らかの変更を行った場合には、ファイルを保存し、
その外部ファイルを使用している FLA ファイルを再コンパイルする必要があります。
498Now_loading...774KB:2007/03/23(金) 08:54:10 ID:SiqOIwuY
flvファイルの再生についての質問ですが、
flvファイルの総再生時間を得るにはどうしたらいいんでしょうか?
例えば1分のflvファイルがあったとすると、この1分というのをデータで欲しいのですが。
netStreamメソッドの一覧を見てもそれらしいものがありません。
499Now_loading...774KB:2007/03/23(金) 09:52:21 ID:KGQNjBdW
バージョン
500498:2007/03/23(金) 11:26:02 ID:SiqOIwuY
FLASH 8でした。
netStream.onMetaDataのdurationが時間のようですね。
自己解決しましたすいません。
501Now_loading...774KB:2007/03/23(金) 12:50:06 ID:DF+Ud5uk
一つのswfに複数のXMLを読み込ませるのって簡単?
502Now_loading...774KB:2007/03/23(金) 13:31:20 ID:abcmOrvW
>>501
XMLオブジェクトのloadメソッドで好きなだけ読み込んでください
503Now_loading...774KB:2007/03/23(金) 14:35:05 ID:m2qYEHhv
質問失礼します
falshMX2004で透過処理を行ったpngを外部から読み込むことは出来ないのでしょうか?
色々調べるとパブリッシュの時点でFlashPlayerが7、ASが2ではpngに対応してない臭いのですが・・・
以下のスクリプトでテストしてみたのですがやはり読み込めません
同様なjpgは読めるのですが・・・、なにか抜け穴は無いでしょうか?

_root.createEmptyMovieClip("pic", 1);
pic_load = new MovieClipLoader();
pic_load.loadClip("pic/1.png", _root.pic);

やはりflash8に買えかえるしかないのかなぁ・・・お財布にきつい
504Now_loading...774KB:2007/03/23(金) 16:03:19 ID:6Eje/Uf6
>>503
swfとjpgだけだったはず。
pngをswfにして読み込みという方法は無理?
505Now_loading...774KB:2007/03/23(金) 16:37:33 ID:m2qYEHhv
>>504
えっとxml読み込み型のちょっとしたゲーム作成フラッシュを作りたいんです
なのでswf形式を読み込ませるのはユーザーに負担かかっちゃうかなぁと思いまして

やっぱり直接pngを用いるのは無理ですかね
レスありがとうございました
506Now_loading...774KB:2007/03/23(金) 19:37:03 ID:L8hqMqpa
>505
ttp://www.saturn.dti.ne.jp/~npaka/flash/as20/PuzzleGame/index.html
みたいのをしたいってことだろうか?
507Now_loading...774KB:2007/03/23(金) 19:43:17 ID:CkSF+vP/
よくみたら全然ちがった。すまん。
508505:2007/03/23(金) 22:19:59 ID:m2qYEHhv
ttp://www.lindwurm.jp/mahoo/

個人的にこれに近いものを作って勉強しようと思ってたんです〜
ちょちょっと改善してソース配布出来たらな・・と考えてたのですが、中々難しいれす
509Now_loading...774KB:2007/03/24(土) 06:50:07 ID:nRkkFm3E
>>508
png型式の画像を動的に読み込めるのはFlash8からなので
8を買うか、透過GIF使うとか。
ライブラリに読み込んでおけばpngも使えるけどね。
510Now_loading...774KB:2007/03/24(土) 22:02:08 ID:/aZomwTA
ここで質問していいのか分かりませんが、
(A+20B+C/4)*2-3Dと言う計算式にA〜Dに値を入れ、
その結果を返し表示するフラッシュを作りたいです。

Text Filedクラスを作ってやるのかなと思い、ダイナミックテキストにしてみましたが
いまいちよく分からず、できませんでした。

宜しくお願いします。
511510:2007/03/24(土) 22:05:30 ID:/aZomwTA
環境はwinXpでFlash Lite1.0出力方式でお願いします。
512Now_loading...774KB:2007/03/24(土) 22:25:41 ID:JXSmonIL
計算式をパースするライブラリ、何て言ったっけ
513510:2007/03/24(土) 22:35:11 ID:/aZomwTA
追記です。
各値は0をふくむ正の整数が入れられるようにしたいです。
また、Cは割りきれない場合は小数点以下切捨てで計算するようになるようお願いします。
514Now_loading...774KB:2007/03/25(日) 00:09:42 ID:S6E0S7M3
お願いします、って製作依頼かよ!
515Now_loading...774KB:2007/03/25(日) 00:15:00 ID:3zW7HHAc
>>513
A = 1
B = 2
C = 3
D = 4

と値を代入して

ans = (A + 20*B + C/4)*2 - 3*D

で計算。
516Now_loading...774KB:2007/03/25(日) 00:36:25 ID:uduwVn/T
_root上のMCをクリックした地点を中心に拡大したり縮小したりするようにしたいんですが、どうすればおk?

自力ではお手上\(^o
517Now_loading...774KB:2007/03/25(日) 00:48:37 ID:KEk4Z9iV
>>516
たとえばクリックすると2倍の大きさになるとする
(1,1)をクリックするとサイズが2倍になってクリックしたポイントは(2,2)に移動する。
その移動したポイントが元の場所に表示されるように場所をずらせば良いわけだ。

さてどの辺でつまってる?
518Now_loading...774KB:2007/03/25(日) 01:02:47 ID:uduwVn/T
拡大は出来るんだけど、位置は変えられないし変えても戻せないってのが現状。今アク禁喰らって携帯厨だからASカケネ
519Now_loading...774KB:2007/03/25(日) 01:07:59 ID:KEk4Z9iV
>>518

zoom = 2;
box.onRelease = function() {
var mx = this._xmouse * this._xscale / 100;
var my = this._ymouse * this._yscale / 100;
this._xscale *= zoom;
this._yscale *= zoom;
this._x -= mx * zoom - mx;
this._y -= my * zoom - my;
};
520501:2007/03/25(日) 05:05:12 ID:pCoY+j8h
>>502
ありがとう(*´з`)
521Now_loading...774KB:2007/03/25(日) 10:18:35 ID:uduwVn/T
>>519
かたじけない。ちょっくら試してみましょ。縮小は*zoomを/zoomにすれば大丈夫かな?(携厨
522Now_loading...774KB:2007/03/25(日) 10:42:44 ID:KEk4Z9iV
zoom = 2; を 0.5とかにすればいいよ。
そうすれば縮小でも拡大でも同じ処理になるから。
523Now_loading...774KB:2007/03/27(火) 01:42:55 ID:ld+AZfcT
質問です
keydown で変数Xが変数==0ならフレームAに。
変数==1ならフレームBに。というASなんですけど

onClipEvent (keyDown) {
if (Key.isDown(88)) {
_root.gotoAndPlay("フレームA");
}
}

ここまでは出来たのですが、変数によっての分岐で
振り分ける方法がわからないでいます。
else if でいろいろ試してみたんですが・・・

どうかご教授お願いします。
524Now_loading...774KB:2007/03/27(火) 01:52:52 ID:7iqBMw3F
>>523
質問の意味がよくわからないんだけど
if ( X == 0 ) {
    _root.gotoAndPlay("A");
} else {
    _root.gotoAndPlay("B");
}
を if (Key.isDown(88)) { } 内に書けばいいんじゃないの
525523:2007/03/27(火) 18:54:07 ID:ld+AZfcT
>>524
解決しました。ありがとうございます
526Now_loading...774KB:2007/03/28(水) 20:12:37 ID:Ypd9gpdH
質問します。
環境:FlashMX2004
文字列を変数に直したいのですが、上手くいきません。
何か方法はありますでしょうか。

list = 2;
hoge1 = 3;
hoge2 = 4;

hage = "hoge"+String(list);//hage = hoge2(文字列)

hoge3 = hoge1+Number(hage);
//ここで3+4(結果7)にしたいのですが上手くいきません。
527Now_loading...774KB:2007/03/28(水) 20:15:50 ID:r73BfXGQ
hoge3 = hoge1+this[hage];
528Now_loading...774KB:2007/03/28(水) 20:33:50 ID:Ypd9gpdH
>>527
有難うございます、そのような書き方は知りませんでした。
足し算は上手くいきませんでしたが、もう少し試してみます。
529Now_loading...774KB:2007/03/29(木) 04:10:54 ID:IhMtmG3F
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7,AS2.0)

for文の停止→再開で質問です。
0〜999の間で100単位で処理を止め、一定時間(例えば2000ms)後に次の
100個の処理を行うASはどんなものになるでしょうか?
つまり、処理→2秒停止→処理→2秒停止・・・ です。 一応、on (release)内
のボタンアクションは以下の様に書き、100単位でtraceは出ます。

on (release) {
kazu = 1;//kazuの初期値
for (id=0; id<1000; ) {
if (id%100 == 0 && id>0) {
trace("id= "+id);
}
kazu = kazu*10+kazu;
id++;
}
}

setInterval(動作を記述した関数, 2000) を使おうと思いましたが、これでは時間
そのもので制御するので諦めました。 どのような方法がありますでしょうか?
530Now_loading...774KB:2007/03/29(木) 06:27:28 ID:HVW+hFjP
>>526
hageは"hoge2"という文字列だから、それを数値にはできないでしょ。
数値の文字列表現、例えば"12345"等を数値にするのがNumber()。

>>529
1秒ごとにfor100回ずつ処理。境界条件とかはお好みで。

idmax=1000;
id = 0;
intervalid = setInterval(this,"rdisp",1000);

function rdisp(){
if(id>=idmax-100){
clearInterval(intervalid);
}
for( i = id; i<id+100;i++){
trace("id="+id+"i="+i);
}
id += 100;
}
531Now_loading...774KB:2007/03/29(木) 09:29:56 ID:q3tK0iXG
ASで音声ファイルのピッチを変更する事って可能?
532Now_loading...774KB:2007/03/29(木) 09:39:56 ID:KS8w0jCq
>528
>527 hoge3 = hoge1+this[hage];
足し算できますよ
533Now_loading...774KB:2007/03/29(木) 09:44:53 ID:KS8w0jCq
>531
倍速遅速再生ってこと?
Sound.position プロパティで飛び飛びで再生することは出来るけど
あいうえお→あうお
ってなるから汚い

綺麗に再生する方法があれば教えて欲しい
534Now_loading...774KB:2007/03/29(木) 10:35:22 ID:HVW+hFjP
>>532
それは何を足してるかわからんな。
参照したいならthis["hage"]かthis.hage。
当然文字列"hoge2"が値としてtrace出来ると思うよ。
>>531
無理。ピアノみたいなの作りたかったらそれぞれの音階のwavを割り当てるとか。
535Now_loading...774KB:2007/03/29(木) 11:08:10 ID:KS8w0jCq
>534
えーと、>526みれば意図は分かると思うんだけど
hoge3 = hoge1+this[hage];
っつーのは
hoge3 = hoge1+hoge2;
のこと
536Now_loading...774KB:2007/03/29(木) 11:17:10 ID:HVW+hFjP
>>535
ああ、すまん文字列にしてたのね。Numberの方見てた。
537526:2007/03/29(木) 16:15:31 ID:CkgWHQ82
>>532 >>534-536
有難うございます、参考になります。
今、成功と失敗を繰り返しています^^;

loadVariables("text1.txt",_root);
/* test.txt ファイルの内容
&hoge2=4&
*/
list = 2;
hoge1 = 3;

hage = "hoge"+String(list);
//hage = hoge2(文字列)

this.onEnterFrame=function(){
hoge3 = hoge1 + Number(this[hage]);
}
/*これで上手くいくのですが…、ボタンをつかってやろうとすると失敗('A`)
おかげ様で、前進しました。 もう少し試してみます。
538Now_loading...774KB:2007/03/29(木) 18:11:48 ID:KS8w0jCq
もう、何をしたいのか書いちゃえば?
onEnterFrameとか目的が分からんと理解できん
539Now_loading...774KB:2007/03/29(木) 18:45:45 ID:7QMlAtMd
よくわかんないけどloadVariablesが完了してないんじゃね?
540Now_loading...774KB:2007/03/29(木) 18:52:15 ID:CkgWHQ82
何とか目的のFlashがほぼ完成しました。
おかげ様でとても助かりました、ありがとうございます。
>>538
ユーザーが編集できるリストを作りたかったんです。
テキストファイルから読み込んだリスト(変数)を、用意した文字列から("hoge"+String(list)の様に)指定し、
更にボタンを押してリストを出力するのが目的です。

>>539
おお、多分そうだと思います。
onEnterFrameにしておかないと、loadVariablesで指定した変数の値が代入されていないようでした。
541529:2007/03/29(木) 20:28:42 ID:6Y3DTgsv
>>530
さんきゅうです。
しかし、この記述では最初に待ち時間があり不便です。
別の方法はないでしょうか?
それと、intervalid = setInterval(this, "rdisp", 3000); の『this』
と『" "』意味を教えて下さい。ヘルプを見ても分かりませんでした。

私の方では、getTimerを使った方法を探っています。
542Now_loading...774KB:2007/03/29(木) 20:47:01 ID:HVW+hFjP
>>541
最初に1回rdisp()を呼んでから処理を行えばいいのでは?
thisは自分自身のインスタンスを表す。この場合はMCだね。
""は文字列を表現するときに使う記号。rdispという名前の関数を
参照するってこと。thisに書かれたrdispと言う名前の関数を3秒ごとに
実行しますってことじゃないかな。

やりたいことを書いてくれたほうが、ベストな解決方法はいっぱい出てくると思うけどね。
543Now_loading...774KB:2007/03/30(金) 00:27:51 ID:WGGKDHkK
援助要請
やたらでかいMC(map)の中に複数のMCがあって
map内のMCをクリックすることによってクリックしたMCがスクリーン上の
中心になるようにmapを動かしたいんですが、どうすれば

例によってお手上げ
544Now_loading...774KB:2007/03/30(金) 00:33:50 ID:Q7tzI6Hy
イベントをクリックで取ろうと思わずに
クリックを_rootで取って、その中で
for inとかで該当MCを回して、マウス座標とhitTestしたほうがいい
545Now_loading...774KB:2007/03/30(金) 00:42:11 ID:WGGKDHkK
>>544くやしく
546529&540:2007/03/30(金) 04:42:54 ID:ubGg5l3N
>>542
どうも。『やりたいこと』は簡潔には表現しづらいので、530さんの方法を
採用します。
※getTimer案は良いのが出来なかったのでパスします。
547Now_loading...774KB:2007/03/30(金) 04:50:51 ID:uWNbjnsU
採用とかいっちゃってるよw
548Now_loading...774KB:2007/03/30(金) 07:56:53 ID:0b+YS7J0
上から目線w
549Now_loading...774KB:2007/03/30(金) 08:47:47 ID:fPKsNIp5
>>543
座標系で混乱したら、A4の紙をステージに見立てて
ポストイットとか置いてみればすぐわかる。


MC(親), MC(子)があるとするよ。
親の原点をスクリーンの中心にするには

oya._x = Stage.width * 0.5
oya._y = Stage.height * 0.5

親の中にある子供の座標_x = 100, _y=100だとするだろ?


そうすると、実際の_rootで子供が表示される位置は親からさらに100右下にずれるから

Stage.width + ko._x
Stage.width + ko._y

になる。
つまり、こいつが画面の中心になるように、親の座標をずらしてやればいい。
この場合、左上に100ずれればいいんだよな。で、100ってのは子供の座標分と同じだよね。
よって

oya._x = Stage.width*0.5 - ko._x
oya._y = Stage.height*0.5 - ko._y
550Now_loading...774KB:2007/03/30(金) 17:48:41 ID:kqp21wEc
スレ違いかもしれませんが、ほかにあてもなかったのでこちらに書き込みさせていただきます。

Flex2でWordやExcelの文書をそのままコピペできるようなリッチテキストエディターご存知の方いませんか?
いろいろ調べてはみたのですが、見つかりませんでした・・・・orz
画像データもそのままコピペで貼れちゃうエディターが理想です。
JavaScriptで作られたものはあったのですが・・・
551Now_loading...774KB:2007/03/30(金) 23:04:52 ID:drzsgnIC
>>546
多分、529&541との入力ミスだと思いますが、540は私ですよ。
mapを動かすとかは、処理が重そうだし、難しそうですね^^;
552Now_loading...774KB:2007/03/30(金) 23:35:56 ID:v9JFitaU
553Now_loading...774KB:2007/03/31(土) 03:10:55 ID:pS/dIVtD
外部ActionScript 2.0 クラスのスクリプトでのみ定義される必要があります。

とエラーメッセージが出るのですが何が悪いのかわかりません。
554Now_loading...774KB:2007/03/31(土) 03:14:27 ID:GFD+iGco
多分外部のクラスファイルで書かないとだめなんだと思います。
555Now_loading...774KB:2007/03/31(土) 03:29:33 ID:pS/dIVtD
お返事ありがとうございます。

多分、外部のクラスファイルに書いているつもりなのですが

main.as と test.as を作って
flaファイルの1コマ目に

#include "main.as"
#include "test.as"

と書くとエラーになるのです・・・。

#include "main.as"

だけ書いた場合はエラーにならず、

>#include "test.as"

↑この記述にエラーがあるのかと思い続けているのですが
解らないので、良ければ教えてください。お願いします。

556Now_loading...774KB:2007/03/31(土) 07:33:45 ID:RfNlaLqe
>>555
クラスファイル?それとも普通のas?
クラスファイルならパスの通ったところからimportだよ。
557Now_loading...774KB:2007/03/31(土) 08:20:19 ID:pS/dIVtD
普通のASとクラスファイルの違いがわかりません・・・

一応、test.asにはクラスの定義が入っているのでクラスファイルということに
なるのでしょうか?

また、そうした場合、普通のASファイルというのは何を指すのでしょうか

分からない事だらけです。すいませんがよろしくお答え願います。
558Now_loading...774KB:2007/03/31(土) 08:55:29 ID:03OwaNek
class クラス名{
定義
}
の形式で書いてあるのがクラスファイル。
普通のASファイルはタイムラインに書いてあるコードをそのまんま
テキストファイルに移して拡張子「*.as」にしたファイル。

includeの書き方は間違ってなさそうだから、
「test.as」の内容にエラーがあるんじゃない?
559Now_loading...774KB:2007/03/31(土) 09:15:49 ID:+iUjnOR2
>>557

AS2でファイル名と中身のユーザー定義関数の名前が同じのがあるとクラスファイルと誤認するお
560Now_loading...774KB:2007/03/31(土) 10:20:47 ID:RfNlaLqe
>>559
初めて聞いた。詳細希望。
561Now_loading...774KB:2007/03/31(土) 11:12:07 ID:GFD+iGco
クラスファイルはincludeしたら内部ファイルになってエラーになるんでは
562Now_loading...774KB:2007/03/31(土) 12:18:04 ID:+iUjnOR2
>>560
ためしてみれ クラスファイルでもないのにクラスがどーのこーのってエラーが出る
563Now_loading...774KB:2007/03/31(土) 12:27:15 ID:RfNlaLqe
>>562
だから詳細をと。もしかしてimportと#includeまちがえてエラーってことないよな?
564Now_loading...774KB:2007/03/31(土) 14:50:29 ID:9/CJ1UZq
試してみた。

asファイル「Hoge.as」
function Hoge() {trace("hoge");}

同一ディレクトリのFlashのAS
#include "Hoge.as"

エラーでないよ。こういうことじゃない?
565562:2007/03/31(土) 16:21:46 ID:nULmcugg
やあ! エラー出ないなw
でも以前はたしかに出たんだって それでファイル名を大文字に変えて回避したんだお
あれは何だったんだ…
566Now_loading...774KB:2007/03/31(土) 16:28:41 ID:Z+MWxn5a
小人さんの仕業だな
寝不足とか不摂生するとよく出てくるぞ
仕事は進めてくれるけど間違いだらけのお茶目さんだが
567Now_loading...774KB:2007/03/31(土) 19:33:39 ID:BUEwt+4O
ASOの消し忘れだべ
568Now_loading...774KB:2007/04/02(月) 11:42:26 ID:t+bw9OeL
LoadVarsでのCGI呼び出しについて質問。

LoadVarsにて下記のようにCGIの呼び出しをしています。
myVars.data = "XXX";
myVars.sendAndLoad("XXX.CGI", myVars);
myVars.onLoad = function ()
{
XXX
};
このときCGIからの返事がない場合のタイムアウトはどのように
すればいいのでしょうか?
返事がない場合受信待ちになっているようで、一定時間後
再度sendAndLoadを実行してもCGIのリクエストが出ていないようです。
569Now_loading...774KB:2007/04/02(月) 15:47:23 ID:Zl78iUND
>>568
onLoadの引数でエラーが返るから、
あとはsetIntervalで自分で何秒でリトライとか決めればいんじゃないかな。
まあデバッグ時ならタイムアウトじゃなくCGIやASに問題がある場合が多いよ。
570Now_loading...774KB:2007/04/02(月) 22:51:02 ID:pH+yLGrA
スクロールバー付き複数行ダイナミックテキストに
120行ぐらいの外部テキストを表示させているのですが、
それをHTMLのアンカーリンクみたいに、
任意の行が1行目に来るように
移動させるにはどうしたらよいでしょうか?
571Now_loading...774KB:2007/04/02(月) 23:14:09 ID:tPOTZxFj
>>570
scrollプロパティ
572Now_loading...774KB:2007/04/02(月) 23:22:23 ID:3iOk37lK
ムービー1,2と常にループするようMediaPlayBackで設定しているんですが。
1の再生時にバッファ時間を設定して何秒後に再生されるようにしたいのですがうまくできません。

また、1のバッファが完了して1が再生されている間に2のバッファが裏ではじまっていて、動画切り替わり時にスムーズに
再生されるようにするにはどのようにすればいいんでしょうか?
573Now_loading...774KB:2007/04/02(月) 23:22:53 ID:3iOk37lK
ムービーファイルは外部FLVです。
574570:2007/04/03(火) 00:53:11 ID:ZrptS6ZB
>>571
ありがとうございます。ですが scroll はわかるんです。
例えば、


○月○日
××××××××××××××××××××××××××××××××××
××××××××××××××××××××××××××××××××××

○月□日
××××××××××××××××××××××××××××××××××

○月△日
××××××××××××××××××××××××××××××××××
××××××××××××××××××××××××××××××××××
××××××××××××××××××××××××××××××××××
 ・
 ・
<以下略>


といったテキストを、任意の日付の文章が一行目に来るように
表示させたいんです。
何か方法はありませんでしょうか?

575Now_loading...774KB:2007/04/03(火) 01:13:39 ID:n2ZePNu2
>>574
いや、だからその質問ならscrollプロパティを使えば、と言われるのは当然では?
任意の行に移動するのはscrollプロパティを使えばできることだから。
そうでないなら、もっと具体的にどこがわからないのかを説明した方がいい。
たとえば「特定の日付が何行目にくるかがわからない」とか。
576570:2007/04/03(火) 01:45:51 ID:ZrptS6ZB
失礼致しました。
仰るとおり、例えば○月△日が何行目にあるかが判れば
scroll でそこへ移動できますが、それが判らなくて困っています。
何か方法はありませんでしょうか?
577Now_loading...774KB:2007/04/03(火) 01:59:44 ID:Lw4+IE+u
>>572
>バッファ時間を設定して
ユーザーの回線速度を考慮してる?
インターバルするにしろ、読み込み完了のチェックをしてから次の処理に進む
ロジックが必要かと
578Now_loading...774KB:2007/04/03(火) 02:23:00 ID:qbvmyliN
そうか、回線速度を考えると1つのビデオごとに読み込むほうがいいんだね。
ということはビデオ2に行くときに映像が少し読み込むまで停止してるから
その間NowLoading・・・を表示するようにすればいいんですね。

やり方がまったくわからない・・・orz
579Now_loading...774KB:2007/04/03(火) 05:07:22 ID:Lw4+IE+u
>>578
>>577の回線速度...って意味をどこまで理解できてるかわかんないが、
ある人は光回線で一瞬でバッファされるだろうし、またある人は56K接続で
バッファまでかなりの時間を要するかもしれないって違いのこと。
低速回線および何らかの不都合で読み込みに時間を要した場合への配慮までするなら
時間制御だけでムービー2の開始をしてしまったらムービー1の読み込みが完了しないまま
ムービー2の読み込みを始めてしまうってこと。
580Now_loading...774KB:2007/04/03(火) 05:09:22 ID:Lw4+IE+u
if(初回起動){
ムービー1の読み込み開始&タイマースタート;
}

Now Loading...表示

if(ムービー1読み込み完了 && タイムアップ){
ムービー2読み込み開始;
ウェイトタイマー開始;
タイムアップ;
ムービー1再生開始;
}

if(ムービー2読み込み完了){
初回起動およびバッファ完了;
}

if(バッファ完了){
ムービー1再生;
ムービー2再生;
ムービー1再生;
・・・以下ループ;
}

流れ的にはだいたいこんな感じでいいと思ふ
581Now_loading...774KB:2007/04/03(火) 05:20:57 ID:Lw4+IE+u
少し抜けてたorz

if(ムービー2読み込み完了){
初回起動およびバッファ完了;
if(ムービー1再生終了){
ムービー2再生開始;
}
}

if(バッファ完了 && ムービー2再生終了){
ムービー1再生;
ムービー2再生;
ムービー1再生;
・・・以下ループ;
}
582Now_loading...774KB:2007/04/03(火) 08:35:01 ID:lfno4qtt
>>569
それがonLoadでエラーにならずに待ち状態になるんですよ。
しかも再度sendAndLoadをしてもCGIのリクエストがでないんです。

それで何とかタイムアウトさせれないか考えていますが、今のところ
うまくいっていません。
583Now_loading...774KB:2007/04/03(火) 09:56:17 ID:NaDurOWc
スクリプトの質問とはちょっと違うのですが失礼します

フラッシュ再生時に、多数の外部画像を読み込んで削除を繰り返します
ページを更新等一切せずに、フラッシュ再生中にまた画像を呼び出すとキャッシュを利用して即座に表示できるのでしょうか?

もちろん、個人個人のブラウザの設定等で変わるのは分かってますが
一般的にこの技は通用するか知りたいです
中々テストがしにくい内容なので・・・・

もし使ったことのある方いましたら教えていただきたいです
584Now_loading...774KB:2007/04/03(火) 10:44:52 ID:tmphfvVt
>>576
○月△日の前に何個改行があるかって事だろ?文字列処理のメソッドを調べてみる事

>>583
UA依存
585Now_loading...774KB:2007/04/03(火) 13:15:14 ID:fnkdReSU
>>583

一般的なブラウザで、一般的なユーザーなら
そう考えて問題ないかと。

ただ、まったく考慮しないで組むと
ファイルが見つからないと処理が進まないとかなるので、
最低限のエラー処理なりローディングは入れとくのが吉
586Now_loading...774KB:2007/04/03(火) 14:28:36 ID:a34e2bKa
>>582
CGIの読み込みも成功してるのでは?
不具合の判断はどうやってるの?
587Now_loading...774KB:2007/04/03(火) 15:41:24 ID:lfno4qtt
>>586
まず正常なCGIと何も返さないCGIを用意します。


正常動作のCGI(aaa.cgi)
#!/usr/bin/perl
require 'm_unit.pl';

print "Content-type: text/html\n\n";
$a = xxx;
print "data=$a";


わざと何も返さないようにしたCGI(bbb.cgi)
#!/usr/bin/perl
require 'm_unit.pl';

これでLoadVarsで正常CGIへsendAndLoadした場合はもちろん
正常にデータが取得できます。

その後何も返さないようにしたCGIへsendAndLoadを行います。
このとき何も返ってこないのは当たり前ですが、
これを2回以上繰り返し、その後正常CGIへsendAndLoadを
実行しても何も返ってこなくなります。

なのでLoadが完了せずおかしくなっているのではないかと
思っているところです。


588Now_loading...774KB:2007/04/03(火) 15:52:36 ID:a34e2bKa
>>587
たぶんAS側のプログラムミスじゃないかな。
そちらの方のソースが無いから何とも言えないけど、
loadVarsオブジェクトは正常用と返さない用にきちんと2つ作ってる?
589Now_loading...774KB:2007/04/03(火) 15:57:15 ID:CTZAUI1z
Flex初心者です・・・
質問させてください。

<mx:Canvas width="722" height="659" autoLayout="true" x="10" y="212">
<mx:Panel x="10" y="25" width="250" height="200"></mx:Panel>←パネル1
<mx:Panel x="10" y="235" width="250" height="200"></mx:Panel>←パネル2
</mx:Canvas>

上記のような状態で、マウス操作でパネル1とパネル2を入れ替えたいのですが、
どのようにすればよろしいのでしょうか?

サンプルソースがある場所でもかまいません、教えてください。
よろしくお願いします。
590Now_loading...774KB:2007/04/03(火) 17:04:35 ID:6bbfqdkK
>>587
そもそも何も返さないCGIって鯖エラの原因にならなかったっけ?
それを走らせてるだけで問題ってことはないのかな。
591Now_loading...774KB:2007/04/03(火) 17:27:34 ID:lfno4qtt
>>588
非常に簡単なスクリプトを作成してテストしてみました。

loadVarsオブジェクトは次のようになっています。

ソース

ボタン1
lon(release)
{
System.useCodepage = true;
myVars = new LoadVars();
myVars.data = "";

myVars.sendAndLoad("http://192.168.0.1/AAACGI", myVars);

myVars.onLoad = function (success)
{
if (success) {
Mes.text = MyVars.toString();
}
};
}

ボタン2
ボタン2もAAA.CGIの部分がBBB.CGIとなっているだけで
それ以外は全く同じものです。
592Now_loading...774KB:2007/04/03(火) 17:27:38 ID:sGoXC3ya
環境  WinMe  Flash5
目的  無作為に選んだ数値10個を小さい順に表示したい。

無作為に選んだ数値をd_1,d_2・・・・d_10として配列(Array)を作り
それをsortしてみましたがうまく行きません。
変数を数値に置き換えないとダメなんでしょうか?
変数を数値に置き換える方法は有りますか?
593Now_loading...774KB:2007/04/03(火) 17:57:02 ID:a34e2bKa
>>591
>if (success) {...
の部分でエラーの時、つまりelseの時はエラーメッセージを出力するとかするのでは?
そのソースだとどこがエラーなのか特定できないよ。
正しいときも何か固定で良いからメッセージを出力してみて、
「正しくて何も出力されない」のか、「エラーで何も出力されてない」のかまず判断。
594Now_loading...774KB:2007/04/03(火) 17:59:35 ID:a34e2bKa
>>592
どういうソースかを書く
595592:2007/04/03(火) 18:45:49 ID:xdSR6BrD
>>594
すいません。自己解決しました。
選出される数値に1桁と2桁の場合があり、
結果を見ていたら、一桁の数値が並べ替えの際に2桁目として認識されるようだったので
選出する数字の桁数を揃えたらうまく行きました。
ありがとうございました。
596Now_loading...774KB:2007/04/03(火) 19:00:57 ID:GEvkaa9f
>>591
送信用と受信用のLoadVars別にした方がいいんじゃないか?
597Now_loading...774KB:2007/04/03(火) 19:25:32 ID:a34e2bKa
>>595
解決したみたいだから参考までに。sort()のデフォルトは
辞書順だから、数値としてsortするときにはオプションを付ける。
some = [0,1,2,3,10,11,12,21,22,23,1000];
trace(some);
trace(some.sort());
trace(some.sort(Array.NUMERIC));
598Now_loading...774KB:2007/04/03(火) 20:10:52 ID:NaDurOWc
>>584-585
ご返答ありがとうございます
599Now_loading...774KB:2007/04/03(火) 20:32:30 ID:Qcx/Yi/c
>>597
それ、Flash5だと対応してないと思う
600Now_loading...774KB:2007/04/03(火) 20:40:06 ID:tmphfvVt
しらんがな
601Now_loading...774KB:2007/04/03(火) 20:44:10 ID:eHPKDhCx
flashをhtmlで読み込むようにしたのですが
マウスのポインタを移動させるたびにポインタの右下あたりにflashの名前が表示されてとっても気になるんですが
これはどうすれば表示しなく出来ますか?
602Now_loading...774KB:2007/04/03(火) 20:59:26 ID:a34e2bKa
>>599
さすがにfla5の環境無いので、とりあえず>>597の下に以下をコピペで。
わざと逆順になるように比較関数作ってる。
trace(some.sort(cmp));
function cmp(a,b){
if(a>b){
return -1;
}
if(a<b){
return 1;
}
return 0;
}
603Now_loading...774KB:2007/04/03(火) 21:34:24 ID:Lw4+IE+u
>>601
htmlのflashを貼りつけている何らかのタグのtitleプロパティにそのflash名が書かれているのでは?
604443, 462:2007/04/04(水) 00:18:23 ID:uI/q+ob4
>>443, >>462だが、

どうも、マウスの移動が原因みたいだ。
マウスを動かすとマウスの描画回数に合わせて全体のFPSが上昇するみたいだ。
高速で動かしたら、40fpsくらいまであがった。

マウスに追随するMCに、

onClipEvent (mouseMove) {....}

のイベントハンドラを記述してるんだが、
この中身が({...}の部分)空であっても同様の症状が起こり、
イベントハンドラごと消したら症状は消えた。

ちなみに、中にupdateAfterEvents();記述してもしなくても症状に変化はなかった。
取り合えず、MC上じゃなくてMC内のフレームに、

this.onMouseMove=function(){...}

に書き直せば動きそうだが、ちょっと移植が大変で躊躇してるんだけど、
このバグは既出じゃないのかな?

何か情報ある人教えてクレイバズーカ
605Now_loading...774KB:2007/04/04(水) 00:49:48 ID:nsxkrDL9
ActionScript3でソケット通信(UDP)を行うことは出来ますか?

ちなみに、Socketクラスを使ってTCPでの通信は行えました。
606Now_loading...774KB:2007/04/04(水) 01:02:34 ID:+wZV9IaZ
無理
607Now_loading...774KB:2007/04/04(水) 01:07:21 ID:aAap6y0F
FlashとPHPのデータのやり取りについて
詳しく解説しているサイトをご存知ありませんでしょうか?

FlashからPHPへデータを送信し、
帰ってきたXMLを読み込んで表示ということがやりたいのですが。
608Now_loading...774KB:2007/04/04(水) 01:41:19 ID:nsxkrDL9
>>606
うーむ、やっぱり無理ですか
仕方ないので、Flash⇔CGI⇔Javaで擬似的にUDP通信をすることにします
どうも返信ありがとうございました

>>607
flashからphpへのデータ送信について
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?qid=1410370564

解説というか掲示板だけど、
やりたいことは大体同じじゃないかなと思います。
参考になれば幸いです。
609Now_loading...774KB:2007/04/04(水) 11:36:43 ID:gQyU9ZSC
>>607
あんまり詳しくないけど↓参考。xmlでの返しはやってない
ttp://tasii.com/pw/index.php?ASenterPractice#qbe453dc
610Now_loading...774KB:2007/04/04(水) 12:35:39 ID:pH3g1hsz
>>589

Flex関係できいたほうがいいよ。
とりあえず、ViewStackのサンプルを見てみるといいかと。

それか、panel2つにidを割り振って、visibleを切り替えるか
611595:2007/04/04(水) 13:45:51 ID:YJrCbTdc
>>597  ありがとうございます。

>>602をやってみたのですが、

some=[d1,d2,d3,d4,d5]
trace(some.sort(cmp));
function cmp(a,b){
if(a<b){
return -1;
}
if(a>b){
return 1;
}
return 0;
}

これを頂きましたw

612Now_loading...774KB:2007/04/04(水) 18:11:30 ID:/Lae1gY2
ActionScript3で質問です。
TextFieldのrotationプロパティに数値を代入したのですが、0以外の数値を代入すると
文字が画面から消えます。AS3で文字列の回転は不可能なのでしょうか?
613Now_loading...774KB:2007/04/04(水) 18:12:25 ID:U8K4wnzx
>>612
デバイスフォントなんじゃね?
614Now_loading...774KB:2007/04/04(水) 18:27:32 ID:/Lae1gY2
>>613
どうもありがとうございます。埋め込みフォントを使わないといけないのですね。
日本語フォントはファイルサイズが気になると書いてあったので、フォントを画像に
変換して使用する事にします。
ありがとうございました。
615Now_loading...774KB:2007/04/04(水) 18:56:42 ID:pH3g1hsz
>>612

デバイスフォントを回転したい場合には、
Bitmap.drawで、デバイスフォントをビットマップに描画して
ビットマップを回転すればOK。

フォトショで画像ファイルとか作ると更新が面倒なので。
616Now_loading...774KB:2007/04/04(水) 18:59:24 ID:kqkQPv+t
すみません質問があります。
私は携帯用Flashを作っているのですが容量が足り苦しいのでASを簡略化できないかと思ってます。

if((a == 1) && (b >= 1)) {
 c = 1;
} else if((a == 2) && (b >= 2)) {
 c = 1;
} else if((a == 3) && (b >= 3)) {
 c = 1;
} else if...
(略)
} else if((a == 12) && (b >= 12)) {
 c = 1;
}

...と、ifとelse if合わせて12回条件式を入れているのですが、もっと簡単に出来ないのでしょうか?
FlashLite1.1でもfor文が使えるということでfor文が使えそうな気がするのですがいつもif文しか使わないのでよく分かりません。
trueの処理は全てc = 1;です。
良ければ返答お願いします。
617Now_loading...774KB:2007/04/04(水) 19:19:36 ID:pH3g1hsz
if(a==b){
618Now_loading...774KB:2007/04/04(水) 19:21:54 ID:pH3g1hsz
途中で誤爆・・・

if( b >= a ){
c=1
}

条件を見る限り、↑ほぼ解決。
必用に応じて、整数かどうかや、 aの範囲 1〜 12 の条件判定を入れればよいかと
619Now_loading...774KB:2007/04/04(水) 19:26:01 ID:54AGg8+7
書いてる途中で先越されたみたいだけど一応

if(a == int(a) && 1<=a && a<=12 && a<=b) c = 1;
620Now_loading...774KB:2007/04/04(水) 19:30:37 ID:kqkQPv+t
>>618
そうすれば良かったんですね。
大変勉強になりました。
返答ありがとうございました。
621Now_loading...774KB:2007/04/04(水) 19:35:15 ID:kqkQPv+t
>>619
同じく大変参考になりました。
返答ありがとうございました。
622607:2007/04/05(木) 01:14:10 ID:pfyVTyEl
>>608 >>609
遅くなりました。
ありがとうございます。
勉強してみます。
623Now_loading...774KB:2007/04/05(木) 10:13:28 ID:oCbDNYbv
flash8を使っております
以下の画像読み込みスクリプトを組んでいるのですが

var mcl = new MovieClipLoader();
_root.createEmptyMovieClip("img", 1);
mcl.loadClip(name, "_root.img");

読み込んだ後に画像のサイズを変更したいのですが
_xscaleなどの%指定ではなく、widthのようにピクセルを指定したいのですが上手くいきません
画像ではなくmcのサイズを変更してるからだと思うのですが、なにか良い方法は無いでしょうか
元の画像のサイズを拾えたら一番簡単だと思うのですが・・・
624Now_loading...774KB:2007/04/05(木) 10:20:31 ID:K4NWmxvL
width変更のスクリプトは?
625Now_loading...774KB:2007/04/05(木) 14:40:45 ID:zREVSKL5
>>596
いろいろやってみましたが、解決しませんでした。
今回はとりあえずあきらめます。

皆さん、ありがとうございました。
626Now_loading...774KB:2007/04/05(木) 14:43:36 ID:cIY9A1sz
>>623

これだけだとなんとも言えないけど、
ちゃんとロードチェック後の処理が書けてるのに動いてない場合には、
movieClipLoaderのonLoadComplete と onLoadInitの混同してる場合が多い。

onLoadCompleteはロード完了の瞬間に呼び出され、
まだロードされた画像やswfの初期化が発生してない為、
内部のプロパティにアクセスできない。

ロードした画像の_widthをいじくりたければ、
onLoadInit( loadedElement ){
627Now_loading...774KB:2007/04/05(木) 14:44:50 ID:cIY9A1sz
くそ、今日も途中で送信しちまった・・・
続きね。

function onLoadInit( loadedElement ){
loadedElement._width = 100
}

みたいに、onLoadInitのタイミングで行うとよろし。
628Now_loading...774KB:2007/04/05(木) 14:55:49 ID:oCbDNYbv
>>626-627
見事に言われたとおりのドツボに嵌ってたようです
無事、解決できました

ありがとうございます!
629Now_loading...774KB:2007/04/05(木) 15:43:27 ID:gxQNBLdR
質問させてください。
SendAndLoadでphpと変数のやり取りを行いたいのですが、
swfファイルの置かれたPCと同じLAN内の別のPCのphpファイルを参照できるのでしょうか?
http://192.168....などと指定したみたけど駄目でした
もしできるのであればurlの指定方法など教えて頂けたら幸いです。

そもそもswfとphpを同じディレクトリに置けば済む話なのですが、
サーバーがMacで、phpから利用できるwindowsのソフトと連動しようとしているため
このようなこととなっている次第です。
ネットワークの知識もない初心者のためおかしなことをやっているのかもしれません。
ですので、上で質問した方法が無理でも何かやり方があるようでしたら是非教えてください。

宜しくお願いします。

環境はFlash MX 2004です。
630Now_loading...774KB:2007/04/05(木) 16:18:16 ID:cIY9A1sz
試したことはないけれど、
別マシンがちゃんとWEBサーバーとして機能してるならば
理屈上はできると思われ。

その場合通信できない理由は、Flashのセキュリティーポリシー。
Flashは外部のドメインとは、相手側の許可がなければ通信できない。

で、192.168... の直下ディレクトリに、
↓みたいなcrossdomain.xmlというファイル(詳細はググって。)を置く必用がある。

ttp://amazon.co.jp/crossdomain.xml

テストなら全ドメインからのアクセス許可で↓みたいにする。

<allow-access-from domain="*"/>
631629:2007/04/05(木) 17:34:38 ID:gxQNBLdR
>>630
crossdomain.xmlファイルを置いてやってみたところできました。
具体的な指摘で非常に助かりました。

本当にありがとうございました。
632Now_loading...774KB:2007/04/06(金) 06:02:56 ID:l9Th6Opr
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7)

setInterval()による配列の呼び出しと変数の設定について質問です。

目的の動作の前に、_rootで定義したdata1[id](id=0〜4999、5000個)という
配列(データ群)があり、これを
function dataLoad() {
trace("id, data= "+_root.id+", "+_root.data1[_root.id]);
trace("this= "+this);
_root.id++;
}

on (release) {
trace("id0= "+data1[0]); //確認用
id = 0; //初期値に戻す
femtID = setInterval(dataLoad, 3000); //3000ms毎に関数呼び出し
}

によりtraceウインドウに表示したく思っています。実行すると、確認用traceは
正しい値を表示するのですが、肝心のsetInterval()呼び出しは3秒毎に

id, data= 4999, undefined
this= undefined
id, data= 5000, undefined
this= undefined

と出ます。どうしたものでしょうか? ※dataLoad()の位置もundefinedです。
633632:2007/04/06(金) 07:41:29 ID:l9Th6Opr
すみません。自己解決しました。

ムービー内の他の記述でidが4999になるように書いていたのが原因です。
634Now_loading...774KB:2007/04/06(金) 18:20:38 ID:h04dcxi3
FLASH LITE 1.1でindex.swf?test=12345等にアクセスした場合
12345の部分をフラッシュ内の変数に取り込む方法はないでしょうか?
635Now_loading...774KB:2007/04/06(金) 21:07:26 ID:sHbIt8iq
Flashで画面遷移を作ろうと思うのですが、
いくつか分からない事があるので質問させてください。箇条書きで失礼します。

1.フレームを移動する際、そのフレームで使った変数や関数のDeleteは必要なのかどうか
2.MCの中にASを記述するのは避け、出来る限りフレームアクションに記述するべきなのかどうか
3.フレーム間でコンポーネントに同じ名前を付けても平気なのかどうか
4.フレーム移動の際にイベントハンドラ(btn.onRelease = function()など)は消えるのかどうか

4.が消えないのであれば、3.は必然的にダメになると思うのですが、
試しにその状況を作ってみても、各ページのイベントは正常に動きました。
ただ、テキストエリアなどが、データの受け渡しもしていないのに、
前のフレームの同じ名前のテキストエリアからデータを受け取っていたりと
妙なことがあったのですが、やはりコンポーネントの名前は全てバラバラにするべきなんでしょうか?
636Now_loading...774KB:2007/04/06(金) 22:32:40 ID:63/M3yJa
>>635

>1
フレームを移動しても、変数、関数は残ります。
同名の変数、関数が移動先にある場合は上書きされます。

>2
フレームに書くと、スクリプトの存在が視覚的にわかる利点があります。

>3
同一のものを継続して使いたい場合はその通りでOK。
ただしコンポーネントのあるレイヤーのフレーム間に空白のキーフレームを置いたり、
レイヤーのフレーム内の要素を変えないこと。

■■■□□■

みたいに、途中に空白キーフレームがあると、
末尾の■は同一のコンポーネントとは扱われない。

>4
消えない。
コンポーネントが同一のものとして扱われていれば問題ない。
途中で空白フレーム経由で消えた場合は、
あらたにコンポーネントが出現したタイミングで再定義されてしまうる。
637Now_loading...774KB:2007/04/06(金) 23:38:49 ID:iS9KlnnJ
SharedObjectについて

1 文字列(""で囲ったヤツ)は保存されるのか
2 _root.でやったら全変数が保存されるのか

1はやってみたら文字列のみ保存できす、_rootは試した事ありません
ボスケテ
638Now_loading...774KB:2007/04/06(金) 23:44:15 ID:8P8wCUGi
>>637
どこからやろうと、dataプロパティにセットしたものは保存されるよ。
逆に、セットしなければ保存されない。
値は文字列でも配列でも数値でも保存できるよ。
使い方間違ってるんじゃねーの?
639Now_loading...774KB:2007/04/06(金) 23:50:10 ID:sHbIt8iq
>>636
ありがとうございます。レスを参考にいろいろ.flaを弄ってみたのですが、
「同一のものとして扱う」という使い方を全く知らなかったので、色々と勉強になりました。
ただ、また疑問点が・・・連続で質問して申し訳ないのですが、

逆に、フレーム間で同一のものとして扱わない場合は、同名は避けたほうがいいのですか?

自分で色々弄った感じでは、オリジナルからコピペしたもののみが同一と認められるようなのですが
万一に、同一扱いではない同名コンポーネントが、
スクリプトでのプロパティ変更などで同一のもとの扱われてしまって、
イベントを引き継いでしまうというようなことはあるんでしょうか?

それと、フレーム移動後も変数や関数が残るということは
上書きする予定のない関数や変数は、移動前にdeleteした方が
メモリ節約(?)などで速度アップに繋がるんでしょうか?
640Now_loading...774KB:2007/04/07(土) 00:08:51 ID:w8iJurbc
>>638
文字列については自分でやってみます。
できれば名前付きの全変数を保存する方法うp
641Now_loading...774KB:2007/04/07(土) 01:20:37 ID:2wgaFHBh
>>639

>同名コンポーネント
別として扱いたいなら、
バグの温床になるので同名は避けたほうがいいと思う。

コピペが厳密に同一として扱われるのは、
多分コピペしてフレーム等が切れてなければ、
オブジェクトの内部的なIDが同じ = 同一のまま変化してないと扱われるから。

それ以外のケースは、nameと同じ名前のタイムライン上の変数に
生成時に放り込まれてる感じ。
なので初期化は起きるけど、同じ名前で参照できる。
定義したイベントは持ち越されない。

>delete
理屈の上では、こまめに消したほうがいいけど
そのMC自体を消せば全部消えるので、それほど気にしなくても大丈夫。


>>640

for(var propName in object)
mySharedObject.data[propName] = object[propName]

これで、特定のオブジェクトの全変数をsharedObjectに注入
642Now_loading...774KB:2007/04/07(土) 12:19:55 ID:GSBLxEeu
>>641
セーブって
savedata=SharedObject.getLocal("file");
savedata.data.TOKUTEN=_root.TOKUTEN;
savedate.flush;
でやってんだけど、どうすれば?
643639:2007/04/07(土) 15:01:00 ID:aKhn+gVH
>>641
なるほど、同一扱いがどういうことなのか理解できました。
ただ、deleteの件なのですが、

>>そのMC自体を消せば全部消えるので、それほど気にしなくても大丈夫。

というのが、どういうことか分からなかったので調べてみたのですが、
ttp://chikura.fprog.com/?UID=1174532897
意味合いは違いますが、↑のページの上から7つ目のソースのように、
関数や変数を全て何かしらのMCのプロパティとして中に入れ、
フレーム移動の際にMCが消えるのを利用して、変数や関数も同時に消す、ということでしょうか?

それと、最後にもうひとつだけ…
フレーム間でデータの受け渡しする際に、同一扱いのコンポーネントを使わずに行う場合は
最初のフレームに、全ての受け渡しデータの保持用変数を作成し、
以降のフレームでのコンポーネントへのデータ挿入や、データの書き換えは、
最初に作成した変数を参照するようにしているのですが(最初のフレームに戻ったりで初期化しないように注意しつつ)
この書き方は問題ないのでしょうか? 参考になるソースも見つからず、自分で考えたものなので
何か「こうしたほうがいい」などがあれば指摘をお願いします。
644Now_loading...774KB:2007/04/07(土) 16:36:32 ID:AD241Op/
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7)

テキストフィールドの特定の文字列の色について質問です。

ダイナミックに生成される文字列(dataStr)をテキストフィールドtxt1
(インスタンス名:txt1_ins)に縦に、txt1 = txt1+dataStr+"\r"で

 あい12 
 うえ3456
 おか7
 ・・・
 ・・・
 きく89 ←

などとtxt1_ins.scroll++ で常時上にスクロールしながら表示しつつ新しく現れた
文字列(ここでは矢印の『きく89』)のみを青色にするにはどうしたらいいで
しょうか?(文字列は配列には格納されていません)
試しに dataStr.textColor = 0x00FFFF; としましたが駄目でした。

本を読むと、TextFieldクラスのsetTextFormat() で出来るようですが、これ
では引数として文字の位置を指定する必要があり、今回の場合では文字列
の長さが不定なので使えません(一応、ヘルプも読みました)。

アドバイス願います。
645Now_loading...774KB:2007/04/07(土) 17:33:44 ID:2wgaFHBh
>>644
setTextFormtでも、文字の位置を計算すればできそうな気はするけど・・・

てっとりばやくやりたければ、Flash8ならば
一番したの行の位置に色のついたMCを置いて、ブレンドモードで重ねたら?
で、スクロールした瞬間に表示して、フェードアウトさせる。

dataStrはStringだと思うので、textColorは使えないっす。
646Now_loading...774KB:2007/04/07(土) 17:40:09 ID:np5CLfrj
/:\.____\  / 対ガッ用超高性能ぬるボックスのテスト開始!
 |: ̄\(∩( ;゚∀゚) <   重いので持ち上げたり投げ飛ばしたりするのは不可能
 |:   |: ̄ ̄ ̄∪:| \ 耐熱耐寒耐水仕様、太陽に突っ込んでも大丈夫
            \そして中から鍵を掛けてあり鍵は粉々にした。
             \そしてもちろん合鍵は無い。
              \そして護衛用にフィン・ファンネルがいて
 \この世の全ての物(叩き人以外)を取り寄せられる!
                \___________
 
   _____     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 /:\.____\  / 圧力にも屈しない。外部からの衝撃で中の人間が死ぬ事もない。
 |: ̄\(∩( ;゚∀゚) <   宇宙空間でも大丈夫。酸素も食料も一生分ある。排泄物も秘密システムで処理できる。
 |:   |: ̄ ̄ ̄∪:| \ 箱は中からしか開かない。ふはははは、完璧すぎる。ぬるぽぬるぽぬるぽ!
            \ネジ?あるわけねーじゃん
             \もしもの時にはナイフで叩き人を・・・・・
              \___________

  _____      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 /:\.____\  / 対ガッ用高性能ぬるボックスのテスト開始!
 |: ̄\(∩( ;゚∀゚) <   ぬるぽぬるぽぬるぽぬるぽーーーーーーーー!
 |:   |: ̄ ̄ ̄∪:| \ ぬるポっぼぬるポぉぉぉぉぉぉぉぉぉぉぉ!!
             \___________
 
    バタンッ!! 
 ________
 |: ̄\      \   <ヌルポヌルポー!!
 |:   |: ̄ ̄ ̄ ̄:|
647Now_loading...774KB:2007/04/07(土) 21:11:52 ID:V3Rzv5dm
質問します。
環境:FlashMX2004
スリーミング再生の場合に、再生時間(my_sound.position)のリセットが上手くいきません。
2曲目を再生すると、再生時間が1曲目から加算されてしまいます。
何か方法はありますでしょうか。

hoge = hige.mp3; //変数(hoge)に音楽1の名前(hige.mp3)を入れる。
Time = 0; //再生時間を表示するテキストを0秒にする。

this.onEnterFrame = function(){
 Time = Math.floor(my_sound.position / 1000); //常に音楽の再生位置を、テキスト(Time)へ表示させる。
}
this.Play_btn.onPress = function(){ //再生ボタンを押した時、
 my_sound.loadSound(hoge,true); //音楽をロードし、ストリーミング再生する。
 my_sound.start(miniStop); //一時停止した位置(miniStop)から再生する。
 miniStop = 0; //一時停止した位置の情報をリセットする。
}
this.miniStop_btn.onPress = function(){ //一時停止ボタンを押した時、
 miniStop = Math.floor(my_sound.position / 1000);
 my_sound.stop();
}
this.Next_btn.onPress = function(){ //次の音楽選択するボタンを押した時、
 hoge = hage.mp3; //変数(hoge)に音楽2の名前(hage.mp3)を入れる。
 miniStop = 0; //再生開始時の位置を0秒にする。
}
上記のプログラムをウェブ上で実行した場合に、
音楽1を再生した後、音楽2を再生すると、音楽だけは0秒から再生するけれど
再生時間を表示するテキスト(Time)は、音楽1を再生し終わった時の秒数から加算されてしまいます。
648Now_loading...774KB:2007/04/07(土) 21:31:13 ID:NmTaLwvj
>>647
全然関係ないけど
loadSoundを再生ボタンを押した時に呼ぶのはまずくないか?
次の音楽選択するボタンを押した時に処理することを薦める
649Now_loading...774KB:2007/04/07(土) 21:50:07 ID:V3Rzv5dm
>>648
まずいですか^^; 一つのボタンで再生が2度行われているという点ですかね。
出来れば、音楽を選択するボタンにloadSoundを使わないようにしたいんです。
音楽の数がもっと多い場合を考えると。
650Now_loading...774KB:2007/04/07(土) 21:55:12 ID:YSjBxpDw
my_sound.loadSound(hoge,true);

my_sound = new Sound(this)
my_sound.loadSound(hoge,true); 

でいいんじゃね?
651Now_loading...774KB:2007/04/07(土) 22:14:49 ID:V3Rzv5dm
>>650
おお、そんな方法が! 有難うございます。
my_sound = new Sound();を実行すると、それ以前のmy_soundの情報は塗りつぶされるのだろうか…
とにかくやってみます。
652Now_loading...774KB:2007/04/07(土) 22:37:43 ID:V3Rzv5dm
>>650
駄目でした… ○| ̄|_
new Sound();以前のmy_soundに関わる処理が行われませんでした('A`)
653Now_loading...774KB:2007/04/07(土) 22:48:48 ID:V3Rzv5dm
不思議なことに、ストリーミング再生では無い時や、ローカルで再生する時はそのような現象は起こらないのです。
ロード時間があるのとで何かが違うのかな…
654Now_loading...774KB:2007/04/08(日) 00:44:02 ID:/riI4zTQ
>>649
ちがう。
音楽を再生するたびにファイルを読み込みなおしてどうする?
続きから再生なんかできんぞ?

>音楽を選択するボタンにloadSoundを使わないようにしたいんです。
>音楽の数がもっと多い場合を考えると。
意味不明。関数使え。
655Now_loading...774KB:2007/04/08(日) 02:17:26 ID:MridBIDF
便乗なんですが
例えば1フレーム目でloadSoundで1.mp3を呼んで
100フレーム目で2.mp3を読み込む設定にしてですね

再生時に仮に50フレーム通過あたりで
mute ボタン(Allsoundoff組み込み)を押しても
また100フレームで音鳴っちゃうのなんとか
ならないですか?
656Now_loading...774KB:2007/04/08(日) 03:05:46 ID:Ep/gKvAG
>>655
それはその時に鳴ってる音を「止める」って処理だから。
サウンドオブジェクトを生成してボリュームをゼロにしないと。
657Now_loading...774KB:2007/04/08(日) 10:17:08 ID:V1hAWX3J
>>654
>音楽を再生するたびにファイルを読み込みなおしてどうする?
次の音楽を読み込みます。
loadSound(hoge,true); //()内をtrueにすると、ロード中に再生され、
my_sound.start();が無くても再生ボタンの役割をするからです。
>続きから再生なんかできんぞ?
続きから再生したいのではなく、再生時間が続きからになっていて困っています。
次の音楽を再生しても、my_sound.positionが0にリセットされないので。
ストリーミング再生を行う場合の仕様なのでしょうか。
658Now_loading...774KB:2007/04/08(日) 10:49:30 ID:MbmgSQUk
>>657
soundインスタンスが1つだからその開始時からの経過時間なのでは?
>>650の言うようにnewして参照を変えればいいかもね。
659Now_loading...774KB:2007/04/08(日) 10:58:44 ID:V1hAWX3J
>>658
回答ありがとうございます、そうみたいです。
ストリーミングで再生中に別の音楽を同じsoundインスタンスでロードするとそうなるみたいで、
stopを含め、再生ボタンを押しても音楽1の再生終了を認識できていないようです。
>>650氏の言うように、毎回参照を変えるのも手かもしれませんね。
660Now_loading...774KB:2007/04/08(日) 11:50:15 ID:cZKbR8Ao
>>659

普通に新しくロードした音にアクセスできるのは、
mySoundがロード完了してから。

まだ古いSoundが有効だから、
ロード終わるまでそっちの値が参照されてる。

ローカルだとロードの待ち時間がないから、なんか動いてる。
ちゃんとサウンドのロードをコンプリートしてから、再生するようにして
ロード中は表示の更新とか、位置の更新とかロックしとけばOK
661Now_loading...774KB:2007/04/08(日) 12:21:48 ID:V1hAWX3J
>>660
有難うございます。
やはりロード完了してからですか… ○| ̄|_
どうりでストリーミング再生ではおかしくなってしまうのですね^^;
662Now_loading...774KB:2007/04/08(日) 12:50:48 ID:V1hAWX3J
出来たっぽいです━(゚∀゚)━!!
my_soundが有効なうちにmy_sound.start(0);を入れてみたところ、
sound.positionが上手く0にリセットされてくれたようです。
回答していただいた方々本当に有難うございました。
663Now_loading...774KB:2007/04/08(日) 21:23:30 ID:EzEy4Y1P
Actionscriptの最適化(高速化)について質問があります。

Papervision3Dを用いてDirextxのxファイルを表示するというスクリプトを組んだのですが、
毎フレーム呼び出して体をボーン単位で変形(アニメーション)させている関数
XFile.as内のtransFrame関数が大体40msecほど消費しています。

この関数自体の作り方が悪くて関数の実行が遅いのか、それとも元々ActionScriptでは
速度が稼げないのか判断がつけられないでいます。

識者の方々にこのスクリプトがまだ高速化できるのか、できるとしたら、どのあたりをいじる
と良いかをお教え願えませんでしょうか?


表示サンプルは
ttp://file.oquto.blog.shinobi.jp/XRead001.html

ソースは
http://file.oquto.blog.shinobi.jp/xfileRead_SRC.lzh
※Papervision3Dのソースは同梱していませんので各自用意してください。

作成環境は WindowsXP SP2 + Flash8 Basicです。
664Now_loading...774KB:2007/04/09(月) 08:51:14 ID:gX8QmVZo
>>663

Flash8で製作ってことはAS2だよな?
それならFlashのせい。

ActionScript3を使えば、ポリゴンの頂点は8000ぐらいまでならいけると思われ。
665Now_loading...774KB:2007/04/09(月) 09:40:30 ID:Tuz0HOoZ
そんな差が出るんだ。触ってみようかな。
666Now_loading...774KB:2007/04/09(月) 17:24:14 ID:FHNDzRGK
localconnectionが
sleipnirではうまくいくのに
IE6、firefoxではうまくいきません。
どんな原因が考えられますでしょうか?
667Now_loading...774KB:2007/04/09(月) 17:33:14 ID:y0T9mipR
>>666
それだけではなんと答えればいいのか誰もわからんと思う
IEで動いて..の話ならありそうだけど。
668Now_loading...774KB:2007/04/09(月) 17:35:52 ID:GrJR/syf
LocalConnectionはブラウザ依存の機能じゃないから、
特定のブラウザで動かないってのは考えにくいな・・・

同じIDのコネクションは1つしか存在できないから、
Sleipnirで開いてるときに、IEでも開いたら動かなかったとか
IEで同じページ別タブで表示して、ID重複したとか
そういうオチじゃないかと。
669Now_loading...774KB:2007/04/09(月) 17:53:23 ID:FHNDzRGK
ありがとうございます。
実は、別ウインドウを開くと、
子ウインドウswfから親swfに開かれたことが通知され、
通知を受け取った親から子に変数を送るというのをやっているのですが、
その送受信部分のソースだけを別ファイルに貼り付けてコンパイルするとIEでもうまくいくのです。
そのflashでは、ほかにloadvarsでphpとやりとりしてxmlを読み込んだりしているのですが、
いったい何がいけないのでしょう?
670629:2007/04/09(月) 17:53:30 ID:d+RP0VdC
以前このスレッドで質問させて頂いた629です。
状況が変わったので、似たような質問ですが再度質問させて下さい。

サーバーに置いたswfファイルから別のサーバーに置かれたphpファイルとsendAndLoadで連携を取りたいのですが、phpファイルを置くサーバーはローカル環境に存在しなければならないので、ルーターのポート8080番にそのサーバーマシンを繋ぐことで連携を取ろうと考えました。
そこで、

sendAndLoad("http://(ルーターのグローバルアドレス):8080/(ファイル名).php", オブジェクト名)

とアドレスを指定したのですが上手く行きません。
アドレスの指定方法が間違っているのでしょうか?あるいは、何か他の部分で問題があるのでしょうか?
初心者のため、全く見当違いなことをしているかもしれません。
分かる方がいらっしゃいましたら是非とも宜しくお願いします。

環境はFlash MX 2004です。
671Now_loading...774KB:2007/04/09(月) 18:10:24 ID:FGIjcwH+
ふと思っただけの事なのですが
シンボル変換でグラフィックを選択した場合、他2つに無い利点って何かあるのでしょうか?
672Now_loading...774KB:2007/04/09(月) 18:12:59 ID:GrJR/syf
サーバーは専門外なので違うかもしれないが

http://ipアドレス:8080/

で試してみたらうまくいくかもしれん。
ipが127.0.0.1なのか、接続したマシンなのかはわからんが。
673Now_loading...774KB:2007/04/09(月) 18:17:06 ID:GrJR/syf
>>669

子→親、親→子、どっちも動かないって認識でいいのかな?

もし、ほんとにブラウザ依存で起こるとしたら、
HTMLへのswfのEmbedのタイミング?みたいのしか思いつかない。

子のローディングが100%終わって
一瞬間を空けてから送信したら、
ひょっとしたら動くかもしれない
674Now_loading...774KB:2007/04/09(月) 18:19:54 ID:GrJR/syf
・単に複数まとめる入れ物として使うなら、グラフィックのほうが軽い
・オーサリングでフレーム番号指定して、表示を決定・プレビューできる
・実行時にMovieClipとは._parentの扱いが違う(グラフィックは存在しないものとして、その親が渡される)

3つめは利点というか、うまく使えば色々と便利。
675629:2007/04/09(月) 18:26:49 ID:d+RP0VdC
>>672
ありがとうございます。

せっかく回答して頂いたのに大変申し訳ないのですが、
私の指定方法とどう違うのでしょうか?

http://ipアドレス:8080/

の後にphpファイルを置いたマシンのローカルアドレスを加えるという意味でしょうか?

本当に申し訳ございません。
676Now_loading...774KB:2007/04/09(月) 18:35:18 ID:GrJR/syf
>>670 で、アドレス書いてないのと勘違いしてた・・・ スマヌ

とりあえず検証方法としては
getURLで、そのphpにアクセスできるかを確かめてみるといいかと。

getURLでブラウザにphpを表示できなければ、
そもそもサーバー関係で何かが間違ってる
ブラウザが開いて表示できたら、セキュリティー関係だと思われ。
677Now_loading...774KB:2007/04/09(月) 18:56:08 ID:Cty/8rmS
ttp://www.saturn.dti.ne.jp/~npaka/flash/as30/ShootingGame/
このゲームみたいに複数ファイルのソースをコンパイルするにはどうすればいいでしょうか?
678Now_loading...774KB:2007/04/09(月) 19:11:16 ID:SWrk510T
>>677
同じフォルダに入れて、普通にメインクラスをコンパイル
679629:2007/04/09(月) 19:14:18 ID:d+RP0VdC
>>676
ありがとうございます。

getURLで試してみたところ

While trying to retrieve the URL: http://ルーターのipアドレス:8080/ファイル名.php
The following error was encountered:
* Connection to ルーターのipアドレス Failed
The system returned:
(61) Connection refused
The remote host or network may be down. Please try the request again.

と返されました。
サーバー関係のネットワークの問題のようですね...。

もしまた何かお気づきの点があればご助言よろしくお願いします。
680663:2007/04/09(月) 19:31:54 ID:jhmxqnHo
>>664
回答ありがとうございました。

やっぱりAS2.0が遅いですか、、、
AS3.0に移植してみます。

折角Flash8 basic買ったのは無駄になりそうだ、、orz..
681Now_loading...774KB:2007/04/09(月) 19:36:49 ID:SWrk510T
>>680
FLEX用の埋め込みアセットとか作るにはFlashも必要っしょ
その用途にはBasicで十分だからちょうど良いんじゃない?
682Now_loading...774KB:2007/04/09(月) 20:20:48 ID:FHNDzRGK
うまくいかない...
loadVarsを使わなければうまくいったんですが、
もしかして、loadVars使った後は
localconnection使えないんでしょうか?
683Now_loading...774KB:2007/04/09(月) 20:47:12 ID:FHNDzRGK
あれ? 外と通信するに当たって
[グローバルセキュリティ設定] パネルで
「常に許可」に設定すると
以降localconnection使えなくなるんですか?
684Now_loading...774KB:2007/04/10(火) 08:49:33 ID:cuqEsbSL
AS2か3を学ぼうかと参考書を用意しました
書き方の違いは分かりましたが、使いどころが分かりません
デザイナー寄りなので、軽いアクションゲームや
関数を使ったモーションイメージ、ユーザーインターフェイス作成がメインです
今後を考えると新しいAS3がよいとは思うのですが、
上記の作成では、どちらを学べばメリットが多いのでしょうか?
685Now_loading...774KB:2007/04/10(火) 15:28:35 ID:71xC/OKe
今は時期が悪い
686Now_loading...774KB:2007/04/10(火) 15:32:10 ID:HWbLVxhc
wordWrap = true 、 multiline = true のダイナミックテキストに
textプロパティで長文を流し込んで表示させているのですが、
印刷すると改行がされません。どなたか対処法をご存知ありませんか?
687Now_loading...774KB:2007/04/10(火) 16:38:24 ID:b7PQiGXp
>>686
印刷方法が書かれていないので何とも言えないけど、
原文に改行がないなら改行されないと思うよ。
ヘルプでPrintjobあたり見てみればいいかも。
688Now_loading...774KB:2007/04/10(火) 17:22:43 ID:HWbLVxhc
あ、ごめんなさい。
改行ではなく、テキストフィールドの右端で文章を折り返して全文表示したいんですが
折り返されずに右端で切れてしまうんです。
助けてください。
689Now_loading...774KB:2007/04/10(火) 18:35:32 ID:HhhCXLHK
よろしくおねがいします。
下記のスプリクトは、大昔の雑誌に出ていてプルダウンメニューの
スクリプトなのですが、下記の部分の「"contents?"; 」の部分を
日本語に置き換えると、プルダウンメニューでは、表示されません(空白)。
この場合、日本語に置き換えるにはどの様に直せばよいでしょうか。
よろしくお願いいたいします。
onClipEvent (load) {
depth = 0;
flag = 0;
//親項目設定
reaf0 = 5;//親項目数
reaf1 = "contents1";
reaf2 = "contents2";
reaf3 = "contents3";
reaf4 = "contents4";
reaf5 = "contents5";
//子項目設定
//深さ1
reaf10 = 3;
reaf11 = "1-1";
reaf12 = "1-2";
reaf13 = "1-3";
reaf20 = 2;
reaf21 = "2-1";
reaf22 = "2-2";
reaf30 = 1;
reaf31 = "3-1";
reaf40 = 1;
reaf41 = "4-1";
reaf50 = 2;
reaf51 = "5-1";
reaf52 = "5-2";
690Now_loading...774KB:2007/04/10(火) 18:49:07 ID:cjNwObqv
>>689
多分、フォントを埋め込んで表示しており、日本語などは対応する文字が埋め込まれていないと推測。
その場合は必要な文字を埋め込む。
691Now_loading...774KB:2007/04/10(火) 19:06:43 ID:eMyE5F+4
>>690
お手数かけます。
その必要な文字列を埋め込むとは、具体的に伝授願えませんでしょうか。
たとえば、reaf2 = "contents2";をreaf2 = "リンク集"; などと書き換えると
表示されません。contents2のままですと、どのまま「contents2」と表示さ
れます。度々すみません。よろしくお願いします。
692Now_loading...774KB:2007/04/10(火) 19:38:14 ID:b7PQiGXp
>>688
複数行のつもりで実は単一行になってたとか
>>689
実行環境を書く
693Now_loading...774KB:2007/04/10(火) 20:11:40 ID:5I/LL2q7
>>691

多分ここで説明されるより、ヘルプで
「フォント 埋め込み」なんかで検索するほうが詳しいし正確。

ただ文章みてると、ひょっとしてMTASCとか非Adobe環境で製作してたりする?
その場合は仕様ツール名と、Font, Embed で英語でググればなんかあると思う。
694663:2007/04/10(火) 21:06:24 ID:bMkMaBhB
スクリプトをas2からas3に移植が完了したので報告を。

結果
14Fpsしか出なかったのが114Fps出るようになったwwwww
なんだこりゃw
695Now_loading...774KB:2007/04/10(火) 21:22:35 ID:kPXbzdRB
>663
見てみたいw うpよろ
696663:2007/04/10(火) 21:37:12 ID:bMkMaBhB
>>695
ttp://file.oquto.blog.shinobi.jp/XRead002.html

※ブラウザだと60fps程度に落ちるかも。
697684:2007/04/10(火) 21:38:55 ID:cuqEsbSL
AS3かAS3を学べばいいんだな!

>685
Flash4から5への時期みたいなもんすかね
5基準で作りたいのにクライアント絡みで4なんて時期もありました
698Now_loading...774KB:2007/04/10(火) 22:13:17 ID:kPXbzdRB
>>696
なんじゃこりゃあああああああwwwwwwww
はええ!!
699Now_loading...774KB:2007/04/10(火) 22:17:55 ID:cuqEsbSL
>695
すごい・・・
これってリアルタイムでレンダリングしてるの?
flashってこんなこともできるんですかぁーーー
どうすればこんな事出来るように成れるんですかぁーーー
700Now_loading...774KB:2007/04/10(火) 22:28:25 ID:kPXbzdRB
>>696
ねえねえ AS3のベクターの描画速度はどうなの?
ゲームとかアニメの
701Now_loading...774KB:2007/04/11(水) 00:21:05 ID:/jd2hLzz
>>694
8000頂点OKとか適当な数字言ったけど、
ここまで早くなるとは思わなかったwwwwww

AS3初挑戦っぽいから助言しておくと

・ループ分で配列の中にアクセスする時必ず 、var a:Hoge = Hoge( array[i] ) みたいに型変換をする。
・Object型、* みたいなダイナミック型は遅いので、なるべく使わない。
・単純な足し算に限り、int, uintはNumberよりも劇早。
・ボトルネックは常に描画、しかも面積。

とか意識してチューンナップすれば、もっとはやくなるんじゃね?

>>700
描画に関する処理速度は、AS2とAS3は一応一緒だよ。
速度が違うのは、Matrix変換等の内部処理。

702Now_loading...774KB:2007/04/11(水) 02:53:11 ID:AFWJox5y
ベクトルを使った交差(衝突)判定について教えてください。
ttp://hakuhin.hp.infoseek.co.jp/main/as/collision.html#COLLISION_00
このサイトをみているのですが、ページ真ん中あたりの

>とりあえず下の式で t が求まります。
>var d = -(ax * nx + ay * ny);
>var t = -(nx * x + ny * y + d) / (nx * dx + ny * dy);

の2行なのですが、この式がどこからでてきて何をやっているのかがわかりません。
この式を公式と考えてそのまま使えば衝突判定できるのですが、理解しないまま使いたくないのです。
よろしくお願いします。
703Now_loading...774KB:2007/04/11(水) 03:43:43 ID:97qhBSYc
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7)

フォントをMSP明朝に設定したテキストフィールド(TF)を3つ横に並べて
左のTFに数字、中央と右のTFに数字以外の文字列を表示させています。

このとき、同じフォントサイズでも、左のTFはExcelで言うところの上詰め
になり、中央と右のTFは下詰めの状態になってしまいます(つまり上下に
段差が出来る)。

対策を教えて下さい。



>>645
位置の計算で出来ました。有難うございます。
704Now_loading...774KB:2007/04/11(水) 05:48:57 ID:PkL4yBfs
>>702
ベクトルの内積について勉強する。もしくは線形代数かな。
>>703
スクリーンショットがないから何とも言えないけど、そんなもんじゃないのか。
705Now_loading...774KB:2007/04/11(水) 05:55:47 ID:MaZPjzm5
>>670=629
swf以前に2つの鯖同士でネットワーク通信は確立しているの?
706703:2007/04/11(水) 07:36:14 ID:ncXUeCip
>>704
レスありがとうございます。スクリーンショットをUpしました。
http://vista.o0o0.jp/img/vi7624429127.jpg

数字のTFと文字列(英文)のTFとの違いは、表示開始が右スタートか左スタート
かの違いです。
行数が多くなると、このように1行近くずれてきます。やっぱ、こんなもんでしょうか?
707Now_loading...774KB:2007/04/11(水) 07:42:24 ID:PkL4yBfs
>>706
動的に配置してるのか?同じテキストフィールドの属性じゃないんじゃないの?
縦に複数配置してずれると書かないとわからんだろ。
配置する位置の計算とかそういう問題になるでしょ。
708Now_loading...774KB:2007/04/11(水) 11:24:11 ID:Hrg3xBbM
質問です。
ASとは違うかもしれないんだけど…
http://www.nike.jp/running/v2/
このサイトって、たとえばトップからPRODUCTSとかに移動すると
Flash内のページ遷移はシームレスに行われてるぽいのに
アドレスは変わってるよね?(もちろん戻るボタンで戻ったりもできる)

これってどうやってるか分かる方いませんか?
709Now_loading...774KB:2007/04/11(水) 11:33:39 ID:p8K3Q/iA
>>708

JavaScriptに状態を渡して、
JS側でURL制御してる。

ブラウザでバック押したら、逆にイベントをFlashに伝えてる。

HTMLのソース見れば、やり方わかると思うよ。
710708:2007/04/11(水) 11:54:05 ID:Hrg3xBbM
>>709
なるほど。

<script type="text/javascript" src="js/history/dhtmlHistory.js"></script>
<script type="text/javascript" src="js/history/historyUtilBasic.js"></script>
<script type="text/javascript" src="js/history/historyUtil.js"></script>
↑ここらへんのJSぽいですね?

勉強します、ありがとう。
711Now_loading...774KB:2007/04/11(水) 13:28:03 ID:U3lGwjhN
>>692
お世話になります。
環境をどの様に書けばよいのか解っていないのですが、
Win XP studio MX
Flash でタイムライン上に、メニュー
frame action 名で、
タイムライン1
thistop()
タイムライン2
for(i=1;i<=reaf0;i++){
ty = _parent._y + i*15;
eval(i).dir = String(i);
eval(i).drop.drop(ty, 100);
}
this.gotoAndStop(_currentframe-1);
712Now_loading...774KB:2007/04/11(水) 13:28:42 ID:U3lGwjhN
graphics 名でボタンのグラ
botton 名でアクションボタン
on (press) {
if (flag == 0) {
for (i=1; i<=reaf0; i++) {
this.attachMovie("lib", i, i);
eval(i).tab = eval("reaf"+i);
eval(i)._x = _parent._x;
eval(i)._y = _parent._y;
eval(i)._alpha = 0;
}
flag = 1;
this.gotoAndPlay(_currentframe + 1);
} else if(flag == 1){
for (i=1; i<=reaf0; i++) {
eval(i).drop.drop(_parent._y, 0);
}
flag = 0;
}
}
もどってシーン1が最初に書いたスプリクトです。
何かヒントが有りますでしょうか?。
713629:2007/04/11(水) 14:42:39 ID:Gwno2XDW
>>705
ありがとうございます。

確立されていなかったです...。
apacheのポートにちゃんとフォワードされていなかったことが原因で、
8080でなく80にしたところできました。
ネットワークなどの基礎が全く分かっていないのが問題ですね...。勉強したいと思います。

ご助言ありがとうました。
714Now_loading...774KB:2007/04/11(水) 18:02:59 ID:nCKN8B+2
comboBoxコンポーネントのプルダウンメニューを
上下どちらに展開するか指定することはできますか?
715702:2007/04/12(木) 01:31:55 ID:x67qu6qB
>>704
ありがとうございます。線形代数でがんばってみます。
716Now_loading...774KB:2007/04/12(木) 10:08:38 ID:93nv27Y5
AS3てフレームアニメとかMCとか使えないの?
その辺詳しく解説してるサイト教えて先生
ググッても要領を得ないお
717Now_loading...774KB:2007/04/12(木) 11:27:24 ID:eVOejHCm
線形代数とか群論とか全部優だったけど、すっかり忘れたし、全然困らねえよ。数学できなかった奴に限って勉強しろと他人に薦めるから痛い。
718Now_loading...774KB:2007/04/12(木) 11:43:29 ID:90P0V9Rw
>>716

AS3でも多分、フレームアニメは使えるよ。
パブリッシュじのASチェックを緩くすれば、
型指定なしでも動く。

少なくともFlash9 Public Alphaではそう。
719Now_loading...774KB:2007/04/12(木) 16:34:35 ID:A77Cysbq
>>718
フレームアニメのベクター描画速度って少しは速くなるの?
720Now_loading...774KB:2007/04/12(木) 18:09:50 ID:hLbWPsjn
それはプレーヤー次第だからプレーヤーが同じなら変わらない。
721663:2007/04/12(木) 22:41:44 ID:TY9hTwXF
Flex2 SDK単体でコンパイルできる状態になったので
ソースとともに再うp

ttp://file.oquto.blog.shinobi.jp/XReadFlex.html

今回は60Fpsに設定してパブリッシュしたんですがブラウザだと40Fps程度しか出ない。
CPU使用率も50%に届いていないっていうのに、、
(使用ブラウザはスレイプニル2.5.9。 Flash Player9だとほぼ60Fps出る。)

なんでこんなに差が出るんでしょうか、、、
ActionScript触って1月程度だとわからんことが多すぎる、、orz..
722Now_loading...774KB:2007/04/12(木) 23:00:05 ID:hLbWPsjn
>>721
このファイルに限らず、ブラウザごとに速度が出たり出なかったりする傾向が。
スレイプニルはよくわからないけど、自分の環境(winXP)では
スタンドアロン>IE>firefox
という感じ。
723Now_loading...774KB:2007/04/12(木) 23:13:41 ID:dDlHXiXh
>721
IEのバグじゃないの?
ttp://3ping.org/2004/05/15/1441

HTMLに書いたらプニルIE7で60でたよ
<param name="wmode"value="opaque" />
724721:2007/04/13(金) 00:04:05 ID:TY9hTwXF
>>723
ものすごいレスの速さにサンクス!
早速試してみたらきちっと60FPS出た。(プニルIE7 とFireFoxで確認)

こういうノウハウほかにもないかちょっと興味が出てきたよ。
725Now_loading...774KB:2007/04/13(金) 00:19:23 ID:QRVMtSxs
>724
よければ教えて頂きたいのですが
SWFで3Dを表示して制御する技術って
何勉強すればいいんでしょう?

今は、swiftというソフトで、3dソフト(3dsMAX)から
アニメーションを吐き出して3Dを表現しています
もちろん、ただのベクタのパラパラアニメなので
制御は出来ません
726Now_loading...774KB:2007/04/13(金) 00:39:18 ID:aZ6TgvGt
>>725
+−×÷さえ解っていれば出来る
ttp://blog.dawgsdk.org/weblog/archives/410040
727724:2007/04/13(金) 00:50:51 ID:6DsrFTFg
>>725
今使ってるライブラリはPapervision3DっていうMITライセンスのもの。ぐぐると結構でてくる。
全部英語だけれどもサンプルがそれなりにそろっていたりするのでソースさえ読めれば何とかなる。

ポリゴンモデルを表示して移動させるだけならばPapervision3Dの使い方以外に覚える必要は特にない。
ボーン入りのモデルを動かすため(上にうpしたサンプルね)に覚えたことは以下。

0:ActionScriptとPapervision3Dの使い方。
1:XFILEからの読み込みを実現するためにxFileの構造と中身。
2:ボーンを使ってモデルを動かすために回転行列をちょっと。
3:ボーン入りモデルを作成するために3DモデラのBlenderの使い方をちょっと。

てか、わからないことが出たらその都度調べればいいとおもうよ。

ところで>>724氏はどれくらいのポリゴンモデル表示しようとしてるんだ?
1000とかそこらのローポリゴンモデルなら軽快に表示できそうだけど数万ポリゴンとかだったら多分無理だよ?
728Now_loading...774KB:2007/04/13(金) 08:54:58 ID:OUGblLTQ
phpやmysqlを使って記録をやりとりするサイトを作りたいのですが、

EUCの文字をflashに読み込むのはどうすれば良いのでしょうか?
System.useCodepage = true;
でShift_JISを読み込めるのは分かったのですが…

あとflashを使うにあたって経験的にオススメの文字ってありますか?
729Now_loading...774KB:2007/04/13(金) 09:31:25 ID:c8vKymZQ
>>728
FLASH自体はShift_JISかUTF-8しかサポートできない。
PHP等のCGI側でShift_JISかUTF-8の入出力に対応するしかない。

個人的にはMySQLからPHPまで全てUTF-8統一がお勧め。
やっぱShift_JISだと文字が表現しきれないケースに遭遇する時がある。
730Now_loading...774KB:2007/04/13(金) 10:08:31 ID:OUGblLTQ
>>729
ありがとうございます。
今後、エディターから全部、UTF-8にしていきます。
731Now_loading...774KB:2007/04/13(金) 13:13:21 ID:X2gehyyM
FPS落ちる問題の解決策がHTMLに
<param name="wmode"value="opaque" />
書けばいいということですがswf単体開かれた時はFPS落ちちゃうんですけど
swf単体開かれた時でも落ちない方法わかりませんか?
732Now_loading...774KB:2007/04/13(金) 16:19:58 ID:6HswxoGn
>>731
FPS以前にどういう形で動く、提供するということを前提にしてるの?
普通はhtmlから呼ばせる形だよね。
733Now_loading...774KB:2007/04/13(金) 16:32:01 ID:xqHazLvx
通常閲覧以外の動作保証はしないほうが精神的に楽だよw
734 ◆l2Ftd2iB76 :2007/04/14(土) 08:22:59 ID:dP+veFlS
おせわに成ります。
>>689>>711>>712
で質問したのですが、勉強不足でうまくお伝えできなく申し訳ありません。
下記に、サンプル(メニュー.fla)をUPしたので、よろしくお願いします。

http://www.dotup.org/uploda/www.dotup.org0940.fla.html

ダウンロードパスワードは、6458 です。

reaf1 = "contents1"; ←の「contents*」を日本語にしたい、直接編集すると表示されない。
reaf2 = "contents2";

です。何かヒント又は、こうすれば良い等アドバイスを頂けると助かります。
735Now_loading...774KB:2007/04/14(土) 11:18:29 ID:PnbYoujl
>>734

で、>>693 のいったことは試してみたの?
736Now_loading...774KB:2007/04/14(土) 11:57:04 ID:7scU6THD
>>734
だから、表示するテキストフィールドにフォントが埋め込まれてないって言ってるじゃん。
それがすべて。
どうして既に回答しているのに、また同じ質問するんだよ。
回答の意味がわからないなら、試したこと、調べたことと、それでもわからない部分を具体的に言ってくれ。
737Now_loading...774KB:2007/04/14(土) 12:02:03 ID:RWOw+GyZ
>>734
objectを選択、編集を選んでそのプロパティでフォントがArialになってる。
これを日本語表示できるフォント(MSゴシとか)にすれ。
738Now_loading...774KB:2007/04/14(土) 12:06:30 ID:RWOw+GyZ
>>737
追記:その後埋め込みする
739 ◆l2Ftd2iB76 :2007/04/14(土) 12:17:46 ID:dP+veFlS
>>736
>>737
>>738
いろいろありがとう御座います。
ご指摘のフォントは「menu」の文字のフォントで、ご指摘部分の
フォントをMSゴシック等に変更し、埋め込み後、contents*を
日本語に変更しても表示されませんでした。
何か手順が間違っているのでしょうか?。
すみません。
740Now_loading...774KB:2007/04/14(土) 12:29:39 ID:7scU6THD
>>739
本当にその通りにやったのであれば、表示される。
本当に必要な文字のフォントを埋め込んでるか?
埋め込む意味、方法はわかってる?
741 ◆l2Ftd2iB76 :2007/04/14(土) 16:22:25 ID:ppsbJSOL
>>740
アドバイスありがとうございます。
やはり表示されません、>>740さんは、ちゃんと表示できてる
という事は、何が悪いのかですね。なにかヒント頂けないでしょうか。
よろしくお願いいたします。
742Now_loading...774KB:2007/04/14(土) 16:37:02 ID:7scU6THD
>>741
上がってたファイルを開く

ライブラリに登録されているシンボルから、objectを選択

objectムービークリップには、レイヤーが4つある
そのなかにtextというレイヤーがある
textレイヤーに配置されたテキストフィールドを選択

フォントを日本語のフォントにする

文字…のボタンを押して、
「埋め込みなし」を選択するか(とりあえずこっちをおすすめ)
または「範囲の指定」を選択して追加文字のフィールドに必要な文字を打ち込む

パブリッシュプレビュー

これで出来なければ、何かを根本的に間違って理解していると思われる。
743 ◆l2Ftd2iB76 :2007/04/14(土) 16:59:31 ID:ppsbJSOL
>>742
表示されました、ありがとうございます。助かります。
基本が解ってませんでした、すみません。
さらに、お叱りを受けるのを覚悟で、クリックした先に
リンクするには、どのように設定すればよろしいでしょうか。
休日にもかかわらず、何度も申し訳ありません。
744Now_loading...774KB:2007/04/14(土) 17:19:10 ID:zW1iv2Fg
>>743
プロパティパネルの下のほうの大きい入力欄にURL
745Now_loading...774KB:2007/04/14(土) 18:09:20 ID:7scU6THD
>>743
object内にあるボタンにon(release)で、if (!_root.menu["reaf"+dir+"0"]) ならgetURL、
URLは自分の名称と親の名称から割り出して〜とかやればできるはずだけど
すまん、さすがにそれを説明するのは面倒くさいので俺はパス。

というか、このFlashそのものがfla4〜fla5くらいの旧式な作りなで
インスタンス名は数字にするし、配列アクセス演算子ではなくeval()使ってるし
テキストフィールドを変数にしてるしと結構めちゃくちゃなんであんまり深入りしたくない。
教材としてもおすすめしない。
いっそ一から作ってもらった方が早いかもしれん。
746Now_loading...774KB:2007/04/15(日) 05:51:03 ID:vF4TMnU0
質問です。
得意先からの依頼でFLASH8とかAS2を扱う機会があったのですが
その際にswfからflaファイルを作るようなツールを紹介されました。
調べてみたところswfはオープンフォーマットだそうですので
パブリッシュ関連の仕様は一般に知られているみたいですが
それにしてもこんなことができちゃっていいのか?と疑問に思ってしまいます。

ActionScriptの隠蔽性は無いに等しい、と考えてよいのでしょうか?
(Flashを生業としている方は、ご自分の技術をオープンにする覚悟で
 作品を発表されているのでしょうか?) 
それとも、隠蔽のための技術等も存在しているのでしょうか?

Classファイルまでは復元できない、みたいな逃げ道があったらなー、とか
AS3では何か事情が変わってる、とか、そういう期待的な妄想をしております。
747Now_loading...774KB:2007/04/15(日) 10:17:15 ID:ESHH31Fz
>>746

基本素っ裸だけど、
SWFEncryptというような、対デコンパイル用難読化ソフトはある。

ただ確実に、パスワード等の情報を生で埋め込むのはとても危険。

面白いSWF作ったら、
研究熱心な相手には確実にデコンパイルされて覗かれることは覚悟したほうがいい。


ただ一般にデザイナー肌の人が多いので、
盗んだりリバースエンジニアリングは暗黙のタブー視されてる傾向がある気がする。
基本的に狭い業界だから、クラス丸ごと盗んだとかバレたら、その後大変じゃないかと。
748746:2007/04/15(日) 14:40:12 ID:vF4TMnU0
>>747
SWFEncryptを調べてみたら、関連する話題を扱っている
サイトなども見つかって勉強になりました。
たいへん分かりやすい回答をありがとうございました!
749Now_loading...774KB:2007/04/15(日) 16:58:23 ID:qZxX684E
ActionScriptを使わなくても出来ることと使わなくても出来ることを詳しく教えてください
お願いします
750Now_loading...774KB:2007/04/15(日) 17:07:08 ID:ESHH31Fz
>>749

・使わなくてもできること
アニメーション、グラフィックデザイン

・使わないとできないこと
ユーザーの入力や外部データ等によって変化するコンテンツ
例:ゲーム、掲示板、ニュースフィード等
751Now_loading...774KB:2007/04/15(日) 20:35:39 ID:A9j7bLL2
>>750

ありがとうございます
もう少し詳しく言うとどうなりますでしょうか?
お願いします。教えてください
752Now_loading...774KB:2007/04/15(日) 20:38:19 ID:jNMZB8Ri
ある変数をコピーした状態にするスクリプトってありますか?
いわゆるコピペをワンクリックで行えるようにしたいのですが・・・
753Now_loading...774KB:2007/04/15(日) 20:38:25 ID:ESHH31Fz
ようは、なんか押したりしたらなんか起きるもんとか、
動作に判断が必要なものは、スクリプトが必要。

静止画やアニメーション流しっぱなしはスクリプトいらない
754Now_loading...774KB:2007/04/15(日) 20:40:07 ID:ESHH31Fz
>>752

Systemのなかに、クリップボードにコピーみたいな関数があったはず。
クリップボードへのアクセスや、ペーストは存在しないので、
テキストフィールドに流し込んだりする処理は、自力でやる必要がある。

Flash外でクリップボードにコピーしたものを、
スクリプトでペーストする方法はない。
755Now_loading...774KB:2007/04/15(日) 20:48:29 ID:jNMZB8Ri
>>754
おかげでSystem.setClipboardを見つけました
ありがとうございます
756Now_loading...774KB:2007/04/16(月) 12:09:36 ID:UB7UEbOt
質問させてください。

ボタンが10個くらい並んで横スクロールしているとします。(ずっとループします。)
ボタンにマウスを乗せたときにスクロールするスピードが落ちるようにするには
どんな方法がありますか?
サンプル集などみても近いものはありますが、ちょっと違っていて、
それを書き換えられる知識は私にはありません。
グローバル変数を使いフレームレートを変化させるというのが一番近い気がしたのですが
やはり思い通りに書き換えることはできませんでした。
簡単なことのようで検索してもサンプルが見つからず困っています。
どなたかよろしくお願いいたします。
757Now_loading...774KB:2007/04/16(月) 12:27:17 ID:6dgQj31o
>756
フレームレートはいじりません
横スクロールの方法は毎フレームに決まった数だけ移動させます
速度を変えるには、決まった数を減らせばいいです

・MCを横に動かす
・ボタンでMCを止めたり動かしたりする

最低これが出来てからじゃないと
話が始まらないと思うよ
758Now_loading...774KB:2007/04/16(月) 12:50:12 ID:Hw9+grPM
>>757のいってることが、できるのを前提にすると。

・横スクロールの値を制御する変数、 vx とかを定義する。
・毎フレーム、MCをvxだけ移動させる。
・マウスオーバーで、vxを2倍とかにする
・マウスアウトで、vxを半分とかにする

これでOK
759756:2007/04/16(月) 13:12:46 ID:UB7UEbOt
>>757
757さんのいっていることは一応できます。
ストップや再生のボタンを別に作るのではなく
ボタン自体が右から左にスクロールしていて左に消えていったボタンが
また右からスクロールしてくる無限スクロールのような状態で、
ボタンにマウスオーバーでスピードを落としたいのです。

>>758さん ありがとうございます。
難しそうですが、少し理解できました。
その変数を定義してスクロールさせた場合には、
上に書いたような無限スクロールは可能でしょうか?
決まった値ずつスクロールさせていき
ある位置で元のフレーム位置に戻せばいいのですよね?
760Now_loading...774KB:2007/04/16(月) 13:20:29 ID:Hw9+grPM
>>759

そだね。

if(myMc._x < 0)
myMc._x = 右端

みたいな感じで、左の画面外に出たら
右の画面外に移動させればOK.

元のフレーム位置ってことは、
トゥイーンでアニメーションさせてるんかな?
トゥイーンの場合、スクリプトで速度変えるのは難しいと思うから
onEnterFrameってので、毎フレーム _x を変えて移動させたほうがよいよ。
761756:2007/04/16(月) 13:37:33 ID:UB7UEbOt
>>760

ムービークリップはトゥイーンさせずに、変数で移動させるんですね。
その場合の変数で定義する移動距離は、
スクロールを元の位置に戻す場合の座標をきっちり計算する必要はあると思いますか?
762Now_loading...774KB:2007/04/16(月) 13:49:41 ID:Hw9+grPM
作り方によるからケースバイケースとしか
いいようがないかなぁ

個人的には

myMc._x = myMc._x + 速度

で移動させて移動させて問題ないと思う。

キレイにループさせたければ、MCの間隔を最初からループ前提で置くか、
左はしから消えたら、一番右の奴の隣に移動させるとか、
ちょっと工夫が必要かも。

とりあえず、挑戦してみてダメポだったらまた聞いてみればいいんじゃね?
763756:2007/04/16(月) 13:53:03 ID:UB7UEbOt
>>762

レスありがとうございます。
すでにステージサイズとボタンサイズが決まってしまっているので
きれいにスクロールさせるにはボタンの間隔とかで調整してみます。
とりあえず挑戦してみます。しつこく聞いてすみませんでした。
本当に感謝です。
764Now_loading...774KB:2007/04/16(月) 15:22:52 ID:c2kNy4WR
MCの縦幅を取得するにはどう記述すれば良いですか?
765Now_loading...774KB:2007/04/16(月) 15:35:06 ID:XeXuFjlw
>>764
MC名._height
766Now_loading...774KB:2007/04/16(月) 15:41:41 ID:c2kNy4WR
>>765
レスいただきありがとうございました!
767Now_loading...774KB:2007/04/16(月) 16:59:14 ID:XN/CXVog
Flash Lite2.0でのSharedObjectの使い方について質問させてください。

以下のようにあるクラスにおいてSharedObjectからデータを読み込んで
クラスのメンバ変数に値を格納したいのですが、コールバック内から
メンバ変数を参照できないためデータをコールバックの外へ渡す方法が
わかりません。(できるだけ_rootプロパティは使用したくないです)

どなたか解決方法をお知りであればご教授願えないでしょうか。

以下は現状のソースコードです。
class SOTest {
private var m_sharedObject : SharedObject;
private var m_dataDestination;

function SOTest() {
// SharedObjectを読み込む

// まずリスナーの登録
SharedObject.addListener("savedat", LoadSaveData);
// SharedObject読み込み開始
m_sharedObject = SharedObject.getLocal("savedat");
}

// データロード完了時のコールバック
function LoadSaveData(so : SharedObject) {
// m_dataDestinationにSharedObjectからのデータを格納したい
}
}
768Now_loading...774KB:2007/04/16(月) 17:26:51 ID:yvHRVeFD
>>767
Flash Lite2.0というか普通にShaardObjectを使ったswfを
作ったことあるのか?
769767:2007/04/16(月) 17:44:57 ID:XN/CXVog
>>768
FlashPlayer用のSharedObjectであれば同期処理が行われるので
問題なくデータを読み込むことができています。
しかしFlashLitePlayerの場合だとgetLocalメソッドが非同期処理で
かつaddListenerでコールバック関数を指定するようになっているため、
コールバック関数の中からデータを渡す必要があると認識しているのですが、
この認識は間違っているのでしょうか。
770756:2007/04/16(月) 20:04:00 ID:UB7UEbOt
>>756 です。
>>760 を試してみましたが、ムービークリップはうまくいきました。
しかし、ムービークリップにrollOverが使えずに行き詰まりました。

スクロールは変数の使い方がわからなかったので
MC_01.onEnterFrame = function() {
MC_01._x = MC_01._x-2;
if (MC_01._x < -430)
MC_01._x = 10;
}
こんな感じです。

これをマウスオーバーでスクロールスピードを落とすにはどうすればいいでしょうか?
771Now_loading...774KB:2007/04/16(月) 20:10:37 ID:Hw9+grPM
おぉ、大分全身したね。
そのやり方だと変数は

MC_01.speed = -1

みたいに定義できる。

で、onEnterFrame内とかで
MCが自分自身にアクセスするときは、
将来的にはthis を使うくせをつけとくといいよ。


//〜省略 onEnterFrameの中身
MC_01._x = this._x - this.speed

で、ロールオーバーは

MC_01.onRollOver = function(){
this.speed = -2
}

MC-01.onRollOut = function(){
this.speed = -1
}

みたいにすれば動くんじゃね?
772Now_loading...774KB:2007/04/16(月) 20:12:41 ID:Hw9+grPM
間違えた、ロールオーバーとアウトの中身逆ね。スピードはやくしちゃった
773756:2007/04/16(月) 20:34:26 ID:UB7UEbOt
>>771
このように書きましたところ、スクロールはするのですが、
ロールオーバーとロールアウトが動作しません。

MC_01.onEnterFrame = function() {
MC_01.speed = 2
this._x = this._x - this.speed;
if (this._x < -430)
this._x = 10;
}

MC_01.onRollOver = function() {
this.speed = 0.5
}

MC_01.onRollOut = function() {
this.speed = 2
}

間違っていますか?
774756:2007/04/16(月) 22:07:00 ID:UB7UEbOt
ガイド本とか読んでみましたが、
onEnterFrameはムービークリップに対するイベントハンドラで
onRollOverとonRollOutはボタンに対するイベントハンドラと書かれていました。
混在はできないということでしょうか?
775Now_loading...774KB:2007/04/16(月) 22:15:14 ID:6dgQj31o
>774
ロールオーバーで値を変えても
毎フレームにspeed=2が上書きされてますよ
要所にtrace("test");とでもいれて動作確認
776756:2007/04/16(月) 23:08:35 ID:UB7UEbOt
>>775

trace 調べて試してみました。
0.5と2が交互に出力されました。
フレームが移動する度に2で上書きされているのはわかりました。
試しにonRollOver時の値を10にしたところ、マウスオーバーした瞬間に速く動きますが
一瞬だけでした。
ボタンとしてのonRollOverが動作していることはわかったのですが、
上書きされないようにするにはどうすればいいのかさっぱりわかりませんでした。
もう知恵熱が出そうです。。
777Now_loading...774KB:2007/04/16(月) 23:29:52 ID:hokPESuB
>>776
onEnterFrame の中に MC_01.speed = 2 入れてるからじゃないの?
778Now_loading...774KB:2007/04/16(月) 23:31:46 ID:6dgQj31o
>776
外に出しちゃう
MC_01.speed = 2;
MC_01.onEnterFrame = function() {
this._x = this._x - this.speed;
if (this._x < -430)
this._x = 10;
}
779756:2007/04/16(月) 23:53:46 ID:UB7UEbOt
>>777,778
レスありがとうございます。

MC_01.speed = 2;
MC_01.onEnterFrame = function() {
this._x = this._x - this.speed;
if (this._x < -430)
this._x = 10;
}

MC_01.onRollOver = function() {
this._x = this._x - 0.5;
}

MC_01.onRollOut = function() {
this._x = this._x - 2;
}

これで試しましたがだめでした。
780756:2007/04/16(月) 23:54:53 ID:UB7UEbOt
Scriptを見ていて思ったのですが、この場合に変数は意味があるでしょうか?
最初にアドバイスをくれた方はonRollOverで変数を変えるといってました。
そこで
MC_01.speed = 2;
MC_01.onEnterFrame = function() {
this._x = this._x - this.speed;
if (this._x < -430)
this._x = 10;
}

MC_01.onRollOver = function() {
MC_01.speed = 0.5;
}

MC_01.onRollOut = function() {
MC_01.speed = 2;
}

としてみたら、ちょっと近い動きをするのですが、
ロールアウトした時に元のスピードに戻ったり戻らなかったり。
どう思いますか?
781756:2007/04/17(火) 00:00:44 ID:3ITAmVkh
連書きすみません。
>>780で書いたものをswfに書き出して再生したところ
思った通りになりました!
ムービープレビューだと負荷が大きくて動作が不安定だったようです。
レスしてくれた皆さん、本当にありがとうございました。
まだ、未完成ですがやっと次のステップに進めそうです。本当に感謝です!
782Now_loading...774KB:2007/04/17(火) 07:29:16 ID:mOeChYsT
>781
お疲れ様
いまの使用だと逃げるボタンを追っかけるから
使いにくいかもしれないね
距離によって速度を変えたり
透明な大きいボタンをおいて反応させやすくしたり
いろいろがんがってください
783Now_loading...774KB:2007/04/17(火) 08:35:27 ID:xSc1VGDZ
ユーザーの立場からすると、動くボタンは勘弁して欲しいけどね・・・
784Now_loading...774KB:2007/04/17(火) 11:10:29 ID:zyK7zxvB
プロジェクタへの書き出しについて質問でつ(mx2004)

上の方に出る「Macromedia Flash Player 7」の部分を作品のタイトルに書き換えたいんだけど無理?
その下の「ファイル」「表示」「制御」「ヘルプ」も消したいんだけど無理?
ヘルプのパブリッシュの項見たけど詳しく書いてないんだお ウワアアアアン
785Now_loading...774KB:2007/04/17(火) 11:12:56 ID:d/G2kQ7x
>>784
基本的に無理。
その部分を書き換える方法はあったと思うが、Flash外の話。
786784:2007/04/17(火) 11:51:00 ID:zyK7zxvB
>>785
レスdでつ

fscommandでコンテキストメニューを消せました! 
でも消すとウィンドウのサイズを自動で調節してくれなくて上下に隙間ができてかっこ悪いでつ

「Macromedia Flash Player 7」の表示変更はやっぱ無理でつか… アレ出るとかっこ悪いよね? 今は9なのに
プレーヤーが古いの? とか Adobeに変わったはずじゃないの? とか ユーザーが混乱すると思う

Adobeの中の人はきっとここ見てるはず
なんとかしてお〜age
787Now_loading...774KB:2007/04/17(火) 14:20:01 ID:HiG63PNn
>>786
Stage.scaleMode
788Now_loading...774KB:2007/04/17(火) 14:53:44 ID:Atj14L5h
>>786

仕事でやってるのか趣味でやってるのか知らんが、
仕事ならzincを買っとけ。

flashのexeのインストーラー作ったり、
スクリーンセーバー化したり
枠透明にしたり、
ローカルファイルにアクセスできるように拡張してくれる。

というかなんでもできる
789Now_loading...774KB:2007/04/17(火) 14:54:35 ID:Atj14L5h
790Now_loading...774KB:2007/04/17(火) 16:52:48 ID:b5TkZTza
FLASH MX2004 でAS2なのですが、
複雑なポリゴン(総ポリゴン数:80000とか)のオブジェクトをFLASH上で毎フレームレンダリングさせ制御するのと、
あらかじめレンダリングしておいた16色GIF画像を読み込んでアニメーションするようにして、
このモーションは何フレームか、ってのをスクリプトで制御するのとでは、
動作としてはGIF画像を使ったアニメーションの方が軽いですか?

もしFLASH上で毎回3Dをレンダリングしたほうが早いのであれば、
>>663の方のように3DデータをFLASHへ移行できるものを買おうと思ってるのですが。
791Now_loading...774KB:2007/04/17(火) 17:26:10 ID:Atj14L5h
>>790

8万ポリは無理。
792Now_loading...774KB:2007/04/17(火) 18:08:52 ID:b5TkZTza
>>791
どうも返信ありがとうございます。
やっぱり画像を使って擬似3Dとしてやっていきます。
793Now_loading...774KB:2007/04/17(火) 18:51:27 ID:kjatGmWN
ブラウザの窓サイズを変えてもmenuBar_mcが表示窓の下端に追従するようにしたいのですが
勢い良く窓を広げたりすると変な位置でmcが止まったり、どうもうまく動いてくれません
そしてhtmlで表示するとmenuBar_mcが消えてしまいます
間違っている所等どうかアドバイスをお願いします

var viewSizeY:Number = Stage.height;
var menuY:Number = menuBar_mc._height;
Stage.scaleMode = "noScale";
Stage.align = "T";
var sizeCheck:Object = new Object();
sizeCheck.onResize = function() {
menuBar_mc._y = viewSizeY - menuY ;
viewSizeY = Stage.height;
updateAfterEvent();
};
Stage.addListener(sizeCheck);
794Now_loading...774KB:2007/04/17(火) 19:05:48 ID:tBzhCFRD
>>789

こんなの無理w
解説サイトでもあればなー…
795Now_loading...774KB:2007/04/17(火) 19:34:44 ID:0pJ6d/Ub
>>794
読めなくてもなんとかなるぞ。
トライアルでいろいろ遊べる。

wmvファイル外部で読み込んでながせるのはおもしろい。
これでMacだけじゃなくwindowsでもフルスクリーンがあればいいんだけどな。
Macだとフルスクリーンあっても動画読み込めねーし。そこら辺が微妙
796Now_loading...774KB:2007/04/18(水) 17:27:57 ID:8bjZfsKt
http://flashrave.org/as/button_on/index.html

HPのメニューボタンをこの作り方で5つ作りました。(ALL FLASHではありません)
それぞれリンクを貼ったのですが、それぞれ反映してくれません。
レイヤーは5つに分けてそれぞれボタンを配置しています。
on (rollOut) の後はこれではいけないのでしょうか?
間違っていたらタイムラインを利用して作成したボタンにリンクを張る方法を教えてください。
宜しくお願いいたします。



on (rollOver) {
 _root.BU_01.gotoAndPlay("START");
}

on (rollOut) {
 _root.BU_01.gotoAndPlay("END");
}

onClipEvent (load) {
getURL("mail.html");
}
797Now_loading...774KB:2007/04/18(水) 18:07:57 ID:gR1hjd+v
>>796
on (rollOver) {
this.gotoAndPlay("START");
}
on (rollOut) {
this.gotoAndPlay("END");
}
on (release, releaseOutside) {
getURL("hoge.html");
}

MCに書くのひさしぶりだな。
798Now_loading...774KB:2007/04/18(水) 19:26:59 ID:8bjZfsKt
>>797
ありがとうございます。解決しました!
久しぶりというと、もう古い手法なんでしょうか?
799Now_loading...774KB:2007/04/18(水) 20:01:44 ID:EL0k3PiE
>798
オブジェクトアクションだとあちこちに書くから管理しにくい
フレームに一まとめに書いたり
BU_01.onRollOver=function() {
this.gotoAndPlay("START");
}
classの共有で別ファイルにAS2式とか
別にどれでもええ
800Now_loading...774KB:2007/04/19(木) 10:22:01 ID:eid0jMFU
プルダウンメニューでフリーを探しているのですが、
著作権表示があったり、ムービーファイルだけだったりと・・
どこか御座いませんでしょうか。
801Now_loading...774KB:2007/04/19(木) 10:40:52 ID:nXW4MBjJ
>>800
Flashだったら標準でぷるだうんコンポーネント付いてくるだろ。
802Now_loading...774KB:2007/04/19(木) 11:14:20 ID:eid0jMFU
>>801
すまん、何処にあるのか教えてくれー。
803Now_loading...774KB:2007/04/19(木) 11:16:04 ID:hUsbf75B
>>802
ウィンドウ→コンポーネント
804Now_loading...774KB:2007/04/19(木) 12:16:12 ID:2ZsjLHq7
>>799
すいません、798ですがこのMCボタンにピピッとかいう音を付けるのは
どうすれば良いのでしょうか?
いろいろ調べたのですが検索の仕方が悪いのか出てきません・・・

805Now_loading...774KB:2007/04/19(木) 14:12:03 ID:hUsbf75B
>>804
btnSE1 = new Sound();
btnSE1.attachSound("rolloverSound"); //rolloverSound=リンケージ識別子
btnSE2 = new Sound();
btnSE2.attachSound("pressSound"); //pressSound=リンケージ識別子
//
on (rollOver) {
btnSE1.start(0);
this.gotoAndPlay("START");
}
on (rollOut) {
btnSE1.stop();
this.gotoAndPlay("END");
}
on (press) {
btnSE2.start(0);
}
on (release, releaseOutside) {
btnSE2.stop();
getURL("mail.html");
}
とかでいいんじゃないかな。
リンケージ識別子は検索するなりヘルプで。
806Now_loading...774KB:2007/04/19(木) 15:22:28 ID:2ZsjLHq7
>>805
ありがとうございます!!!
本当助かります!!
807Now_loading...774KB:2007/04/19(木) 23:02:00 ID:ISUL9wic
Action Scriptをプログラムがよくわからない人でも使えるようになるような
ソフトを作りたいのですがどうすればいいと思いますか?
イメージとしてはActionScriptの辞書のような物です。
例えばボタンを押したら移動というのを入力されたら
myButton.onRelease = function(){
_root.square1._x += 10;
};
と出力されるようなものを作りたいんです。

なにかいい案や開発に使えそうなソフトなどないでしょうか?
808Now_loading...774KB:2007/04/19(木) 23:06:48 ID:etSfsQ1Q
>>807

html+css+php

メモ帳があればできる。
809Now_loading...774KB:2007/04/19(木) 23:24:51 ID:eIACzYEl
>>807

FlashのExtensionというものを調べるといい。
XULというXML言語とJavaScriptで、Flashの簡易プラグインみたいなものを作れる。

XULっていうHTMLもどきでインターフェース作って、JavaScriptでシンボル配置したり
スクリプトを挿入したりファイル操作できる。

これでやるとFlashと一体化できるから一番よいと思う。

ボタンを押したらというのも、XULで距離とかの入力ポップアップを作って
OKを押したら、JavaScriptで入力した値をとって、
キーフレームにプログラムを挿入みたいにすればできる。

ヘルプでFlash 拡張 XUL Javascriptあたりで調べるべし
810Now_loading...774KB:2007/04/20(金) 01:50:35 ID:U8brzRM0
ASでインスタンスを作成する方法について、質問させてください。
ある本に、ASでムービークリップからインスタンスを作成する例として

id = this.getNextHighestDepth();
_root.attachMovie("MCSCENE01", mc_scene01, id);
_root[mc_scene01]._x = 100;

のような例が載っていたのですが、なぜ _root[mc_scene01]._x という表記になるのでしょうか?
どうしても _root.mc_scene01._x になるはずでは・・と考えてしまいます。
[ ] は配列で使用する記述だと思うのですが、
_root[mc_scene01] という記述も配列なのでしょうか?

ASで作成したインスタンスと、[ ] 記述との関係を教えていただきたいのです。
よろしくお願いします。
811Now_loading...774KB:2007/04/20(金) 02:18:43 ID:6ygpDY4P
>_root[mc_scene01] という記述も配列なのでしょうか?
そのとおり
812Now_loading...774KB:2007/04/20(金) 04:06:39 ID:dBx6CQb9
>>810
連想配列でググる。ヘルプには結合配列とかで書いてあると思う。
813Now_loading...774KB:2007/04/20(金) 04:13:21 ID:P+8K7S01
mc_scene01は変数だが、この例の前のどこかで代入されてるんじゃね?

たとえば var mc_scene01="mc"; とか書いてた場合、
_root.attachMovie("MCSCENE01", mc_scene01, id); で生成されるのは
_root.mc となり、当然 _root.mc_scene01 ではアクセスできない。
このとき _root[mc_scene01]は_root["mc"]を指し、_root.mcと同義になる。
814810:2007/04/20(金) 07:02:50 ID:PQKH096g
ありがとうございます。
「 _root["mc"]を指し、_root.mcと同義に... 」
これを理解していませんでした。
ペルプも検索してみます。
感謝です!!!
815Now_loading...774KB:2007/04/20(金) 09:21:59 ID:MruDyyOC
質問失礼します
flash8を使用してます

ライブラリにあるボタンを配置して、その後functionで受け取った変数によって
ボタンをクリックしたときに色々な動作を起こさせたいのですが上手くいきません

function set_bt(X, Y){
  _root..attachMovie("bt", "bt", 0);
  _root.bt._x = X;
  _root.bt._y = Y;
  _root.bt.onPress = function() {
    trace("test");
  };
}

試しにこのようなスクリプトを書いたのですが、やはりトレースアクションが動きません
設置、x,y座標設定はちゃんと動いてるので関数自体はちゃんと動いてるようです
onPressをファンクション内で解決するのはどうしたら良いのでしょうか
スクリプトによって多数のボタンをばらまくため、事前にタイムラインに書くことが困難なので・・・
816815:2007/04/20(金) 09:22:53 ID:MruDyyOC
すみません、動きました
僕の勘違いだったようです
817Now_loading...774KB:2007/04/20(金) 10:22:34 ID:H5W5ytC0
netStream.onStatus = function(infoObject) {
 if (infoObject.code == "NetStream.Play.Stop") {
  netStream.seek(0);
 }
};

外部flvをこんな式でループ再生したいんだがスムーズにループしない。
ほんのコンマ何秒ガクって止まるのは仕様?

818Now_loading...774KB:2007/04/20(金) 22:50:13 ID:RWsDJokN
>>809
すいませんヘルプで調べてみたんですが何をどうすればいいのかよくわかりませんでした。
お手数ですがどのようにしてやればいいのか、何を参考にしてやればいいのか具体的に詳しく
教えていただけないでしょうか?どうかよろしくお願いします。
819Now_loading...774KB:2007/04/21(土) 00:06:34 ID:XX1dhb3j
>『よくわからない人でも使えるようになるようなソフトを作りたい』

ってまず自分がよくわかってないんじゃないのか。。
820Now_loading...774KB:2007/04/21(土) 00:07:50 ID:a9Ohy2wu
821Now_loading...774KB:2007/04/21(土) 15:00:31 ID:cdbNGT+N
_root.UnitData["unit001"].Name="";
_root.UnitData["unit001"].Class="戦士";
_root.UnitData["unit001"].Lv=17;
_root.UnitData["unit001"].EXP=75;
_root.UnitData["unit001"].HP=415;
_root.UnitData["unit001"].MP=340;
_root.UnitData["unit001"].AT=320;







と、書くのは手間が掛かるので、なんかいい方法ありませんか?


822Now_loading...774KB:2007/04/21(土) 16:49:03 ID:2W2vjWjS
>>821
手間ってのがよくわからんがこういうこと?

_root.UnitData = new Object();
_root.UnitData.unit001 = new Object();
_root.UnitData.unit001 = {Name:"", Class:"戦士", Lv:17, EXP:75, HP:415, MP:340, AT:320};
trace(_root.UnitData.unit001.Class);
//trace 戦士
823Now_loading...774KB:2007/04/21(土) 17:01:49 ID:IA3hMP83
初めまして。
フラッシュとかはじめてなので教えていただけたら幸いです。
ツールを使ってFLVファイルの動画サムネイル(100×100)を大量に作成します。
それを動的に組み合わせてビデオギャラリーのように並べてHPで表示させたいのです。
コマンドラインツールでFLVを再生するだけの簡単なSWFをコンパイルしてそれをTableタグで
表示しようかと考えております。

もちろんひとつのSWFでコマを割って表示するのが王道だと思うのですが、そこまでの
スキルがありません。

以上のような非常にシンプルなスクリプトを書きたいのですが、これで何行ほどの
コードになるでしょうか?
もしどこかにサンプルがあればご紹介いただけると幸いです。

またメモリやトラフィックの問題でそもそも無理というアドバイスなどご意見をお願いします。
過去レスを読んでもなにがどう応用できるのかさっぱりという状態です。
なるべく簡単な方法を教えてください。お願いします。
824Now_loading...774KB:2007/04/21(土) 17:11:28 ID:a9Ohy2wu
>822の方法でもいいし、可読性をもうちょっとつけたいとかの場合は

var u1 = _root.UnitData["unit001"]
u1.Name=""
u1.Class="戦士"
.
.
.

ではどうよ?
825Now_loading...774KB:2007/04/21(土) 17:11:56 ID:IA3hMP83
>>823
追記です。
使用ツールはffmpeg→MTASCという予定です。
ffmpegのようなコマンドラインツールでswfファイルが作れたらそれが一番
簡単だと思いますが、調べてもわかりませんでした。よろしくお願いします。
826Now_loading...774KB:2007/04/21(土) 17:15:47 ID:29ES/a4p
>825
完成形が想像できない
827Now_loading...774KB:2007/04/21(土) 17:16:23 ID:2dHn98bE
>>821
var character = _root.UnitData["unit001"];
character.Name="";
character.Class="戦士";



とか。
実行速度もこうしたほうが821の書き方より速いはず。

>>822
_root.UnitData.unit001 = new Object();
の行はいらないかもね、次の行がObjectの生成だから。
828Now_loading...774KB:2007/04/21(土) 17:17:02 ID:2dHn98bE
うは、被ったorz
829Now_loading...774KB:2007/04/21(土) 17:41:44 ID:IA3hMP83
>>826
100×100のswfにムービーサムネイルが表示されてて、
それを複数表示したい、ということです。
複数表示の部分はサーバーサイドスクリプトでなんとか
やれそうなので、最小単位のswfのコードの書き方だけ
ご指南いただければと・・・。
説明がわかりにくくて申し訳ありません。
830Now_loading...774KB:2007/04/21(土) 17:43:30 ID:cdbNGT+N
>>822
["Unit001"]が["Unit999"]までぐらいあるから

ありがとうございます
831Now_loading...774KB:2007/04/21(土) 17:51:26 ID:a9Ohy2wu
>>823

はじめてのFlashでイキナリMTASC使って、FLVを埋め込みって
なかなかチャレンジャーだな。

純粋な行数だと、プリロード、再生、ループ、エラーハンドリングで
多くて20行じゃね?

大量にFLV作るなら、FLVロードするプレイヤー1個作って、外部からFLV読むほうが
負荷もトラフィックも、管理、修正も全然楽かと。
832Now_loading...774KB:2007/04/21(土) 17:52:22 ID:I8Ohw2gH
>>830
クラス作って、値代入用のASはエクセルとかから書き出したら?
833Now_loading...774KB:2007/04/21(土) 17:56:15 ID:cdbNGT+N
建前:>>822方で地道にやりますよ

本音:詳細教えれ
834Now_loading...774KB:2007/04/21(土) 17:59:15 ID:IA3hMP83
>>831
ありがとうございます。

サムネイルの配置がかなり動的なので一つにまとめるのはムリポということです。
20行でなんとかなりますか!ありがたい。
835Now_loading...774KB:2007/04/21(土) 17:59:43 ID:a9Ohy2wu
まず>>833お前の技術力をおしえれ

・AS1 か AS2 か?
・AS1ならprototypeは使えるか?
・AS2ならクラスは使えるか?
・外部データのロードはやったことがあるか?

とりあえず、その辺に応じて策を考える。
836Now_loading...774KB:2007/04/21(土) 17:59:47 ID:fhpl/GCX
データをクラス化してデザインパターン使って性格付けしてった方がいいんでね。
837Now_loading...774KB:2007/04/21(土) 18:05:28 ID:cdbNGT+N
>>835
AS2常用
クラスなんてなんのことやら
画像とかmp3とかloadMovieなら経験アリ

こんなところ
838Now_loading...774KB:2007/04/21(土) 18:14:30 ID:IA3hMP83
サンプルめっけました。

// NetConnection オブジェクトを作成する :
var netConn:NetConnection = new NetConnection();
// ローカルストリーミング接続を作成する :
netConn.connect(null);
// NetStream オブジェクトを作成し、onStatus() 関数を定義する :
var netStream:NetStream = new NetStream(netConn);
netStream.onStatus = function(infoObject) {
status.text += "Status (NetStream)"+newline;
status.text += "Level:"+infoObject.level+newline;
status.text += "Code:"+infoObject.code+newline;
};
// NetStream ビデオフィードを Video オブジェクトに割り当てる :
my_video.attachVideo(netStream);
// バッファ時間を設定する :
netStream.setBufferTime(5);
// FLV ファイルを再生する :
netStream.play("videoFile.flv");

ここからスタートしてみます。
ありがとうございました。
839Now_loading...774KB:2007/04/21(土) 18:19:53 ID:a9Ohy2wu
>>837
LoadVarsで、外部のテキストデータ読むのが楽だな多分。

LoadVarsは name=value&name=value&... しかロードできないって思われがちだけど、
実は myLoadVars.onData = function(data){} で、生のテキストデータを読める。

これでエクセルとかで作った外部データを読むと楽かと。
で、テキストを myString.split(",") とかで、コンマや改行で分割して配列化して
for文のループでいっきに注入するといいんじゃないかと。

for(var i=0; i< データ配列.length; i++)
{
var unit = {}
_root.UnitData["unit" + i] = unit
//ここでデータ注入
}


職業とかは、名前を直接いれるんじゃなくて

var classes = ["戦士","僧侶","魔法使い"]

みたいに、クラス名用の配列とかを用意して

_root.UnitData["unit001"].Class= 0

みたいに、配列のインデックス番号だけ突っ込む。
こうするとclasses配列の名前かえるだけで、全データの職業名とかを修正できる。
クラスの基本パラメーターや特殊能力なんかも、まず配列にいれて
ユニットには配列番号だけ渡しておくと、番号変えるだけて転職とかできるよ。
840Now_loading...774KB:2007/04/21(土) 18:24:13 ID:cdbNGT+N
よっしゃ 本腰入れてやってみますわ

FGFギャー
841Now_loading...774KB:2007/04/21(土) 18:30:39 ID:cdbNGT+N
ASはわかったけどテキスト側はどうしましょ?
842Now_loading...774KB:2007/04/21(土) 18:41:53 ID:a9Ohy2wu
俺だったらの例な

ID, NAME, CLASS, MAXHP....
Number, String, String, Number...
0, "あべ", "そうり", 123...
1, "こいずみ", "そうり", 45...
2, "おぶち", "そうり", 0...
3, "もり", "そうり", 7...

みたいな形にするかな・・・
1行目に変数名
2行目に変数の型
3行目からデータ

で、データをロードしたら・・・

1: まず改行をsplitして各行を配列化。
2: つぎにコンマをsplitして、各行のセルも配列化。
3: 1行目と2行目を、配列から取り除く。
4: forループ文でオブジェクトに、1行目から抜き出した変数名へ、2行目から抜き出した型で、3行目以降のデータを注入する。

多少メンドクサイが、データを汎用的に注入できる処理なので
一度作れば、モンスターだろうが魔法だろうが、まったく同じ方法でデータ管理できるかと。
843Now_loading...774KB:2007/04/21(土) 18:54:59 ID:cdbNGT+N
>>842
それメモ帳でもおk?
エクセルが見当たらない;
844Now_loading...774KB:2007/04/21(土) 18:57:12 ID:a9Ohy2wu
メモ帳でもOK。
ここまで教えたんだから、FGF期待してるからなwwwwwww
845Now_loading...774KB:2007/04/21(土) 18:58:58 ID:cdbNGT+N
任せておきなさいな


今Fateやってる
846Now_loading...774KB:2007/04/21(土) 19:23:33 ID:gkLhl0YI
>>842
あべって強いのな
847Now_loading...774KB:2007/04/21(土) 19:36:21 ID:6hn3WR4F
0ってカワイソス(´・ω・`)
848Now_loading...774KB:2007/04/21(土) 19:47:07 ID:cdbNGT+N
おぶちはティウンティウンしちゃってるから

Fate止めてパソ画面と睨めっこ中
849Now_loading...774KB:2007/04/21(土) 19:59:48 ID:KJufdjEU
ボスケテ……なんでか全然わかんない

「keyPress "<Enter>"を認識しない」
環境:Flash8 Basic XPhsp2
on (release, keyPress "<Enter>"){
this.nextFrame();}
ってアクションをボタンに割り当てて、
パブリッシュしてるんだけど……
Flash画面内を何度クリックしても、
Enterキーでは先に進まないんだ
ヒット領域をクリックすれば当然のように動作する。
何か他に仕掛けが必要なのか?
850Now_loading...774KB:2007/04/21(土) 20:09:33 ID:29ES/a4p
>849
必ず [ 制御]-[ キーボードショートカットを無効] を選択してください。
851Now_loading...774KB:2007/04/21(土) 20:10:58 ID:0SvO6PKu
>>849
キーリスナー

>>821
まずUnitDataは配列じゃダメなの?プロパティ名に全部unitって付いてて、変わるのは番号だけでしょ?
それからClassは予約語だから使っちゃだめ。
unitData = new Array(
{name:"あべ", className:"そうり", maxHP:123},
{name:"こいずみ", className:"そうり", maxHP:45},
{name:"おぶち", className:"そうり", maxHP:0},
{name:"もり", className:"そうり", maxHP:7}
);
trace(unitData[2].name); //"おぶち"

FGF参加予定です
852849:2007/04/21(土) 21:04:22 ID:KJufdjEU
>>850
ムービープレビューじゃないんだパブリッシュしてるんだ

>>851
addListener()を使うほど大それた場所じゃないんだが……
それしか方法がないなら……そうします……
853Now_loading...774KB:2007/04/21(土) 23:28:43 ID:cdbNGT+N
「FLASHPlayer内のスクリプトが原因で処理が遅くなってます」って
出るんですが具体的にどういった処理を書くとでるんですかね?

自分で臭いと思ってる処理
onClipEvent (enterFrame) {
for (i=0; i<51; i++) {
if (this.hitTest(_root.map[_parent._parent.army+i].model.hitObj)) {
if (_parent._parent.AP>=_parent.SP) {
_parent._parent.SP = _parent.SP;
_parent._parent.weapon = _parent.weapon_label;
_parent._parent.gotoAndPlay("攻撃");
} else {
trace("AP不足で行動不能");
_parent.gotoAndStop("なし");
}
}
}
}
armyってのが敵のMCの名前でSPとかAPは無視しちゃって
ちなみに敵1人につきこの処理が4つぐらいある。(敵は5人
854Now_loading...774KB:2007/04/22(日) 00:38:38 ID:zcMTxGFr
>>853

無限ループっぽい奴とかじゃね?
1フレームでhitTest51回くらいじゃ、落ちないと思う。

ただ敵5人4っつって・・・
51 * 4 * 4 = 1000回hitTest... これはちょっと重いかもわからんね。

どういうタイプのゲームかによるけど、
シューティングやアクションRPG程度のゲームだったら
マス目の位置をチェックしたり、
円で衝突判定をやったほうが圧倒的に軽いと思われ。

見てると当たり判定じゃなくて、攻撃の範囲(?)判定っぽいし。
855Now_loading...774KB:2007/04/22(日) 13:46:28 ID:QaxNyUst
あまりにも初歩的な質問だけど、全く原因が分からないので私を助けて
Flex SDK 2 @ WindowsXP なんだけども、Embedで画像を埋め込んで表示させるのがうまくいかない
package {
  import flash.display.*;
  public class Tester extends Sprite {
    [Embed(source='teset.jpg')]
    private var g:Class;
    public function Tester() {
      var sprite:Sprite=new g();
      addChild(sprite);
    }
  }
}
っていうasなんだけども、埋め込むのが上のようにJPEGやGIF,PNGだとだめ(表示されずに背景のみ)だが
SWFやSVGだとちゃんと表示される
ファイルサイズを見る限り、ちゃんと埋め込まれてはいるんだけども・・・

ちゃんと表示さすには、どこを修正したらいいか、どこを勘違いしているのかあったら教えてください
856Now_loading...774KB:2007/04/22(日) 13:54:34 ID:RXtgSStS
>>855

試してないから間違ってるかもだけど、
画像ならSpriteじゃなくてBitmapじゃね?
857855:2007/04/22(日) 14:02:13 ID:QaxNyUst
はい表示できたーウシャシャシャシャシャシャwwwwwwwwwww
なるほど、あー、なんかいろいろ納得しました
ありがとうございました>>856
そこを踏まえてもっかいじっくりリファレンス読んできます
858Now_loading...774KB:2007/04/22(日) 19:40:25 ID:sYg3mSTR
すみませんが教えてください。

入力中のテキストをリアルタイムに
外部swfファイルに表示させたいのですが
どのようにしたらよいか検討がつきません・・・
LocalConnectionを使って外部swfに表示はできたのですが、
ムービークリップアクションのイベントでは
なにか特定の動作をしなければ反映できず、リアルタイムとはいきませんし・・・。

ご存知の方よろしくお願いします

環境
FlashMX2004
859Now_loading...774KB:2007/04/22(日) 22:01:25 ID:zcMTxGFr
テキストフィールどはchangeだか、onChangeだかでイベント取れるので、それを使うんだ。
LocalConnection使えるぐらいなら、テキストのイベントハンドラぐらいかけるよな。
860Now_loading...774KB:2007/04/22(日) 23:10:18 ID:ZGWP+aHo
質問フェイズは終了してないぜ!

味方のデータを
Party1="unit001";
Party2="unit002";
Party3="unit005";



Party10="unit073";
こんな風に管理してるんだけど

・自動的にパーティにユニットを加える場合、
一番最初の空欄(Party内)に値を代入する方法
(Party4まで埋まっていた場合、Party5に値を代入する
・パーティからユニットをはずした場合、
自動的に空欄を埋める方法
(Party7を空欄にしたら8が7に、9が8にって具合

どうかよろしく
861Now_loading...774KB:2007/04/22(日) 23:12:58 ID:7LftOYkt
>>860
Array.prototype.push
862Now_loading...774KB:2007/04/22(日) 23:16:09 ID:ZGWP+aHo
>>861くやしく

そっただ標準語はわからんとですだ
863Now_loading...774KB:2007/04/22(日) 23:16:37 ID:14LyJn/l
>>860
どういう構造か知らんから適当言うけど、partyって配列でも作って管理したら?
要素が多いならクラス化でもしないとマジきついと思うがだいじょぶか?
864Now_loading...774KB:2007/04/22(日) 23:17:00 ID:zcMTxGFr
まずパーティ管理に配列を使う
party = new Array()
party[0] = "unit001"

な、

後ろに追加する場合、
party.push( "unit002" )

削除する場合
party.splice( removedPosition ,1)

>>861
なぜにプロトタイプ?
865Now_loading...774KB:2007/04/22(日) 23:17:02 ID:L4wdGp+u
>>860
配列にしたほうが良いと思うんだぜ?
//初期化
var party=[];
party[0]="unit001";
party[1]="unit002";
//追加
party.push(newUnit);
//削除
party.splice(deleteIndex,1);
866Now_loading...774KB:2007/04/22(日) 23:18:41 ID:L4wdGp+u
また被ったんだぜ?orz
ヽ(`Д´)ノもう来ねえよ!
867858:2007/04/22(日) 23:51:32 ID:5qgLQaFS
>>859
ありがとうございます
onChange使ってやってみます
868838:2007/04/23(月) 00:02:56 ID:QUGXttTq
またお知恵を拝借しに来ました。
前回の件は結局最新のffmpegがswfを吐けるということで一気に解決したのですが、
そのswfのonclickイベントをjavaで拾いたいのです。
今は強引に透明gifをかぶせてやってますが、とても人様に見せられません。

生成されたswfにさらにコードを埋め込むことってできますでしょうか?
できないとしたらやっぱりflvを生成してコードをコンパイルしないといけないですが、
そもそもjavaにイベント渡すことってできますでしょうか?
要するにliteboxみたいなスクリーンレイヤーを表示するんですけど。
(それら含めて全部Flashはとてもミリ)
869Now_loading...774KB:2007/04/23(月) 00:12:35 ID:hh9JSF6z
ようは
ttp://www.fladdict.net/app/hatenatube
みたいな使い方をしたい、って認識でOK?

なんでJavaが出てくるのかわからんけど
ぶっちゃけFlash to Java は難易度高いよ。
まずFlashからJavaScriptにブリッジして、
JavaScriptからJavaに渡さなきゃならん。


FlashからJSへの通信は、
ExternalInterfaceクラスを使うか、
AdobeLabにあるAjaxBridgeみたいな名前のフレームワークを使う。

SWFhへ外部からパラメーターを渡す方法は、
PHP等からHTMLのEMBEDタグにFlashVarというのを使って渡す。
870Now_loading...774KB:2007/04/23(月) 00:18:39 ID:hh9JSF6z
あ、ミス FlashVarsね
871Now_loading...774KB:2007/04/23(月) 00:28:40 ID:kYnCKKpl
FlashVarsなんて聞いたことない。
872838:2007/04/23(月) 00:36:56 ID:QUGXttTq
>>869
おお、そんな感じで、サムネイルが動くと。そういうイメージです。
なるほど・・・
その線で調べてみます。ありがとうございました。
873838:2007/04/23(月) 00:43:30 ID:QUGXttTq
>>869
MTASCでコンパイルする場合
ExternalInterfaceを使うべきでしょうか?
fscommandを使うべきでしょうか?
874Now_loading...774KB:2007/04/23(月) 01:07:08 ID:hh9JSF6z
>>873

どっちでもいいと思うけど
最近の流れだとExternalInterfaceみたい
875639:2007/04/23(月) 01:28:21 ID:ItNu69vl
>>863
オブジェクト思考を勉強中なんですが、是非そのクラスを使った際のソースを見てみたい…
>>860を見ても通常の配列しか思いつかなかったんだけれど
クラスにするとどのような利点があって、どんなスクリプトになるんですか?
876Now_loading...774KB:2007/04/23(月) 02:00:13 ID:1vc/Vw3Z
AS2.0で関数に、
二重配列のうちの1列だけを渡すにはどうしたらいいん?

var arr:Array=[[0,1,2],[3,4,5]];
hoge(arr[0]);

function hoge(arr:Array){
trace(arr[0]);
}

って感じで今書いてるんだけど、
traceの結果はundefinedでちゃんと渡せてないみたい。

ヘルプとかサイトで調べてみても、
配列の渡し方について見つけられんかった。(´・ω・`)

スマンが誰か教えてくれい。

877Now_loading...774KB:2007/04/23(月) 02:53:34 ID:l7l2PHQs
>>876
すでに1列渡ってる。
1列渡したんだから、arr[0]が存在するわけがない。

function hoge(arr:Array){
trace(arr);
}
878Now_loading...774KB:2007/04/23(月) 03:51:31 ID:1vc/Vw3Z
>>877
いや、2重配列のうちの任意の1列って意味なんだが…。

javaで言えば、
public static void main(String args[]){
 int i[][] = new int[2][2];
 i[][]の初期化;

 disp(i[1]);
}

static void disp(int[] arr){
 System.out.println(arr[1]);
}

こういうことなんだけど、
どうにもAS2.0だと渡せてないようなんだ。
879Now_loading...774KB:2007/04/23(月) 06:24:27 ID:dfGaoXRE
>>875
ソースというか昔書いたサンプルだけど↓でも参考。
オブジェクト指向ならJavaを勉強すると良いよ。
http://tasii.com/pw/index.php?ASenterBasic#ecfb82bd
http://tasii.com/pw/index.php?ASenterPractice#f75738d2
>>876
普通に0とtraceされるけどな。
hogeの中でtrace(arr);してみそ。
880838:2007/04/23(月) 10:06:21 ID:/AcnpstM
>>874
ありがとうございました!
881Now_loading...774KB:2007/04/23(月) 10:53:04 ID:uLhobT07
めちゃくちゃ初心者ですがお願いします。

まず、時刻(a)を取り出し、その後ボタンを押す事で時刻(b)を取り出し、
(b)-(a)で経過時間を出すプログラムはどのようにしたらいいのですか?

882Now_loading...774KB:2007/04/23(月) 11:27:14 ID:knbqJxKA
FLASH MXでGETURLを指定しています。
ボタンを選択して、そのボタンに記述していますが
実行されません。反応が何も無い状態です。
パブリッシュ設定も、バージョン6に設定しています。
下記でヤフーに飛ぶようにしたいのですがなぜ動かないのでしょうか?
わかるかた教えてください・・・

on (release) {
getURL("http://www.yahoo.co.jp");
}

環境はWindows XPです。FLASH MXを使っています。
883Now_loading...774KB:2007/04/23(月) 12:07:28 ID:ItNu69vl
>>879
オブジェクト配列のことでしたか
何かこうArrayクラスを使わなくてもいいような管理クラスがあるのかと思いまして。
でも何かと参考になりそうだったのでお気に入りに保存した。ありがとう
884Now_loading...774KB:2007/04/23(月) 13:13:16 ID:1vc/Vw3Z
>>877>>879

うあー。動いた。
配列定義の部分を#initclip〜#endinitclipで括ってたんだけど、
こいつが正しく機能してないみたいだった…。

申し訳ない。助かりました。
885Now_loading...774KB:2007/04/23(月) 13:26:08 ID:EBvJWvZi
今Flashのお試し版Flashを使ってお試し期間が終わった後、買ったらいい
Flashの製品名とかバージョンとかを教えてください
現在のお試し版の機能があれば十分です。
886Now_loading...774KB:2007/04/23(月) 14:38:53 ID:mj+BjkhR
>885
スレ移動お願いします
Flash製作初心者の質問スレッド レイヤー36
ttp://pc11.2ch.net/test/read.cgi/swf/1173006099/
887Now_loading...774KB:2007/04/23(月) 14:59:45 ID:T3hZkVEl
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7)

SharedObjectのSOLファイルで質問です。

localSO = SharedObject.getLocal(saveName1, "/");
localSO = SharedObject.getLocal(saveName2, "/");
・・・
・・・
などとして、saveName1,saveName2,・・・ というSOLファイルにlocalSO.flush()
で書き込んだ後、ディレクトリ内のSOLファイルの一覧を作成することは可能でしょ
うか?
イメージとしては、WordやExcelなどでの ファイル→開く(一覧を見る) みたいな
感じです。
888887:2007/04/23(月) 15:07:13 ID:T3hZkVEl
すいません。 上の書き方では誤解を招きそうなので、修正します。

希望の一覧形式はGUIのような高度なものでなく、単純にSOLファイル名のみ
をテキスト形式で表示するだけで結構です。
889Now_loading...774KB:2007/04/23(月) 15:10:30 ID:XhqUY4hz
できないからSOL名管理用のSOL作ってそれ経由で管理
890Now_loading...774KB:2007/04/23(月) 18:12:41 ID:30/LYJcp
solのパラメータ見るだけならフリーのGUIツールがいくつかあるよ。
891Now_loading...774KB:2007/04/23(月) 18:44:07 ID:QZRYDxfT
FLASH MX 2004なんですが、テキストデータを読み込んで、
そのテキストデータ内にある変数の中の文字列から「<br>」が幾つあるかを検索したいのですが、
どういう風にActionScriptを記述すればいいでしょうか?

よろしくお願いいたします。
892Now_loading...774KB:2007/04/23(月) 18:45:18 ID:Ggb1K1U1
>>891
split
893Now_loading...774KB:2007/04/23(月) 18:51:32 ID:T6B8IJsb
on (press) {
_root.gotoAndStop(1);
}


子swfから親swfへ命令したいのですが(どちらもレベル0)、
flash8ではこれでは稼働しません。(7以下では動きます)
どう書き換えればいいのでしょうか?
よろしくお願いいたします。
894Now_loading...774KB:2007/04/23(月) 19:30:43 ID:4SmGDVDM
ルートはswf自身の_root を参照する仕様。
swf自体を入れ子にしている場合は、 lockRootというものを調べてみるべし

あるいは _levelo0 めがけて、gotoAndStop送るとか
895Now_loading...774KB:2007/04/23(月) 19:31:14 ID:4SmGDVDM
_levelo...ってなんだよ
レベロ・・・

誤字おおいな俺。
896893:2007/04/23(月) 20:03:28 ID:T6B8IJsb
勉強してみます!ありがとうございました
897891:2007/04/23(月) 20:31:55 ID:QZRYDxfT
>>892
ありがとうございます!splitを使って出来ました!
898Now_loading...774KB:2007/04/23(月) 22:15:00 ID:TvTXhiqA
>>807を書いたものです
皆さんの色んなアドバイスありがとうございました。
ちょっと英語が出来ない僕としては
http://www.adobe.com/cfusion/exchange/index.cfm?view=sn110#loc=en_us&view=sn110&viewName=Adobe%20Exchange&avm=1
のどれをダウンロードすれば僕のやりたいことが出来るのかわからないのですが
どれを使えばよいのでしょうか?
899Now_loading...774KB:2007/04/23(月) 22:23:31 ID:ztMmUX8p
AS2.0の質問です
BitMapDataの特定の色だけを透過するには1pxづつgetPixel32して比較して、setPixel32するほかないですか?
実行速度が気になるもので・・・
900Now_loading...774KB:2007/04/23(月) 22:24:11 ID:vZHzP2LU
>>898
>>820をみて自分で作る。
901Now_loading...774KB:2007/04/23(月) 23:43:50 ID:oq1+ERf0
>>899

thresholdとかpalleteMapとか使える。
使いやすいのはpalleteMapかな・・・

thresholdは、ある一定の色の条件(redが127以下とか)で、
その色を置き換える機能。

paletteMapは R255G200B100 → R200G140B92 といったように、
0〜255の配列で対応する色を別の色に置き換える機能。

とりあえず、ヘルプ読んでサンプルの数字変えて
それでもわかんなかったら、どこまでやったかと一緒にもう一度きいてみてくれ。
902Now_loading...774KB:2007/04/23(月) 23:47:54 ID:ztMmUX8p
>>901
ありがとう
試してみます
903887:2007/04/24(火) 00:48:20 ID:OUHcGOFG
>>889, 890
さんきゅうです。2つの案で進めます。
904Now_loading...774KB:2007/04/24(火) 08:12:49 ID:L0CX3WxI
>>881
Dateオブジェクト作ってgetTime()メソッド使う。
切り捨てとか時分への計算は自分でやる。
var stDate:Date = new Date();
trace("起動時刻"+stDate);
onMouseUp = function(){
var edDate:Date = new Date();
var term:Number=0;
term = (edDate.getTime() - stDate.getTime()) / 1000;
trace("起動時刻から"+term+"秒経過");
}

>>882
on(release)自体が動いてるかどうか、getURLの前にtraceでも入れて確認。
905Now_loading...774KB:2007/04/24(火) 11:19:11 ID:KxT+kJLS
>>882
です。

>>904
レスさんきゅ〜です。
on(release)自体が動いてるか確認のTraceで
動いてないことが確認・・・何の反応もありませんでした。
どうしてなんでしょう??良い方法がありますか?
906Now_loading...774KB:2007/04/24(火) 11:45:54 ID:n5MUUrhL
>>905

ヘルプでボタンの作り方みて、
書いてある通りの場所に、書いてある通りのコードをコピペしろ。
それで動いたら、中身をgetURLに変える。

初心者全体にいえることだが、
つっかえたら新規Flaに、まず動いてるところから
コードコピペして試すとよいよ。
907Now_loading...774KB:2007/04/24(火) 11:58:42 ID:4+xbYX6T
ActionScriptで(OSの)ビープ音を鳴らすことはできますか?
908881:2007/04/24(火) 13:36:02 ID:zykUYDB3
>>904
ありがとうございます。アドバイス頂き感激です。

超初心者ですが試行錯誤がんばってみます。
感謝します!
909Now_loading...774KB:2007/04/24(火) 13:52:21 ID:4+xbYX6T
Flash8で、ヘルプのサンプルにあるコード、

class Sample {
public static var count:Number = 0;
private var ID:Number;
public var email:String;
public function Sample() {
Sample.count++;
trace("count updated:" + Sample.count);
}
public function myMethod():Void {
trace("myMethod");
}
}

に対して、シンタックスチェックを行うと、

Sample.as: 行 6:静的メンバーには、クラスを通してのみ直接アクセスできます。
Sample.count++;

などとエラーが出てしまいます。これは一体どういうことでしょうか?
(実動作には問題ありません)
910Now_loading...774KB:2007/04/24(火) 14:26:52 ID:n5MUUrhL
>>909

うーん、よく見つけたね。これ
Flashのエラーチェッカのバグじゃね?

クラスSampleの静的変数countを読みにいってるのだけど、
コンストラクタ内でSampleと書くと、
クラスSampleのcountじゃなくて、コンストラクタのプロパティcountを読み移行としてるみたい。

仕様なのかな?なんかFlashが悪いような気がする。

とりあえず、Sample.count を count に置き換えれば動くよ。
あとコンストラクタ内以外では、Sample.countと書いて無問題。
911Now_loading...774KB:2007/04/24(火) 14:41:17 ID:4+xbYX6T
>>910
Sample.count++;
を コンストラクタ内でなく、myMethod() に移しても同様のエラーが出ました。
単に count++ とすると大丈夫のようでした。
912Now_loading...774KB:2007/04/24(火) 22:28:30 ID:koLIp9cw
AS2で、クラス内でサウンドオブジェクトを作って、そのサウンドを
_rootから使いたい(setVolumeとか)んですが、やり方がわかりません。。
2日ほどハマってます。

クラス------
classh Hoge{
function Hoge(){
var bgm_mc:MovieClip=_root.createMovieClip("bgm_mc",1)
var s0:Sound=new Sound(bgm_mc)
}

}

タイムライン----
var hoge1=new Hoge()
s0.setVolume(50)


☆やりたいこと
_rootタイムラインのボタンを押すとs0のsetVolumeを行うようにしたい。

☆わからないこと
classの中で作ったサウンドオブジェクト s0 をタイムラインで参照できない。
以下、全てundefined。
trace(_root.s0)
trace(hoge1.s0)
trace(_global.s0)
trace(s0)

どなたがお願いします。。。
(_rootでs0を作ればいいのは分かってるんですがclassで宣言したい)
ていうか無理なのかな?
913Now_loading...774KB:2007/04/24(火) 22:51:52 ID:yH7QPQVB
>>912
class Hoge{
var bgm_mc:MovieClip;
var s0:Sound;
function Hoge() {
bgm_mc= _root.createEmptyMovieClip("bgm_mc", 1);
s0= new Sound(bgm_mc);
}
}
914Now_loading...774KB:2007/04/24(火) 23:18:22 ID:koLIp9cw
>>913
ありがとうございました!

_rootで参照できました
trace(h1.s0) // [object Object]

コンストラクタ関数の中で変数宣言しちゃダメってことですね

915Now_loading...774KB:2007/04/25(水) 11:31:10 ID:dAY6GJZC
>>914

今後もつっかかると思うから、こう考えるといいよ。
コンストラクタに限らず、
関数内で宣言した変数は、
関数の終了時に開放される。

永続させたい変数は、外で宣言すること。
916Now_loading...774KB:2007/04/25(水) 13:11:01 ID:gqV5POpy
youtubeに上がってる動画なんですが、たまにMetaDataが付いてないのに
youtubeだと総時間が出てたりどこでもseek出来たりしてるんですが
あれはどうやっているか分かりませんか?
普通にnetStream.seekとかだと飛べないのですが・・・
917Now_loading...774KB:2007/04/25(水) 13:31:44 ID:FV7g65Cf
バージョン
918Now_loading...774KB:2007/04/25(水) 13:35:59 ID:gqV5POpy
Flash8です。
seekってMetaDataに埋め込まれた一番近い時間のところに飛ぶんですよね?
無いのにどうやってseekできてるのか不思議です。
919Now_loading...774KB:2007/04/25(水) 13:57:37 ID:FV7g65Cf
youtubeはもう一つ前のバージョンのflvベース
920Now_loading...774KB:2007/04/25(水) 16:18:07 ID:gqV5POpy
実はちゃんと埋め込まれてるけどバージョンが違うから読み方が違うんですかね。
色々検索してきます。
921Now_loading...774KB:2007/04/25(水) 20:19:54 ID:gCStIQa+
質問よろしいでしょうか。

今、配列にMCへのパスを放り込み、続いてそれらのMCにプロパティをくっつけるとします。
(_root上には適切なMCがあるとします)

test_array = new Array();
for (var i = 0; i<5; i++) {
targetMc = eval(i+"_mc");
test_array[i] = targetMc;
test_array[i].testNumber = i;
}

このとき、あるMCのtestNumberがいくつなのかは

trace(test_array[4].testNumber)

みたいな感じですぐわかりますが、例えばtestNumberが2のMCを見つける為には
どういった手順を踏むべきですか?
やはりforやifなんかの条件式でしらみつぶしにあたるしかないんですかね?
922Now_loading...774KB:2007/04/25(水) 20:26:57 ID:dAY6GJZC
>>921

この場合、testNumberがユニーク(重複しない値)かどうかによって変わる。
基本は、Dictionaryとか連想配列っぽいやり方で、
もう1つ配列みたいな参照コンテナを作る。

test_dictionary = new Object()
test_array = new Array();
for (var i = 0; i<5; i++) {
targetMc = eval(i+"_mc");
test_array[i] = targetMc;
test_array[i].testNumber = i;
test_dictionary[i] = targetMc
}

こういう風にすれば、mc = test_dictionary[ testNumber ] で、対応するtargetMCを取得できる。
配列のかわりにObjectを使ってるので、
数字でも文字でもユニークな値だったらなんでも大丈夫。

ちょっと長くなるので続く。
923Now_loading...774KB:2007/04/25(水) 20:31:05 ID:dAY6GJZC
ゴメン上の代入する部分

test_dictionary[ targetMc.testNumber ] = targetMc


で、testNumberが重複する値の場合は、
test_dictionary内にさらに配列を作ることで、対応する。

test_dictionary = new Object()
test_array = new Array();
for (var i = 0; i<5; i++) {
targetMc = eval(i+"_mc");
test_array[i] = targetMc;
test_array[i].testNumber = i;
if( test_dictionary[i]==undefined){
test_dictionary[ targetMc.testNumber ] = new Array()
}
test_dictionary[ targetMc.testNumber ].push( targetMc )
}

こういう風に、test_dictionary[ id ] が存在しない場合は、新規配列を作って
その中にtargetMCを追加していく

そうすると、 var ar:Array = test_dictionary[ id ] で、対応するデータを配列で取得できる。
924Now_loading...774KB:2007/04/25(水) 20:42:16 ID:gCStIQa+
即レスありがとうございます
925Now_loading...774KB:2007/04/25(水) 20:52:08 ID:Cd7NqkaW
突然の質問すみません。
例えば変数text1(デバイスフォント)に以下のように文字列を代入します。

text1 = "あいうえお";

text1の色は白なのですが、上記の文字列の「うえ」だけを赤色にすることはASで可能でしょうか?
swf7で作ってます。
良ければ返答お願いします。
926Now_loading...774KB:2007/04/25(水) 21:29:22 ID:NVCzlnb+
7ってHTML使えたっけ
927Now_loading...774KB:2007/04/25(水) 21:32:58 ID:s+W8hX5/
6から使えるだわさ
変数あつかえるかは知らない
928Now_loading...774KB:2007/04/25(水) 22:16:17 ID:YPCQbkHl
>>925
テキストフィールドにmy_txtっていうインスタンス名(変数じゃないよ)をつけて、

my_txt.html = true
my_txt.htmlText = "あい<font color=\"#FF0000\">うえ</font>お"
929Now_loading...774KB:2007/04/25(水) 23:26:54 ID:cjl2jlWh
sound関係のASで音程を操作する関数とかってないでしょうか?
930Now_loading...774KB:2007/04/25(水) 23:44:55 ID:FV7g65Cf
無い
931Now_loading...774KB:2007/04/26(木) 05:39:12 ID:90+bZPhJ
例えば0.5秒かけてアクションする
というような記述はどのようにすれば良いですか
932Now_loading...774KB:2007/04/26(木) 09:24:23 ID:g7uoWlLl
>931
待つならsetInterval
933Now_loading...774KB:2007/04/26(木) 14:44:11 ID:2Hvz1+8W
【環境】winXP、 flash9 public alpha、 AS3

最近AS3の勉強を始めたのですが、行き詰まってしまったので
どなたか教えてください。

A.swf frame1に記述したスクリプト
---------
var loader:Loader = new Loader();
loader.load(new URLRequest("B.swf"));
addChild(loader);
---------

この場合、B.swf側からA.swfの値を参照するにはどうしたらよいのでしょうか?


AS1の時は下記のように出来たのですが、AS3になって解らなくなってしまいました。

A.swf frame1に記述したスクリプト
---------
aaa = 300;
loadMovieNum("B.swf",1);
---------

B.swf frame1に記述したスクリプト
---------
trace(_level0.aaa);
---------


よろしくお願いします。
934Now_loading...774KB:2007/04/26(木) 18:15:51 ID:Et6q77XG
正しくは知らんけど
this.parent.parent["aaa "] か this.parent.root["aaa "]でアクセスはできるはず
935933:2007/04/26(木) 18:33:33 ID:2Hvz1+8W
this.parent.parent["aaa"] と this.parent.root["aaa"]
両方ともアクセスできました。
ありがとうございます。

ただ何故parentが2つ必要なのでしょうか??
aaaはB.swfの親であるA.swfにあるからparentは1つでokだと思っていました。
936Now_loading...774KB:2007/04/26(木) 18:47:17 ID:Et6q77XG
多分Loader.contentの下にswfが読み込まれるからだと思う
937933:2007/04/26(木) 18:51:59 ID:2Hvz1+8W
>>936
とても助かりました。
ありがとうございます。
938Now_loading...774KB:2007/04/27(金) 12:20:02 ID:yJetYxdC
絵のムービークリップをクリックすると、絵が所定の位置まで移動してその内容が表示されて
その中のクローズボタンを押したらまた最初の位置まで絵が戻って元通りのようにしたいのですが
クリックした後に絵を押しても同じ動きをしないよう、ネットの情報の真似でdalete onPressを指定したら
絵はクリックできないようになりましたが、クローズを押した後も押せないままになってしまいました
このonPressをまた復活させるにはどのようにすれば良いのでしょうか
またはもっと効率の良い方法があったら教えて下さい、お願いします
939Now_loading...774KB:2007/04/27(金) 12:24:17 ID:aRaSKSnp
>938 絵MCの最初と最後だけにボタンを置く
940Now_loading...774KB:2007/04/27(金) 17:16:11 ID:rjmFGodJ
swfがブラウザ上で再生されているか、ローカルで直接再生されているかを
ActionScriptから判定する方法がありますか?
941Now_loading...774KB:2007/04/27(金) 17:31:57 ID:SRBDHIcW
_url
942Now_loading...774KB:2007/04/27(金) 19:36:06 ID:rjmFGodJ
すみません、ちょっと言い直します。
swfがブラウザ上で再生されているか、ローカルファイルで直接再生されているかを
ActionScriptから判定する方法がありますか?
同じローカルでも、ブラウザを利用しているかどうかを知りたいんです。
943Now_loading...774KB:2007/04/27(金) 19:56:30 ID:0tnV36eR
>>942
System.capabilities.playerTypeあたりか?
具体的には何のために知りたいの?
944Now_loading...774KB:2007/04/27(金) 20:03:30 ID:rjmFGodJ
>>943
それっぽいです。ありがとうございます。
JavaScript操作(getURL("javascript:"))を実行するかどうかを分岐したかったです。
945944:2007/04/28(土) 14:41:25 ID:5rfcqrC/
自分の目的の場合、
ExternalInterface.callとExternalInterface.availableを利用する方が
よいかもと思い、結局そちらを採用してみました。
946Now_loading...774KB:2007/04/29(日) 08:10:51 ID:cABnzptw
日本語の文字コードについて質問です。
環境はWindowsXP、Flash8です。

CGIとxmlでやり取りするflashを作っていますが、xml内の文字列とasファイル内に
書いた文字列がうまく比較できません。
具体的には、

// xmlから、あるノードのプロパティを拾ってくるファンクション
var foo:String = getXmlXXXProperty(xxx); // "あいうえお"
var bar:String = "あいうえお";
var piyo:Boolean = (foo == bar);
trace(piyo); // false

xmlの文字コードはUTF-8、ActionScriptの文字コードもUTF-8です。
ただ、asファイルの文字コードをShift-Jisにすれば期待通り動くようです。

asファイルをUTF-8にしたまま、うまく動作させる方法はないでしょうか。
ご教示お願いします。
947Now_loading...774KB:2007/04/29(日) 08:45:54 ID:murvs/Sd
テストしてみたけど、両方UTF-8(BOM付)で問題ないみたいだよー。
trace([foo,bar]);
trace([foo.length, bar.length]);
trace([typeof foo, typeof bar]);

とりあえず最小構成のテストファイル作って原因を絞ってみては
いかがでしょうか?
948946:2007/04/29(日) 09:54:44 ID:cABnzptw
>>947
さっそくありがとうございます。

環境設定 → ActionScript → デフォルトエンコーディング と設定していたのを
UTF-8 エンコーディング に変更したあと、flash8を再起動していなかったのが
問題のようでした。
再起動したところ期待通り動作しました。
ちゃんとチェックせずすみません。ありがとうございました。
949946:2007/04/29(日) 10:18:13 ID:cABnzptw
何度も申し訳ありません…。
原因は再起動のせいでもありませんでした。

ActionScriptはEclipseで書いてるのですが、文字コードの自動判定をミスるせい
でした…。
UTF-8(自動判定)で開く → 書く → 保存(自動判定によりShift-Jisで保存)。
完全にスレ違いでした。失礼しました。
950Now_loading...774KB:2007/04/29(日) 14:38:09 ID:SvBaYpUO
外部FLVファイルを用意して、プログレッシブダウンロードで
再生させているのですが、
そのFLVファイルの再生が終わったら特定のフレームに飛ぶように
するにはどうしたらいいでしょうか?
いろいろ調べたりしたのですが、解決に至りませんでしたので
どなたかご教示いただけると幸いです。。
951Now_loading...774KB:2007/04/29(日) 15:15:32 ID:4I14Mg9n
>>950
var listenerObject:Object = new Object();
listenerObject.stopped = function(eventObject:Object):Void {
// ここにイベント処理コードを挿入する
};
my_FLVplybk.addEventListener("stopped", listenerObject);
952Now_loading...774KB:2007/04/29(日) 19:08:37 ID:28i4LfjI
Action ScriptやFLASHの知識はあまりないですが、
JavaScriptやActiveXコントロールのプログラミングには多少知識があります。

今あるワンクリック詐欺サイトについて調べているのですが
ここでswfが使われています

Action Scriptでは閲覧側のコンピュータに対する破壊活動を
どの程度行う事が可能なのでしょうか?

例えばファイルを消したり、
メール内容を勝手に送信したりできるものなんでしょうか?
953Now_loading...774KB:2007/04/29(日) 20:15:34 ID:VzBrSgkt
>>952
当然出来ない。
但し、Flash Player自体に脆弱性があれば、それはまた別の話。
954Now_loading...774KB:2007/04/29(日) 22:03:03 ID:lJkUreBZ
>>952

ないと思うが、それだけではなんともいえん。
そのサイトのURL張れんの?
955Now_loading...774KB:2007/04/29(日) 22:07:37 ID:Auu+zRva
以前playerの脆弱性が指摘されたけど今はしらん
シマンテックとかセキュリティサイトと
adobeサイトみて何もなければいいんじゃね?
956Now_loading...774KB:2007/04/30(月) 03:20:41 ID:rd00c7kp
関数内での変数について質問です。
今CSVファイルをLoadVarsで読み込んで表示させようとしています。
無事にファイルを二次元配列に収める事には成功したのは良いので
すが、関数内でローカル変数として読み込んでしまったため、関数の
外から配列を呼び出せずに困っています。
そこで今グローバル変数とローカル変数について勉強しているのですが、
読み込む配列を宣言する際に例えば_global.myDataとして宣言すれ
ば、その配列は以降は関数外でも呼び出せるという事なのでしょうか?

なかなか思うような結果が得られず悩んでおります。どなたかご教授ください。
957Now_loading...774KB:2007/04/30(月) 04:53:25 ID:wOt08OLN
>>956
var table = new Array();


・ table の中に2次元配列を作る処理


// ローカル変数は関数が終了した瞬間に消滅してしまうので、
// グローバル変数にコピーしておく
_global.globalTable = table;

最後に、ローカル変数tableをグローバル変数globalTableにコピーして
あげればokかと。
コピーした直後から、作った2次元配列はflash内のどの関数内からでも、
呼び出すことが可能になります。

> 思うような結果が得られず
trace(table); とかで、どこまで正常に動いていて、どこから失敗しているか
見直してみるとよいです。
958956:2007/04/30(月) 07:14:47 ID:rd00c7kp
>>957
素早いレスありがとうございます!
なるほど、消える前に別のグローバル変数に代入すれば良いのですね。
参考にして修正をしてみたのですが、仰る通りにtraceを使って点検をした
のですが、今回お聞きした部分以前に作動してないようでした。

my_lv = new LoadVars();
my_lv.onData = function(str) {
trace("Start.OK");
if (str != undefined) {
trace("read.OK");
var myData = str.split("\n").join("").split("\r");
for (var i = 0; i < myData.length; i++){
myData[i] = myData[i].split(",");
}
}
_global.txtData = myData;
}
my_lv.load("test.txt");
trace(txtData[0][0]);

このように組んだのですが、最後の行の出力がundefinedになるだけでな
く、関数内のtrace部分に関しては何も出力されませんでした。
loadメソッド自体が行われていない、という事なのでしょうか?
959あほ初心者:2007/04/30(月) 07:28:25 ID:6U9m8zgY
環境は標準です。

やりたいのは、ダイナミックテキスト表示を
メインムービーの中のクリップ内のダイナミックテキストエリアに表示させたいだけですが出来ません。。

ヘルプのサンプルを下記のようにいじってメインムービー1フレに貼りました。

ta.txt内にta=testと記述し、mc1クリップ内のta1エリアにtestと表示させようとしましたが
unable…すら表示されずtrace(features_lv.ta)してもundifinedです。
そもそもon Textファンクション自体が働いてないようなんですが、何故でしょうか。

var features_lv:LoadVars = new LoadVars();
features_lv.onLoad = onText;
features_lv.load("ta.txt");
function onText(success:Boolean) {
if (success) {
this.mc1.ta1.text = features_lv.ta;
} else {
this.mc1.ta1.text = "unable to load text file.";
}
}
960Now_loading...774KB:2007/04/30(月) 08:07:02 ID:hl0ZJOwZ
>>958
何で成功時のみの処理なの?意味無いじゃん。失敗したときの処理は?
>>959
テキストフィールドのパスを確認。thisが何を指しているのか確認。
961Now_loading...774KB:2007/04/30(月) 08:20:44 ID:5+2UyBMB
サウンドオブジェクトでループ回数を無限にするにはどうしたら良いんでしょうか

_root.hoge.start(0,???);

???の部分がわかりません。。
962959:2007/04/30(月) 08:35:59 ID:0/5H6yiY
>960
回答ありがとうございます。
this.mc.ta1.text の部分、.text以前は"ターゲットパスの挿入"ダイアログで行っているので、パスはあっているかと思っています。

asはメインムービーに貼っているので、
thisはメインムービーですよね。
this.mc1.ta1でメインムービー内>mc1インスタンス>ta1テキストエリアとなるはずですが。。

上記の理解が間違っているのでしょうか。
それとも、mc1内での変数宣言などが必要になるのでしょうか。。

メインムービーへのテキスト表示は出来る(サンプルまんまだから当たり前か)だけに
なにが障害かわからない。。
963Now_loading...774KB:2007/04/30(月) 08:58:54 ID:hl0ZJOwZ
>>962
trace(this);で確認
964Now_loading...774KB:2007/04/30(月) 09:12:54 ID:ayOv5W0u
環境)OS:WinXP-Pro,Mem=1GB,ソフト:Flash8-Pro(Player7)

複数のテキストをXMLで読み込むASで質問です。

読み込み後の文書データ名をmotoとして、フレーム内のボタンアクションを
以下のように書きました。

on (release) {
moto = ""; //motoの初期設定
for (id=0; id<2; id++) {
txtXml.load("bun_"+id+".txt"); //bun_0.txtとbun_1.txtを読み込む
txtXml = new XML();
txtXml.onData = function(s) {
tmp1 = s.split("\n").join(""); //不要な改行を消す
moto = moto+tmp1; //motoに追加
};
}
trace("moto= "+moto.length); //読み込みのチェック
}

この場合、traceで moto= 0 となり、読み込みに失敗しています。
どうしたら良いでしょうか?
965Now_loading...774KB:2007/04/30(月) 09:24:20 ID:hl0ZJOwZ
>>964
loadできるのはxmlインスタンスを作ってからでしょ
966964:2007/04/30(月) 09:58:27 ID:ayOv5W0u
>>965
有り難うございます。
txtXml = new XML(); をフレームアクションとして、プレビュー起動時に
xmlインスタンスを作成するようにしました。しかし、これでも出来ません。
どうしたものでしょうか?
967Now_loading...774KB:2007/04/30(月) 10:02:42 ID:hl0ZJOwZ
>>966
onDataの引数sは何のためだと思うの?
ループではなく1つだけの時は動くの?
まずは単純なものから始めてみる
968964:2007/04/30(月) 11:07:04 ID:ayOv5W0u
>>967
お世話になります。解決出来ました。
ヘルプでonDataの仕組みを見ました。これはロード完了後初めて実行される
ハンドラなので、forの外に trace("moto= "+moto.length) を置いても、実質
forの処理を飛ばしてtraceされるため、0が表示されると解釈しました。

パラメーター『s』は、ヘルプの基本式 onData = function(src:String) {} と
ヘルプの記述「ダウンロード中にエラーが発生しなければ、サーバーからダウ
ンロードされた XML テキストを含むストリングになります。」から、XML テキスト
を含むストリング、つまり、bun_0.txtとbun_1.txt と解しました。

実行したASは以下の通りです。
ボタンA
on (release) {
moto = "";
for (id=0; id<2; id++) {
txtXml.load("bun_"+id+".txt");
txtXml.onData = function(s) {
tmp1 = s.split("\n").join("");
moto = moto+tmp1;
trace("moto= "+moto);
//
};
trace("moto長さ= "+moto.length); //実質無意味ですが書いています
}
}

ボタンB
on (release) {
trace("moto all= "+moto.length); //全部の長さ
}
別のボタンBで見ると目的の長さが得られました。
969959:2007/04/30(月) 13:42:07 ID:RLzUTBnn
>963
何度もすみません。

ASはメインムービ貼ってるのでtrace(that);の結果は_level0です。

メインムービーに貼ったAS内の
this.mc1.ta1.text =
では、子インスタンス内のta1ダイナミックテキストエリアに変数を渡せないのか
or
それ以前の変数宣言や関数呼び出しの段階から、this.mc1.ta1といった対象オブジェクトの指定が必要なのか

が詳細な質問内容です。
970Now_loading...774KB:2007/04/30(月) 14:15:50 ID:hl0ZJOwZ
>>969
this.mc1.ta1.text=
の前行にtrace(this);
971Now_loading...774KB:2007/04/30(月) 15:00:54 ID:OMFnAlZe
>>969
> ターゲットパスの挿入"ダイアログで行っているので、パスはあっているかと思っています

これが間違い。
「ターゲットパスの挿入」は、あくまでそれが書かれているフレームのタイムラインを
基準にしている。
しかし、スコープが変わればthisが参照するものは変わる。
この部分は「ターゲットパスの挿入」ではフォローされない。

thisが何を指しているのかは、散々言われているようにtrace()をすることで確認できる。
>>970の通りにやってthisがさしているものが_level0でないなら、そこに
mc1.ta1というものは存在しない。
972956:2007/04/30(月) 16:38:38 ID:rd00c7kp
>>960
確かに、成功時だけで失敗時には意味がないものになってますね…ありがとうございます!
そこでプログラムを修正した後読み込みに挑んだのですが
my_lv.onData("1,2,3");
と直接データを与えると正常に作動するのですが
my_lv.load("test.txt");
とするとonDataメソッドが呼び出されないようなのです。
他の所からonDataメソッドを呼び出す必要があるのでしょうか?
973Now_loading...774KB:2007/04/30(月) 17:17:11 ID:FwczyuKp
どーせloadの後ろにondata書いてるんじゃねーの?
974Now_loading...774KB:2007/04/30(月) 17:46:32 ID:YZ6q179n
ひょっとして、my_lvを関数内のローカル変数として作って
呼び出し終わる前に、ガベッジコレクションで消えたりしてないか?
975Now_loading...774KB:2007/04/30(月) 21:01:31 ID:Jvrjpvu6
>>972
なんのために関数内でmyDataを宣言してるの?
はじめから_globalに入れればいいと思うんだけど。
onDataでは無くonLoadにしてみたら?

あと今回の問題に関係ないけど、配列は単純に=ではコピーできない。
_global.txtData = myData;
の後に_global.txtDataの中身を変えたらmyDataの中身も変わってしまう。
976Now_loading...774KB:2007/04/30(月) 21:58:14 ID:vktR1/BO
>>975

いや、そこらへんは >>972 はなにも間違ったことしてない。
myDataをローカル変数で宣言してるのは、CSVをパースするための一時的な処理だし、
ローカル変数だから _global.txtData = myData; とすることにも間違いはない。
むしろ、myData.concat() とかここでやるのは冗長。

あとonLoadはCSV解析するには使えないから、onDataでいいんだよ。
977Now_loading...774KB:2007/04/30(月) 22:21:31 ID:zMpVFz10
pic01_mc 〜 pic03_mcを押した時同じ処理を関数で行いたいのですが
実際関数中にそれぞれmcを指定するにはどうすれば良いのでしょうか?
引数をnで持ってきて、pic01_mcに10を代入したいとしたら
"pic0" + n + "_mc" = 10;
で良いのでしょうか、これでは動きませんでしたが・・・
978Now_loading...774KB:2007/04/30(月) 22:47:24 ID:0tjsM0be
>>977
バージョンも実行条件もわからんが
this.変数名
とか
979Now_loading...774KB:2007/04/30(月) 23:29:49 ID:zMpVFz10
>>978
レスありがとうございます

function picPress(n) {
(ここで押されたpic0?_mcを判別して、その._xに10を代入)
}

pic01_mc.onPress = function() {
picPress(1);
}

pic01_mc.onPress = function() {
picPress(2);
}

説明下手ですいません、上のような感じで処理をしたいのですが
関数側でどのようにして押したムービークリップを判別をさせるのかがわからないのです
押したpic0?_mc側から1や2を渡して、それからどうにかして判別とか自分では漠然と考えていたのですが;
FLASHのバージョンは8です
980Now_loading...774KB:2007/04/30(月) 23:31:25 ID:zMpVFz10
979のonPressの部分

pic01_mc.onPress = function() {
picPress(1);
}

pic02_mc.onPress = function() {
picPress(2);
}
でした
981Now_loading...774KB:2007/04/30(月) 23:33:03 ID:vktR1/BO
function picPress(mc){
mc._x += 10
}

pic01_mc.onPress = pic02_mc.onPress = pic03_mc.onPress = function(){
this._parent.picPress(this)
}

こんな感じじゃね?
無理してID渡すより、MCそのものを渡すほうが楽だよ。

ID渡す場合は、

this[ "pic0" + n + "_mc"] みたいになる。
変数名を式で作る場合には、文字を[ ] で挟む。
982Now_loading...774KB:2007/04/30(月) 23:37:39 ID:zMpVFz10
>>981
レスありがとうございました
まだまだ勉強不足なので、そちらの式を参考にさせて頂きます
983Now_loading...774KB:2007/05/01(火) 00:27:29 ID:1tBGTNJS
pic01_mc.onPress = pic02_mc.onPress = pic03_mc.onPress = function(){
this._x += 10;
};
984952:2007/05/01(火) 00:36:27 ID:yQiLdouY
どうも有難うございます

これがその詐欺サイトだそうです。
www.x69xforyou.com/member/?code=milk&confirm=yes
私は危険かもしれないのでブラウザでは開いておりません。
ただしHTMLを落としてソースは見ました。
見たらFLASHにIP等が渡されています

開く場合は注意してお願いします
985Now_loading...774KB:2007/05/01(火) 00:38:17 ID:p3gzszCx
for(i=1;i<4;i++){
this["pic0"+i+"_mc"].onPress=function(){
this._x+=10;
}

mc増えると桁そろえるのって面倒だから
pic1_mcの方が楽じゃね?
986956:2007/05/01(火) 07:07:44 ID:IZjWiysq
>>973>>974>>975>>976
レスの確認が遅れてすいません。素早い返答ありがとうございます。
onDataの文頭に動作を確認するtraceを配置したのですが出力がなく、onData
自体が呼び出されていないようでした。>>973>>974で指摘された部分に関して
は見直しても該当していませんでした。
何か根本的なミスがあるかもしれないので、もう少し自分で見直してみます。
皆さんご丁寧にレスありがとうございましたm(__)m
987Now_loading...774KB:2007/05/01(火) 08:22:12 ID:dnf9VmQ0
>974
あんまり意識したことなかったんだけど、
LoadVarsのonLoadが呼ばれる前ってGCの対象になるのかな?
どっちにしてもあんまり作法は良くないとは思うけど。
988959:2007/05/01(火) 11:13:20 ID:4uKjBk9P
>970
>971
なるほど。なるほどなるほど!
ようやく理解できました。

言い訳すると、絶対パスでチェックしたとき動かなかった(他の部分が間違えていた)ので
パスミスだとは思っていませんでした。。

お礼が遅くなってすみません。
ありがとうございました。
989Now_loading...774KB:2007/05/01(火) 11:29:54 ID:Uj2LJ5i/
>>984

うーん どうなんだろね。
IP記憶して他に書き出してるのかな。
そのくらいしかできないと思うけど。
990Now_loading...774KB:2007/05/01(火) 11:36:39 ID:p3gzszCx
あなたの登録情報つって
リファラやIPだす程度だろw
991Now_loading...774KB:2007/05/01(火) 14:43:48 ID:rEk3OOtn
XP環境でFlash8です。
_rootフレームに
function sound() {
se = new Sound();
se.attachSound("sound file");
se.start();
}
と書いて
_root.sound();
にて実行させています。これでうまくいっていたのですが
操作用MC(インスタンス名 ope)に
if (Key.isDown(83)) {
_root.gotoAndPlay("");
_root.sound();
}
と書いてみたんですが音が鳴ってくれません。
他の部分ではちゃんと音が鳴るのに、このMCだけ音が鳴らない原因は
なんでしょうか?
お教え頂ければ幸いです。
992Now_loading...774KB:2007/05/01(火) 14:50:24 ID:p3gzszCx
_root.sound();
_root.gotoAndPlay("");
993Now_loading...774KB:2007/05/01(火) 15:15:05 ID:0obsZKcN
>>991
if文をenterFrameの中に入れてないとか。
リスナー使った方が良いよ。
994Now_loading...774KB:2007/05/01(火) 15:16:49 ID:rEk3OOtn
>>992
解決いたしました。ありがとうございました m( _ )m
995Now_loading...774KB:2007/05/01(火) 19:12:22 ID:9Gf5Z3zJ
なかなか1作完成しません
すぐ他のアイデアに目移りするのと
もともと自慢できるような大それたアイデアじゃないのと
忍耐力が無いのが主な原因かと思われますが
何か打開策は無いでしょうか
技術的に完膚なきまでに挫折したわけでもありません
むしろ実現困難かに思える部分を作りきるところまでは楽しいです
996Now_loading...774KB:2007/05/01(火) 19:13:42 ID:82jw0aYL

FlexBuilderの体験版インストールしたんだけど、
エディタの色をうまく変えれません

とりあえず背景を黒くして、文字を明るいグレーにしたんだけど
public や import みたいな修飾詞がデフォルトだと青で表示されてます

これを変えたいんだけど、設定を一通りみても見つかりましぇん
どこにありますか
 
997996:2007/05/01(火) 19:31:57 ID:82jw0aYL
ちなみにいまこんな感じ
http://vista.crap.jp/img/vi7801546161.png

青がチカチカしてみづらい
998Now_loading...774KB:2007/05/01(火) 19:40:42 ID:zlnPq2X2
ちなみにFlashのセキュリティで一番怖いのは、第三者によるクロスサイトスクリプティングだと思われ。

FlashブログとかでURLとかリンクのフィールドに JavaScptが入った投稿されて、
他のユーザーがそのリンククリックしたらgetURL("javascript:〜")みたいのが実行されるという奴。
へたすれば、そのユーザーのメアドやパスワードを引っこ抜かれる。

HTMLと違ってURLのリンク先や、HTMLソース見れないから、
しかられても見つけにくい。
999Now_loading...774KB:2007/05/01(火) 19:52:01 ID:Q+E5EmoE
Flashサイトが嫌われる原因の一つでもあるね。

↓次スレ
1000日立製作所 ◆2TENKK.nkY :2007/05/01(火) 21:02:53 ID:X0KvFFZ6
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。