ActionScript 誰かが物凄い勢いで解答するスレ27at SWF
ActionScript 誰かが物凄い勢いで解答するスレ27 - 暇つぶし2ch2:Now_loading...774KB
10/10/25 00:06:31 7UulMQM2
環境:FlashCS4をWinXP-Proで使用(AS3)
複数の値のどれか1つが変化したとき、それを感知して別の動作をさせるときの
スマートな記述を探しています。

たとえば、 ●○◎ というMC(丸印の連続: 3色ダンゴみたいなもの)があった時、
これ自体をドラッグ移動させたとき(X,Y値の変化)、またはマウスホイール回転でMC
の白丸を中心にした回転(Rot)、などでtrace("変化") を実行するものです。

ベタな方法としては、各値をテキストフィールドに代入してこれが変化したとき→trace
や、過去の値を配列に保持しEvent.ENTER_FRAMEで随時新しい値と比較すること
を考えました。

しかし、前者の方法では10個の監視項目があれば10個のテキストフィールドを用意
しなければならず、後者では常にフレームアクションが動作しているのでシステムに
負担をかけてしまいます。

こんな場合のスマートな監視方法には何がありますでしょうか?


3:Now_loading...774KB
10/10/25 00:12:31 Izq9Comk
>>2
そもそも値が変更されるアクションがわかってるなら
それをトリガーにしとけばいいんじゃないの?

4:974
10/10/25 01:14:27 uXUuuUnb
前スレの974です。
向きを変える所は一応出来ていて、今回はそこではないのでheroへの指示部分は省いています
画面の動きですが、カーソルボタンを押した際にキャラクターが動くのではなく壁が動くようにして移動を表現しています
分かりづらくて申し訳ありません

5:Now_loading...774KB
10/10/25 10:47:42 72u1+wI7
>>2
その方法って、どっちも毎フレーム監視してるんだから変わらなくね?
直接プロパティを監視した方がまだいいような。

っていうかドラッグでMC動かせるって事は、
その時点でMouseEventのリスナー関数があるんだから、
これが発生している間だけ監視すればいいんじゃないの?

6:Now_loading...774KB
10/10/25 18:48:41 diHb9biy
独自のイベントを定義して発行する
監視するオブジェクトはそいつをリスナーに登録する

7:Now_loading...774KB
10/10/25 21:52:36 RxrMoLRy
「Project ROME」はSWFがパブリッシュできる。
嬉しい!
URLリンク(rome.adobe.com)

が、AS使用の可否やお絵かき機能の程度は不明。


8:Now_loading...774KB
10/10/25 22:59:15 swwKuxb0
Flex SDKと組み合わせれば最強だな

9:Now_loading...774KB
10/10/26 14:12:01 57+cpWxK
ステージに何か一つでもテキストを作成してると、デバッグした時の出力に
[SWF] C:\Users\User\Desktop\test.swf\[[DYNAMIC]]\1 - 2067 バイト (圧縮解凍後)
[SWF] C:\Users\User\Desktop\test.swf\[[DYNAMIC]]\2 - 322606 バイト (圧縮解凍後)
[SWF] C:\Users\User\Desktop\test.swf\[[DYNAMIC]]\3 - 358183 バイト (圧縮解凍後)
[UnloadSWF] C:\Users\User\Desktop\User.swf\[[DYNAMIC]]\1
とかって出てくるんですが、これってどういう処理をやってるんでしょうか?

なぜかこの状態だとLocalConnectionに失敗するようになってしまいました。
テキスト無しだと相変わらずうまく行くのですが…。
CS5 体験版です。

10:Now_loading...774KB
10/10/26 14:13:52 57+cpWxK
すみません、最後の行の出力はUser.swfではなくtest.swfの間違いです。

11:Now_loading...774KB
10/10/28 05:18:15 KLCq8val
配列データをバイナリで保存する方法で質問です。
WinXP,CS4(AS3,Player10)

try ~ catch で下のように書きました。
try {
var dataArr:Array = [Math.PI,Math.sqrt(2.0),Math.sqrt(3.0)];//テストで3つの数値を配列に代入
var baArr:ByteArray = dataArr as ByteArray;//ByteArray化
var fileRef:FileReference = new FileReference();
fileRef.save(baArr, "test.math");//test.mathという名前で保存
} catch (errorEvt:Error) {
trace("Error: "+errorEvt.message);
}

コンパイルではエラーが出なかったのですが、ボタンアクションで実行したところ、
traceは Error: data となってしまいます。

どこが問題でしょうか?


12:Now_loading...774KB
10/10/28 06:18:29 JBDEyi6k
var baArr:ByteArray = dataArr as ByteArray;//ByteArray化

ってうまくいってる?nullが入ってるんじゃ?

13:Now_loading...774KB
10/10/28 08:46:27 OA0SSHl/
質問です、失礼します。


オリジナルクラスのオブジェクトの、addChildとremoveChirdを繰り返す処理
をしているのですが、2度目のremoveChildのときに
「指定した DisplayObject は呼び出し元の子でなければなりません。」
というエラーが出ます。


そこで、
まずは検証のために、イベントリスナーでいうところの「hasEventListener」のような、
任意のオブジェクトがステージ上に存在するか否かを判別するメソッドを使いたいのですが、
そういうクラスはありますか?


例:hasChildという名前のメソッドがあると仮定したとき、
if(hasChild(オブジェクト名){
  オブジェクトが存在するときの処理
}
else {
  オブジェクトが存在しないときの処理
}

という風に使いたいのですが……。

14:Now_loading...774KB
10/10/28 10:57:49 arrDDLHr
this.contains(オブジェクト名)
でthisにオブジェクト名がaddChildされてるかどうかわかるよ

15:Now_loading...774KB
10/10/29 19:23:13 1Q0w3aV0
ざっくりとした質問になってしまいます。すみません。

「XX-CAKE」という、静止画像のおっぱいを揺らす事が出来るツールがあるのですが、
flash CS4の機能、または、Flash lite1.1で、同等の動きを再現したいです。

現在、胸部分にDisplacementMapFilterを使用して、
部分的にエフェクトをかけれるか調べている状況ですが、
この方法で「XX-CAKE」と同等の動きを再現することは可能でしょうか?

もし、宜しければ、アドバイス、参照URL等を教えて下さい。

16:Now_loading...774KB
10/10/29 21:02:15 ImelYfeL
>>15
「as3 DisplacementMapFilter fisheye」でググって似たようなの発見
多分これを、範囲をうまく指定して反復すればいいんじゃないかしら?
URLリンク(plasticsturgeon.com)

17:Now_loading...774KB
10/10/30 21:31:18 vjiGTirh
>>16
ありがとうございます。

参考になるので、そのサイトのソ-スを元に色々試してみようと思います

18:Now_loading...774KB
10/10/30 22:57:13 RdBd1w58
ペンツールとかでシェイプとして作成した後に
プログラムの上でシェイプを削除するにはどうすればいいですか?

19:Now_loading...774KB
10/10/30 23:01:57 sGjAET8W
>>18
単純にgraphicsで描画してるならclearすればいいんじゃないかな
movieclipに内包させてるならremoveChildで

20:Now_loading...774KB
10/10/30 23:18:48 RdBd1w58
>>19
ツールで描いてからコンパイルしてプログラムで消したくって
this.graphics.clear()ではうまくいかなくて困ってます。


21:Now_loading...774KB
10/10/30 23:19:17 sGjAET8W
>>18
あ、おえかきツールみたいのじゃなくてflash上でステージに直接おいたものってことなら
stage.removeChildAt(0)
とかで消せる

シェイプが複数ある場合は
ステージにおいたシェイプの数だけforループでシェイプをひろって、
幅とか位置とかの条件式で判別して目的のシェイプを削除してね

22:Now_loading...774KB
10/10/30 23:22:36 sGjAET8W
すみません
シェイプが複数ある場合はあらかじめムービークリップとかにしておかないと動かないですね・・・

23:Now_loading...774KB
10/10/30 23:27:31 RdBd1w58
ありがとうございました!

24:Now_loading...774KB
10/10/31 01:15:40 7Oooq1bf
AS2.0で配列のコピーについてです

a = [1, 2, 3];
b = a.slice();
b[0] = "4";
trace(a);
trace(b);

これだと 1,2,3 4,2,3 と出てきてくれるので正しくコピーされたと
思うのですが、

a = {Name:"やるお", Job:"ニート"};
b = a.slice();
b["Name"] = "やらないお";
trace(a["Name"]+":"+a["Job"]);
trace(b["Name"]+":"+b["Job"]);

これだとbの方が2つともundefinedになってしまいます。
上記の場合だと、どのようにコピーすればいいのでしょうか?

25:Now_loading...774KB
10/10/31 01:29:07 BJ0aYu8k
>>24
a = {Name:"やるお", Job:"ニート"};
trace(a)
すると分かるけど、aの型がobjectになってるので

a = {Name:"やるお", Job:"ニート"};
b = mx.utils.ObjectCopy.copy(a)
b["Name"] = "やらないお";
trace(a["Name"]+":"+a["Job"]);
trace(b["Name"]+":"+b["Job"]);

これでOK?

26:Now_loading...774KB
10/10/31 01:34:09 Nto3dErF
2番目って配列じゃなくてオブジェクトじゃん、そりゃslice()なんて動作しないわ
コピーしたけりゃfor eachとかでプロパティごとにやるしかないんじゃね?

27:Now_loading...774KB
10/10/31 02:50:08 VP0TG1wF
ブロック崩しとか、シューティングとかって、タイマーイベントで制御していいのかな?


28:Now_loading...774KB
10/10/31 03:34:10 Nto3dErF
いいんじゃね?

29:Now_loading...774KB
10/10/31 03:38:58 VP0TG1wF
>>28
タイマーイベントの中にメインループ書いて、そこで一律管理でいいよね?
やってみるわ


30:hy
10/10/31 08:59:35 VPIo7lzQ
mac10.5 flash cs5 as3.0です。
ボタンにクリックイベントをつけてmcがフェードインで表示されるようにしたんですが、2回目以降はボタンをクリックしてもフェードインの処理がされないようにするにはどうしたらいいですか?

btn_a.addEventListener(MouseEvent.CLICK, click_a);


public function click_a(e:MouseEvent):void
{
container_mc.addChild(a_mc);

/*else if (container_mc.contains(a_mc))
{
container_mc.btn_a.mouseEnabled = false;
}*/

//上の条件文ではダメでした

a_mc.alpha = 0;
a_mc.x = stage.stageWidth / 2;
a_mc.y = stage.stageHeight / 2;
a_mc.addEventListener(Event.ENTER_FRAME,imgAlpha);
}


private function imgAlpha(e:Event)
{
e.target.alpha += 0.15;
if (e.target.alpha > 1)
{
e.target.removeEventListener(Event.ENTER_FRAME,imgAlpha);
}
}

31:hy
10/10/31 09:00:54 VPIo7lzQ
mac10.5 flash cs5 as3.0です。
ボタンにクリックイベントをつけてmcがフェードインで表示されるようにしたんですが、2回目以降はボタンをクリックしてもフェードインの処理がされないようにするにはどうしたらいいですか?

btn_a.addEventListener(MouseEvent.CLICK, click_a);


public function click_a(e:MouseEvent):void
{
container_mc.addChild(a_mc);

/*else if (container_mc.contains(a_mc))
{
container_mc.btn_a.mouseEnabled = false;
}*/

//上の条件文ではダメでした

a_mc.alpha = 0;
a_mc.x = stage.stageWidth / 2;
a_mc.y = stage.stageHeight / 2;
a_mc.addEventListener(Event.ENTER_FRAME,imgAlpha);
}


private function imgAlpha(e:Event)
{
e.target.alpha += 0.15;
if (e.target.alpha > 1)
{
e.target.removeEventListener(Event.ENTER_FRAME,imgAlpha);
}
}

32:Now_loading...774KB
10/10/31 12:38:57 umJ/YPDQ
>>30
1回だけ反応させたいなら、クリックした時点で、removeEventListener()すればいいのでは?

33:hy
10/10/31 19:53:05 VPIo7lzQ
>>32
で、できました。
初歩的ですみません

34:hy
10/10/31 20:12:54 VPIo7lzQ
>>32
複数のボタンA,Bがあった場合、別のボタンBをクリックして、その後またボタンAをクリックしたときは、
removeしたイベントをまたaddしたいのですが、

btn_a.addEventListener(MouseEvent.CLICK, click_a);

public function click_a(e:MouseEvent):void
{
container_mc.addChild(a_mc);

a_mc.alpha = 0;
a_mc.x = stage.stageWidth / 2;
a_mc.y = stage.stageHeight / 2;
a_mc.addEventListener(Event.ENTER_FRAME,imgAlpha);

btn_a.removeEventListener(MouseEvent.CLICK, click_a);
}

ボタンBも同様につくる

これでは、ボタンA、ボタンB、ボタンAとクリックした時click_aが実行されません。
removeの位置が悪いですか?

35:Now_loading...774KB
10/10/31 21:44:40 BJ0aYu8k
>>34
ボタンBをクリックしたとき実行する関数に、ボタンAにaddEventListenerする処理を追加する
removeの位置はそのままでOK

hasEventListenerを使ってボタンAにイベントが割り当てられているか調べる方法の方が
ボタンが増えた際に応用できそうですが

36:Now_loading...774KB
10/10/31 22:31:04 7Oooq1bf
>>25をやってみましたが、AS2.0では動作しないようですね。
ガリガリfor文でコピるのはどことなく格好悪いのでスマートな方法が
あったら教えて下さい><


37:Now_loading...774KB
10/10/31 22:48:43 BJ0aYu8k
>>36
書き忘れ
最初にimportしてね

import mx.utils.ObjectCopy;

38:Now_loading...774KB
10/10/31 22:58:34 xRgkhEhy
まずAS2.0でmxパッケージが使えるのか?

39:Now_loading...774KB
10/10/31 23:15:38 BJ0aYu8k
>>38
他のクラス全部についてはわからないんだけど、とりあえずこれは動くはず
AS3ではエラー出るのでこのコードでは動かないし
AS2で実際にファイル作って動きを確認しました

40:Now_loading...774KB
10/10/31 23:25:19 7Oooq1bf
>>37
ごめんなさい無理でした。
そもそもutils.ObjectCopyって部分の色が変わらないとです

41:Now_loading...774KB
10/10/31 23:44:14 BJ0aYu8k
なんだろうFlashのバージョンが古いとかかな…?
CS3でimportのあるなしの両方のコードで試して、
importが必要なのと、importができてるのを確認したんだけど

42:Now_loading...774KB
10/10/31 23:49:33 7Oooq1bf
>>41
なんとFLASHMXなのです

43:Now_loading...774KB
10/11/01 00:03:12 BJ0aYu8k
>>42
えー!!
たしかこれ使えるのMX2004あたりだったような気がする…

44:Now_loading...774KB
10/11/01 00:06:55 fIimJ/27
loader.load()のタイミングとEvent.COMPLETEのタイミングが異なるから
出来る気がしないのですが
jpgとかのパスを受け取ってそれを読み込んだDisplayObjectを返すような関数ってかけたりしますか?

45:Now_loading...774KB
10/11/01 00:11:49 uF6x0M4x
>>44
読み込むjpgごとに新しくローダーを宣言すれば
それぞれのcompleteのタイミングで別々に処理ができる

46:Now_loading...774KB
10/11/01 00:22:30 oir2UuU0
>>43
時代に取り残されたMX難民は地道に調べてみる事にします
CS4欲しいお

47:Now_loading...774KB
10/11/01 00:31:31 fIimJ/27
>>45 それってモジュール性悪くないですか
今のところ妥協してこんなことしてますが
internal function sload(parent:Sprite,str:String):void {
var l:Loader = new Loader();
var ur:URLRequest = new URLRequest(str);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, handler);
l.load(ur);
function handler(e:Event):void {
parent.addChild(l.content);
l.contentLoaderInfo.removeEventListener(Event.COMPLETE, arguments.callee);
}
}

