ActionScript 誰かが物凄い勢いで解答するスレ29at SWF
ActionScript 誰かが物凄い勢いで解答するスレ29 - 暇つぶし2ch2:Now_loading...774KB
11/06/30 00:32:23.68 TQ4wpGXz
昨日の画像読み込みたがってた者です

var Name = "homhom_bot";
var loader = new MovieClipLoader();
var load_obj = new Object();
load_obj.onLoadError = function() {
msg = "エラー";
loader.unloadClip();
};
loader.addListener(load_obj);
msg_txt.onKeyDown = function() {
if (Key.getCode() == Key.ENTER) {
loader.loadClip("URLリンク(api.twitter.com)"+Name+".json", _root.mc);
_root.mc._width = 48;
_root.mc._height = 48;
}
};
これで画像読み込みは大成功したのですが、一回でも実在しないアカウントを入力したり
スペルミス等をすると、それ以降画像が読み込まれなくなります。なんでですかー

3:Now_loading...774KB
11/06/30 01:09:00.85 WKrYT5hF
挙動からして原因はloader.unloadClip();意外にあるまい
ローダーのコンプリートイベントとloadClipの直後にでもtraceいれてそこ通ってるか見てみては?

4:Now_loading...774KB
11/06/30 05:47:44.55 wAQr8OE0
>>1おつ

5:Now_loading...774KB
11/06/30 07:43:10.34 Zc3jYYS6
AS3で、関数もコンストラクタの中身もない変数宣言だけの空のクラスを作って、
全てのクラスをそのクラスから派生させるってやり方はやめたほうがいいですか?
グローバル変数みたいな感じで、変数や他のクラスのインスタンスへのアクセスが
容易になるのでとても便利に思えるのですが・・・

6:Now_loading...774KB
11/06/30 07:44:10.40 Zc3jYYS6
>全てのクラスをそのクラスから派生させる
すいません。そのクラスから継承させるの間違いです

7:Now_loading...774KB
11/06/30 09:29:44.32 WKrYT5hF
プリミティブ値だと書き換えできないから期待の動作はしないと思う
A→O
B→O
Oにprotected var num:int=0;
A.numとB.numは別物

8:Now_loading...774KB
11/06/30 12:19:01.70 qbmoCtK6
>>3
load_obj.onLoadInit = function() で調べてみたら
一応読み込み完了でアクセスはできるらしい

9:Now_loading...774KB
11/06/30 13:16:33.05 WKrYT5hF
>>8
ミスったあともinitイベントは拾えてるってこと?

10:Now_loading...774KB
11/06/30 17:30:16.85 /4yVED7W
だと思う
いまいちメソッドの使い方がわからん

11:Now_loading...774KB
11/06/30 17:35:49.29 l/t80g9Q
もうflaあげちゃえよ…

12:Now_loading...774KB
11/06/30 19:42:40.37 TQ4wpGXz
URLリンク(www.dotup.org)
あとFLASH上でパブリッシュすると外部ファイルが読み込めないのは何故だ

13:Now_loading...774KB
11/06/30 20:46:19.62 tMaeai6i
>>12
外部ファイルをホイホイ読めちゃうとセキュリティ的にヤバイって仕様

14:Now_loading...774KB
11/06/30 23:15:47.46 OwKR6bCH
AS3の質問です。
swf内でマウスオーバーなどに効果音を使っています。
使っている効果音は1種類なのですが、

外部編集ソフトで音を調整

新しいmp3ファイルをライブラリに読み込み

りんゲージでクラス名を指定

スクリプトの方で生成するクラス名を書き換え

パブリッシュ

で、パブリッシュするたびに.swfファイルがどんどん大きくなっていってしまいます。
入れ替えた音源ファイルのサイズは変わっていないはずなのに、です。
ライブラリにあるものは使っていなくても全て.swfに突っ込まれるのでしょうか?

15:Now_loading...774KB
11/07/01 00:07:41.14 XqLvZAs2
ライブラリから削除してみたらわかるだろう…

16:Now_loading...774KB
11/07/01 01:47:04.19 fbVPqeN3
>>15
ありがとうございました。

17:Now_loading...774KB
11/07/01 08:05:11.21 84crWNLE
例えばゲームのセーブ・ロードなどファイルを総合的に管理するクラス(FileManager)など、
プログラム内でインスタンスが一つだけ存在すればいいクラスを作った場合、
インスタンスを作る必要ってあるのですか?
例えば、上記のクラスの場合、クラス内の関数や変数を全てstaticで宣言して
クラス関数としてFileManager.saveData()などを呼び出せば、
インスタンスを作る必要がないと思うのですが。

18:Now_loading...774KB
11/07/01 11:41:11.79 KbKVqZl2
一体誰にインスタンス化を要求されたんだ?
思い込み?

19:Now_loading...774KB
11/07/01 13:24:12.52 84crWNLE
WEBに公開されてたAS3のゲームのサンプルを見たら描写のクラスやセーブロードのクラスなど、
複数のインスタンスが必要ないクラスでもインスタンス化してから関数を呼んでいたので
それが作法か正しいやり方なのかと疑問に思いました。

20:Now_loading...774KB
11/07/01 13:50:00.34 EdAbbWkd
アイテムなんかのデータベースはどうやって取り扱ってるんだろうね

21:Now_loading...774KB
11/07/01 21:01:53.13 +9l0/7bR
>>17
メモリ食うんじゃない?


22:Now_loading...774KB
11/07/01 22:06:41.56 AKruFvxm
flashlite1.1に最適なエディターってのがあったら教えて欲しいです

FlashDevelop使ってみたけど、あれLite1.1ってのないよね?

23:Now_loading...774KB
11/07/01 22:26:10.98 KbKVqZl2
>>19
>複数のインスタンスが必要ないクラスでもインスタンス化してから関数を呼んでいたので
そのソースを見てないから断言はできんが、
インスタンス化する必要はないで良いと思う。

例えば、constとか。
MouseEvent.MOUSE_DOWNとかインスタンス化してるやつは居ないはず。

24:Now_loading...774KB
11/07/01 22:43:45.64 WzBFbHS8
何で切れてんのw
ひとつしかないから全部静的でいいって人もいれば、
データ構造持つならシングルトンにするって人もいるんじゃないの?
好きにすればいい

25:Now_loading...774KB
11/07/01 22:46:24.13 WzBFbHS8
そのへんOOP宗教戦争みたいなとこあるから、まあいろいろあるって事知っておけばいいよ。
絡まれるとうるさいから気を付けてねw

26:Now_loading...774KB
11/07/01 22:57:09.73 84crWNLE
なるほど・・単純にこういうルールだっていうのはないんですね。ありがとうございます。

27:Now_loading...774KB
11/07/01 23:08:24.23 Go/3HqqK
Javaならコンパイラがワーニング出すから
インスタンスからの呼び出しはしないほうが良いってわかるけどなぁ。


28:Now_loading...774KB
11/07/02 11:17:17.36 ON3mwvne
AS3で、表示リストの子に対してdispatchEventを使うとその親たちも同じイベントを受け取ることができますが
同じ階層にあるオブジェクトや親子関係にないものの場合はどうすれば同じイベントを受け取らせることができますか?
個別に参照してdispatchEventを使うのは効率が悪いので一度に全てのリスナーに受け取らせられると良いんですけど・・

