ActionScript 誰かが物凄い勢いで解答するスレ 20at SWF
ActionScript 誰かが物凄い勢いで解答するスレ 20 - 暇つぶし2ch750:738
08/10/06 13:11:28 j7I+Fyra
<<741

いえ、ローカルのHTMLファイルでも表示はされてません。まだアップはしてないので・・・
flash自体は読み込まれてます、flashにflvplaybackで入れ込んでいるのですが、肝心の動画だけが
表示されないのです・・・swfファイルには動画は表示されているのですが・・・

751:Now_loading...774KB
08/10/06 14:34:50 71akw7qm
ドキュメントクラス内で設定した変数があるのですが、
それをムービークリップの、mcTestのフレームアクション上から
アクセスするにはどうすればいいでしょうか。


ドキュメントクラス内
public var _direction:String = "right";


ムービークリップmcTest
if(MovieClip(root)._direction == "right"){
trace("hoge");
}


これをすると、
TypeError: Error #1034: 強制型変換に失敗しました。flash.display::Stage@1e485f99 を flash.display.MovieClip に変換できません。

となってしまいます。
ドキュメントクラス内の関数等からは、
問題なく_directionの値を取り出すことができます。


752:Now_loading...774KB
08/10/06 15:15:27 JWWr9U6v
ニコニコにアクションスクリプト入りのswfをアップしようとするとニコニコムービーメーカーに怒られるんですが
URLリンク(www.nicovideo.jp)では
アクションスクリプト入りのまま上げられてるみたいです
こういうのどうやるんでしょうか

753:Now_loading...774KB
08/10/06 22:19:11 v0Gc+cNm
MXMLを使わずにActionScriptのみでFLVプレイヤーを作っています。
flash.media.VideoでFLVを表示させると動画の周りに余白が表示されてしまいます。
MXMLだとlayout="absolute"に設定すれば余白がなくなるようですが
asのみの場合はどう書けば余白をなくすことが出来ますか?

754:741
08/10/07 01:40:42 vSCGf/4x
>>750
・flash自体(=swf)は読み込まれてるのに動画が表示されてない
・swfファイルには動画は表示されている

swfを直接再生すると動画は表示されるが、
htmlにswfを埋め込むとflvplaybackの枠とかは表示されるが動画が表示されてないって事?
もしそうならすみませんが私にはわかりません




755:Now_loading...774KB
08/10/07 10:10:21 /tF2IwiT
>>750
読み込む動画がH264/AACエンコードとかで、
ブラウザのFlashPlayerのバージョンが9.0.115.0以前とか?

756:750
08/10/07 13:24:41 WI3Iuoc5
いえ、flvplaybackの枠も表示されません。
読み込む動画はyoutubeから落としたflvファイルでブラウザのバージョンは9.0.124.0です。
あ、Apacheを使って、PHPで書いてます。

757:Now_loading...774KB
08/10/07 13:35:39 Yrky8F5E
そりゃmimeの設定できてねーんじゃねーの?

758:756
08/10/07 14:37:35 WI3Iuoc5
ありがとうございました!おかげで解決しました。757さんの言うとおり、mimeの設定が出来ていなかったようです。


759:736
08/10/08 00:13:46 gi3Jp8Qo
>>749
レスthxです
バグですかorz


760:Now_loading...774KB
08/10/08 12:59:28 igoSSjzu
質問させてください。開発環境はAS3を使ってます。
actionscriptを使ってチャットシステムを作りたいのですが、ちょっと変わった仕様にしたくて、
チャットのログを残して、それをもう一度再生でき、その上から新たに書き込みが出来る。という風にしたいのですが
どうすればそれが、もしくはそれに近い形のものが出来るか、力を貸してください。


761:Now_loading...774KB
08/10/08 14:03:55 xljkzCkT
>>760
漠然としすぎてて何が聞きたいのかよくわからない。動画のないニコニコ動画みたいなもんなのか?
サーバープログラムとFlashクライアント組み合わせればできるんじゃないの。比較的難しいと思うけど。

762:Now_loading...774KB
08/10/08 14:12:42 igoSSjzu
>>761
あ、そんな感じです。サーバプログラムとflashクライアントですか……ちょっとわかりません。
申し訳ありませんがもう少し詳しく説明してもらえないでしょうか?


763:Now_loading...774KB
08/10/08 14:36:25 xljkzCkT
>>762
逆に現時点で何がわかりますか?ASは?PHPは?DBは?FMS/FCSは?
やりたいことは別として、基本的なことから理解していかないと、このレベルのFlashを作るのは難しいと思う。
それくらい広い範囲の知識がないと実現できない構想です。

764:Now_loading...774KB
08/10/08 14:43:15 VeBvuOje
mime知らんでニコニコみたいなの作りたいとか言ってた奴じゃねーのどーせ?
そいつもうほっとけ。キリないわ

765:Now_loading...774KB
08/10/08 14:45:57 VeBvuOje
ボクちゃんは1冊本買って読んでね
ニコニコのクライアントの作り方みたいなの、AIRの紹介本かなんかでのってたような気がするから、それ丸写ししてくれ

766:Now_loading...774KB
08/10/08 14:49:58 igoSSjzu
>>763
使える物はASとPHPです。データベースもある程度は出来ます。PHPは掲示板を作る事くらいは出来ます。
足りない知識は補っていくつもりです。何とかして作りたいのです…

767:Now_loading...774KB
08/10/08 15:11:44 gmvy7wkk
つか、広範囲な知識が必要っていわれてるように、ここで全部を詳しく説明なんて無理。
いわれたキーワードや本なんかを参考にすすめていって、もっと問題点が絞り込まれた段階で
質問したほうがいい。

768:Now_loading...774KB
08/10/08 15:14:37 jk5368hO
AS2.0でゲームを作っています
点数をとると画面下に並べているMCの色が変わり、点数を表示するようにしています。
■■■■□□□□←こんな感じです。
各四角のMCにインスタンス名mark1~30までを付け、
四角をまとめたscoreGroupe_mcに
onClipEvent (enterFrame) {
if (_root.seikaiNum == 1) {
this.mark1.gotoAndStop("on");
}
}
と書き、四角の色を変えて表示させています。
今のところ、上のスクリプトを
1~30まで書き連ねることで表示としては出来ているのですが
これを、簡潔にする場合はどのようにしたらいいのでしょうか?
よろしくお願いします

769:Now_loading...774KB
08/10/08 15:46:12 gmvy7wkk
>>768
markに連番ついてるならforループで処理すればいいと思うが、
seikaiNumの値とonにするmarkの数が対応しているなら、
seikaiNumの値が増減する時に、
this.scoreGroupe_mc["mark"+String(_root.seikaiNum)].gotoAndStop("on");
みたいにして表示を増やしていけば、enterFrameいらないと思う。

770:Now_loading...774KB
08/10/08 16:18:02 iD7k9kcY
                     24時間耐久10分でフラッシュを作れ!
        ┏━┓                ┏━┓    ┏━┓           ┏━┓
      ┏┛┏┛                    ┏┛  ┃  ┏┛  ┗┓        ┏┛┏┛
    ┏┛┏┛                      ┗┓  ┃┏┛┏━┓┗┓    ┏┛┏┛