こんなインタフェースにしたい
function str2do(str:String):DisplayObject{/* ごにょり */}

win32apiのpostmessageに対するsendmessageみたいに
同期するリスナが欲しいです

48:hy
10/11/01 00:54:30 Ageg0821
>>35
解決しました。
hasEventListenerの方法も調べてやってみます。

49:Now_loading...774KB
10/11/01 22:04:57 K2CC1NbN
AS3.0初心者です。
Flash起動時にサウンドをミュートで読み込み、ボタンを押すごとにミュート/再生が切り替わるフラッシュを作ろうとしております。
ボタンのムービークリップ1フレーム目に下のスクリプトを記述したのですが、サウンドが再生されるどころか、
「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」というエラーが出てしまいます。
何がいけないのでしょうか……。

// ▼基本処理
buttonMode = true;
nextFrame();

// ▼変数定義
var sndCh:SoundChannel;
var sndTr:SoundTransform;
sndCh.soundTransform = sndTr;

// ▼サウンドオブジェクトの作成
var snd:Sound = new BGM01();

// ▼イベント処理
snd.play(0, 1000);
sndTr.volume = 0;
addEventListener(MouseEvent.CLICK, xPlayClick);

// ▼イベントハンドラ定義
function xPlayClick(evt){
if (sndTr.volume == 0){
sndTr.volume = 1;
}
if (sndTr.volume == 1){
sndTr.volume = 0;
}
}

50:Now_loading...774KB
10/11/01 22:11:34 ilE9sArN
>>49
多分sndTrがNullのままなんじゃないの

51:Now_loading...774KB
10/11/01 22:42:24 P0+b5N7A
>>49
sndCh.soundTransform = sndTr;
これでしょ。sndChがnewされてないから。

52:Now_loading...774KB
10/11/01 22:54:42 K2CC1NbN
なるほど、ありがとうございます。

var sndCh:SoundChannel;
var sndTr:SoundTransform;

var sndCh:SoundChannel = new SoundChannel();
var sndTr:SoundTransform = new SoundTransform();

に書き換えたのですが、今度はまったく音量のコントロールができません。
ボタンをクリックしても、平然と音楽が流れ続けてしまいます……。

53:Now_loading...774KB
10/11/01 23:01:45 SgkuAz9W
snd.play()の返り値でSoundChannelのインスタンスが得られるから、それを変数に入れて
そのプロパティのsoundTransformを操作するんだ
アドビのオンラインリファレンスを読んだ方がいいよ、例も書いてあるし

54:Now_loading...774KB
10/11/02 01:05:39 ap7EJxUC

FlashBuilder4が開発環境なんだけど、
Flashのデバッガいれてブラウザでデバッグ実行してみると
外部サイトのgifファイル読み込んでるコードでサンドボックス例外みたいのでて止まっちゃいます

ググるとcrossdomain.xmlつくれってのばかり見つかるんだけど、
その画像ファイルは外部サイトので、自分とこのサーバじゃないから
crossdomain.xmlは関係ないです

大体この例外でて動かないのは自分の環境だけです
なのでローカル環境の問題のはず
他の人はMacだったり、いろいろ環境違って何がダメなのかがわかんない
 Windows XP
 FlashPlayerは最新
 ブラウザはFirefox。Safariでも同じ例外でた。
 ChromeはFlash内蔵だからやり方わかんない
 (about:pluginsでデフォルトのFlashPlayer無効にしてみたけど
  インストール汁ってでるだけで、できなかった)
 あとFlashのアンインストーラで消して入れ直してみてそれぞれ試したけどダメ

なんかアドバイスください
 

55:Now_loading...774KB
10/11/02 01:15:10 hQg0R42r
外部サイトの画像だからアクセス違反になってんじゃないの?

56:Now_loading...774KB
10/11/02 02:47:14 ap7EJxUC
だれがやってもこのエラーならそれで納得なんだけど
自分の環境でしか発生しないっていう

57:Now_loading...774KB
10/11/02 03:03:11 kiN5SrAN
>>56
デバッグ版のフラッシュプレーヤー入れてるのがあなただけとかいうオチじゃないよね

58:Now_loading...774KB
10/11/02 05:07:39 7aRCuI5A
CS5+Flashdevelopでゲームを作ってるんですが、
キーボード入力のキーリピートで困っています

stage.addEventListener(KeyboardEvent.KEY_DOWN,setKeyUp);

function setKeyUp(event:KeyboardEvent){
trace(event.keyCode);
}

たとえば上記のようなキーを離したときキーコードを出力するコードを実行し、
スペースキーを”押しっぱなし”にすると出力は以下のようになります

229
229
229
229
229
229

これはOSのキーリピート機能によって勝手にキー入力が連打されてしまっているようなのですが
これをみなさんはどのように回避されているのでしょうか

59:Now_loading...774KB
10/11/02 06:00:31 YPcUUl/8
>>58
KEY_DOWN → フラグ立てる

フラグでなんか動かす

KEY_UP → フラグ折る

60:Now_loading...774KB
10/11/02 06:10:06 7aRCuI5A
>>59
僕が>>57に貼ってた検証用のコードが間違ってました
×stage.addEventListener(KeyboardEvent.KEY_DOWN,setKeyUp);
○stage.addEventListener(KeyboardEvent.KEY_UP,setKeyUp);

key_upはオートリピートの影響受けませんね
>>59のやり方でいこうともいます
ありがとうございます

61:Now_loading...774KB
10/11/02 13:38:59 Kk6HAKgQ
FLASHで画像を流して、クリックでURLに飛べるというFLASHを購入したのですが

URLリンク(www.flashxml.net)

IEで見たとき、URLに飛ぶときにポップアップ警告が毎回出てしまいます

FLASH上からのリンクのポップアップ回避についていくつか調べたのですが
これをどう設定してよいのかわかりません

ご教授願えますでしょうか?

<参考URL>
URLリンク(natchan-develop.seesaa.net)
URLリンク(creazy.net)
URLリンク(wakuworks.jugem.jp)



62:Now_loading...774KB
10/11/02 13:53:48 YPcUUl/8
>>61
購入って事は出来合いのもの?
ソース弄れる環境にないとその辺変えられないけど

63:Now_loading...774KB
10/11/02 14:19:17 Kk6HAKgQ
>>62 これです PASS 1234
URLリンク(www.dotup.org)



64:Now_loading...774KB
10/11/02 17:37:50 kiN5SrAN
>>63
URLリンク(ss-o.net)
この通りにやれば出来るかも

これはswfObjectでflashのタグを書き出してるけど

if (window.navigator && navigator.userAgent & navigator.userAgent.indexOf("Gecko/") != -1) window.isGecko = true;
if (window.isGecko || window.ActiveXObject) so.addVariable('external', 'true');

要はここでブラウザ判別をして、条件に当てはまったらflashVarsで'external=true'をflash側に渡して、
flash側は

if (!param.external) {
navigateToURL(new URLRequest(url),"_blank");
} else {
ExternalInterface.call('function(url){window.open(url,"_blank");}',url);
}

navigateToURLでポップアップを開くか、window.openででポップアップを開くかの処理をすればいい

65:Now_loading...774KB
10/11/03 17:45:36 rqvuRvyL
test


66:Now_loading...774KB
10/11/03 21:19:45 eEKzJGEr
sparkで開発中ですがcssでglobalでフォントをゴシックにしています。
ですが、Labelは明朝のままです。ゴシックにしたいのですが、一つ一つ指定するしかないのでしょうか?

67:Now_loading...774KB
10/11/03 23:21:11 1LqI4KVP
public class LoadXML{
private var xml:XML;
private var url:String;

public function LoadXML(u:String){
url = u;
}

public function getXML(url:String) {
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest(url);
loader.addEventListener(Event.COMPLETE, function(e:Event):void {
xml = new XML(loader.data);
trace(xml);
});
loader.load(request);
}

public function returnXML():XML {
trace(xml);
return xml;
}
}

こんな感じでXMLをロードしています。
Event.COMPLETEのtraceは出力されますが、returnXMLのtraceはnullで、戻り値もnullです。
なぜですか?


68:Now_loading...774KB
10/11/04 13:15:20 XgiK45V4
下記の2種類の方法で、再生中のメモリの使用量は大きく変わってきますか?

A -------------------------------------------------------------------
ムービークリップ:a
 フレーム1:[画像a-1] / フレーム2:[画像a-2] / フレーム3:[画像b-1] /
 フレーム4:[画像b-2] / フレーム5:[画像b-3] … フレーム999:[画像z-3]

ムービークリップaを配置して、duplicateMovieClipで複数複製して
複製したムービークリップをgotoAndStopで指定のフレームに移動
B -------------------------------------------------------------------
ムービークリップ:a
 フレーム1:[画像a-1] / フレーム2:[画像a-2]