29:Now_loading...774KB
11/07/02 11:54:46.26 Zsn3WLg/
無理でしょ
イベント投げられたら通知したいオブジェクト全部にイベント送りつけるっていうメソッドのあるオブジェクトを作ってそれに投げるか
共通のイベントレシーバ持たせてそれぞれそれを監視するか

30:Now_loading...774KB
11/07/03 02:17:27.20 2Mf+frbz
マジもう・・・先にデザインと仕様をFIXしてくれよマジで。。。
後から思いつきでやっぱこうがいいとかどんどん変更指示だしてきて、
ソースがどんどん汚く、そして分かりにくくなる。
作り方もなんか複雑になってきてるし。。。
プログラマに投げるときは、もう微修正しか出来ないと思って投げて来いバカヤロー!!

31:Now_loading...774KB
11/07/03 04:37:08.92 s3sCNdN5
ふむ

32:Now_loading...774KB
11/07/03 11:21:00.31 0m0ZJhfa
>>30
それだと楽だがつまんないものしかできなくなるんだぜ

33:Now_loading...774KB
11/07/03 13:23:14.79 3faxKPbm
超くだらない質問かもしれないから
申し訳なさでいっぱいなんだが、
あるMCを作って、this.onPressを書いた。、
ところでそのMCを構成する部品として存在する別の小さいMCにも
this.onPressを書いた。そして部品MCをクリックした場合と、
全体MCをクリックした場合は別のfunctionを割り当てたいのだが、
どうしたことか、部品MCをクリックしても全体MCをクリックした
ことにしかならん。

なんとか部品MCをクリックしたら、全体MCのほうは黙っていて
欲しいんだが…教えてくれ、いや教えてくださいお願いします。

34:Now_loading...774KB
11/07/03 13:45:37.25 i8EPCclT
>>33
AS2.0?
onイベントは排他的に受け取るから、その動作は仕様

MCのなかに、全体用のヒットエリアを作って、その上部に部品MCを配置するとか
クリックした位置によって、動作を変更するとかで対応する

35:Now_loading...774KB
11/07/03 14:10:46.77 3faxKPbm
>>34
そう、AS2でやってる。そういう仕様だったのか…orz
じゃあ、がんばって位置で区別がつくように作りなおしてみる。
早めに見切りがついてよかった。本当にありがとうございました。


36:Now_loading...774KB
11/07/03 15:16:38.23 2Mf+frbz
>>32
いやぁそれは分かるんだけども、そういうレベルじゃないんだよ。
表現とかじゃなくて、根本から変えてくるんだよね。
しかもちょいちょいと。

そんなの最初にデザインカンプの時点でちゃんと見てれば分かる事じゃん、みたいな。
お前らちゃんと考えてたのかよ、と問い詰めたい。

37:Now_loading...774KB
11/07/03 15:48:27.68 hvF7mQ5A
tween系のライブラリで追従するような動きは表現できますでしょうか
終点を指定すればそこまで移動はできますが、終点が動くような場合それにあわせて追従するようにしたいです。
細かく時間分割してtweenするしかないのでしょうか?

38:Now_loading...774KB
11/07/03 23:54:00.31 8f4rTcAt
>>29
教えてくださりありがとうございました。
その方法でやってみることにします。

39:Now_loading...774KB
11/07/04 11:29:17.57 RBtt+tGU
ASのライブラリでtweensyみたいに炎とか雷みたいなエフェクトを簡単に作成できる
ライブラリってありますか?別に炎とか雷でなくてもいいのですが。

40:Now_loading...774KB
11/07/04 12:04:19.73 wduqaf4C
tween系ライブラリならいくつかあるけど
そこからエフェクトを簡単に作れるかどうかは知らん

41:Now_loading...774KB
11/07/04 14:05:59.68 RBtt+tGU
言葉足らずですみません。探してるのはゲームで使えそうなエフェクトが簡単に作れたりかけられたりする
ライブラリで、tween系でなくてもかまいません。そういったライブラリがないなら
tweensyを使うしかないのですが・・・

42:Now_loading...774KB
11/07/04 21:01:01.46 4oFK1EGi
AS3.0、FlashPlayer10で表示オブジェクトのzプロパティに値を代入すると
中のベクタ画像がラスタ画像のように表示されてしまうのはなぜですか?

43:Now_loading...774KB
11/07/04 22:14:51.75 8wSbBz83
●が並んだブロックが右から順次流れていく
フラッシュをCS4にて作成中です。
表示レイヤーには「block00」から「block27」まで24個のダイナミックテキスト
オブジェクトが配置してあります。00~07,10~17,20~27と3列に並んでいます。
先にblockArray[set][x][y]にnセット分のブロックが格納されています。

for (k=0; k<20; k++) {
//表示を初期化
for (i=0; i<3; i++) {
for (j=0; j<8; j++) {
this["block"+i+j] = "";
}
}
for (i=0; i<3; i++) {
for (ay=0; ay<8; ay++) {
for (ax=0; ax<blockFace[k+i]; ax++) {
this["block"+i+ay] = this["block"+i+ay]+blockArray[k+i][ax][ay];
}
}
this["answer"+i] = blockPiece[k+i];
}
}
先に用意したブロックを最後に表示させるとき、
変数kで順送りするつもりなのですが、バラバラにしか表示されません。
右のブロックが左に流れるつもりで書いたのですが・・・。
どうしたらよいのでしょうか?

44:Now_loading...774KB
11/07/04 22:28:09.94 cIdoOPh7
>>41
stardustがぴったりかと
>>43
まず
this["block"+i+j] = "";はblock00~block27を指さない
何故なら例えばi=1,j=2の時this["block"+i+j]はblock3になる


this["block"+i+ay] = this["block"+i+ay]+blockArray[k+i][ax][ay];
block00~block27がダイナミックテキストを指す変数ならこの足し算はおかしい。
なにをやりたいの?


あとは他の変数についてもくわしく

45:Now_loading...774KB
11/07/04 22:54:56.46 cIdoOPh7
>>42
ためしに線だけ設定してSprite.graphicsにdrawCircle()してみた
zを設定すると拡大したら確かに荒れるね
ビットマップ化されてるっぽい


URLリンク(blog.livedoor.jp)
2009年02月12日

仕様なんじゃないかな

46:Now_loading...774KB
11/07/04 23:45:43.43 RLLgNRFf
>>44
stardustいいですね、サンプルもたくさんあるし。使わせてもらいます。

47:Now_loading...774KB
11/07/05 09:21:33.18 NvDQ/iZ2
外部エディタ使用している方とかフォント何使ってます?
見やすいのとかおすすめのあったらおしえてください。
いまFlashDevelopでデフォのcourier newです

48:Now_loading...774KB
11/07/05 10:16:22.75 z5NPnZyo
>>44
ありがとうございます。
アクションがすべて実行されたあとに、ダイナミックテキストへ変数が反映される
ことを知らなかったので躓いていました。きっと見えない間に終わっていたのでしょうね(笑)。

>this["block"+i+j] = "";はblock00~block27を指さない
>何故なら例えばi=1,j=2の時this["block"+i+j]はblock3になる
に関しては、左辺が文字型の為に+演算子が文字結合として働いて
block00~27を指してくれます(検証済み)。

ランダムに●を並べたブロックを表示させて●の個数を答える
ゲーム(トレーニング?)を作ろうと思っています。
フレームで分けたほうがいいのか、検討中です。

49:Now_loading...774KB
11/07/05 11:01:16.33 7AfRqpeR
>>48
失礼。確認したら大丈夫だった。逆に勘違いしてたぽい。