┏━┛  ┗━┳┓                    ┃  ┃┃  ┃  ┃  ┃┏━┛  ┗━┳┓
┗━┓  ┏┳┛┃                    ┃  ┃┃  ┃  ┃  ┃┗━┓  ┏┳┛┃
    ┃  ┃┗┳┻┓    ┏━┳━┓  ┃  ┃┃  ┃  ┃  ┃    ┃  ┃┗┳┻┓    ┏━┳━┓
    ┃  ┃┏┻┓┗┓┏┛┏┛┏┓┗┓┃  ┃┃  ┃  ┃  ┃    ┃  ┃┏┻┓┗┓┏┛┏┛┏┓┗┓
    ┃  ┃┃  ┃  ┗┛  ┃  ┗┛  ┃┃  ┃┃  ┃  ┃  ┃    ┃  ┃┃  ┃  ┗┛  ┃  ┗┛  ┃
    ┃  ┃┃  ┣┓    ┏┫  ┏━┛┃  ┃┃  ┃  ┃  ┃    ┃  ┃┃  ┣┓    ┏┫  ┏━┛
  ┏┛┏┛┃  ┃ ┃   ┃ ┃  ┃┏━┓┃  ┃┗┓┗━┛┏┛  ┏┛┏┛┃  ┃ ┃   ┃ ┃  ┃┏━┓
┏┛┏┛  ┃  ┃ ┃ ┃  ┗┓┗┛┏╋┛  ┗┓┗┓  ┏┛  ┏┛┏┛  ┃  ┃ ┃ ┃  ┗┓┗┛┏┛
┗━┛    ┗━┛  ┗┛    ┗━┛┗━━┛  ┗━┛    ┗━┛    ┗━┛  ┗┛    ┗━┛
          ┓┏┓    ┓ ━┓     ┏┓┏┓   ┏┓┏┓     ━┓ ━┓   ┏━ ┏━┓
          ┃┃┃    ┃ ┏┛   ┃┃┃┃ ・ ┃┃┃┃     ┏┛ ━┫ ・ ┃  ┃  ┃
          ┃┃┃    ┃ ┃     ┃┃┃┃ ・ ┃┃┃┃     ┃  .  ┃ ・ ┗┓ ┗━┫
          ┻┗┛ 月 ┻┗━ 日 ┗┛┗┛   ┗┛┗┛ ヨリ ┗━ ━┛  .━┛  .━┛ マデ

                   参加者(Flash制作者・お題投下者・観覧者)募集
               現行:スレリンク(swf板)

771:Now_loading...774KB
08/10/08 16:18:20 jk5368hO
>>769
今ちょうど、上に書かれている事をやってみている最中でした!
変数_root.seikaiNumをMc名にくっつけるところで悩んでいたので
とても助かりました
ありがとうございます!

772:Now_loading...774KB
08/10/09 03:23:29 aP0WSrHE
as3です。
クラスメソッドが、呼び出し元のオブジェクト(外部クラスから生成されたオブジェクトです)
を参照する方法ってありますか?
※引数を渡す方法ではなく、無名関数のときのarguments.calleeみたいなものがあるかなと


773:Now_loading...774KB
08/10/09 05:31:20 j0D+PJKY
>>772
call()使えば?

774:Now_loading...774KB
08/10/09 16:07:37 TmP9ojJa
ActionScript3.0のイベント一覧&解説ページとか無いですか?
Event.ENTER_FRAME は フレーム毎によばれます。とか書いてあるページ

775:Now_loading...774KB
08/10/09 16:18:14 sPljUQk0
質問です。
FLASH8 professionalを使用しています。

マウスの動きに合わせて画面を動かしたいのですが、どうしたらいいですか?
URLリンク(www.okayama-ichibangai.co.jp)
こんな感じです。

776:Now_loading...774KB
08/10/09 16:20:33 8zCQcoK/
>>774
イベント関連の定数の使われ方って実は
EventDispatcher派生クラスによって微妙に違うよ
さすがにEvent.ENTER_FRAMEとかはどのクラスでも一緒だけど

なのでまずEventDispatcher派生クラス側のリファレンスから調べた方がいい


777:Now_loading...774KB
08/10/09 16:25:47 Kp/E7F/l
>>774
URLリンク(livedocs.adobe.com)
URLリンク(d.hatena.ne.jp)
ぐぐってみたらこんなんでてきた。上は関連項目のリンクまでたどると吉。

778:Now_loading...774KB
08/10/09 16:29:46 DCHKzhYs
AAAというmcを配置して外部swf(BBB.swf)を読み込ませているのですが
外部swfの特定のフレーム(ラベル:CCC)に飛ぶ、というアクションを実現させたいです。

現在は、フレームに

AAA.loadMovie("BBB.swf");

と書いています。
前述のアクションを実現させるには、どのようにすれば良いでしょうか?

779:Now_loading...774KB
08/10/09 16:35:39 jZliTI6n
>>778
ロードするとAAAの内容がBBBになるから、AAAに対してCCCへ飛べって命令する。
ただしロード完了(少なくともBBBフレームの読み込み完了)まで待つ必要がある。
MovieClipLoaderが使えるバージョンならそっちを使うことをすすめる。

780:Now_loading...774KB
08/10/09 16:36:27 ewoo5v+p
そもそもBBB.swf読み込めてる?

781:Now_loading...774KB
08/10/09 16:58:02 DCHKzhYs
回答ありがとうございます。

>>779
AAA.loadMovie("BBB.swf");
AAA.gotoAndPlay(CCC);

としてみましたが、動作しませんでした。

>>780
読み込み自体は問題ないです。

782:Now_loading...774KB
08/10/09 17:06:22 jZliTI6n
>>781
本当に読み込み完了を待ってから実行してるのか?
まさか続けてその二行を書いたんじゃないよな?

783:Now_loading...774KB
08/10/09 17:19:00 ewoo5v+p
// SWF7以上? AS1.0以上 AS2.0以下
var listenerObject = {
onLoadInit:function( mc ){
mc.gotoAndPlay("CCC");
}
};
var movieClipLoader = new MovieClipLoader();
movieClipLoader.addListener( listenerObject );
movieClipLoader.loadClip( "BBB.swf" );

// SWF6 AS1.0
AAA.loadMovie( "BBB.swf" );
AAA.onLoad = function(){
this.gotoAndPlay( "CCC" );
};

作業中なので構文チェックすらしないけど、何かしらエラー出たり動作しなかったら自分で解決してね。ヒントにはなると思う

784:Now_loading...774KB
08/10/09 18:13:46 DCHKzhYs
>>783
どうにか動作させることができました。
ありがとうございます。

785:Now_loading...774KB
08/10/09 21:11:58 eWUWIMFi
>>775
_xmouse、_ymouseでマウスの位置を取得する

786:Now_loading...774KB
08/10/09 21:15:05 HOE20Wv+
loadClipでAAA指すのわすれてるや

787:Now_loading...774KB
08/10/10 11:40:13 jEdfFmam
actionscript3で、配列array1[0~4までbitmapが入っている]という状態で

A:
var array2:Array = new Array();
array2 = array1;
というのと

B:
var array2:Array = new Array();
for(var i:int=0; i<array1.length; i++) {
array2[i] = array1[i];
}
というのがありますが、この二つは結果は違うのでしょうか?