ムービークリップ:b
 フレーム1:[画像b-1] / フレーム2:[画像b-2] / フレーム3:[画像b-3]
 :
ムービークリップ:z
 フレーム1:[画像z-1] / フレーム2:[画像z-2] / フレーム3:[画像z-3]

ムービークリップa~zにリンケージ識別子を指定。
attachMovieで複数複製して複製したムービークリップをgotoAndStopで
指定のフレームに移動
---------------------------------------------------------------------

また、再生中のメモリの使用量がわかる方法があれば合わせて教えてください。
環境:Windows XP/Flash 8


69:Now_loading...774KB
10/11/04 16:59:25 in/NHtVX
>>66
Labelを継承したクラス作って、コンストラクタの中でフォント指定するとか

>>67
getXMLとreturnXMLを連続して実行してるなら、読み込みが終わってEvent.COMPLETEイベントが起きる前に
returnXMLが実行されてるからじゃないかな

>>68
デバッグプレイヤー使用時なら、System.totalMemoryで取得できるみたいだな
URLリンク(hkpr.info)とか参考にしたら?

70:Now_loading...774KB
10/11/04 17:28:41 in/NHtVX
って>>68はFlash8だからAS2.0か
・・・タスクマネージャでプロセス見るとか?

71:Now_loading...774KB
10/11/04 17:46:29 3S/8zkeg
URLリンク(www.gaba.co.jp)
↑のサイトみたいな画像を斜めにするのってどうやるんでしょうか?

72:Now_loading...774KB
10/11/04 17:54:40 JHwyfqpq
>>69
サンクスです。

73:72
10/11/04 20:27:44 JHwyfqpq
.asファイルでクラスを作ってそれでURLを呼び出ししていて、そのロードが完了したことを
mxmlファイルに伝えたい場合どんな方法はあるでしょうか?

74:Now_loading...774KB
10/11/05 02:26:58 OnWGbRRC
>>73
mxml側のリスナー関数をasのクラスにEvent.COMPLETEでaddEventListenerするとかかな
as側とmxml側がどう関係してるか分からんから何とも言えないけど

75:Now_loading...774KB
10/11/05 11:04:53 /YZKkQv7
>>71
DisplacementMapFilter 台形
で検索するとサンプル見つかると思います

76:72
10/11/06 15:52:54 8Uz9tWj0
flexのlistのスクロールバーの位置と要素の高さを指定したいのですが、どんな感じでやるのでしょうか?

77:Now_loading...774KB
10/11/06 21:38:09 u8Q9WSjn
TextFormatのfontのデフォルト値をflash.text.TextFormatにさかのぼって設定するにはどうしたらいいですか?


78:Now_loading...774KB
10/11/06 22:46:09 uxdRdUl+
TextFormatをextendsしたMyTextFormatでも作ったらいいんじゃね?

79:Now_loading...774KB
10/11/06 23:16:45 u8Q9WSjn
>>78
ありがとうございます。
継承ではなく、元から対応したいのですが、できませんか?

80:Now_loading...774KB
10/11/07 00:29:06 xRmgh6bN
それは完全に元の物を置き換えてしまいたいって事言ってるの?
flash.text.TextFormat自体を書き換えたいってこと?

81:Now_loading...774KB
10/11/07 00:30:01 xRmgh6bN
先に行っておくけど、それは出来ないし、
何のためにそれが必要なのかもわからない。

82:sage
10/11/07 20:23:24 3fKbKi5b
Flash8を使ってフルフラッシュでコンテンツを作っておりまして、
TOPページからそれぞれloadMovieを使って、
swfファイルを指定した部分に読み込むようにしてあります。

シンボルをドラッグ&ドロップして、
正解するとムービーが流れるというクイズを作ったのですが、
TOPから読み込んだ場合のみ、正常に動作しません。
ドラッグ&ドロップはできるのですが、
正解不正解が判定されません。

TOPから読み込まずswfで確認した場合は正常に動作します。

階層の指定が間違っているのでしょうか?
初歩的ですいませんがご教授お願いします。

83:Now_loading...774KB
10/11/07 20:32:44 XpCytCxj
流石にもう少し情報が無いと答えようがないと思う
例えばどうやって正解・不正解を判定しているかとか

84:Now_loading...774KB
10/11/07 20:45:29 8kR++G8q
flash builderでandroidのairアプリをつくっています。
パッケージ化をGUIからではなく、コマンドラインからおこないたいと思います。
adt -package -target apk-emulator -storetype pkcs12 -keystore Android_Cert.p12 App-Emulator.apk App-app.xml App.swf
これでエミュレーター向けのパッケージができるようなのですが、これはsrcで実行すればいいのでしょうか?
また、これでいうApp.swfがないのですが大丈夫でしょうか?

85:Now_loading...774KB
10/11/07 20:51:57 3fKbKi5b
>>83

そうですね、すいません><
kai1というムービークリップをtai1に重ねると正解の
ムービーが流れるようになっており、
kai1に記述しているActionScriptが以下のようになっています。

on(press){
this.startDrag();
myX =this.x;
myY =this.y;
}

on(release, releaseOutside){
this.stopDrag();
if(_droptarget == "/tai1"){
_x =this.tai1._x;
_y =this.tai1._y;
_parent.myCS.start();
_parent.gotoAndPlay(2);
trace(_droptarget);
}else if(_droptarget != "/tai1"){ //間違った場合↓↓
_x=myX; //元の場所に戻す
_y=myY;
_parent.myWS.start();
}
}


宜しくお願いしますm(_ _)m

86:Now_loading...774KB
10/11/07 20:56:29 3fKbKi5b
85です。
ASの日本語の部分は気にしないでください。

87:Now_loading...774KB
10/11/07 21:59:10 XpCytCxj
>>85
正解不正解が判定されないってのがどういう状態になってるのか分からないけど
「_dropTarget」がちゃんと機能してるか確かめてみたら?
あととりあえずelse if(_droptarget != "/tai1")はただのelseでいいと思うけど

88:Now_loading...774KB
10/11/07 22:04:20 9UZNbXj/
>>85
3行目4行目x,yになってるけどそれは?

ところでマルチポストという言葉をググッといてくれ

89:Now_loading...774KB
10/11/07 22:28:04 3fKbKi5b
>>87
ありがとうございますm(_ _)m
TOPから読み込まなければ正常に正誤判定されるので、
_dropTargetは機能していると思うのですが..orz
elseのご指摘もありがとうございます!!

90:Now_loading...774KB
10/11/07 22:31:39 3fKbKi5b
>>88
3・4行目は記述が間違っていました;
myX = _x;
myY = _y;

91:Now_loading...774KB
10/11/07 22:33:58 3fKbKi5b
ありがとうございます。
3・4行目は記述が間違っていました;実際には
myX = _x;
myY = _y;
と書いて、シンボルのスタート位置を記憶しており、
間違えた場合は元の位置に戻るようにしています。

初心者版にも同じ質問しており申し訳ありません。。

92:Now_loading...774KB
10/11/07 23:20:33 bVj0aDZI
>>91
droptargetはドロップ先MCの絶対ターゲットパスを格納するプロパティ
ということで
他のSWFに読み込まれた場合パスが変わってくる
/親MC上のMC/tai1 とでもすれば動くはず

これだと子swf単体じゃ動かなくなる
試してないけどlockrootは使えないのかな?

93:Now_loading...774KB
10/11/07 23:49:07 3fKbKi5b
>>92
ありがとうございます!!
droptargetのことについて何も知りませんでした><
今、92さんがおっしゃった通りにやってみたところ
TOPページからは正誤判定することができました!
本当にありがとうございます!\(^o^)/

おっしゃる通り子が単体で動かなくなってしまったので、
lockrootについても今から調べてみますね。

初心者の私に丁寧に教えてくださり、
本当にありがとうございましたm(_ _)m

94:Now_loading...774KB
10/11/08 01:18:50 wKXjEnIC
>>93
ふと思ったが単体でも動かしたいなら
この場合規定値に合致するかどうかだから
||(或いは)を使って
if(_droptarget == "/tai1"||_droptarget == "/親MCの絶対パス/tai1"){}else{}
みたいので充分かな

95:Now_loading...774KB
10/11/08 12:13:50 3tOFXmc9
>>93
_droptargetの補足です
教えるほうも勉強不足だったので一応w
>>94でも間違いではないけれど
通常はeval()を使ってインスタンスの参照に変換するようです
if (eval(this._droptarget) == _parent.tai1) { ~

trace(eval(this._droptarget)+"と"+_parent.tai1)
これならパスの変化に影響を受けません

96:Now_loading...774KB
10/11/09 19:01:20 UNctSDkO
教えてくださーい
0.18932072みたいな小数点の長い数値を第2位で繰り上げて0.2みたいに算出するには
どうしたらいいんでしょうか?

97:Now_loading...774KB
10/11/09 19:15:20 Q6dySQ7k
Math.round(小数値 * 100) / 100


98:Now_loading...774KB
10/11/09 19:16:00 Q6dySQ7k
あ、繰り上げだった。roundじゃなくてceilだ。

99:Now_loading...774KB
10/11/09 19:47:38 UNctSDkO
あざーす!
感謝です

100:Now_loading...774KB
10/11/09 21:07:47 ikTsMdap
環境:FlashCS4をWinXP-Proで使用(AS3)

1回キーボードを押したら1度WAVファイルを再生したいのですが
障害者が使用するためボタンを離すことができません。
そのため、何度もWAVファイルが再生されてしまいます。
どのように改善すればよろしいでしょうか?

stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKey);

var haiObject : Sound = new hai();

if ( event.keyCode==71 ) {

haiObject.play(0, 0, null);

}

101:Now_loading...774KB
10/11/09 21:15:49 0rXYisE+
ifの中でremoveEventListenerすればいいんじゃないか?
その後どっかでaddEventListenerしなきゃ次に押しても反応しないけど

102:Now_loading...774KB
10/11/09 21:39:59 ikTsMdap
>>101
ご返答ありがとうございます。
以下のようにしたら、繰り返し音が鳴らなくなりましたが
二度と音が鳴らなくなりました
まずは一歩進みました

addEventListenerをどこでどのように入れたらよいか検討してみたいと思います。



stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKey);

var haiObject : Sound = new hai();

if ( event.keyCode==71 ) {

haiObject.play(0, 0, null);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, checkKey);
}

103:Now_loading...774KB
10/11/09 23:26:07 VdDKw+DH
>>102
keydownでリムーブしたらkeyupでaddすればいいんじゃない?

104:Now_loading...774KB
10/11/10 00:30:08 rFVyKC2w
SOUND COMPLETEイベントで制御でよくない?


105:100
10/11/10 06:17:47 yHKpzLPR
>>103,104

ご返答ありがとございました。

103様の方法をググってできました。
これで、明日、正確には今日ですが
患者さんに使ってもらいたいと思います。

104様の方法では音が鳴りやんだら、また、再生されてしまうようでして
勉強してみます。

とりあえず、寝ます。
ありがとうございました。


106:Now_loading...774KB
10/11/10 10:45:13 i1aHifdy
>>105
なんで、音ならすんだよw
>>104の方法で制御するのは、ボタンだろ。
音を鳴らしたら、イベントをリムーブして、
コンプリートでもう一度イベント設定ってことだろ。

107:Now_loading...774KB
10/11/10 22:02:56 W/DP4TrP
>>106
試してないから分からないけど、キーリピートが効いてるとしたら
コンプリートの瞬間にイベント追加した場合キーが押されてる判定になってすぐ再生始まっちゃうんじゃ無いの?

本来の動き的にもキーが離された瞬間にイベント追加する方が正しい気がする

108:Now_loading...774KB
10/11/11 05:17:06 bZApXtVh
プリミティブ型の変数をメソッドの引数として参照渡しする方法はありますか?

109:Now_loading...774KB
10/11/11 08:09:32 c09vS1z2
無いよ。だってプリミティブだもの。

110:Now_loading...774KB
10/11/11 11:29:37 Vt+gIufO
>>107
すまん。書き方が悪かったのか、>>104書くだけでわかってくれると思ってた。

で、キーリピートの話って出てきてないんだが、それは一体どこから?

111:Now_loading...774KB
10/11/12 02:04:38 8ileN5w7
ステージにシンボル置いてそれを動かすのと、リンケージからシンボルを書きだしてaddChildして動かすのとCPU的にはどっちがいいんでしょう。