開始画面とゲーム画面とクリア画面はフレームに分けるとすごい楽だよね

50:Now_loading...774KB
11/07/05 13:34:41.91 uI8Qe6xQ
>>47
Migu使ってる
検索すれば分かるが、MSが作ったプログラム用フォントみたいなのもあるみたい
フリーだし、紹介も結構されてるし、検索して試してみてはどうか

51:Now_loading...774KB
11/07/05 20:47:24.65 o6jZnFlE
>>45
ありがとうございます。使用だったなら仕方ないですね。
ビットマップ化するならせめてジャギが出ないようにしてほしかったです・・。



続けてすみません、もう一つ気になったことがあったので質問させてください。

メインタイムラインに矩形を描いてから↓のコードを記述して、
その矩形をクリックしてもトレースが起こらないのはなぜですか?

root.addEventListener(MouseEvent.MOUSE_DOWN, Hoge);

function Hoge(e:Event):void{
 trace("clicked");
}


52:Now_loading...774KB
11/07/05 21:26:00.12 NvDQ/iZ2
>>50
ありがとうございます。Miguとか色々試して見ます。

53:Now_loading...774KB
11/07/05 21:47:01.94 NvDQ/iZ2
ちょっと試す前にお尋ねしたいのですが、例えば円や頂点の数の多いシェイプなど多用してすごい重い100フレームぐらいアニメするMCがあった時、
そのMCの全てのアニメフレームをビットマップデータに一時的に描画して、ビットマープデータとして連続してアニメ表示させるという方法は、
効果的だと思いますか?またそうすることはAS3で可能ですか?

54:Now_loading...774KB
11/07/05 22:11:30.10 I8QoO8Yn
>>53
可能だと思うけどとてつもなくメモリを消費するから現実的ではないかもね

55:Now_loading...774KB
11/07/05 22:28:58.69 9xEFsCdA
>>51
タイムラインのgraphicsに書いたの?

graphicsがマウスイベント受け取らないからなんだろうけど、じゃあなんでSpriteに書いたらSpriteは受け取るの?ってことになるよねえ

56:Now_loading...774KB
11/07/05 23:57:06.25 Sz/hlQ2A
AS2なんだけど、関数で引数を省略したときは1をデフォルトにしたいときはどうしたらいいですか
function f(x){
ここ何て書く
return x;
}
f(0); //0を返す
f(); //1を返す

57:Now_loading...774KB
11/07/05 23:58:46.69 o6jZnFlE
>>55
いいえ、このコードはタイムラインに直接書きました。
addEventListenerをrootではなくstageに実行すると上手くいくのですが・・
理由がよくわかりません。

58:Now_loading...774KB
11/07/06 00:00:46.27 H3AGXQwy
>>56
function f(x){
 if(x == undefined) x=1;
 return x;
}

引数が省略されている=未定義なのでこれでどうでしょうか?

59:Now_loading...774KB
11/07/06 00:03:00.98 jAU65gI1
>>57
いや、矩形をgraphicsに描いたのかってこと
rootでもthisでもだめだったけどstageでは受け取るんだよね

60:Now_loading...774KB
11/07/06 00:23:22.19 4AYaQHaH
>>58 tx

61:Now_loading...774KB
11/07/06 10:46:52.77 YPgHppkL
変数に値変数のポインタを代入するのってできないんですか?
p=&i; みたいな

62:Now_loading...774KB
11/07/06 11:01:59.37 MpU2pkWk
できないよ

63:Now_loading...774KB
11/07/06 11:39:58.77 6uX1RCEl
i = {value: 1};
p = i;

回りくどいけど、値をObjectでくるんで参照型にするとか。

64:Now_loading...774KB
11/07/06 18:15:09.29 kHrV0SNh
ローダで既にSWFがロードしてある際に、SWFのloadBytesを行った場合は、
必ず内容が表示されないタイミングがあるのでしょうか。

例えば、
1: 前もってSWFを別のURLLoaderでロードしておき、
  ボタンクリックでLoaderにURLLoaderで読んでいたSWFのデータをloadBytes。
2: ボタンクリックでURLLoaderにSWFをロード、Event.COMPLETEでSWFのデータをloadBytes。

1の場合、一瞬で画面が切り替わり、まずLoaderの中身がなくなることはありませんが、
2の場合、Loaderの中身切り替わりの際にコンマ何秒か表示が消え、ステージの背景が視認出来てしまいます。
どちらもloadByte時にデータは揃ってるし、Loaderにunloadなど何もしていません。

表示切り替わりに差があるのはどの辺の問題なのでしょうか。


65:Now_loading...774KB
11/07/06 18:18:45.46 kHrV0SNh
>2: ボタンクリックでURLLoaderにSWFをロード、Event.COMPLETEでSWFのデータをloadBytes。
 ↓
2: ボタンクリックで、別のURLloaderでSWFロード開始、URLLoaderのEvent.COMPLETEを受け取ったら、
  実表示用のLoaderでURLLoader.dataのSWFをloadBytes。

66:Now_loading...774KB
11/07/07 07:38:53.61 D/aNLu8Z
flexのswfdump.exeで上手く逆アセンブルが出来ないときはどうすればいいですか?

67:Now_loading...774KB
11/07/07 10:42:22.98 gKJDQBGu
具体的にどうなるの?

68:Now_loading...774KB
11/07/07 11:02:27.80 PjCfwnRX
if (stage)
init();
else
addEventListener(Event.ADDED_TO_STAGE, init);

ドキュメントクラスの最初に書いてあるこれってやっぱ必要?

69:35
11/07/08 12:35:22.45 4nzN0bms
上で質問した者で、超亀作業なんだが、
部品MCを入れ子にした全体MCを作って、onPressするとクリックする場所が部品MC上か
その周りの全体MCかで反応が分かれるコードを書いてみた。マウスの座標と部品MCで
hitTestを使ったらうまくいった。
いつもここでお世話になっているので、たまに誰かの役に立てばいいなと思ってUPする。

tarako・・・全体MC(のインスタンス名)
ebi・・・tarakoMC中の部品MC(のインスタンス名)

tarako.onPress = function (){
myX = _root._xmouse;
myY = _root._ymouse;
//部品MCでヒットテスト。外れたら全体MCで処理
result = tarako.ebi.hitTest(myX, myY, false);
if(result == true){
trace("ebi desu!");
}else{
trace("tarako desu!");
}
};

70:Now_loading...774KB
11/07/08 12:40:59.71 TdoF8X50
エビちゃんが二匹いたらどうするんだい?

71:35
11/07/08 13:16:15.30 4nzN0bms
>>70さま
エビが二匹の場合はエビのインスタンス名をそれぞれ変えて、if文に二匹目も
ORで入れればなんとかなるかと

72:Now_loading...774KB
11/07/08 14:03:31.68 P7emKjyj
>>34みたいにすればいいのさ

73:Now_loading...774KB
11/07/08 16:09:49.93 3iFX3QOX
>>68
作成したswfが別のswfから呼ばれた時のことを考えるとあった方がいいんじゃないかな
メインswfのロードの仕様だっていつ変更されるかわからんし

74:35
11/07/08 17:50:09.84 4nzN0bms
>>70さま>>72さま

エビさんがたくさんいたらifの中のOR文をいっぱい書くのがめんどいので
配列とevalで作ってみた。一応エビ三つで試したからエビが100匹いても大丈夫。
ただし、ebi0,ebi1,ebi2...と全部同じ動作をする。各エビが違う動作をするとなると
また考えなきゃないが…コードは下に