やりたい処理はbitmap含めた配列array1のコピーでは無く
配列array2を使ってarray1の中にあるbitmapを参照したいのですが
for(var i:int=0; i<array2.length; i++) {
array2[i].alpha = 0;
}
上のAとB、どちらの方法が正しいのでしょうか?

788:Now_loading...774KB
08/10/10 12:08:27 Hiz0rQXM
>>787
おそらく適切なのはこうです。
var array2:Array = array1;

これでarray2はarray1を指すようになります。

Aの場合、newした領域は使われません。
array2 と array1 は全く同じArrayオブジェクトを指すようになります。
つまり、最初に書いた記述と等価です。

Bの場合array1[i]はarray2[i]と同じ物を指すようになりますが、
Arrayオブジェクトそのものは別物です。

例えば、後でarray[0].alpha = 0.5としたときは、A,Bいずれの場合もarray2[0].alpha は0.5となります。
しかし、array1[0] = hoge; としたとき, array2[0] は Aの例ではhogeを指しますが、
Bの例では元のbitmapを指したままになります。

789:Now_loading...774KB
08/10/10 13:13:32 jEdfFmam
>>788
丁寧な解説ありがとうございます
結構複雑な事だったんですね・・・
AとB双方の違いは
A:array2がarray1そのものになる(array2のメモリ消費無し)
B:array1と別物のarray2(中身はarray1の中身の参照)が作られる
といった感じでしょうか
また調べてみたいと思います

790:Now_loading...774KB
08/10/10 13:20:11 386dzPr4
脱出ゲームでただ画面を切り替えるだけではつまらないので、切り替える際に部屋が回転するアニメーションをつけたいのですがどうすればできるでしょうか?
xscaleとか使ってみましたがうまくいきませんでした
swf6ですよろしくお願いします

791:Now_loading...774KB
08/10/10 15:43:18 +XhY3/+g
>>790
回転するアニメーションを自力で描くか、3Dソフトでレンダリング

ただ、プレイする側からすると回転とかのエフェクトはそれほどいらん。
その努力を内容に向けるほうが評価はあがると思われる。

792:Now_loading...774KB
08/10/10 15:44:03 Lg+DE3dz
>>790
意味不明でございます
そもそも部屋って何?
大体何がやりたいか想像できるけど、そんなんじゃ説明のしようもない

793:Now_loading...774KB
08/10/10 15:46:58 386dzPr4
>>790
なるほど大変そうですね…
参考になりました!内容を重視したいと思います
ありがとうございました

794:Now_loading...774KB
08/10/10 15:47:38 386dzPr4
すみません>>791でした

795:Now_loading...774KB
08/10/10 19:53:20 h+heZ6CA
AS2で初めてスクリプトを作ってます。
MovieClipを配置して、トゥイーンを使ってアルファ値を0から100に
あげていき、フェードインするようにしています。
このMovieClipのattachBitmapを使用してビットマップを読み込んで
フェードインさせたいのですが、attachBitmapを使用するとフェードイン
してくれません。
やりかたが間違っているのでしょうか。
よろしくお願いします。

import flash.display.BitmapData;

var bmp:BitmapData = BitmapData.loadBitmap("image");
map.attachBitmap(bmp,2);
map._width = bmp.width;
map._height = bmp.height;
map._x = 0;
map._y = 0;


796:Now_loading...774KB
08/10/10 20:10:56 +XhY3/+g
>>795
いまいち構成を理解してないが、その場合はattachMovieを使うんじゃないのか?

797:Now_loading...774KB
08/10/10 20:19:26 h+heZ6CA
回答ありがとうございます。
早速、試そうとしましたが、
attachMovieを使うと、別のインスタンスとしてMovieClipができるので
シーンに割り当てたトゥーイーンがうまく動いてくれないみたいです。
よろしくお願いします。

798:Now_loading...774KB
08/10/10 20:49:23 +XhY3/+g
>>797
すまんが、何がどこにいくつあり、どういう順番で、どういうことを目指しているのかわからん。
モーショントゥイーンでアルファ値を変更させたMCがあるとして、それをどうしたい?
そこに別のMCをクロスフェードしたいのか、トゥイーンするMCのほうを別のMCに重ねたいのか
そのへんもっと詳しく。

799:Now_loading...774KB
08/10/10 20:58:47 h+heZ6CA
>>798
説明が下手でごめんなさい。MCは1つだけです。
まず、ASを使用せずにMCを1つ配置して、30フレームくらいかけてアルファ値を0から100にしています。
これだけで動作させると意図したように動いてくれます。
このMCにスクリプトを使用して、動的にビットマップを変えて、再生できればと考えました。
そこで、1フレーム目に、このMCにattachBitmapを使用してビットマップを取り込むように
したのですが、再生すると最初からビットマップが表示された状態(アルファ値が100?)で
フェードインしてくれません。このようなことはできないのでしょうか。
よろしくお願いします。



800:Now_loading...774KB
08/10/10 22:30:39 Lg+DE3dz
>>799
attachする場所が間違ってる予感・・・

map ←ムービークリップ
└sym1 ←トゥウィーンさせるムービークリップのインスタンス

で、bmpをsym1にattachすればトゥイーンが動くはず
mapにattachしたらそれは当然最初から100%で表示される

801:Now_loading...774KB
08/10/11 15:35:16 2PVL4LOp
>>800
ご指摘の通り、mapにattachしていました。
mapの下に、ムービークリップを作成していなかったので、新たに作り、そのムービークリップに
attachするようにすると動作しました!ありがとうございました。


802:Now_loading...774KB
08/10/12 01:42:00 x/5YdeJh
AS3でステージサイズが変わったときにhogeMCの大きさを合わせるという処理なんですが、
コンストラクタで初期表示時にもhogeMCの大きさを変えたいんです。
でもstageResize(e:Event)の引数に何を渡して良いのか分かりません。
よろしくお願いします。

//コンストラクタ
public function Main():void
{
stage.addEventListener(Event.RESIZE, stageResize, false, 0, true);
stageResize(ココが分からない);
}
//hogeMCリサイズ
private function stageResize(e:Event)
{
hogeMC.width = stage.stageWidth;
hogeMC.height = stage.stageHeight;
}

803:Now_loading...774KB
08/10/12 09:45:00 igvFLrbe
>>802
初期処理とリサイズ時を同じ処理でやりたいなら、リサイズイベントを発行するとかじゃね

804:Now_loading...774KB
08/10/12 10:08:25 wWTa/+9f
stageResize(new Event("dummy"));
って事でしょ

805:Now_loading...774KB
08/10/13 23:44:57 ByP/fX7b
配列について質問です。

配列A、配列Bを宣言して
Aに要素aを入れます。
そしてそれをBに入れてBの要素aに変更を加えると
元の配列Aの要素aにも影響が出るものなんですか?
つまり、

A[0]=a
B[0]=A[0]
B[0]+=b

→A[0]=ab B[0]=ab となってしまうのですか?

806:Now_loading...774KB
08/10/14 04:47:51 DhQ1dHTE
ちょっとActionScriptの範囲から外れてしまうのですが、ゲームの
スコアなどをクッキーで保存しようと思っています。
大学などでログインしてパソコンを使う場合、クッキーはそのユーザーの
環境ごとに保存されると考えていいのでしょうか?

同じパソコンを何人かで使用した場合、前に使用した人の
クッキーの内容になってしまうのかと気になってしまったので。