112:Now_loading...774KB
10/11/12 11:54:50 NovVGuJJ
CPUにはそれ程かわらんとおもうけど、
メモリ的にはリンケージが有利だったとおもう。
なんかで読んだ。

113:Now_loading...774KB
10/11/13 16:47:21 6F1Nb2et
>>112
ありがとうございます。

114:Now_loading...774KB
10/11/15 02:41:59 KVsUyB7V
テキストフィールドのautoSizeについてです。

テキストフィールドの枠のサイズを固定しながら
右寄せにする方法はあるでしょうか?

具体的にいうと今のところ、
枠のサイズを固定には「テキストフィールド.autoSize = TextFieldAutoSize.NONE」、
右寄せにするには「テキストフィールド.autoSize = TextFieldAutoSize.LEFT」

にするやり方しか知らないので、
両方同時にするにはどうするのかが判りません。

どなたか、ご存知の方はいらっしゃいますか?

115:Now_loading...774KB
10/11/15 03:08:07 rBme8gRP
>>114
TextFormatのalignってプロパティで段落の整列の設定ができて、TextFormatAlign.RIGHTにすると右寄せの設定
それを設定したTextFormatのインスタンスをsetTextField()とかで適用してやればいいんじゃなかったかな

116:Now_loading...774KB
10/11/15 03:53:46 3W26PjJo
すみません、質問させてください。
URLリンク(tarohoriuchi.com)
のように、マウスカーソルで背景が動くものを作っていて、
URLリンク(hfm-kenchan.com)

URLリンク(hfm-kenchan.com)
の応用で出来ると思っていたのですが、なかなかうまく行きません。

背景に置かれた画像が、ウィンドウサイズに合わせた状態で比率を変える事無く拡大縮小し、
かつ、余白が見える事無く動かすということで、
Stage.scaleMode = "noScale";
Stage.align = "LT";
を1フレーム目に

背景を置いたムービークリップに
onClipEvent (enterFrame) {
this._x += (_root._xmouse*-1800/1000-this._x)/10;
this._y += (_root._ymouse*-300/1000-this._y)/10;
}
という感じで記述しています。
どなたかご教授頂けないでしょうか...

117:114
10/11/15 11:31:04 KVsUyB7V
>>115

あ、なるほど。できました!
ありがとうございます。



118:Now_loading...774KB
10/11/15 13:44:50 +JYCC0qy
FlexBuilder3でAir2.5に対応したアプリケーションを開発することは可能ですか?
SDKをダウンロードして組み込んであげればよいのでしょうか?

119:Now_loading...774KB
10/11/16 04:49:03 YgUDFDxU
今までas2を使っていて最近as3を使い始めました。
現在、下記の現象に悩まされています。

(1)外部のswfをURLRequestで読み込み、addChildで表示
(2)LocalConnectionで、外部のswfと通信
(3)LocalConnectionオブジェクトをcloseで停止
(4)外部のswfをremoveChildで削除

(1)~(4)まで動かした後、再び(1)に戻ろうとすると(2)で
「このオブジェクトは既に接続されているため、接続できません」と
エラーが出ます。それと、(4)の削除された後も外部のswfの
イベントが動いています(外部のswfのtraceが削除後も表示されている)

そこで、質問ですが、
・読み込んだ外部のswfを完全に削除(停止?)する方法は?
・LocalConnectionオブジェクトをcloseで停止していますが、
 上記エラーが出ないように切断する方法は?

よろしくおねがいします。


120:Now_loading...774KB
10/11/16 22:07:10 B6VjYtM4
Box2Dで多角形を生成して衝突判定をしたいのですが,
一度試作は上手く行ったもののどこからか判定が効かなくなってしまいました。
若干摩擦判定ができてるような気がするのですが原因がよくわかりません。

Box2Dに詳しい方がおられましたら教えてください。
URLリンク(uproda.2ch-library.com)

121:119
10/11/17 10:32:56 2Cx8hwzq
LocalConnectionエラーはConnection名を毎回変える事により、
エラーが出なくなりました。
しかし、(4)の削除された後も外部のswfのイベントがまだ
動いています。(1)~(4)をループさせると、見た目では
消えていますが、裏で複数のswfが動いているように感じます。
読み込んだ外部のswfを完全に削除(停止?)する方法は無いのでしょうか?

122:120
10/11/17 11:11:11 UJ50A5yM
ちょっとごちゃごちゃしていたので、改良したものをアップロードしました。
こちらを見てアドバイスお願いします。
URLリンク(www.uproda.net)

123:Now_loading...774KB
10/11/17 11:18:32 TCcSDILQ
>>121
LocalConnectionで繋いだ先の、
削除したいイベントを削除するファンクション準備すれば良くないか?
切断する前にそれを呼び出したらいいだけかと。

124:Now_loading...774KB
10/11/17 15:47:59 kPxOgEgg
直接AS3に関係する事なのかわからないのですが、質問です。
現在
URLリンク(poisoncode.blog77.fc2.com)
のページを見ながらテトリスを作っているのですが、ソースの途中にある
if (fieldMap[my][mx] && fieldMap[my][mx] != currentIndex + 1) return true;
else return false;
の条件の部分がいまひとつ理解できません。

fieldMap[my][mx]かつfieldMap[my][mx]が currentIndex + 1でない時という意味ですよね?
その前半のfieldMap[my][mx]かつというのがわかりません。
fieldMap[my][mx]が真の時という事なのでしょうか?

125:Now_loading...774KB
10/11/17 20:56:52 7nhmX2Ni
fieldMap[my][mx]が真と判断される時ってことだけど、
真になる値ってのが、trueだったり文字だったり、0以外の数字だったり。
詳しいことはググるが吉

126:Now_loading...774KB
10/11/17 22:53:17 kPxOgEgg
>>125
ありがとうございます。
真になるってのはわかったのですが、この場合はfieldMap[my][mx]に値があるかどうかだけを見ているのですか?
ググったのですが演算子を使ってない条件式を見つけられなかったので・・・

127:Now_loading...774KB
10/11/18 15:47:59 DyTqu2Co
質問です。
AS3.0で、ボタンにキーボードのイベントを割り当てているのですが、
画面を一度クリックしないと、キーボードが反応しません。どういう現象ですか?

ソース
stage.addEventListener(KeyboardEvent.KEY_DOWN,onKEY);
function onKEY(e:KeyboardEvent):void {
if(e.keyCode==Keyboard.UP){

gotoAndStop(1);

}
}

128:Now_loading...774KB
10/11/18 16:01:42 sCfrlMD2
有名な現象。ググれ。

JavaScriptで回避できる。

129:Now_loading...774KB
10/11/18 17:59:57 n4pc+wIN
すみません、超初心者に教えていただけますでしょうか。(cs4 as3.0です。)
2つのjpegをMovieClipとして表示したいのですが最後の(2回目に読み込んだ)画像しか表示されません。
for文の2を1すると1回目の画像が表示されます。
両方の画像を表示させるにはどこを修正したらよいのでしょうか。
よろしくお願いします。


130:Now_loading...774KB
10/11/18 18:00:21 n4pc+wIN
package {
import flash.display.*;
import flash.net.*;
import flash.utils.getDefinitionByName;
public class MyMovie extends MovieClip {
public function MyMovie() {
var imgArray:Array=new Array(0,1);
var loadUrl:String=new String ;
var img : Loader = new Loader();
var xi:int=0;
var yi:int=0;
var myClass:Class;
for (var i : int = 0; i <2; i++) {
var classMc:String="imgCat"+i;
var myClass:Class=Class(getDefinitionByName(classMc));
loadUrl="img"+imgArray[i]+".jpg";
var urImage:URLRequest=new URLRequest(loadUrl);
img.load(urImage);
var myInstance:MovieClip = new myClass();
myInstance.x=xi;
myInstance.y=yi;
myInstance.width=40;
myInstance.height=20;
myInstance.addChild(img);
addChild(myInstance);
xi=xi+250;
yi=yi+250;
}
}
}
}

131:Now_loading...774KB
10/11/18 18:26:57 Z8XB0XDZ
同じLoader使い回してるからじゃね?

132:Now_loading...774KB
10/11/18 18:50:12 9CBn527q
FlexBuilder3でAir2.5に対応したアプリケーションを開発することは可能ですか?
SDKをダウンロードして組み込んであげればよいのでしょうか?

133:Now_loading...774KB
10/11/18 19:19:08 sCfrlMD2
AIR2.0はできたから、やってみたら?
FlashBuilderにしちゃったから、おれは試せない。

134:Now_loading...774KB
10/11/18 19:42:03 n4pc+wIN
>>131
ありがとうございます。
Loader初期化したらできました。



135:132
10/11/18 20:05:39 9CBn527q
>>133
ありがとうございます。

もすこし質問させてください。
AIR2.0はできたとの事ですが、
FlexBuilder3にFlexSDK4を入れたとの解釈で宜しいでしょうか?

同じActionScript3なのに、FlexSDK3とFlexSDK4で
クラスライブラリが異なるのに戸惑っています。

Javaのバージョンがあがっていくのとは
また違う感じなんでしょうか。

136:Now_loading...774KB
10/11/18 20:24:44 sCfrlMD2
>>13
FlexSDK4を入れたと思うんだよね。なんか自信がなくなってきた。

デザインビューでうまくデザインできないとか言う問題があっただけで、
クラスライブラリが異なるってところがわからない。
もしかしてSparkコンポーネントのことを言ってるのかな?

137:135
10/11/18 20:39:24 9CBn527q
>>136

ありがとうございます。

なるほど。デザインビューで少し不具合があるんですね。
ひとまずFlexSDK4を入れてみようと思います。

クラスライブラリに関しては、
例えばNativeProcessクラスなんですが、
FlexSDK4にはありますが、FlexSDK3にはないようです。

これが仰られているSparkコンポーネントになるのでしょうか?



138:Now_loading...774KB
10/11/18 21:11:41 sCfrlMD2
>>137
アンカー間違えてたゴメン。

>NativeProcess
これもウリのひとつだし、
SDKのバージョンが上がって機能が追加されたことに何か驚くことがある?

Javaだって、Genericやら拡張for文やら書き方が変わるような変更があったし、
nioやらLoggingやらのAPIの追加もあったし(例が古いけどね)

Sparkは昔のmxコンポーネントにあたるもの。
スキンを導入して、外観を簡単に変更できるようになった。

139:137
10/11/19 10:26:11 2VMyhqCU
>>138

ありがとうございます。
少し変な固定観念に縛られていたみたいです。

SDKのバージョンがあがることで
ライブラリが増えていくことはしっくりきたのですが、
FlexSDK3でも4でも
ActionScriptは3のままだったので
「ActionScriptのバージョンが上がってないのに
なんでライブラリが増えてるんだろう」
と、悶々としておりました。
Javaであれば
SDKのバージョンが上がると、Java5とかJava6とか、言語のバージョン(?)も
上がってるんだなって分かりやすかったものですから・・・。

ActionScript3といのは言語仕様のバージョンで
FlexSDKはライブラリ群のバージョンになっていて
それぞれ別物という風に理解しておけばよいのかなと
今は思っています。

間違っていたらご指摘頂けるとうれしいです。

140:Now_loading...774KB
10/11/19 15:44:27 P0hSxw36
FlexSDKってのはActionScript3とは別物っていう認識で良いと思う。
FlashCSの方に入ってるクラスでFlashCSでしか使えないものがあるし、
FlashBuilderでしか使えないクラスがあるしね。(両方持ってれば使えるけど。)

141:139
10/11/19 17:33:55 2VMyhqCU
>>140

> FlashCSの方に入ってるクラスでFlashCSでしか使えないものがあるし、
> FlashBuilderでしか使えないクラスがあるしね。(両方持ってれば使えるけど。)

初耳です!びっくりしました!
そんな違いまであるんですね!

うーむ。奥が深いですね。。。

そういう情報はどこかにまとめられていたりするのでしょうか?


142:Now_loading...774KB
10/11/19 17:45:15 P0hSxw36
CSではイージングが標準で準備されているのに、
Flexだと入ってないとかあるよ。

Flash-jpとかFlexUGとかのぞいてたらわかるかもねぇ。


143:Now_loading...774KB
10/11/19 17:53:34 7NaQrvtJ
AS3でprintAsBitmap = trueで印刷をする場合、dpiの変更といったことは出来ないんでしょうか。
印刷対象のサイズは3000x4000くらいはあるんですが、そのまま印刷しようとすると盛大にはみ出し、
紙のサイズに合わせようとするとサイズを縮小しなければならないため、かなり荒く印刷されてしまいます。