nameArray = new array();
nameArray[0] = "ebi0";
nameArray[1] = "ebi1";
nameArray[2] = "ebi2";
tarako.onPress = function (){
myX = _root._xmouse;
myY = _root._ymouse;
for (i =0; i<3; i++){
result = _root.tarako.eval(nameArray[i]).hitTest(myX, myY, true);
if (result == true){
break;
}
}
if(result == true){
trace("ebi desu!");
}else{
trace("tarako desu!");
}
index++;
};

75:Now_loading...774KB
11/07/08 20:32:04.90 Ic0RBnvU
evalのとこは[]で十分じゃね?

76:Now_loading...774KB
11/07/08 20:54:06.04 dV0X781S
環境) FlashProCS4,AS3,WinXP
FlashProのようなオーサリングソフトでのタイムライン動作をASで再現したいです。

今、試しにチャレンジしているのが、Sprite内のオブジェクトをドラッグ移動→停止(マウスUp)
する度に円形オブジェクトの位置が映画のフィルムのように記録されて行くものです。

つまりは、最初は
[ ● ] [   ] [   ] [   ] [   ] [   ] [   ] [   ] [   ] [   ]

ですが、コマが蓄積され
[ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ]

となって、任意の位置(例えば3コマ目)から

         |→→
[ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ] [ ● ]

のように再生したいです(mc.gotoAndPlay(3)みたいな感じ)

URLリンク(flash-scope.com)を見ると、
class Scene extends Sprite とあって、var scene:Scene = new Scene(引数);
とあるので、同じ様にsceneにSpriteを代入しようとしたが型の不一致エラーで駄目でした。
※参考サイトのSceneはSprite型なんですが・・・

サイトの方法には拘りませんが、ASで記録&再生したいです。どうすれば良いでしょうか?


77:Now_loading...774KB
11/07/08 21:16:05.82 Kakovcd5
オブジェクトの位置情報を配列に入れとけばいいんじゃない?


78:Now_loading...774KB
11/07/08 22:12:41.01 bNMFKjK6
3Dオブジェクトだけどおなじようなことをやったことがある

>>77のように記録用のクラスextends Objectを作って座標と回転を記録してBetweenAS3で動かしたよ

79:Now_loading...774KB
11/07/08 23:23:26.59 Ro2WLl/U
操作自体(上だと、マウスの動き)か、操作の結果(スプライトの動き)を記録して、
再生させるしか無いんじゃないかなぁ

80:76
11/07/09 00:04:18.13 9HM2gm5R
>>77-79
どうも。
う~ん、スクリーンショットみたいな感じで(Sceneとして)記録してパラパラ漫画風に
再生したかったのですが・・・
やっぱ、パラメーターを元に再現するのが常道っぽいですね。

ここでの質問ではオブジェクトの位置のみですが、実際はコレ自体のグラデーションやら、
背景の色やら多くの情報があるので(それを元に再現するとなると大変なので)

要は楽したかったのです。


81:Now_loading...774KB
11/07/09 00:26:33.56 4y8eJPiZ
ならオブジェクトのクローン作って保存しとくとか

82:Now_loading...774KB
11/07/09 00:35:46.35 4BBAkC4B
パラパラマンガだけでいいならBitmapData.draw()とかどうよ

83:Now_loading...774KB
11/07/09 01:27:08.42 jQTtMD5K
以前も少し質問させてもらったんだけども、解決しなかったのでもう一度質問させてください。
AS3でURLLoaderを使って1MBくらいのデータをダウンロードしています。
で、ダウンロード中はFLASHの動作が重く、その他のムービークリップの動きが止まったり、
MOUSE_UPのイベントが全然発生しません。
たとえば、ダウンロード中にクリックを10回連打したら、
ダウンロード後にMOUSE_UPイベントが10回通知されるような動作になります。
addEventListenerではMOUSE_UPイベントの優先度を高く設定していますが、
やはりダウンロードのほうが優先されて処理されています。
これめっちゃ不便なのですが、なにかいい解決法はないでしょうか?

84:Now_loading...774KB
11/07/09 11:31:35.51 /i7qHg8t
なんでビット演算の優先度低いの?
a*2+bの時に
(a<<1)+bってめんどくせーよ
直感的じゃないじゃん

85:Now_loading...774KB
11/07/09 11:44:20.02 Pp1cWjw5
ロード中はあまり他の処理をさせない方がいいんだって せいぜいアニメMCを流すくらいだ
フラグ設定してロード完了するまで他の処理(マウスイベント等)を止めた方が吉

>MOUSE_UPのイベントが全然発生しません。
しょうがないんだって

86:Now_loading...774KB
11/07/09 20:03:50.52 mcte6UbI
なんでビット演算なんか使うの?
直感的じゃないじゃん

87:Now_loading...774KB
11/07/10 01:03:07.30 5gdunzdj
>>85
なるほど・・・ありがとうございます。でもそれだとちょっと問題が起こるんです。
とあるボタンがあって、それを押すたびにランダムで画像を読み込んで表示させるのですが、
ユーザがそのボタンを連打した時の対処が上手くいかないんです。
フラグ設定してロード完了するまで他の処理を止める方法もやってみたのですが、
ロードが完了するまでMOUSE_UPイベントが処理されないので、
全く意味がないのです。

マウス連打

画像DL開始(ロード中フラグ立てる)

画像DL終了(ロード中フラグ折る)

2回目のMOUSE_UPイベントが処理される(ロード中フラグが立っていないので普通に画像DLを開始)

画像DL開始(ロード中フラグ立てる)

画像DL終了(ロード中フラグ折る)

3回目のMOUSE_UPイベントが処理される(ロード中フラグが立っていないので普通に画像DLを開始)

続く...

フラグが立っている間のイベントは無視するという狙いが完全にスベってます。
で、画像も結構重いので、しばらくの間何も操作が出来ない状態が生まれてしまいます。
クリック連打するなといいたいのですが、そんなのユーザは知ったこっちゃないですしね。
暫定的に今、ボタンをクリックすると、画像をDLする前にremoveEventListenerで
MOUSE_UPイベントを削除して、画像をDL完了した後にまたaddEventListenerでMOUSE_UPイベントを登録しています。
これでボタンクリック連打すると、上のように何度も画像がDLされることはなくなるのですが、
画像がDLされた後、1度だけまた画像をDLし始めます。
何か他にいい方法があれば教えてください。

88:Now_loading...774KB
11/07/10 01:08:16.58 6CqeUV3U
わざわざremoveしなくても、mouseEnabled = falseでいいんじゃね?
その現象が起きなくなるかは分からんけど

89:Now_loading...774KB
11/07/10 01:28:51.21 lFZEoHaD
ロード中はボタンを
ここまで書いて>>88と同じこと言おうとしてることに気付いた

90:Now_loading...774KB
11/07/10 11:22:18.22 r9jWTqud
そのボタンのイベントハンドラ内のコードだけうpしてみてお
フラグが立ってる間はキャンセルすりゃいいんだお
function mouse_On( e:MouseEvent ):void{
if ( loadingFlg ) return;//ロード中ならキャンセル loadingFlgはメンバ変数
//以下 ロード開始処理
}

91:Now_loading...774KB
11/07/10 11:37:24.45 SXHJAW+Z
>>90
ロード完了後にまとめてマウスイベントが来るって言うんだから
前にクリックした分が10回ぶん列に並んで待ってるてことじゃない?