807:Now_loading...774KB
08/10/14 06:39:04 O9YM+h8s
>>805
元の配列というか、プリミティブかリファレンスかを理解した方が良いと思うぞ
>>806
winとかなら当然ログインユーザー別に保存されるでしょ

808:Now_loading...774KB
08/10/14 12:00:45 6opIN5hS
>>805
わかりやすく答えると、数値や文字列ならA[0]には影響しません。

A[0]="a"
B[0]=A[0]
B[0]+="b"

trace( A[0], B[0] ) // a ab

>>806
URLリンク(oshiete1.goo.ne.jp)

809:Now_loading...774KB
08/10/14 16:46:43 DhQ1dHTE
>>807
ありがとうございます!
安心しました

810:Now_loading...774KB
08/10/14 23:28:07 e7/kCBGm
>>807-808
解答ありがとうございます。
でもどうにもtraceを3つ挟んで調べても
配列Bから配列Aを変更しているような気がします。
情報の小出しで申し訳ないのですが配列は2次元(?)かつ複数の変数を持っています。


A[0]="a","b","c"
trace(A) //a,b,c
B[0]=A[0]
trace(A) //a,b,c
B[0][0]+="1"
trace(A) //a1,b,c

といった感じでお手上げです。
C言語を本当にすこーしですがやっていて、ポインタとかそこらへんの話のからみで
配列Bに配列Aのアドレスが入ってて、同じところを参照して
書き換えるからこんなことが起きるのかなって思ってます。
見当違いかもしれませんが、解決策などあればお願いします。
あと必要な情報とかあれば言ってください。お願いします。

811:805
08/10/14 23:29:09 e7/kCBGm
追記
プリミティブかリファレンスかはよくわかりませんでした><
リファレンスは参照・・・?
プリミティブは・・・orz

812:Now_loading...774KB
08/10/15 00:47:48 ZgzCUj7J
>>811
それは代入してるのが文字ではなく配列(Arrayオブジェクト?)だからです。
A ="a","b","c"
B[0] = A[0] //A[0]は a,b,cを要素とする配列
C[0]="a"
D[0]=C[0] //C[0]はStringオブジェクト

> プリミティブかリファレンスかはよくわかりませんでした><
■プリミティブ(正確にはプリミティブデータ型)は単一のデータだけを表す型の事です。
AS3の場合Boolean型、int型、Number型、String型、uint型、void型がこれにあたり、
これ以外は全て複合データ型と呼ばれます。

■リファレンスとはその名の通り参照のことで、実際にデータをコピーすることなく同じオブジェクトを指す手法です。
var A:Array = B;
とすれば、AとBは全く同じ物となります(Aに変更を加えればBにも反映する。逆もしかり。)
C++をやっていれば
CHoge &hoge1 = hoge2;
と同等だと理解して問題ありません。(&はアドレス演算子ではありません)。

で、ここが重要なのですが、AS3では、プリミティブデータ型を除いて、全ての代入は参照で行われます。
なので冒頭のような結論となるのです。

蛇足ですが、>>807
> プリミティブかリファレンスかを理解した方が良いと思うぞ
という表現は、代入する物がプリミティブデータ型か複合データ型により
値コピーか参照コピー(リファレンス)か変わるので、この辺りから理解せよという意味。

あとASのバージョンは明記してね。

813:805
08/10/15 01:09:54 fmxR55Q/
>>812
ご丁寧な解説ありがとうございます。うまくいきました!
つまり複数(配列など)を入れると参照、単一(要素1個)を入れるとコピーとなるのですね。

あ、あとAS2.0です。すみません

814:Now_loading...774KB
08/10/15 01:41:00 0LYmPxA0
as3なんですが、FLVをムービーで全画面再生すると、
非常に頻繁に止まってしまいます。一度止まると再読み込みするまで
再生が開始されることはないのですが、
これって全画面でメモリ不足になって、再生をとめてるってことですか?

よく大画面で映像を流しているサイトとかありますが、
あれはどうやって止まらないようにしてるのでしょうか?

815:Now_loading...774KB
08/10/15 11:23:33 ZgzCUj7J
>>813
> 単一(要素1個)を入れるとコピーとなるのですね。
ううむ。上にも書きましたが、
Boolean型、int型、Number型、String型、uint型、void型のいずれかの場合はコピーで,
それ以外は「単一」だろうと参照です。

まあ細かいことは問題視してないみたいなので、いつか詰まったら思い出してみて下さい。

816:Now_loading...774KB
08/10/15 16:03:51 i/0qFVUW
CS3でAC2.0を使っています。宜しく御願いします。
mcをattachMovieで縦8列横8列に複製し、そのmcを配列に保存させ、
二次元配列で、mcの位置を取れるようにしました。
そして上下左右にあるmcの状態によって、中央のmcに反応が起きるというのやりたいのですが
どうも上手く行きません。角度は4種類に設定してあります。
手始めに、角度で反応が起きるようにして、複製元のmcにこう書きました。
this.onEnterFrame = function(){
if(_root.matrix[this.matrix_x][this.matrix_y]._rotation == -180){
this._rotation +=30 ;
} if(_root.matrix[this.matrix_x][this.matrix_y]._rotation == 90){
this._rotation +=30 ;
} if(_root.matrix[this.matrix_x][this.matrix_y]._rotation == 180){
this._rotation +=30 ;
} if(_root.matrix[this.matrix_x][this.matrix_y]._rotation == -90){
this._rotation +=30 ;
}
}
上手くいっているならずっと回転している状態になります。
しかし、mc0,mc9,mc18,mc27…と斜めに連なるmcだけが無反応で、
それぞれ元の角度+30になって止まっているようで、どうしたら良いのか解りません。

解決法が解る方、いましたらどうかお願いします。

817:805
08/10/15 18:12:25 fmxR55Q/
>>815
はう。すみません。
心に留めておきます!丁寧な書き込みに感謝

818:Now_loading...774KB
08/10/16 02:38:32 3jCI8uKj
>>816
_root.matrix[this.matrix_x][this.matrix_y]ってthisからみてどの方向のMCを指してるの?

819:Now_loading...774KB
08/10/16 07:34:51 Z/jwgV+K
>>818
レス有り難うございます。
_root.matrix[this.matrix_x][this.matrix_y] = thisです。
今は動作確認なので、thisにしていました。解りやすいので。
これに+1や-1で四方向のmcがとれるようにしました。そこは問題なく動くのですが、
ifに書いてある式が悪いようで、mc0,mc9,mc10...の斜めに連なるmcが動かないのです。
書き込んだ後、色々試してif文の条件がおかしいことに気がついたのですが、
何がおかしいのかわからず…。

別の文にしてみたら動いたのですが、(this > _root.matrix[this.matrix_x+1][this.matrix_y] など)
どうしても角度に==の条件文だと斜めのmcが動きません。

820:Now_loading...774KB
08/10/16 07:43:03 /V5uutGU
thisにしていましたって、そのthisが何を指してるかちゃんと考えてるのか?

821:Now_loading...774KB
08/10/16 08:17:07 Z/jwgV+K
>>820
大丈夫です。

822:821
08/10/16 08:38:33 Z/jwgV+K
>>818,820
追記です。自己解決できそうです。
レスどうも有り難う御座いました。説明が下手ですみませんでした。
以後気をつけます。