144:Now_loading...774KB
10/11/20 12:59:23 rQgUueUV
>>143
ベクター形式以外のデータとかアルファが必要ならビットマップデータで印刷するしかないので
DPIの変更はできなかったと思う

Flashから直接印刷しなくてもいいなら、bitmapDataを一旦外部プログラムに渡して
PNGなりJPGなりに変換してダウンロード>パソコンの標準機能で印刷
で高画質で印刷できる

145:141
10/11/20 14:51:48 1n8jdNLc
>>142

ありががとうございます。
こまめに情報を拾っていくようにしていきます!

146:Now_loading...774KB
10/11/20 16:21:02 hmCw7AtP
Flexについての質問...をしようと思っていましたが、書きながら自己解決できたので、誰かのためにメモ。
RichEditableTextをスクロールさせたい場合は、
<s:Scroller >
<s:RichEditableText />
</s:Scroller>
のようにして使います。
初歩的かつスレ汚しですみません。


147:Now_loading...774KB
10/11/21 00:05:41 1toCaeUg
>>146
それね、Sparkコンポーネントからなんだよね。
FlashBuilder4になってからってこと。
namespaceがsではじまる物=スパークコンポーネント(この場合、<s:RichEditableText>)
でスクロールさせたい物には、全てScrollerが必要になった。
これのおかげで、勝手にスクロールバーが出て面倒とかいうことが無くなったけど、
Flex3でCanvaまかせだったりすると、わからなくて苦労したw


148:Now_loading...774KB
10/11/21 03:47:06 gxnxdNzr
>>147
Sparkからなのは知りませんでした。どおりでググッても、
「自動でスクロールバーがでる」という情報ばっかりだったんですね・・・。

149:Now_loading...774KB
10/11/21 15:07:09 MNMYcOt/
質問です。
As3で関数の引数にObjectのデフォルト値入れるとエラーでてしまうのですが、引数でObjectにデフォルト値ってセットできないのでしょうか?
下記ソースになります。
function hoge(obj:Object = {name:"hoge"}):void{
trace(obj[name])
};
よろしくお願いします。

150:Now_loading...774KB
10/11/21 16:20:57 ohvMsSKY
>>149
オブジェクトの書き方それであってる?

151:Now_loading...774KB
10/11/21 16:55:15 OpuCRZzC
>>149
エラー文も書けばいいのに

152:Now_loading...774KB
10/11/21 17:11:28 MNMYcOt/
>>150
下記で値は取れてるので、オブジェクトの書き方は問題ないと思います。
var obj:Object = {hoge:5};
trace(obj["hoge"])

>>151
エラーは、1047:パラメータ初期化子が不明か、コンパイル時定数ではありません

これって、引数ではnewできませんよってことなのでしょうか?


153:Now_loading...774KB
10/11/21 17:18:35 MNMYcOt/
連投ですみません。
諦めて動けばいいよ思考になり、デフォルト値をnullにして中で処理することにしました。
function hoge(obj:Object = null):void{
if(obj == null) obj = {name:"hoge"}
trace(obj["name"])
}

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



154:Now_loading...774KB
10/11/22 03:37:52 TT7WypJE
質問です
自分は普段AS3でデータ型を省略してるのですが(データの入れ間違えなんてしませんし誰にも見せないので)
各所覗いてると省略してるのは自分だけのような気がして不安になってきました。
AS3でデータ型を書かないとパフォーマンスが落ちるといったことでもあるのでしょうか?
逆にその分スクリプトの容量が1割減るのでパフォーマンスが上がるようなことはないですか?


155:Now_loading...774KB
10/11/22 03:47:39 CLJbHRWd
型指定することでバイトコードが最適化されてパフォーマンスが上がる
と言われています。変わんねーよって人もいます。
詳しくはググった方がいい・・・。

あと、書いてるときは間違えない自信があったとしても、
あとで弄るときは間違えるかもしれませんよ。
せっかくコンパイラーがチェックしてくれると言ってるんだから、させてあげればいいと俺は思う。

156:Now_loading...774KB
10/11/22 11:39:17 Wko04cQ8
いや、パフォーマンスは確実に変わる。遅くなる。
とは言っても、ループを大量に回すとかやった場合ではあるが。

さらに、スクリプトってコンパイルされるのだから、
元のテキストが短くなっても、実際のバイトコードが
短くなるかどうかはわからないし、
バイトコードが短いから速いとも限らない。
ループ3行と、10行のプログラム、どっちが速いとかわからんでしょ?

FlashBuilder等のIDEを使って書けば、代入できる候補のリストとかを絞り込んでくれるし、
>>155が書いているようにコードミスが確実に減るし。

デメリットが無くて、メリットばかりなんだから
使わない手は無いと思うんだけどな。

157:Now_loading...774KB
10/11/22 17:49:17 w7kM+4hd
FlashCS4(AS3,Player10)をWinXP-Proで使用
特にAS3やPlayer10に限った事では無いのですが、マウスのstartDrag()によるインスタンス(MC)
の移動による描画が時々MCと一致せず困っています。

今やっているのは、ある点AからRだけ離れた所にMC(B)を置いて、Bをドラッグして水平移動し、
その時々のA→B間距離を半径rとした円環(円周)を描くというものです。
(つまり、マウス操作により円環が大きくなったり小さくなったりする) AAで書くと下の感じです。

           |円周
           |
 A・ -- R -- [B]
           ↑ (矢印記号はマウスポインタ)
           |
           |円周

通常は円周描画の拡大縮小がBの動きに追従しているのですが、一旦マウスがBの領域から外れ、
再ドラッグすると円周の半径方向位置とBの位置が一致せずズレた状態が続きます(下記)

                 |円周
                 |
 A・ -------- r -------- [B]
                   ↑ 
                 |
                 |円周

希望を平たく書くと、『描画を正気の状態に戻す』ということです。試しにフレームレートを増やしたり、
updateAfterEvent()を使いましたが駄目でした。 何かアドバイス頂けたら幸いです。


158:Now_loading...774KB
10/11/22 18:04:02 I00h+2fT
>>157
AB 間の距離を使っちゃダメなの?

159:Now_loading...774KB
10/11/22 19:02:53 w7kM+4hd
>>158
レスさんきゅう。
円周描画にはご指摘の通りAB間距離を使っています。

原因が分かりました。
MC[B]に対して、マウス押す/放す(MouseEvent.MOUSE_DOWN/UP)の信号をDispatchEventで
描画関数に伝えていますが、MOUSE_DOWN/UPの識別を横着こいてフラグ管理していたのが原因
でした。

厳密にMOUSE_DOWNとUPを別々のDispatchEventで送受信したところ、円周描画がスムーズに
追従するようになりました。


160:Now_loading...774KB
10/11/22 23:21:10 0ZqGVyph
AS3のTimerについての質問をさせてください。

以下のようにある関数を通して、タイマーを順次呼び出すにはどのように実装すればよいのでしょうか?
半日悩んだのですがうまくいきません。どうか助けてください。
[内容]
var myArray:Array=[];
myArray.push(['log1',1000]);//traceしたい内容,traceの遅延ミリ秒を設定します。
myArray.push(['log2',2000]);
myArray.push(['log3',3000]);
myTraceFunction(myArray);
[望む結果]
関数呼び出し→(1000ミリ秒経過)→trace('log1')→(2000ミリ秒経過)→trace('log2')→...



161:Now_loading...774KB
10/11/23 00:28:28 WNvCegCi
>>160
各配列の要素は必ず[文字,数値]としたいの?
もし文字だけ出力するならこれで行けると思うけど

timer_count:int = 0;
timer:Timer = new Timer(1000, 0);

timer.addEventListener(TimerEvent.TIMER, timer_func);

function timer_func(evt:TimerEvent){
 timer_count++;

 for(var i:int=0; i<myArray.length; i++){
  if(timer_count == 1000*(i+1)){
   trace(myArray[i]);
  } 
 }
}

要素を文字、数値という順番が決まってるなら
trace(myArray[i]);のところはi*2で偶数にして
1000*(i+1)のところはmyArray[i*2+1]*(i+1)で奇数にすればいいんじゃない?

162:Now_loading...774KB
10/11/23 00:38:35 Jt73XTiI
こちらの例えが悪く申し訳ないです。
myArray.push(['hoge',60]);
myArray.push(['foo',200]);
myArray.push(['bar',30]);

このように数字に規則性はないつもりでした。
また、配列の中身は[String,uint]で固定です。

この設定でもう一度考えていただけますか?
どうぞよろしくお願いします。

163:Now_loading...774KB
10/11/23 00:41:33 KPeUC44y
test

164:Now_loading...774KB
10/11/23 00:51:44 KPeUC44y
function myTraceFunction(str:String, arr:Array):void{
trace(str);
if(arr && arr[0]){
  settimeout(myTraceFunction, arr[0][1], arr[0][0], arr); // 設定時間後に再起呼び出し
  arr.splice(0); // arrから最初のデータを削除
}
}

こんな感じでどうだろ?
全く動作確認とかしてないし、引数の順番とかspliceの動作とかうろ覚えだけど。
そこらへんはリファレンス見ながら頼む。
spliceはsettimeoutの前にしないとだめとかいう可能性も。

165:Now_loading...774KB
10/11/23 01:01:12 WNvCegCi
>>160

ならばこれでいけるよ

var myArray:Array = new Array();
var timer_count:int=0;

var timer:Timer = new Timer(100,0);
timer.addEventListener(TimerEvent.TIMER, timer_func);

myArray.push(['hoge',60]);
myArray.push(['foo',200]);
myArray.push(['bar',30]);

timer.start();
function timer_func(evt:TimerEvent){
timer_count++;
trace(timer_count);
for(var i:int=0; i<myArray.length; i++){
if(timer_count==myArray[i][1]){
trace(myArray[i][0]);
}
}
}


166:Now_loading...774KB
10/11/23 01:51:19 Jt73XTiI
できました!検証に時間がかかり、お待たせしました。
>>165さんのコードですが、
hoge->foo->bar->を希望していましたが、bar→hoge→fooの順番で呼び出されてしまい、
>>164 さんのコードは
関数呼び出し→(1000ミリ秒経過)→trace('log1')→...が
関数呼び出し→trace('log1')→(1000ミリ秒経過)→...になってしまいました。

そこで双方のコードを参考にしつつ四苦八苦したところ以下の実装で動作しました。
function myTraceFunction(arr:Array,traceFlag:Boolean=false):void{
if(traceFlag){//遅延してからtraceするために初回は飛ばす
if(arr && arr[0]){
trace(arr[0][0]);
if(arr[1]){//次の配列があれば再帰呼び出し設定
setTimeout(myTraceFunction, arr[1][1],arr,true);
}
arr.shift();//arrから最初のデータを削除
}
}else{
setTimeout(myTraceFunction, arr[0][1],arr,true);//初回は遅延のみ
}
}

こちらの説明不足で意図がうまく伝わらず失礼しました。
どちらのコードも大変参考になりました。本当にどうもありがとうございました!

167:Now_loading...774KB
10/11/23 02:11:52 WNvCegCi
なんか書いて損した気分...

168:Now_loading...774KB
10/11/23 02:27:39 Jt73XTiI
>>167 誤解させてしまってすみませんでした。これからは気をつけます。

169:Now_loading...774KB
10/11/23 19:45:12 f1QooxVf
ステージの高さと幅を動的に変えることって可能ですか?
ウェブサイト内のフラッシュでも、フラッシュプレイヤーで再生するフラッシュでもいいです。

170:Now_loading...774KB
10/11/24 04:22:20 FWEry6/q
>>169
前にも似たような質問があったけど、その時は
「FLASHそのものからは動的に変えられないから、Java Scriptで表示領域を変化させる」
という解決法だった気がする。

171:Now_loading...774KB
10/11/24 10:05:00 Ik53On7o
プロジェクタでいいならdirectorにswf読み込むだけで
windowの移動拡大縮小が可能になるよ(buddy api使用)

172:Now_loading...774KB
10/11/25 00:21:17 lYnR47B5
ASってタイムラインとかルートとかからんでくるとややこしいのですが
ASの面倒くささを軽減するライブラリ集とかないですか?