ロード中にクリックしたif(loadFlg)を処理するのはロード完了後だからまた勝手に読み込み始めちゃうんじゃ?

92:Now_loading...774KB
11/07/10 13:25:58.31 tpshOzX9
普通に考えてロード完了したらボタンのイベントつけりゃ済む話じゃねーのそれ

93:Now_loading...774KB
11/07/10 15:55:39.35 SXHJAW+Z
Loader.loadで指定されたURLが存在しない場合ってどうやって拾ったらいいかな

誰かイベント投げてくれるっけ?

94:Now_loading...774KB
11/07/10 15:59:43.13 6CqeUV3U
loaderInfoがIOError投げてくれるんじゃなかったか

95:Now_loading...774KB
11/07/10 16:01:39.86 SXHJAW+Z
それがIOEイベント登録したけどなんにもくれんかった

96:Now_loading...774KB
11/07/10 16:05:38.78 6CqeUV3U
loaderオブジェクトに付けてるんじゃなくて?
loaderのloaderInfoに付けないとだが

97:Now_loading...774KB
11/07/10 16:13:35.62 6CqeUV3U
contentLoaderInfoだった

98:Now_loading...774KB
11/07/10 16:15:25.32 SXHJAW+Z
>>96
contentLoaderInfoに付けて
loaderInfoに付けるとnullにさわんなって言われた

99:Now_loading...774KB
11/07/10 16:18:02.14 SXHJAW+Z
あ、URLカラにしたら拾った

拾う間違いと拾わない間違いがあるのかな

100:Now_loading...774KB
11/07/10 17:39:31.82 SXHJAW+Z
しかしload中にアニメーションさせると一瞬止まるのね
バックグラウンドでloadしながらなんかするのは無理なのか

101:Now_loading...774KB
11/07/11 21:58:15.39 GzEtX4Uc
URLリンク(frank.urugate.com)
これおもろい

102:Now_loading...774KB
11/07/11 23:50:52.20 6IXeJr2n
なにがおもろいのかわからんがBox2Dでググると幸せになれるかもな

103:Now_loading...774KB
11/07/11 23:55:42.98 8JCIhmH2
おもしろいな

104:Now_loading...774KB
11/07/14 13:39:02.46 gkzTEyv0
環境:XP-Pro,AS3,CS4

最初ブラー(blurX)フィルタがかかったMC(my_mc)をBetweenAS3で徐々にブラー
解除するようなコードを書いていますが、エラーが出て困っています。
(参考サイト)
URLリンク(corleonis.net)
URLリンク(log.xingxx.com)


ブラーフィルタ設定は下記から始まり
var filter:BlurFilter = new BlurFilter();
filter.blurX = 10;
my_mc.filters = [filter];

ボタンを押したアクションとして下の様にしました。
function clickHandler(e:MouseEvent):void {
var _testTween:IObjectTween = BetweenAS3.tween(my_mc,
{filter: {blurX: 0}}, null, 5.0, Bounce.easeOut);// IObjectTween を作る
// 1046: 型が見つからないか、コンパイル時定数ではありません : Vector。
// と出る。 ITweenでも不可

_testTween.play();// tween 開始
}

これだとコメントにあるように、「コンパイル時定数ではありません」という警告が出て、
CS4でエラー箇所を参照するとBetweenAS3自体のクラス(ClassRegistry.as)が対象
となっています。

どう修正すれば良いでしょうか?


105:Now_loading...774KB
11/07/14 14:06:30.51 oab2ebi9
Flash10用の設定になってないとか。

106:Now_loading...774KB
11/07/14 14:16:15.02 frZXCTn7
Vectorが使えないとなるとそうだろうね

ファイル→パブリッシュ設定→Flash→Player
を確認

107:104
11/07/14 14:46:26.55 gkzTEyv0
>>105-106
さんきゅうです。やっぱり、Playerのバージョンが原因でした。

コンパイルはOKになったのですが、肝心のBetweenAS3動作でエラーになります。
※BetweenAS3自体のクラスで、「null のオブジェクト参照のプロパティまたはメソッドに
アクセスすることはできません。」が出ます。

この部分は
var _testTween:IObjectTween = BetweenAS3.tween(my_mc, {filter: {blurX: 0}}, null, 5.0, Bounce.easeOut);
なのですが、ドコに問題があるか分かりません。

試験的にブラーフィルタではなく、MCを現在位置から単純にX=100に移動するように
var _testTween:IObjectTween = BetweenAS3.tween(my_mc, {x: 100}, null, 5.0, Bounce.easeOut);
したところOKでした。

BetweenAS3動作は有効のようですが、フィルタに作用できません。
どうすべきでしょうか?


108:Now_loading...774KB
11/07/14 14:51:29.60 2Jy22IUv
>>107
エラーの通り、参照先がnullになってるんだから
参照時点でfilter: {blurX: 0}が存在してないとかじゃないの?

109:Now_loading...774KB
11/07/14 15:19:42.74 frZXCTn7
>>107
そのエラーはだいたいnewし忘れが原因のことが多いかと

110:104
11/07/14 16:06:57.10 gkzTEyv0
>>108-109
分かりました。
BetweenAS3のスペシャルプロパティDisplayObjectのフィルタのトゥイーンを使えばOKでした。

var _testTween:IObjectTween = BetweenAS3.tween(my_mc, {_blurFilter:{blurX: 0}}, null, 5.0, Cubic.easeOut);
// _blurFilterを適用
// トランジッションはCubic.easeOutにしました。

一応、ブラー幅は減少されるものの、ゼロになっても本来のシャープな画像にはならないようです。

ご指導、有難うございました。


111:Now_loading...774KB
11/07/14 16:18:57.83 frZXCTn7
>>110
まあ0になったらfunctionでブラーやめるとか。

112:104&107&110
11/07/14 16:53:29.85 gkzTEyv0
>>111
度々すいません。こんな感じで出来ました。

my_btn.addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler(evt:MouseEvent):void {
var _testTween:IObjectTween = BetweenAS3.tween(my_mc, {_blurFilter:{blurX: 0}}, null, 5.0, Cubic.easeOut);
_testTween.addEventListener(TweenEvent.COMPLETE, onComplete);
_testTween.play();

}

function onComplete(evt:TweenEvent):void{
my_mc.filters = null;
}


113:Now_loading...774KB
11/07/14 17:11:31.84 frZXCTn7
>>112
ああ。completeでもいいね。
functionならtweenの途中で引数つきメソッドを実行できるんだよ

114:Now_loading...774KB
11/07/14 21:25:40.67 oq2V8Jn7
tween系ライブラリたくさんありすぎてどれ使ったらいいのか考えるだけで面倒

115:Now_loading...774KB
11/07/14 21:35:26.00 frZXCTn7
BetweenAS3いったく

116:Now_loading...774KB
11/07/14 22:37:29.99 HycxgA6f
>>115
BetweenAS3の戻り型にはIObjectTweenとITweenとがあるけど、使い分けがイマイチわかんない。
(ITweenGroupはその名の通りグループだし)
これらはググると URLリンク(www40.atwiki.jp) では
 tween()の戻り値はIObjectTweenというインタフェースです。このIObjectTweenはITweenを継承しています。

ということなんで、とりあえずIObjectTweenを使っとけばOK?
他の解説としては URLリンク(oshige.com) がありますがお薦めのサイトありますか?