823:Now_loading...774KB
08/10/16 12:18:43 VbVmHazC
AS2で質問です。
ダイナミックテキスト*複数行*をステージに配置して、
変数で、文字列を表示させてるのですが、
例えば、aaa aaaaaaaaという値を拾ってくると、
スペースの所で改行がはいります。
本来ならば、ダイナミックテキストの端で改行したいのですが
いい方法ありますか?

824:Now_loading,..774KB
08/10/16 16:01:21 wFuhxEhb
AS2で質問があります。
flashで自作のペイントツールを作りました。それで、そのツールを使って今度は簡単なアニメーションを
作れるツールを作りたいのですが、いくつか問題があります。
まず、ペイントを保存し、再び再生できるシステムが必要です。
次に、保存したペイントを時間指定で表示するシステムがいります。これらのサンプル、もしくはヒント等
をご存知でしたら教えてください。

825:Now_loading...774KB
08/10/16 16:31:09 a0R7uBIX
>>823
それ仕様だから無理。指定文字数で折り返したかったら、20文字なら20個TextField配置して、1文字ずつはめ込んでいくような仕組み作る

>>824
基本こんなかな。Bitmapdataわかればそっちの方が絵描きさんにはウケがいいと思うよ。軽くなるし。
//コマをリストで管理
var komaList:Array=new Array()
//絵の描画は描画メソッド。Bitmapdataでもいい。
for(var i:Number=0;i<5;i++){
var mc:MovieClip = createEmptyMovieClip("koma" + i,i)
mc.lineStyle(5,0x000000)
mc.lineTo(Math.random()*200,Math.random()*200)
mc._visible=false
komaList.push(mc)
}
//アニメーションは表示/非表示切り替え
var komaIndex:Number=0
setInterval(showKoma,1000)
function showKoma(){
komaList[komaIndex]._visible=false
komaIndex = ++komaIndex % komaList.length
komaList[komaIndex]._visible=true
}


826:Now_loading...774KB
08/10/16 16:35:14 a0R7uBIX
>>824
あと、データの保存に関しては、2.0だとめんどくさいかな。
海外のどっかにjpegに変換するクラス落ちてたと思うけど。
それ使って画像に変換して、サーバーに保存する感じになる。こっから先はサーバー側の話になるんで、ま、がんばってちょーだい。

827:Now_loading,..774KB
08/10/16 17:07:24 wFuhxEhb
>>825
丁寧な回答ありがとうございます。早速試してみますね。ありがとうございました!

828:Now_loading...774KB
08/10/16 19:40:51 y9KbaNwt
>>823
HTMLでするとかは?

829:740
08/10/16 22:55:46 ddDl6XVr
>>740で質問した者です。
ほぼイメージ通りのFlashができましたので、感謝の気持ちを込めてご報告します。

みなさんのご助力が無ければおそらくできなかったでしょう。
このスレは、本当に有り難いと感謝しています。

完成品をアップしましたので、お暇でしたらご覧下さい。
URLリンク(book.geocities.jp)


830:Now_loading...774KB
08/10/17 01:33:04 4HYr1gJc
質問なのですが、

stage→Canvas→Canvas→Imageが4つ

という階層なのですが、Image4つのid名をforでまわして、

sourceにurlを入れて行こうと思うのですが、

this["Image"+0].sourceなどでid名:Image0のsourceが取得できないのです。

簡単にsourceプロパティにアクセスできる方法ないでしょうか。

831:Now_loading...774KB
08/10/17 02:12:13 DniwZ842
同じクラスを再帰的に呼び出してるのですが、そのクラス内でpublic定義したものの値は共有されてしまいます。

これを防ぐ方法はありますか?

832:Now_loading...774KB
08/10/17 08:09:25 G1CMs+BM
>>830
取得できないって、パスがちがうだけだろ
>>831
staticじゃなくて?

833:Now_loading...774KB
08/10/17 08:36:52 DniwZ842
>>832
staticにしてなくでも値が共有されるんです↓

834:Now_loading...774KB
08/10/17 08:41:52 YJCeBtwN
再現するコード書いてみ

835:Now_loading...774KB
08/10/17 09:24:24 2pGmPzvw
>>825
仕様なんですね。悩んで時間を費やさなくてよかったです。
一文字単位はきついので、一行で単位でできない場合は考えて見ます。
>>828
サイトのごく一部をボタンで動的に見せる仕様ですので。

836:Now_loading...774KB
08/10/17 10:23:40 O+SWkdGa
AS3で長期間稼働するアプリを作成しています。
var objTimer:Timer = new Timer(1000);
このように毎秒稼働するタイマーをrepeatCountの制限なしで作ったのですが、
起動から一ヵ月を少しすぎたあたりから急にタイマーイベントが起こらなくなります。

他にボタンなどのインターフェースがあるのですが、
こちらは正常に動くので、フリーズしているわけではありません。
タイマーのみが勝手に停止している状態です。

長期稼働の制限など何か心当たりのある方はいませんでしょうか?
実行環境はFireFox3上のFlashPlayer9です。


837:Now_loading...774KB
08/10/17 11:16:03 aIkNEKSp
ExternalInterfaceの使い方を教えてほしいのですが、
URL(http://~swf.html?data=1)の ?data=1 を取得したい。

SWFファイルに、
import flash.external.*;
this.onLoad = function() {
var vardata:String = ExternalInterface.call("window.location.search").toString();
txt.text = vardata;
};
と記述。
HTMLはDreamweaver8でFlashを配置。AC_RunActiveContent.jsを読み込んで表示する方法です。

サーバーにあげて、「?data=1」を表示したかったのですが、これで出力されたのは、
「undefined」
でした。

何が問題なのでしょうか。

MacOSX10.4
Safari3.1.2
FireFox2.0.0.17
Flash8pro
Dreamweaver8

838:Now_loading...774KB
08/10/17 12:03:09 kMq3PIP9
>>836
49日でミリ秒であらわした時間が符号無し32bit値をオーバーフローするとか?

839:704
08/10/17 12:24:55 qlmMU+5h
>>836
再現するか、今から試してみるよ

840:Now_loading...774KB
08/10/17 12:26:27 qlmMU+5h
名前欄の704ってとこは誤爆でした

841:836
08/10/17 12:39:31 O+SWkdGa
>>838
もうちょっと早い感じです。
だいたい35日くらい。

>>839
一ヵ月以上かかりますよ?

最悪Adobeに聞くつもりですが、
サポートプログラムが最低でも数万円するんですよねー。


842:Now_loading...774KB
08/10/17 13:43:59 ek57uqYL
100年プリントは、100年前から実験してたんですね、わかります

843:Now_loading...774KB
08/10/17 15:35:52 E1Nf9bs5
Flash Player 10を入れたら今まで問題なく見えてたFlashがバージョン
チェックで弾かれて見られくなったという話を聞いて調べてみました。
どうもこれに該当するようですが、MX相当のAS程度でも正常なバージョン
判定ができる方法はありませんでしょうか?
(スレ違いなら誘導お願いします)

[Flash Player 10 キタ━━(゚∀゚)━━!!]
スレリンク(swf板:19番)

>19 :Now_loading...774KB:2008/06/17(火) 17:51:34 ID:s67om73J
>公式のこのスクリプトが発端かも?
>$version による Flash Player バージョンの検出
>URLリンク(support.adobe.co.jp)

~上記の判定結果~
playerVersion:WIN 6,0,21,0
majorVersion:6
minorVersion:21

※期待していたバージョン判定の結果
WIN 10,0,12,36

844:Now_loading...774KB
08/10/17 16:37:51 YJCeBtwN
>>843
それプレビューの時のデバッグ用プレーヤーでしょ?
結果をテキストフィールドにでも表示できるようにして、パブリッシュしてブラウザで表示してみ
面倒なら「変数」に「$version」としたテキストフィールド置いてブラウザで確認してみ

バージョン判定用の数値を得たいなら、trace(int($version.split(" ")[1].split(",")[0]))とかでいいんじゃね?

845:Now_loading...774KB
08/10/17 17:46:48 MkomTyt1
AS3でムービークリップをキーボードで動かしたいのですが、

this.stage.addEventListener(KeyboardEvent.KEY_DOWN,moveSama);
this.stage.addEventListener(KeyboardEvent.KEY_UP,moveSama);

function moveSama(event:KeyboardEvent):void {
switch (event.keyCode) {
case Keyboard.LEFT :
Sama.x -= 4;
                     break;
case Keyboard.RIGHT :
Sama.x += 8;
break;
       }
}

としたところ(Samaはインスタンス名)、一応一度押しても押しっぱなしでも動きはするのですが
押しっぱなしにしたときの挙動が不自然で、1歩動いて停止してから連続で動き出すようになってしまいました。
AS2.0では

onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT) == true) {
this._x -= 4;
       }
}