173:Now_loading...774KB
10/11/25 00:39:31 rjhmsPiF
>>172
as3 frameworkとかフレームワークで検索しよう

174:Now_loading...774KB
10/11/25 01:22:01 CTozBv6O
FlexSDKでActionScriptプロジェクトで作ってれば、
ややこしい事できないけどな。

175:Now_loading...774KB
10/11/26 02:50:22 aXD7kERj
ASってファイル操作ができないみたいですが
JAVAやJAVAScriptを呼び出してファイル操作やファイル実行することって可能ですか?

176:Now_loading...774KB
10/11/26 03:21:37 aXD7kERj
捕捉です。やりたいことはローカルからスタンドアロンアプリとしてswfを起動させて
ローカルHDD内のフォルダ内のファイル一覧を読み込んだり、ファイルを保存したりしたいです。
airは使いたくないのでflash単体でできませんか?

177:Now_loading...774KB
10/11/26 03:25:26 Ley6VMLU
まずAIRを使いたくない理由を述べなさいよ

178:Now_loading...774KB
10/11/26 05:42:06 aXD7kERj
作りたいのはインターネットで配布してローカルPCで実行するアプリなんですが
airだと確か規約でネット配布のソフトにairラインタイムのインストーラーを同梱できなかったと思います。
そうするとユーザーから見るとインストールとか面倒かなと。

179:Now_loading...774KB
10/11/26 07:50:38 Ley6VMLU
どこで何を読んだか知らんが同梱できるよ
URLリンク(www.adobe.com)

Webで配布ならシームレスインストールもあるし。

180:Now_loading...774KB
10/11/26 08:36:52 aXD7kERj
あれ、そうなんですか?ゆとりなので規約をよく理解できませんでした。
AIRは不人気なので敬遠してたのもあるのですが、試しに導入してみたら悪くなかったので、
とりあえずこれで作ってみたいと思います。

181:Now_loading...774KB
10/11/26 12:20:16 5EAsCPn+
AIRが不人気というが、この手の奴で流行っている他の奴を知りたい。
みんな似たようなもんだとおもうが。

182:Now_loading...774KB
10/11/26 18:58:17 /RlzuLln
FlashCS4,ActionScript 3.0,WinXP

curveToで描いた曲線の頂点の位置AとコントロールポイントBの位置関係(ABの関係)を
把握するにはどうしたら良いでしょうか?
例えば「へ」の字型線の頂点にAがあり、その上にBがあるとき、

  ○ B
  
   . A(本当は線の中にある)
  へ

Aの位置よりBの位置を求めたく思います。 ※目標は曲線グラフを描くことです。
「ActionScript 3.0 curveto 頂点 位置」でググりましたが分かりませんでした。


183:Now_loading...774KB
10/11/26 19:45:55 5EAsCPn+
スプライン曲線じゃいかんの?
ライン上の点を結ぶ曲線になるから、グラフ描くなら制御しやすいとおもうが。


184:Now_loading...774KB
10/11/26 23:29:58 SmiPzgR9
次のイベント・ハンドラーを実行してみたところ、「処理が遅くなっている」という旨の
警告が出ました。

onMouseUp = function (){
; trace(++i);
; while (true);
}

このことから、割り込み処理は素早く済まさなければならないことは分かったのですが、
割り込み処理を早急に終了して、その後で何か希望する処理を実行させる方法は有るので
しょうか?

gotoAndPlay() を試してみましたが、割り込み処理を終了するわけではないようです。


185:Now_loading...774KB
10/11/26 23:55:31 5EAsCPn+
関数を書いて、それを呼ぶ形式にして、その関数の完了イベントと、そのイベントハンドラを自分で実装する。
基本的にはこんな感じ。

汎用的に書き始めると恐ろしいことになるから、適当にライブラリを使った方が良い。

ここら辺から好きなのを選ぶと良い。
URLリンク(digitechlog.com)



186:Now_loading...774KB
10/11/27 00:18:42 a0WiUeGT
textAreaのコンポーネントをクリックしたときにフォーカスの枠を非表示に
するにはどうすればいいですか?mytxtarea.focusEnabled=falseにしても無理でした。
AS3.0です。

187:184
10/11/27 00:21:10 VNX11zp6
>>185

本当に物凄い勢いと言うか物凄い早さでの回答ありがとうございます。
紹介してもらった記事は、これから読んで勉強します。


188:182
10/11/27 00:27:06 hSM08HHK
>>183
さんくす。
スプライン曲線でググって幾つかサンプルが見つかりました。
試してみます。


189:184
10/11/27 12:25:56 imszsrAY
>>184 のイベント・ハンドラの件の続きです。

イベント・ハンドラ内の処理を短時間で終わらせるために、次のように変更して
みました。

flag = false;
onMouseUp = function (){
  trace("mouse up");
  flag = true;
}

そして時間の掛かる処理 while (true); は、別のフレームに持って行きました。

if (flag){
  trace(++i);
  flag = false;
  while (true);
}
gotoAndPlay("loop_start");

これで、イベント・ハンドラ実行中に次のイベントが発生する危険性は充分小さく
することが出来たはずですが、それでも前回と同じく「処理が遅い」という警告が
出ます。

さらに、イベント・ハンドラ内の trace() の反映が、異常終了時まで待たされます。
何故なのでしょうか? 遅くともイベント・ハンドラ終了時には trace() は完了
していそうなものですが。

どうも「while (true);」が悪さをしているようですが、納得出来ません。


190:Now_loading...774KB
10/11/27 13:18:35 7fGRmn6E
>>189
AS2.0?
とりあえず、while (flag)じゃないの?
やりたいことよくわからんけど、onEnterFrameとか使うとこなんじゃないの?
ループ処理終わるまでは、他の処理入らないと思う


191:Now_loading...774KB
10/11/27 14:33:31 oAjgEhGx
while(true)じゃ無限ループだよね

192:Now_loading...774KB
10/11/27 15:14:48 JVzaWPA9
色が段階的に変化している正方形をMCの中に並べています。
下のようにしたところ、黒から青に段階的に変わった後少し青みがある黒になってしまいます
その理由はわかるのですが、
虹のようなグラデーションに変化させるにはどうすればよいでしょうか?

for(var i=0; i<100; i++)
{
    var box=new MovieClip();
    box.graphics.lineStyle(1,0x0000FF);
    var color = 0x000000+0x000010*i;
    box.graphics.beginFill(color);
    box.graphics.drawRect(0,0,80,80);
    box.x=10+90*i;
    
    stage.addChild(box);
}

193:Now_loading...774KB
10/11/27 15:16:23 WSq+tlM8
Flash10 AS3です

194:184
10/11/27 17:08:53 imszsrAY
>>190
>AS2.0?

残念、AS1です。某フリーソフトを使っています。そういう問題でしょうか。

なお、念の為言っておきますが、while (true); を実際のアプリケーションで使おう
としている訳ではありません。これは、時間の掛かる処理として模擬的に書いただけ
です。

>ループ処理終わるまでは、他の処理入らないと思う

イベント割り込みの入るタイミングは、どうなっているのでしょうかね?
どこかにドキュメントなど無いでしょうか? オライリー本をパラパラと眺めてみま
したが、使い方しか書いていませんでした。


195:Now_loading...774KB
10/11/27 17:22:42 7fGRmn6E
>>194
無料ならFlex使ったら?
Flash Playerはシングルスレッドで動作するから、割り込みという考え方が違うのでは?
何をやりたいかをはっきりさせれば、Flashではどういう方法で実現できるか
わかると思うけど
ドキュメントならLiveDocs見るのがはやいんじゃない?

196:184
10/11/27 18:26:16 imszsrAY
>>195

Flex という名前は時々目にしましたが、フリーだとは知りませんでした。
検討してみます。

LiveDocs は Adobe のサイトのマニュアルですね? それなら、今も、このウィンドウ
の下に開いています。しかし、これも使い方しか書いていません(読み方が不充分なの
かも知れませんが)。


197:Now_loading...774KB
10/11/27 18:45:45 WEWVw3xV
フラッシュの作品って、winでもmacでもlinuxでも1ドットの狂いもなく再現されるの?

198:Now_loading...774KB
10/11/27 23:07:04 iYDexJmd
>>197
実行プログラムであるFlashPlayerはOS毎に多少チューニングされるけど、共通して
コーディングの通りに動く。また、Winで生成したFlashPlayerもMacで動く。

これはHDDに例えるとモーターと記録部分みたいなもの。
つまり、バッファローのHDDと、IO-DATAのHDDのモーターは同一のものであっても、書き込み
や読み込みエラーはユニットの部品に依存する。

まあ、膨大な浮動小数点計算をバンバンやる描画なら狂うかも知れ無いが、今のところ
そんな場面には遭遇したことは無い。

試しに見てくれ→URLリンク(beautifl.net)


199:Now_loading...774KB
10/11/27 23:54:19 98WQJt3s
>>186
mytxtarea.focusRect = false;
URLリンク(help.adobe.com)

試してないけど多分これかな?

200:Now_loading...774KB
10/11/28 12:46:06 +8fgUxBB
Flash買ったからaction script3の習作って事でブロック崩し作ってるんだけど、
それぞれのクラスの連携どうしてる?

ボールクラス駆動時に
Ball.Update( Bar,Block );
みたいに、他のクラスの参照渡してるんだけど、少し気持ち悪いんだよなー
おそらくセオリーに反してるよね

あと、実行後にエラーが判る物が多すぎて面倒くさいねぇ
Cみたいにコンパイルエラー吐いてくれない




201:Now_loading...774KB
10/11/28 13:11:52 0rXqFecv
コンパイラーでわかるエラーはコンパイルエラー吐いてくれます
わからないものはどうしようもない
そんなのどんな言語だって同じだと思うが

202:Now_loading...774KB
10/11/28 15:00:40 +8fgUxBB
>>201
そうなんだけど、アクションスクリプトの方が動かさないと判らないエラーが多くない?

無い関数を呼ぶとか、無い変数を呼ぶとか、Cだったら動かす前にわかるけど、アクションスクリプトは動かしてからエラーが判明する


203:Now_loading...774KB
10/11/28 15:57:32 pxeNUDAj
無い関数・変数とかならコンパイルエラーはいてくれるよ。
設定がまずいんじゃない?

Flex Builder 3使用者より。

204:Now_loading...774KB
10/11/28 16:25:34 +8fgUxBB
>>203
そうなんだ。
Adobe Flash CS5使ってるけど、エラー吐いてくれないんだよなー
設定みてみよう


205:Now_loading...774KB
10/11/28 19:43:08 AYeIaKmB
親とクラス、クラス同士のやりとりは、どこからどこまでを、どこに割り振るかが
未だに自分の中で確立してないから、毎度ソース見直してどこにどう書いたか忘れるわ。


206:Now_loading...774KB
10/11/28 20:00:56 +8fgUxBB
>>205

//ボールクラス
Ball.Update( Bar,Block );

//ブロッククラス
Ball.Update( Ball );

みたいに、相互に渡してるんだけど行儀良くないよね?
親クラス作って、そのレイヤーに各クラスの構造体もどきを宣言するわけにもいかなしなぁ




207:Now_loading...774KB
10/11/28 22:27:44 Hs90nTHy
>>198
おおよかった。HTMLみたいにブラウザによって動作が違うのはもう耐えられないw
レスどうもです。

208:Now_loading...774KB
10/11/29 00:50:56 cZRc71SP
タイムラインにコード書いてるんだろ。MovieClipはダイナミックだからエラーでねー

209:Now_loading...774KB
10/11/29 02:55:55 GUiIZELK
>>200

210:Now_loading...774KB
10/11/29 03:12:38 k/F9JoqU
>>206
設計以前にAS3のコーディング規約から外れすぎてるのか
そのコードをどう読んだらいいのかわからない
Ball Bar Block はそれぞれ変数なのかクラスなのか

211:Now_loading...774KB
10/11/29 11:26:41 5g1R45sh
>>210
クラスの参照を渡してる。
でも、俺の駄目なクラス設計はおいといて、
相互に干渉するクラスってどういう風に設計すればいいのかな?


212:Now_loading...774KB
10/11/29 14:34:21 kSN1VGbE
>>192
RGBじゃなくてHSBを使うと虹のような色変化が簡単にできる
RGB←→HSBの変換は簡単な式なので、
HSBで変化させた値をRGBに変換して処理に渡せばOK