117:Now_loading...774KB
11/07/14 22:44:28.63 4mByocTp
>>116
IObjectTween.asを見ればわかると思うけど、IObjectTweenはITweenにtargetのgetterがついただけ
targetを使わないならITweenで受け取っていいと思う
なんかいろんなサンプルもみんなITweenだし

// target の各プロパティに対する値のセッター、特殊プロパティの処理の提供などが主な役割。
// 各プロパティといっても、全てのプロパティに対して責任を持つ必要は無く、特殊化したいものだけ処理すればよい。
// たとえば DisplayObject に対するものであれば、主要な x, y, rotation といったプロパティのみに対する処理だけでも良い。
// それ以外のプロパティに関しては、全てのプロパティを扱うことができる汎用的な ObjectTweenTarget が責任を持って処理をするので
// 意識する必要は無い。

118:Now_loading...774KB
11/07/14 22:50:45.16 YSEr+wwc
>>116
とりあえずIObjectTween使っとけば良いじゃんと思って、初めやったけれど
戻り値がITweenのメソッドが使えないからそうでもないと思う

119:Now_loading...774KB
11/07/14 22:52:38.23 4mByocTp
解説は

betweenas3 イージング


でググるとチュートリアル的なページがいくつか見つかるかも


120:Now_loading...774KB
11/07/14 22:58:36.08 4mByocTp
>>116
んー??
IObjectTweenってITween継承してるから
ITweenで定義されたメソッドはIObjectTween実装したクラスなら使えるんじゃない?

自信ないけど

121:Now_loading...774KB
11/07/15 05:51:56.24 KYrOdPhT
既存のshapeにフィルターなどのエフェクトをつけたいのですが
shapeをmovieclipにAS3を使って変換ってできますか?
movieclipを作ってそこにshapeを描写するとかでなく、
文面どおりshapeをmovieclipに変換できるやり方があったら教えてください。

122:Now_loading...774KB
11/07/15 05:56:28.14 z+dOWKOw
ねーよそんなもん
Shapeにフィルタかけりゃいいじゃん

123:Now_loading...774KB
11/07/15 10:33:26.72 ZOiM6wfM
>>120
その認識であってる。

124:Now_loading...774KB
11/07/15 13:51:21.46 NEIbh8oJ
>>121ですが何とか解決しました。レスどうもです。

125:Now_loading...774KB
11/07/15 18:27:29.26 GkceFhpF
>>124
どうやったんだよ

126:Now_loading...774KB
11/07/15 23:12:33.24 NEIbh8oJ
>>125
activeden.netというサイトで自分の作ろうとしてたものが見つかったので購入しました。

127:Now_loading...774KB
11/07/17 11:57:58.41 5TIH4Fix
uint型の値が和算や乗算でオーバーフローしたときの挙動は、どうなっていますか?
どこかに仕様はありますか?

できれば、Number型や他の数値型についても、同様にオーバーフローの挙動を知りたいです。



128:Now_loading...774KB
11/07/17 12:05:47.57 DDPxXsVK
uintは単純に最大から最小とかその逆とかループしたと思う
intも確かそうだった

129:Now_loading...774KB
11/07/17 13:22:27.68 6kggsGu5
Numberがfloatのときもdoubleのときもある変態とかいう話をどっかで読んだんだが

130:Now_loading...774KB
11/07/17 21:30:00.60 26VmyoSy
as3.0でflvを再生しようとしてるんですが、youtubeとかみたいにまだバッファが読み込まれていない部分でも
クリックするとすぐにその位置から読み込み直して再生するにはどうしたらいいですか?

131:Now_loading...774KB
11/07/18 01:44:18.57 Y0PQiyf4
可愛くない? メガネとか
URLリンク(www.nicovideo.jp)
URLリンク(www.nicovideo.jp)
URLリンク(www.nicovideo.jp)


132:Now_loading...774KB
11/07/18 08:03:56.73 5F+pOO+x
>>130
ストリーミング配信できるサーバー買え

133:Now_loading...774KB
11/07/18 14:34:08.92 +39pNx2M
新規作成した空のフラッシュのコンパイルが無茶苦茶遅かったので調べてみたら
なんかflaファイルのおいてあるサブフォルダを全て読み込みにいっるような感じなんだけど
どういうこと?


134:Now_loading...774KB
11/07/18 16:03:47.15 krtOKqPa
>>128
int型同士の乗算結果は机上のビット演算と同様になるはずだけど、
結果を即座にint型変数に代入せずにそのまま計算式を続けると
勝手にNumber型に変換されて上位ビットが保持され下位ビットが失われる
ことがあるから注意が必要だよ
C++で難読化したリソースがAC3での展開時に壊れてハマったことがある

135:Now_loading...774KB
11/07/18 16:44:16.68 HUEIMFxI
ユーザーが落書きしたり、画像に文字をつけたりして投稿するサイトを作りたいのですが、
参考になる本やサイトを教えて下さい。
オブジェクトなどの理解はありますが、それを駆使して作れないレベルです。

136:Now_loading...774KB
11/07/18 20:11:18.03 VEOqFATk
>>135
どの部分がわからない?

137:Now_loading...774KB
11/07/18 20:15:46.83 eoL8Dt9p
関数クロージャでget関数を作ることは不可能ですか?
たとえば、

function get hoge():Number{
 return _hoge;
}



var hoge:Function=(function():Function{
          return get function():Number{
           return _hoge;
          }
         })();

のようにして作りたいのですが、getを入れる位置が悪いのかエラーになってしまいます。


138:Now_loading...774KB
11/07/18 20:31:20.27 8ERpekyt
var _hogeFunc:Function;
function get hoge():Number{
 return _hogeFunc();
}
って定義しておいて、どこかで
_hogeFunc = function():Number{
 return _hoge;
}
てやるしかないんじゃないかなぁ

139:Now_loading...774KB
11/07/18 22:24:36.48 tTTJzQ4r
>>136
ユーザーがマウスを使って線を書いたり、文字を入力する表示の部分が
特に知りたいです。ライブラリとかでありますか?

140:Now_loading...774KB
11/07/18 22:34:19.78 fkjqd78P
>>139
とりあえず入門wikiの該当しそうな箇所読めば一通りのことはできるようになる

けど文字入力の表示?ができないレベルだと最初から読んだほうがいいかも

141:Now_loading...774KB
11/07/19 11:35:35.44 HrBbyZz+
>>138
やってみます。
ありがとうございました。

142:Now_loading...774KB
11/07/20 19:36:46.98 Ama4B2Lc
(使用環境)AS3,WinXP,FlashCS4
オブジェクト(MCとか)を動かした時の自作イベント通知の書き方と仕組みの立て方が
分かりません。

※文章が長くなりましたので2つに分けます。

テキストフィールド内容変更時の tf.addEventListener(Event.CHANGE, リスナー関数) の
通知と同じ様な仕組みを目指しています。 つまり、

 ドラッグで動かす
  ←○→  ==========>(mc1へ変更の通知)==========>  □
   mc0                                 mc1

のように「動いたら通知」を実現したいです。ASでの流れとしては下がドラッグに関しての記述です。
mc0.addEventListener(MouseEvent.MOUSE_DOWN, mc0_onMouseDown);
function mc0_onMouseDown(evt:MouseEvent) {
evt.target.startDrag();
}
mc0.addEventListener(MouseEvent.MOUSE_UP, mc0_onMouseUp);
function mc0_onMouseUp(evt:MouseEvent) {
evt.target.stopDrag();
}