と、このようにムービークリップに書き込むことで解決できたのですが、AS3.0での解決策がわかりません。
AS3.0の初心者向けの参考書も買い、Webサイトも見て回ったのですが参考になるものは見つかりませんでした。
よろしくお願いします。


846:843
08/10/17 17:51:11 E1Nf9bs5
>>844
意図するバージョン情報が返らない件についてはおっしゃるとおり
プレビュー時のプレイヤーが原因で、ブラウザから見ると期待した
内容が出てきました。

該当する「Flash Player 10では閲覧できないFlash」については、
substringでバージョンの先頭1文字抜き出して判定していたため
「10」の1文字目の「1」をバージョンと誤判定していただけでした。

教えていただいた「空白区切り+カンマ区切り」で抽出する方法で
解決できそうなので、ありがたく使わせていただきます m(_ _)m


847:Now_loading...774KB
08/10/17 21:55:21 V/i4DBtM
AS2.0での質問です。
数値の入っている配列に数値を足したら数値の型じゃなくなりました。


var = -1 // 判定 数値

A[0][0] = 100 //判定 数値

trace(1*var) //判定 数値

2元配列 A[0][0] += 1*var

trace(A[0][0]) //出力 100-1 ←多分文字(数値ではない)


これを挟むと前では数値なのに代入するとそうでなくなります。
どうにもこうにもこの部分が悪さをしているように思えるのですが
何故このようなことが起こるのでしょうか・・・
解答お願いします。

848:Now_loading...774KB
08/10/18 00:17:32 O3evwxYE
>>847
そのスクリプトでホントに動くの?
varでエラー出るんですけど・・・

varA = -1;
A = new Array();
A[0] = new Array();
A[0][0] = 100;
trace(1*varA);
A[0][0] += 1*varA;
trace(A[0][0]);

849:Now_loading...774KB
08/10/18 00:59:17 +3jWASp/
>>842
2000年問題とかはどうすんのよ

850:847
08/10/18 06:02:21 taHr2dU+
>>848
ぁ、宣言とか省略してました・・・すみません。
でも再現とかできないんです。なので状況だけでも、、、と上記のように書きました
確かに、>>848のようにすれば問題ないのですが
問題のスクリプトではtrace挟んだところで型が変わっているようなのです。。。

851:Now_loading...774KB
08/10/18 07:23:29 dvawCTvx
>>850
実際のソース書かないと意味無いだろ

852:Now_loading...774KB
08/10/18 10:26:06 sEqBwrZa
>>841
1ヶ月待とうとしたら、Windows自動更新で再起動をしますか?
って10分おきに聞かれてしまうから、またやり直しです。

853:Now_loading...774KB
08/10/18 10:54:20 dvawCTvx
どうせ釣りだろうが、クライアントで1ヶ月も開きっぱなしとかあり得ないし
もしあったら、設計自体間違ってるw

854:847
08/10/18 12:16:07 taHr2dU+
>>851
ソースって関係あるところだけじゃあ駄目なんですか?
全体だと多すぎて・・・。再現だけでもって思っても再現できなくて・・・orz
すみません。。。

あの後いろいろ試したんですが
・2元配列 A[0][0] += 1*var  →文字で出力
・2元配列 A[0][0] += Number(1*var)  →文字で出力
・2元配列 A[0][0] -- →数字で出力
・2元配列 A[0][0] -= -1*var →数字で出力
になりまして結局 += が文字結合として働いていたっぽいです。
原因不明なら -= で何とか強引にしようと思うのですが
何故この場合 += が文字結合として働いていたのでしょうか?

あ、あと関係ないかもですがすぐ上にも同じような配列(配列Aの別要素;A[0][1])があって
+= で逆符号の同じ値を代入しているのですがそちらは何ともないようです。

855:Now_loading...774KB
08/10/18 12:27:08 /detIIrw
数値じゃない状態で入ってたんだろ。普通に考えて。
外部からデータ読み込んで、ちゃんとキャストしないまま配列に突っ込んだとかじゃねーの?

856:Now_loading...774KB
08/10/18 13:59:29 dvawCTvx
加算演算子は文字+数値の場合には文字にキャストされるでしょ
つまりA[0][0]の値によって変わる
-演算子は数値にしか使われないので自動的に数値としてキャストされる
あとvarは予約語なので使ってはいけない

857:847
08/10/18 14:45:31 taHr2dU+
>>855-856
はうあ。外部データを文字と読んでたみたいです・・・
というか外部データーって書くべきでしたね。反省
読み込みの時にNumberを挟んだら無事数値として認識してくれました!
直前では数値を認識していたのでまさかでした・・・orz
型がゆるいのもまた問題かな。。。

varは書き込みミスですね^^; すみません

解答ありがとうございました!

858:Now_loading,..774KB
08/10/18 16:32:57 IFG6QdA5
すみません、以前と似たような質問になるのですが…
ペイントツールを作ったのですが、それを外部ファイルに静止画データとして
保存する方法がわかりません。どなたか詳しい方が居たら教えてください。
~を使えばいいかも、とか~のサイトが参考になる、といった情報でも何でもいいです。
返信待ってます。。。

859:858
08/10/18 16:52:13 IFG6QdA5
ちなみに、以下がソースです。
//-- 空ムービークリップの生成
this.createEmptyMovieClip("view_mc", 1);
//--ムービークリップに絵を描く
//--線の設定
view_mc.lineStyle(3, 0x000000, 100);
//--描画用のフラグをfalse
view_mc.drawFlag = false;
view_mc.onMouseDown = function() {
//--マウスが押されたらフラグをtrueにして始点を設定
this.drawFlag=true;
this.moveTo(this._xmouse,this._ymouse);
};
view_mc.onMouseMove = function() {
//--描画用のフラグがtrueなら線の続きを書く
if (this.drawFlag == true){
this.lineTo(this._xmouse, this._ymouse);
}
};
view_mc.onMouseUp = function() {
//--描画用フラグをFalse
this.drawFlag = false;
};