213:Now_loading...774KB
10/11/29 22:55:05 Ha77juhF
>>211
クラス設計の話でクラス設計はおいておくってどういうことだ!!

214:Now_loading...774KB
10/11/29 23:20:28 dEF80y46
>>213
俺のしょぼクラスはおいといて、AS3ではどういう風に相互干渉させてるのかって事を知りたいのさ


215:Now_loading...774KB
10/11/30 00:37:41 WMZWWi0v
たとえばどういう例が考えられる?
>>206ではさっぱり状況が分からない

216:Now_loading...774KB
10/11/30 01:55:09 F9Vs5Rn1
素直にgetterとsetterをstaticにしておいてどこからでもメソッド叩けるようにすればいいじゃない?
そもそも相互に干渉するクラスってのが何を指しているのかわからない。

217:Now_loading...774KB
10/11/30 11:32:08 KlvjJ6gw
>>216
おい。staticにする意味わかってるかい?
そのクラスのプロパティの現在の状態を返すことがgetter,setterの意味なのに、
そのクラスのプロパティもstaticにしないといけなくなって意味が無くなるでしょ。
値が固定的であれば、そもそもgetter,setterが必要無い。

>>215
まったくだ。

218:Now_loading...774KB
10/11/30 18:42:09 qPhK2Tfj
クラス生成したらアレイに突っ込んでって、
クラスから親経由で、アレイに突っ込んだ各クラスにforで命令送るとかでもいいと思うけど・・・。
親でBallArray宣言、ballクラス作成したらpush、
クラス側から for(略){ 親.BallArray[i].関数(引数) } みたいに。

まぁ上の人みたいにstaticやフラグ駆使するなりいくらでもやりようはあるだろうけど。

219:Now_loading...774KB
10/11/30 19:55:24 Ljs20/HG
俺プログラムとかまだまったく初心者だけど
action script マスターしたら企業とかでプログラマとして雇ってもらえるの?

220:Now_loading...774KB
10/11/30 19:57:48 KlvjJ6gw
マスターしたら、雇うところはどこでもあるだろうが、
言語仕様完璧なだけではマスターとは言えないから、難しいモンだな。

221:Now_loading...774KB
10/12/01 01:57:11 LBwiXM0T
>>217
ごめん、俺の勉強不足だ。
とりあえずソース書いた。

package{
import flash.display.MovieClip;
public class Ball extends MovieClip{

private static var _hoge:Ball;
public function Ball()
{
hoge = this;
}

public static function set hoge(hoge:Ball):void {
_hoge = hoge;
}

public static function get hoge():Ball {
return _hoge;
}
}
}

これでインスタンスをどこのクラスからでも参照できるからpublicなものなら参照も可能って言いたかったけど、基本クラスの場合はダメだねw
そもそもの>>206の意味がよくわかってないので的外れだったらごめん
正直独学でかなり不安なので俺にも教えてくださいw

222:Now_loading...774KB
10/12/01 15:12:01 cuX3cD1k
>>221
ボールをシングルトンにする意味は全くないのに>>206のはシングルトンに
見えるので話がこんがらがってるな
とりあえずそこはMovieClipじゃなくてSprite使おうよ

>>206 はたぶんオブジェクト間の衝突の扱いについて聞きたいんだと思うが
そんなもん規模によるから一概には言えないんだよな
PONGレベルならどんなヘボコードでも動くだろうし
逆に高度なものならBox2Dのような物理エンジンでも参考にすればとしか


223:Now_loading...774KB
10/12/01 15:59:46 v4vIsqK+
>>221
>>222の指摘もあるように、シングルトンに見えそうでもあるけど、関係ないよね?
インスタンス化される前提なの?意図がつかめない。
もう少し、具体的な条件を書いてくれるとわかりやすいんだけど。

224:Now_loading...774KB
10/12/02 00:35:31 4oS1+bCQ
flashで信長の野望みたいなゲーム作れる?

225:Now_loading...774KB
10/12/02 01:33:24 4oS1+bCQ
馬鹿な質問をしたかもしれない

226:Now_loading...774KB
10/12/02 02:28:46 pbqGD51J
>>222
すまん、>>222のおかげでようやく理解できたと思う。
>>206のが、クラス外のにどうやってアクセスするのがいいのって見えてたっすw
あとSpriteの忠告ありがとうw

>>223
>>222のであってる。
>>206のBallっていうの見てインスタンスと勘違いしてたっす、ごめん。

ようやく理解した?なので書いてみると、簡単な衝突判定だけならか>>218の人みたいに衝突用のクラスを生成するときに引数で配列とかオブジェクトを渡すっ感じが好き。
なんかスレ汚しになってごめん。

227:Now_loading...774KB
10/12/02 20:05:33 H2VBNs8U
質問をさせてください。

入れ子の関係にあるクラスの間で、
子オブジェクトがremoveChildされたあと、
親オブジェクトがそれを関知して自身をremoveChildするような
方法はありますか?

具体的には

親クラスで、
子クラス内の「タイマーイベントを使ったエフェクト→removeChild(子)」
をするメソッドを呼び出す。



子クラスでremoveChild(子)が完了したときに
親クラスでremoveChild(親)を実行する。

という流れを作りたいです。



いまのところ、親クラスでタイマーを用いて
removeChild(子)されたかを定期的に検知して、
されているならremoveChild(親)を実行する
というものしか思い浮かびませんが、
もっと上手い方法がある気がしてなりません。

よろしくお願いします。

228:Now_loading...774KB
10/12/02 20:09:53 LKHznHKS
DisplayObejctだったら、Event.REMOVEDつかったら?

229:Now_loading...774KB
10/12/02 20:12:19 LKHznHKS
自作クラスでも、自分でdispatchすればいいか。

230:Now_loading...774KB
10/12/02 21:31:00 qkF4i2hY
子のリムーブと親のリムーブ書いた適当な関数作って、
子のリムーブのタイミングで代わりにその関数呼ぶんじゃだめなの?

231:Now_loading...774KB
10/12/04 10:19:47 y7tpVgoW
質問させて下さい。

外部SWFでリンケージしたBGMを親のswfから鳴らしたいのですが上手くいきません。

//testに外部swfを読込んでフレームを移動させる所まではできたのですが・
test.content.gotoAndStop(2);

//外部swfの音楽を鳴らすには、どう記述したら良いのでしょうか。
var sound_obj : Sound = new test.content.bgm01( );
// サウンドを再生
sound_obj.play();

何卒よろしくお願い致します。

232:Now_loading...774KB
10/12/04 13:10:04 FfkRSRzw
>>231
AS3.0?
親子間のクラス参照は、ちょっとだけめんどいよ
LoaderInfo.applicationDomain.getDefinitionか
LoaderContex使う

233:231
10/12/04 15:14:40 66ngvSVr
>> ID:FfkRSRzw
お忙しい所、返信ありがとうございます。
使用しているのはas3.0です。
キーワードをgoogleらせて頂きました、申し訳ありません。
googleったサイトは、まだ私では理解ができませんでした。
今後も調べさえて頂きます、

も、もしですが、お手間を取らせて申し訳ございませんが、
簡単な記述例をご存知でしたら教えて頂ける様でしたら幸いです。
平にひらに、お願い致します。

234:227
10/12/04 17:29:08 mNWAnfae
>>228
>>229
>>230

アドバイスありがとうございます!
無事、解決しました!

Event.REMOVEを使う方法でいけました。

235:Now_loading...774KB
10/12/05 01:26:35 Daka8+C5
googleったってすごいなw
ぐぐるったw

236:Now_loading...774KB
10/12/06 16:36:00 vmXdei4p
actionscript2.0(flash lite)でダイナミックテキストをmarqueeのように右から左へ流したいのですが、
ダイナミックテキストのx位置がとれずに困っております。

ダイナミックテキスト自体、xyの値を保持していないのでしょうか?
方法等をご指導いただけると助かります。

↓は取得したい値です
URLリンク(www1.axfc.net)


237:Now_loading...774KB
10/12/06 23:47:23 gqEY650b
どういうことか今一分からないけど、テキストでxy取得できないなら適当なスプライト作ってaddchildするとか、
テキストを更にムービークリップのシンボルにでもしてみればいいんじゃないのかな

238:Now_loading...774KB
10/12/07 11:04:11 /OKQcKxE
>>237
レスありがとうございます。
ダイナミックテキストの部分はPHPプログラム側から表示文字を変える形になります。
「右から左」はモーショントゥイーンもできますが、できればactionscriptにて実装しようと思っておりました。

for (i=0;i+mbstrlen(moji)>500;i++) {
moji._x +=i;
}

シンボルにするとダイナミックテキストの文字が変数にて指定できないようでした。
わかりにくいかと思いますが、よろしくお願いいたします。
※flaファイルをアップしても問題ないでしょうか?

239:Now_loading...774KB
10/12/07 14:44:32 whHvL3CP
>>238
ダイナミックテイストフィールドに、インスタンス名じゃなくて変数入れてるの?
だとしたら、まずそれをやめる
テキストフィールドの位置は、Textfield._x、_yでとれる
スクロールは、Textfield.scrollや、hscrollを使える
文字に直接アクセスしたいなら、Textfield.textで
それから、forループでのアニメーションは無理だから、onEnterFrameとか
setIntervalあたりを使う
ヘルプかAS2.0のリファレンス本やサイト等で、まずはTextfieldについての基本を確認するべき

240:Now_loading...774KB
10/12/07 15:44:28 /OKQcKxE
>>239
レスありがとうございます。
後出しで申し訳ないのですが、flash liteの1.1なのでonEnterFrameやsetIntervalは使用できないようです。

自分でいろいろ試して、ある程度できるようになりました。

ダイレクトテキスト(変数moji)をシンボル化→シンボル名を指定(シンボル名simbol)

simbol.moji = "TEST";

これでひとまずは問題解決できました。



241:Now_loading...774KB
10/12/07 16:08:07 whHvL3CP
>>240
>flash liteの1.1なのでonEnterFrameやsetIntervalは使用できないようです。

それはすまんかった
しかしflash lite1.1って、Flash4ベースで、AS2.0ですらないぞ
2.0よりもはるかに制限が多いので、ごっちゃにしちゃいかん
とりあえず解決オメ

242:Now_loading...774KB
10/12/07 19:08:49 /OKQcKxE
>>241
いえいえ、ありがとうございます。

携帯用とはいえ本当に制約多すぎで…
AS2.0だったらはるかに楽なんですが

243:Now_loading...774KB
10/12/07 21:12:33 b0z4UJis
FlashCS5でTLFテキストを使用したFlaファイルからパブリッシュした
SWFファイルを他のSWFがLoaderを使って読み込むと「Test」のような型が「Test@306eb8b1」のようになってしまいます
これをどうにか、もとの型に戻したいのですがどうすればいいでしょうか?

ちなみにObject型に変換したらメソッドにアクセスすることはできましたが
コード保管されないので気持ち悪いです。

よろしくお願い致します。

244:Now_loading...774KB
10/12/07 21:15:01 /o04BoZk
Objectじゃなくて元の型にキャストしたらいいんじゃないの?