// 通知イベントの発生 *** 理想としてはこんな感じ ***
mc0.addEventListener(OperationEvent.CHANGED, changeFunc);
function changeFunc(evt:OperationEvent) {
trace("位置が変更されました ");
mc1.dispatchEvent(evt);
}


143:142
11/07/20 19:38:38.96 Ama4B2Lc
(上[142]の続き)
自作イベントとしては、package内に下の様に書きましたがここから先どう書き換えれば良いか分かりません。

import flash.events.Event;
public dynamic class OperationEvent extends Event {//Eventを継承
public static const CHANGED:String = "changed";

public function OperationEvent(type:String,bubbles:Boolean=false,cancelable:Boolean=false):void {
super(type,bubbles,cancelable);
}
public override function clone ():Event {
return new OperationEvent(type, bubbles, cancelable);
}
public override function toString ():String {
return formatToString("OperationEvent", "type", "bubbles", "cancelable", "eventPhase");
}

}

参考にしたサイトは下記です。
1)URLリンク(source-laboratory.net)
2)URLリンク(tamushou-web.net)
3)URLリンク(melancholy.raindrop.jp)
4)URLリンク(d.hatena.ne.jp)

目標に一番近いのは4)ですが、「対象の位置が変更されたらイベント発生」の書き方が分かりません。
どなたかアドバイス下さい。


144:Now_loading...774KB
11/07/20 19:52:13.84 DIPG3igY
一番簡単なのは、addEventListener Event.ENTER_FRAMEで
条件判断してEventDispatcherクラスのdispatchEventを呼ぶ方法かな。

145:Now_loading...774KB
11/07/20 19:58:42.42 geJkw8us
ドラッグ中にmouseMoveそのまま使えばいいじゃんとしか思わないけど
mouseMoveの中で好きなだけカスタムイベントdispatchすりゃいいんjじゃね?

146:Now_loading...774KB
11/07/21 03:07:41.69 g/3eOb5j
質問させてください
テキストについてです

あいうえおれらの文字を
1文字ずつ あ 次に い その次に う
と右から画面中方にだして 止めるのはどんなASを書けばいいか教えてください

147:142
11/07/21 13:17:38.92 fxudowbK
>>144-145
レスありがとうございます。
そうですね、小難しいことをせずにmouseMoveを使えば良いですね。


148:Now_loading...774KB
11/07/22 04:00:58.23 lLEp/32V
>>146
自分で調べないで丸投げするような質問に答える人はいないよ
一応レスしてあげる

149:Now_loading...774KB
11/07/22 18:01:27.89 REmXMU+4
Vista Flash CS4 As3.0です。

ボタンAを押すことで
addchild(hoge_mc)を使い、ステージに表示させる事までは出来ました。

次に表示させたhoge_mcを
別のfunctionから動かそうとすると
1120 未定義のプロパティhoge_mcへのアクセスです。
とエラーが出てきてしまいます。

ネットや本で調べてみましたが、生成したfunction以外のfunctionからのアクセス方法がわかりません。
よろしくお願いいたします。

150:Now_loading...774KB
11/07/22 18:09:47.69 vLukB6EO
>>149
> 生成したfunction以外のfunctionからのアクセス方法

意味がよくわからんのだが、要するにエラーの通り、hege_mcがない
もしくは参照が間違ってるんでしょ
hoge_mcは、いつ、どこで定義されてるの?
funtionとやらも、いつ、どこで定義されてるの?
それがわからない第三者に、アクセスの仕方を訊かれても答えようがないと思うぞ

151:Now_loading...774KB
11/07/22 18:25:59.96 REmXMU+4
hoge_mcは、ボタンAを押した時に生成、表示した後にマウスに重なるように。
SetBtn.addEventListener(MouseEvent.CLICK,SetOn);
function SetOn(e:MouseEvent):void {
var mc = new Carsol();
stage.addChild(mc);
addEventListener(Event.ENTER_FRAME,onMove);
}
function onMove(e:Event):void {
mc.x=stage.mouseX;
mc.y=stage.mouseY;
}
としています。ボタンを押すことでhoge_mcの表示。まではできているのですが、次のマウスの位置にあわせる。というところで詰まっています


152:Now_loading...774KB
11/07/22 18:35:00.70 CVJ7jMEh
>>151
var mcをクラスで

153:Now_loading...774KB
11/07/22 18:51:56.20 REmXMU+4
var mc:Carsol=new Carsol としてみました。

function onMove 内の
mc.x=stage.mouseX;
mc.y=stage.mouseY;
はどうすればいいのでしょうか?。ここが解ればremoveも同じようにうまくできると思いますので
よろしくお願い致します。


154:Now_loading...774KB
11/07/22 19:06:11.53 vLukB6EO
>>153
ドキュメントクラス(と仮定するが)で、mcを定義していたら後は変更する必要は無いはず
まずvar mc:Sprite;とでも、mcを定義しておいて、その中身は
function setOn()内で、newすればいい
function setOn()内で、var mcとしてもローカル変数になるだけ

おそらく、今の書き方はごっちゃになっている

155:Now_loading...774KB
11/07/22 19:53:18.60 M+1wY94S
タイムラインと見た

156:Now_loading...774KB
11/07/22 20:14:46.94 pRyJabnR
>>153
functionの外に private var mc:Carsol; みたいに定義しないと
他のfunctionから参照できないんじゃない?


157:Now_loading...774KB
11/07/22 21:39:03.33 /z+f1NmN
カーソルのつづりってcursorじゃなかったっけ

158:Now_loading...774KB
11/07/22 22:01:02.82 XxIfD0pG
カーソルじゃないんだろ

159:Now_loading...774KB
11/07/23 06:22:00.86 6RJRZtWA
いっそFlaファイルをUp


160:Now_loading...774KB
11/07/23 22:04:19.54 SiW5uF0z
AS3,XP-Pro,CS4(CS5)です。
BetweenAS3で関数をトゥイーンとして利用するにはどうしたら良いでしょうか?
※一応作りましたがエラーが出ます。

元々はオブジェクト(wrap)がEvent.ENTER_FRAMEで0.1度づつ回転するに伴い、フレーム毎に
rotFuncを呼び出してwrap内の子に対して処理をしていましたが、ボタンを押すことで

 ・現在の回転角度より → 徐々に遅くなるイージング処理を伴い1秒後に+36度回転
 ・この+36度回転の最中にwrapの子(10個)は常にrotFuncの処理で深度が入れ替わる

としたいです。
つまり、rotFunc→rotFunc→rotFunc→rotFunc→(回転が遅くなる)→rotFunc→ストップ
という感じで限定された時間内でトゥイーンとして動作させたいです。

URLリンク(oshige.com) を参考に下の様にしました。
function _testTween(rotFunc:Function):ITween;//定義
_testTween = BetweenAS3.tween(wrap, null, { $rotationX : 36 },1.0, Sine.easeOut);// +36度回転
_testTween.play();

これだとコンパイル時に「1126: 関数にボディを含めることはできません。」というエラーが
出ます。
どうしら良いでしょうか?


161:Now_loading...774KB
11/07/23 22:11:39.76 z43HNJhl
>function _testTween(rotFunc:Function):ITween;//定義
これは・・・

var _testTween:ITween;
こうじゃないか?

162:160
11/07/23 22:34:53.39 SiW5uF0z
>>161
あ~ 本当だ・・・