これに保存機能を付けたいのですが。。。

860:Now_loading...774KB
08/10/18 20:27:13 WQ4JwyBV
>>853
仕様で決まっていることは覆せんのですよ。
設計から関わりたかった…

861:Now_loading...774KB
08/10/18 20:50:08 eyRl/r/f
>>860
ランタイム内の時間計算の途中でオーバーフローしてたら
対策しようがないしAdobeに問い合わせたほうがよさげ。
業務ならインシデントつかえるでしょう?

862:Now_loading...774KB
08/10/18 23:23:24 +ZXaVvtP
よくわからんけど、たまにTimerをresetしてみるとかはダメなん?

863:Now_loading...774KB
08/10/19 02:34:09 KATs3Tjv
急かしてすみません、どなたか>>845がわかる方いませんか?
ゲームを作りたいのにキャラがなめらかに動いてくれないし、斜め移動もできないんです。

isDownはAS3で廃止されちゃったみたいですし…

864:Now_loading...774KB
08/10/19 10:57:54 rpe86YVs
>>863
flash持ってないんで試しては無いです。参考程度にどうぞ。

this.stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
this.stage.addEventListener(KeyboardEvent.KEY_UP,onKeyUp);

var key:uint;

function onKeyDown(event:KeyboardEvent):void {
key = Keyboard.LEFT :
addEventListner( Event.ENTER_FRAME, moveSama );
}

function moveSama(event:Event):void {
switch ( key ) {
case Keyboard.LEFT :
Sama.x -= 4;
}
}

function onKeyUp( event:KeyvoardEvent):void{
removeEventListner( Event.ENTER_FRANE, moveSama );
}