245:Now_loading...774KB
10/12/07 21:31:29 b0z4UJis
TLFテキストを使用したSWFはLoaderで読むと何故か型がおかしくなり、
無理やりキャストするとTest@306eb8b1をTestに変換できないといわれちゃうんです(汗

246:Now_loading...774KB
10/12/07 21:48:53 /o04BoZk
あーなるほど。
Test型をswcで書き出した後に
それをそれぞれで使ってやる形にするんだったっけか。
間違ってるかもしれんけど。

247:Now_loading...774KB
10/12/07 22:37:37 b0z4UJis
なるほど、SWCで書きだすとできるんですか!試してみます!

248:Now_loading...774KB
10/12/07 22:40:01 /o04BoZk
間違ってたらゴメンな

249:あっちゃん
10/12/08 00:33:24 SqHjkwVv
突然で申し訳ないのですが、Flash について詳しく書かれていましたので書き込みさせて
頂きました。

個人でグラフィックデザインをしてますので他に聞ける技術者
がおらず途方にくれ書き込みさせて頂いております。

この度お聞きしたいのはフラッシュ環境においてのフォントを
表示するときの事です。

フラッシュ内でフォントのアウトラインをとると線がぼやけて
しまうので、デバイスフォントを利用するを選び綺麗にパブリ
ッシュすることが出来るのですが、この方法ですと自分のパソ
コン内でしか綺麗には映らず他のパソコンでは他のフォントに
マッピングされてしまいます。

サーバーにフォントを一緒にアップロードすることによってフ
ラッシュ(swfデータ)がそのフォントデータを読みこんで表
示をするような事は可能でしょうか?Action scriptでフォン
トデータを読み込んだり出来ませんでしょうか?

お手数をおかけして申し訳ありませんが、教えて頂けると非常
に助かります。

宜しくお願いします

250:Now_loading...774KB
10/12/08 00:54:12 QQNxjbMk
>>249
できるけど、フォントによってはラインセンス上、そういう行為がダメだったり
高価だったりするよ
その点は、大丈夫?

そもそもフォントのレンダリングにもいろいろあるけど、そのへんは試してみての感想?
embedなら、満足のいく結果といえるの?

251:あっちゃん
10/12/08 01:12:35 SqHjkwVv
フォントはもう買いとったものなのでオッケーです。
フラッシュでのアウトラインはもう試しました。
イラストレータから取り入れたり、フォトショップから取り入れるのはいいのですが、もうすでにアニメーションさせているので無理です。
もうムービーデータはほぼ出来ているので、
できればデバイスフォントのままサーバーに一緒に送ってサーバー上のフォントデータとリンクできたら最高です

252:あっちゃん
10/12/08 01:18:55 SqHjkwVv
実はこのフラッシュファイルがほぼ完成してから、デバイスフォントが他のpcで映らない事に気がついたのでかなりショックでした。



253:Now_loading...774KB
10/12/08 01:32:09 QQNxjbMk
>>252
なにか勘違いしていないか?
デバイスフォントって、それぞれの実行環境にあるフォントを使うってことで
そういう名前のフォントがあるわけじゃないぞ?
あと、アウトラインとembedは、違う意味で使ってるんだが、もしかして
同じ意味で使ってる?
共有ライブラリでフォントを使うことはできるが、要は埋め込み(embed)と同じだよ?
アウトライン以前に、フォントを埋め込んで、レンダリング品質を変えて試してみたのか?

254:Now_loading...774KB
10/12/08 18:12:24 XsgrymiB
AS2にあって、AS3で廃止された機能を使いたいのでAS2で書いてswfにしようと考えています。
2点ほど質問があるのですが、
AS2で書いても現在のプレイヤーで動くのでしょうか?
AS2で書いたものをswfにするのにはどのような方法が今使えるでしょうか?

よろしくお願いします。

255:Now_loading...774KB
10/12/08 18:16:13 wKwFIweR
>>254
1>動く
2>意味がよくわからんのだが
それこそFlashCS5とか使えばいいだけでは?

でも、そもそもAS2でできて、3でできないことって何?
逆ならわかるが

256:Now_loading...774KB
10/12/08 18:39:04 5Xo8AIn1
>>254-255
duplicateMovieClipかな?
AS3からAS2コンテンツにアクセスする「ForcibleLoader」というライブラリはある。
URLリンク(www.libspark.org)
参考書「ActionScript3.0ライブラリ入門」(新藤 愛大 ほか)翔泳社


257:Now_loading...774KB
10/12/09 01:04:09 bxuo0qNa
基本的な質問ですみません。

親swfから子swfを読み込んでいるケースで
子swfから親swfの関数やインスタンスを参照する場合

_parentRoot=root.parent.parent;

等とした上で

_parentRoot.関数名();
_parentRoot.インスタンス名

と記述することで参照することは理解できたのですが、
その記述をしたうえで子swf単体でパブリッシュをすると
(親swfをパブリッシュした場合は、それで問題なく動作するのですが)
以下のようなエラーが出てしまいます。

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

制作時は子swf単体でテストをしたいので、
それをなんとか回避したいのですが、方法がわからず困っています。

どなたかご教授いただけますと助かります。

よろしくお願いいたします。

258:Now_loading...774KB
10/12/09 10:04:29 ujEDkVq+
>>257
単体で動作した場合、当たり前だけど親が取得できなくなるから
_parentRootにはnullが代入される。

なので_parentRootを使っている場所にnullだった場合は処理しないようにすればいいとおもう。

if( _parentRoot ) _parentRoot.testFunc();

259:Now_loading...774KB
10/12/09 10:15:22 ujEDkVq+
as3で配列の要素をインデックスを指定して捨てたいのですが
以下のような関数を定義する方法以外にもっといい方法ありますか?

private function nukidashi(ary:Array, i:uint):Array
{
return ary.slice(0,i).concat(ary.slice(i+1) );
}

var ary:Array = [ 0, 1, 2, 3, 4, 5 ];
ary = nukidashi(ary, 3);
trace( ary ); // 結果:0,1,2,4,5

インデックスを指定でき、popやunshiftのように元の配列を書き換えれるメソッドが
Arrayクラスにあればいいのですが
ざっとリファレンスを見た感じだとありませんでした(汗

これでできるのでこれでいいかなぁとも思っていますが
もっと良いやり方がありましたらご教授よろしくお願いします。

260:Now_loading...774KB
10/12/09 10:25:36 COe0pfKa
>>249>>257はマルチポスト
たてつづけにマルチってどうなってるのよ?w

261:Now_loading...774KB
10/12/09 12:43:18 ujEDkVq+
Eventクラスを継承したカスタムイベント、たとえばEnemyEventを作った場合に
Eventクラスのプロパティであるtargetにお好みのオブジェクトを代入したいことってあるとおもうんだけど
targetプロパティが読み取り専用だからtargetに好きなオブジェクトを代入できませんでした(汗
ちょっと無理やりでEnemyEventクラス側でtargetプロパティをgetメソッドでオーバーライドしたら
EventDispacher内部で型変換ができないっていう謎のエラーが出るようになった…

AS3では自分で作ったEnemyEventのようなカスタムイベントのtargetプロパティは必ずnullになるのが常識ですか?

それと、個人的には作ったクラスに使わないプロパティやメソッドがあるのは気持ち悪くて
それを極力無くしたりしているのですが(継承でなくコンポジションを使うなど)
EnemyEventは、Eventクラスを継承しているので
COMPLETE等の余計な定数も一緒についてきちゃうわけですが
みなさんはそこら辺についてどういう考えをもっているのか興味深いです。

「EnemyEventのCOMPLETEって何が起きたときに呼ばれるの?」ってきかれたら
「ああ、それは呼ばれることはないです…。」って答えるのはなんかスマートじゃないなぁと思うんです。


262:Now_loading...774KB
10/12/09 13:49:29 IMRHCzrp
targetってEventをDisptchしたものが入るもんだろ。
EventDispatcherを使えばちゃんと入るとおもうが。

263:Now_loading...774KB
10/12/09 14:08:50 hBnOJteP
XMLから取得した値を日付に変換して日護計算したいです。

<parent day="2011,01,01" >
 <child>Item</child>
 <child>Item</child>
</parent>

こういうXMLがあり、「Item」を見つけたら親の「day」を見て、
賞味期限=2011年01月01日と出力、
10日足して
消費期限=2011年01月11日という結果を出力したいのですが、

var n = XMLから取得したdayの値;
var d = new Date(n);

で日付変換して任意の日数をプラスしようとしたところ、
Dateの引数にはString型のデータを入れられないという旨のエラーが出て処理できません。

var d = new Date(2011,01,01);
となるようなイメージだったのですが、どなたかご教示くださいませ。

環境はCS5 のAS3で、XMLの仕様は変更できません。

264:Now_loading...774KB
10/12/09 14:11:42 piU214b2
>>263
そのエラーの通りじゃん
nがStringだから、数値にしてよって言われてるだけ

265:Now_loading...774KB
10/12/09 14:23:34 hBnOJteP
>>264
ありがとうございます。

var n:Namber = XMLから取得したdayの値;

とかにすると、変換できない旨のエラーが出ます。

266:Now_loading...774KB
10/12/09 14:54:03 piU214b2
>>265
それ手抜きしすぎw

もし2011,01,01という値を渡したいなら、2011,01,01という塊ではなく
2011という数値(年)、01(月)という数値、01(日)という数値を
それぞれ用意する必要がある
つまり、"2011,01,01"という文字列を、3つの数値に分割するってこと
String.split()使うとか
あるいは、文字列で有効な形("月/年/月"、この場合"01/01/2011")にするって手もある

まずは数値、文字列、配列あたりのメソッドをいろいろ試して、何がどういう働きをするか、
確認してみるのがいいと思う
int(),uint(),Number(),parseInt(),parseFloat()あたりに、文字列つっこんで
どうなるかとか試してみるとか

267:Now_loading...774KB
10/12/09 15:20:19 hBnOJteP
>>266
>文字列で有効な形

神ッ!!!!

スラッシュ区切りで2011/01/01と入れたら無視されたのでスラッシュ区切りは無理なんだと思っていました。
順序が逆だったんですね。

最高です、ありがとうございました!!


268:257
10/12/09 20:21:35 bxuo0qNa
>>258、260

返信おくれてしまい申し訳ありません!

2つの板に書くのっていいことじゃなかったんですね…。
2ちゃんねるに書き込むのも
ほぼほぼ初めてで見よう見まねで投稿していたので
よく知らず、大変失礼しました。以後気を付けます。

ご指摘の通り、切り分けを行ってみたところ、
うまくいき、紆余曲折ありましたが、動作するようになりました!

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


269:Now_loading...774KB
10/12/09 22:43:59 +3HzEd6W
>>257
MovieClip(stage.getChildAt(0))._hoge、なんかも便利じゃないかな。
>>257
MovieClip(stage.getChildAt(0))で、プレイヤー上で一番上のswdを指定出来るから、
親にも子にも同じ名前の関数や変数作っといて、別の事かいておけば、
自分のSWFを起動した場合は自分のを、子になった場合は親のを読みに行くんで色々切り替えられる。

270:Now_loading...774KB
10/12/09 22:46:06 +3HzEd6W
間違ってレス番二回も入れてしまった

271:Now_loading...774KB
10/12/09 23:26:48 YJgHySr5
AS3(Player10),FlashCS4,WinXP
長いパスを持つ(深い場所にある)MCのRootから見た時の参照方法で質問です。

例えば、addChildで繰り返し追加した結果、root.mc0.mc1.mc2.mc3.mc4.mcA という
パス(文字列)になった時、この文字列を使って参照したく思います。

安易な方法としては、getChildByName()を多用し、
getChildByName("mc0").getChildByName("mc1")getChildByName("mc2")・・・ 
とすれば良いかも知れませんが、これだと冗長なのでもっとスマートな方法を探して
います。
(ググ"ったり、本で調べましたが分かりませんでした)
宜しくお願い致します。


272:Now_loading...774KB
10/12/10 00:29:54 a/GpO+MV
そういうのまとめた関数一個作っといてその関数読みに行くだけってのはやっぱ求めてるスマートは違うかな

273:Now_loading...774KB
10/12/10 01:43:32 tSRTG3Ao
serchChild( childName:String ) みたいなstaticメソッド準備するのはどうだろう。

274:Now_loading...774KB
10/12/10 03:04:02 tSRTG3Ao
addする時にMapにつっこんどくほうがいいかなぁ。

275:Now_loading...774KB
10/12/10 04:23:54 sFE5uT0X
(色相の)HSV値をRGB値に変換する記述で質問です。
使用環境は、FlashCS4,ActionScript 3.0,XPです。

実験としてあるRGB値を適当に選び、RGB→HSV→RGBの復元を行い、元のRGB値との
差異を見ました。
最初、URLリンク(kawa.at.webry.info)を参考にしていたのですがRGBに
戻したときの値がどうしても全く一致しなかったので
URLリンク(yokohara.blog50.fc2.com)を試しました。

後者は近い値が出ましたが、それでも元のRGB値と開きがあります。
そこで質問ですが、皆さんのお薦めの変換コードはありますか?(すいません、出来れば
上の2つの検証を願います)

あと、frocessingのfrocessing.color.FColorに HSVtoRGB(h, s, v) というのがありますが、
(試した範囲で)frocessing.display.F5MovieClip2Dを継承したクラス内での使用が不可だった
ので保留しています。


276:Now_loading...774KB
10/12/10 06:57:27 frmzyASl
>>272-274
さんくすです。
なるほど。専用の関数で対処します。


277:Now_loading...774KB
10/12/10 10:49:27 tSRTG3Ao
>>275
計算でやっている以上無理。
元の値を保持するクラスを作るのがお勧め。



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