163:Now_loading...774KB
11/07/23 22:41:40.60 m130oc+P
CS4(CS5)とはいかに

164:160&162
11/07/23 22:50:34.42 SiW5uF0z
再訂正:
ごめんなさい。var _testTween:ITween; では一見動くように見えますが、
wrapの子を処理するrotFuncが実行されていないので結局、回転変化がありません。


>>163
時々CS5も使うという意味です。
CS4の方がフォントの指定とかで楽なんで。


165:Now_loading...774KB
11/07/23 22:55:26.47 m130oc+P
そりゃrotFuncがどこにも書いてないからな

166:160&162
11/07/23 23:05:15.01 SiW5uF0z
>>165
正直、このBetweenAS3でのrotFuncの使い方が分かりません。

SWFをUpしました。
URLリンク(swfup.info)
一見回転しているように見えますが、数字が元のままです。
どうしたら良いでしょうか?


167:Now_loading...774KB
11/07/23 23:09:53.91 m130oc+P
具体的になにがやりたいのかさっぱりわからん

>>166を見てボタンとかイージングとかはなんとなく分かった
rotFuncはいつ行いたいの?

168:Now_loading...774KB
11/07/23 23:10:53.69 z43HNJhl
BetweenAS3使ったこと無いけど、UPDATEイベント発行してくれるみたいだから
_testTweenにリスナー付けてその中で深度変更、とかでいいんじゃないの

169:160&162
11/07/24 00:05:41.40 nelAHRmY
>>167
rotFuncは_testTween.play()による開始から終了までです。
Event.ENTER_FRAMEで単純にクルクルと回すだけでしたらOKだったのですが、
時間限定で動かしてなおかつイージングが出来ません。


>>168
_testTween.addEventListener(TweenEvent.UPDATE, _onUpdate); で
public function rotFunc (e:TweenEvent){処理}
で実行するとエラーは出ませんが、相変わらず回転と番号が一致しません。


------
FlaファイルとドキュメントクラスのASとSWFをZipでUpしました。
URLリンク(cgi.geocities.jp)
※DLキーは 1 です。(800KB)

rotFuncはドキュメントクラスの下の方にあります。
度々すいません。よろしくお願い致します。


170:160&162
11/07/24 00:08:33.00 nelAHRmY
(上の訂正)
_testTween.addEventListener(TweenEvent.UPDATE, _onUpdate); 
                                   ↓
_testTween.addEventListener(TweenEvent.UPDATE, rotFunc);


171:Now_loading...774KB
11/07/24 00:14:18.72 QHcJKq97
トゥイーン中はエンターフレームでやらせたいってこと?


回転と番号のとこ詳しく
どうなるのが理想なの?

172:160&162
11/07/24 00:34:07.44 nelAHRmY
>>171
URLリンク(swfup.info) では1回押す毎に上方向に(8→9→10方向に)
全体が回転していますが、最初8が正面にあるので1回押すと正面が7になるようにしたいです。


173:Now_loading...774KB
11/07/24 00:35:02.67 Bq5E9K+f
ファイル見たけど、tweenのfromで渡した$rotationXが一定だから
毎回同じ位置から回転が始まってるんじゃないかと
毎回tweenを作り直して、$rotationXをその都度変えて渡すとかすれば
やりたい(であろう)動作になるんじゃないかな

174:160&162
11/07/24 01:15:59.00 nelAHRmY
>>173
Zipファイルを見て頂き有難うございます。
どうやら、ストリング($)を使った回転の相対値によるトゥイーンだと駄目なようなので、
回転の目標値を wrapRotTo = wrap.rotationX + 360/panelKazu; で指定して

_testTween = BetweenAS3.tween(wrap, { rotationX :wrapRotTo }, null, 1.0, Back.easeOut)

またこの間の監視として
_testTween.addEventListener(TweenEvent.UPDATE, rotFunc);
とすればOKでした。

当初のコードよりはスマートな状態ではありませんが、これで良しとします。


Upしました:URLリンク(swfup.info)
あれ・・・ Web上では番号と板回転が一致しない。 
スタンドアローンではOKなんですが・・・ まあなんとかなりますw


175:160&162&172
11/07/24 02:34:00.06 nelAHRmY
URLリンク(swfup.info) はリロードしたらOKでした。
これが求める動作の形です。


176:Now_loading...774KB
11/07/24 19:05:53.17 kYDl/NUC
ActionScriptの質問というか、設計についての質問です。

開発環境:Flex Builder4

今、お絵描き掲示板を作ってるですが、FlashからPOSTで画像データを送ると
モバイルノートPCなんかの低速回線だと時間がかかって
送信がタイムアウトしてしまう事があるみたいです(bmpをpngにエンコードしたものを送信してます)

こういう場合、どういう設計にするのが良いでしょうか。
POSTじゃなくてコネクション張って送信、みたいな形にすれば良いのかなぁと思うんですが
Red5みたいなストリーミングサーバを使えばできるものでしょうか??

177:Now_loading...774KB
11/07/24 20:36:20.68 +uW9OlT6
package {
 import flash.display.MovieClip;
 import mx.collections.XMLListCollection;
 import mx.controls.MenuBar;

 public class Main extends MovieClip {

  private var MyMenuBar:MenuBar = new MenuBar();
  private var menuBarCollection:XMLListCollection;
  private var menubarXML:XMLList =
   <>
     <menuitem label="Menu1" data="top">
      <menuitem label="MenuItem 1-A" data="1A"/>
     </menuitem>
   </>;
  public function Main() {
   menuBarCollection = new XMLListCollection(menubarXML);
   MyMenuBar.dataProvider = menuBarCollection;
   addChild(MyMenuBar);
  }
 }
}

MenuBarクラスを使って画面の上部にメニューバーを表示したいのですが、
FlashProfessionalCS5、AIR2、FlashPlayer10で新規ドキュメントのメインタイムラインで
このコードを実行してもメニューバーが表示されません。どうしてですか?
ライブラリへのパスは通してあるのでmxで始まるパッケージが読み込めていないということはないはずです。
このコードはアドビの公式リファレンスガイドに載っていたmxmlファイルに記述するはずのコードを
asファイルに記述できるように必要な部分だけ抜き出したものなのですが、そこで何かを間違えたのでしょうか。
そもそも、mxで始まるパッケージをFlashProfessionalで使用することはできるのでしょうか?



178:Now_loading...774KB
11/07/24 20:39:21.98 Bq5E9K+f
mx.~はFlex用だからFlashじゃ使えない

179:Now_loading...774KB
11/07/24 21:55:42.15 QHcJKq97
>>177
FlexSDKから抽出できたはず

180:Now_loading...774KB
11/07/25 09:28:47.30 Ko4OKd7d
詳しく調べていると使えるという情報と使えないという情報が両方あって余計にわからなくなってきました。

>>178
MenuBarクラスから生成したMyMenuBarをトレースするとちゃんと表示されるのですが、これでもFlashでは使えないのでしょうか。

>>179
よく意味がわからなかったので調べて見たのですが抽出というのは↓のページに書かれているようなことですよね。
時間があるときに試してみます。ありがとうございました。
URLリンク(sazzzzz.blog15.fc2.com)

181:Now_loading...774KB
11/07/25 12:32:21.25 O8mgxxMD
>>180
そんなかんじ。SDKからもってくるだけだけど

そもそもMenuBarクラスつかえてるんでしょ?
なんにもせずにmxパッケージが使えるのはそれはそれで変な気がするんだが


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