865:Now_loading...774KB
08/10/19 11:02:17 rpe86YVs
いやん、スペルミス発見。すみません。
function onKeyUp( event:KeyvoardEvent):void{
                ~~~~~~~~
keyvoard -> keyboard

866:Now_loading,..774KB
08/10/19 20:35:00 VfO7m91y
どなたか>>858の問題を解決できそうな人居ないですか・・・?
マジで困ってます。助けてください。

867:Now_loading...774KB
08/10/19 20:42:01 U6YzU/ET
>>866
Flash単体で保存することはできないので、php等にデータ渡してそっちで保存する。

868:Now_loading,..774KB
08/10/19 20:59:53 VfO7m91y
サーバにデータを渡す必要があるのはわかってます。その保存の為に、flashで書いた絵を一度pngに
変換する方法、もしくは座標データとして値を送る方法がわからないのです・・・何かご存じないですか?

869:Now_loading...774KB
08/10/19 21:57:06 U6YzU/ET
>>868
URLリンク(www.pixelimage.jp)


870:Now_loading...774KB
08/10/19 22:48:31 cWB9H25D
AS3の質問です。
progression frameworkはとてもいいんだけど、重い。
パブリッシュも遅いし、asも多くてなんか壮大。
フルフラッシュサイトでページを移動したりする仕組みは
いろいろ考えられるけど、みなさんどうされてますか?
シンプルで軽いページ遷移フレームワークってないですか?

871:Now_loading...774KB
08/10/20 13:16:18 EQKgS0vH
AS3で外部からswfに変数渡すのってどうやるんでしたっけ?
どっかで見たような気もするんですけど見つからなくて・・・

javascriptの変数に突っ込んで、それを返す関数を
ExternalInterfaceで呼ぶって言うのは思いついたんですけど
もっと簡単に出来ますよね?

渡したい変数が数値一個だけなので
swfがら別リクエストで取ってくるんじゃなくて、一発で渡したいんですけど。

お願いします!

872:Now_loading...774KB
08/10/20 14:05:50 6hmRAMgb
swf読み込み時のみでいいならFlashVars使うかhoge.swf?key=valueとでもして
var vars:Object = loaderInfo.parameters;
for (var key:String in vars) {
// key, vars[key]で取得
}

873:871
08/10/20 15:25:47 EQKgS0vH
>>872
ありがとうございます
loaderInfo.parameters
うまく出来ました。

874:Now_loading...774KB
08/10/20 15:47:30 JZ6dE4dy
as3です。
ドキュメントクラスで設定したpublic varの変数に、
リンケージされたmcのフレームアクションから
アクセスするにはどうすればいいですか。

----------ドキュメントクラス-------------

public var _hoge:String = "hogehoge";


----------mcのフレームアクション---------

trace(MovieClip(root)._hoge);


とすると、パブリッシュはできても、
TypeError: Error #1034: 強制型変換に失敗しました。
flash.display::Stage@24d5df99 を flash.display.MovieClip に変換できません。

となってしまいます。
どうすればいいでしょうか?


875:Now_loading...774KB
08/10/20 19:02:02 eAnGTrdb
AS3の質問です
ゲイナーと加速度センサーを使ってアクションスクリプトで
表示させようとしています。
ムービープレビューで加速度センサーの値はできるようになったのですが
出力画面にreturnstring:[文字列]とずっと出てきてしまい止まりません
何もしていないとフリーズしてしまいます
出力画面のreturnstringだけを止まる方法はありませんか?

876:Now_loading...774KB
08/10/20 21:23:49 Vfa5GADU
AS3
配列を
var a:Array=new Array();
と定義したとします。
a.push(1);
a.push(2);
a.push(3);


これでa[0]だけメモリ解放出来たりしますか?

877:Now_loading...774KB
08/10/20 22:15:25 7tabBMja
>>875
何を言ってるのかまったく意味不明だけど、
出力されてるってことはどこかでtraceしてるんじゃないの?

878:Now_loading...774KB
08/10/20 23:44:38 +gY1mBrg
あるMCに、あるMCが少しでも重なった(触れた)かどうかを
検知したいのですが、そういうリスナー登録というのは
可能ですか?

一つのMCは常に同じ場所で待機していて、
もう一つのMCは動き回っていて、時々、
その待機しているMCの一部の上を通り過ぎます。

そのときだけ、いま上を通り過ぎましたよって
反応したいのです。
as3です



879:Now_loading...774KB
08/10/20 23:54:34 9tKbZnvY
>>864
ありがとうございます!参考にさせていただきます!
しばらくはこれ見ながら自分でがんばってみます

880:Now_loading...774KB
08/10/21 10:10:52 p4wdKNMj
>>876
メモリの解放は難しいような・・・。
そもそもガベージコレクション次第では?

a[0]を削除したいだけならa.shift()か、splice(0,1)
※splice(startIndex:int, deleteCount:uint, ... values):Array

881:Now_loading...774KB
08/10/21 10:20:39 tJNPdNSg
とあるフラッシュのClassのサンプルファイルです。
概要は外部のjpg画像を読み込み、コンストラクタのMCにその読み込んだjpg画像を取り込むといった感じです。
まずはソースを記述します。

class FileLoad {
var MC:MovieClip;
var mcLoader:MovieClipLoader;
function FileLoad() {
MC = _root.createEmptyMovieClip("Photo", 1);
}
function Load():Void {
mcLoader = new MovieClipLoader();
var url = "●●.jpg";
var obj:Object = mclObj();
mcLoader.addListener(obj);
mcLoader.loadClip(url, MC);
}
function mclObj():Object {
var mcl = new Object();
mcl.onLoadInit = function(target:MovieClip) {
};
return mcl;
}
}

ここで質問なんですが、
最後の 『mclObj』 メソッド内で記述している、『mcl.onLoadInit = function(target:MovieClip)』 部分の
『target』なんですが、traceしてみると上記ソースでいうところのMCがトレースされます。
なぜここの『target』に『MC』が引数で受け取れるのか、いまいち分かりません。
一体どこのタイミングで『target』部分に『MC』が引数で入り込んでいるのでしょうか?
どなたかご教授お願い致します。m(__)m

882:Now_loading...774KB
08/10/21 11:20:59 Qj6DW/0U
>>878
簡単にならAS3でもhitTest使えばいんじゃね
DisplayObjectのメソッドだし
>>881
AS2だと微妙だが、発行したイベント(メッセージ)が保持してる参照が取得されるんじゃね

883:858
08/10/21 11:24:27 XseoKwdD
回答ありがとうございました。ソースの質問になるのですが、
//-- 空ムービークリップの生成
this.createEmptyMovieClip("view_mc", 1);
//--ムービークリップに絵を描く
//--線の設定
view_mc.lineStyle(3, 0x000000, 100);
//--描画用のフラグをfalse
view_mc.drawFlag = false;
view_mc.onMouseDown = function() {
//--マウスが押されたらフラグをtrueにして始点を設定
this.drawFlag=true;
this.moveTo(this._xmouse,this._ymouse);
};
view_mc.onMouseMove = function() {
//--描画用のフラグがtrueなら線の続きを書く
if (this.drawFlag == true){
this.lineTo(this._xmouse, this._ymouse);
}
};
view_mc.onMouseUp = function() {
//--描画用フラグをFalse
this.drawFlag = false;
};
以上は同じソースです。

このソースで、描画データの変数はどれになるのでしょうか?また、それを変数に入れて、サーバに保存し、
再び呼び出せば同じ絵が出てくるのでしょうか?

884:Now_loading...774KB
08/10/21 13:01:35 1YwA0gRr
>>883
結論から言うと、保存できない。

その描画方法で描画データを保存したい場合には、2つの方法があるけど、どっちも結構面倒だよ。特にAS2.0では。

1:描画時のマウスの移動座標を連結リストにでも保持しておいて、そのデータを自分でテキスト等に起こし、保存
2:MCのデータをjpegやpng画像に変換し、それを保存

2に関しては、前も書いたし、提示してくれてるサンプルにもあるとおり、変換用のライブラリが必要。
AS2.0だと、もう見つからないかもね。今は皆AS3.0のadobe製のライブラリ使ってるから。

一番簡単な解決方法は、AS3.0で作れば?ってことなんだよねこれが。
最近になってFlash手描き系のサービスが増えてきたのは、そのライブラリが配布された事が大きいのよ。

885:883
08/10/21 13:35:40 XseoKwdD
あ、使ってるのはAS3です;

886:Now_loading...774KB
08/10/21 14:06:29 1YwA0gRr
AS3なら>>869のリンク先にサンプルあるじゃんw
なんだそれw

887:Now_loading...774KB
08/10/21 14:07:51 TDhTN/zB
stage.focus = textField;
としてtextFieldにフォーカスを当てた後

if(stage.focus == textField)
のように条件文を書いてもif文が実行されません。
書き方がおかしいでしょうか?

888:Now_loading...774KB
08/10/21 14:11:14 XseoKwdD
>>886
見たけどあんまり良く解らなかったんですよね・・・取りあえず、試して見ます。
ありがとうございました~

889:Now_loading...774KB
08/10/21 14:30:11 Qj6DW/0U
>>887
if文が実行されませんってなんだよw
trace入れるなりして問題点を絞り込むぐらい汁

890:887
08/10/21 15:15:50 TDhTN/zB
あるアクションで
if(stage.focus != textField){
stage.focus = textField;
}else if(stage.focus == textField){
stage.focus = stage;
}
この処理を実行するとstageにフォーカスがあたっているときは
textFieldにフォーカスされるのですが、
textFieldにフォーカスされているときもif(stage.focus != textField)
こちらの処理がされてしまうということです。

891:Now_loading...774KB
08/10/21 15:27:15 Qj6DW/0U
あるアクションでフォーカス変わってるとか
そのif文だとtextField以外にフォーカスがあるときには必ず上の処理だね
traceして確認しろと何度(ry

892:887
08/10/21 15:44:05 TDhTN/zB
function checkKey(event:KeyboardEvent){
 if(stage.focus != textField){
  stage.focus = textField;
 }else if(stage.focus == textField){
  stage.focus = stage;
 }
}
このように書いていて、キーが押されるとフォーカスがstageとtextFieldで
交互に切り替わるように書きたいんですが。
traceはもちろんしていて上の処理しか実行されないで困っています

893:Now_loading...774KB
08/10/21 15:51:47 Qj6DW/0U
どういうtraceしたのw
まずはif文の前でstage.focusとtextFieldをtraceするんだぞ

894:Now_loading...774KB
08/10/21 16:36:47 gJPnAObS
>>892
ヘルプに出てるようなことを自分で調べないってどういうこと?
検索しにくいのは確かだけどさ

895:887
08/10/21 16:49:11 TDhTN/zB
今日はじめてActionScriptを触って何を調べれば解決できるかも
わからないレベルでしたので、解決はおいておいて勉強します。
893アドバイスありがとうございました。

896:Now_loading...774KB
08/10/21 17:18:29 ALjd7S5P
なんでtrace結果を書くのをいやがってるんだ?

897:Now_loading...774KB
08/10/22 00:39:45 0Amo7WuQ
flex3+as3で自作コンポ―ネントを作ってます。
で、mxmlで記述する際に
<自作:コンテナ>
 <自作:ヘッダ>
  <mxとか:コントロール1 />
 </自作:ヘッダ>
 <mxとか:コントロール2 />
</自作:コンテナ>
みたいな記述ができる感じで作ってますが、
現状、DefaultPropertyをArray型にして、
ヘッダ,コントロールをまとめて受取り、commitPropertiesで個別のメンバに振り分けてます。
これを最初から個別に受け取るように記述したいです。
可能であれば、サンプルのある場所なぞ教えてください。

898:Now_loading...774KB
08/10/22 21:18:51 ga1um3+m
AS3
flex2
FlashDevelop

木構造で、ひたすらノード増やしてるのですが、

プログラム実行時にメモリオーバーしたらエラーって出ますかね?

899:Now_loading...774KB
08/10/22 21:58:55 erucnat3
URLリンク(web.alvas.jp)
上記のようなコンボボックス付きのFlashでの
アンケートフォームが作りたいんですが、
サンプルみたいなものが、どこかサイトにアップされてないでしょうか?

もしくはヒントになるようなものを教えて頂けないでしょうか?


900:Now_loading...774KB
08/10/22 22:34:59 6lpgwkG7
>>898
ひたすら増やしてテストすればいいじゃない

901:Now_loading...774KB
08/10/23 00:32:12 rGn+Ut0l
>>899
まんまFlexやん
FlexSDK落としてComponent Explorer見てみれ



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch