[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/22 12:33 / Filesize : 261 KB / Number-of Response : 1014
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【AS】ActionScript技術交換スレ Part4



1 名前:Now_loading...774KB mailto:sage [2005/12/22(木) 01:22:31 ID:Dj6CR8TB.net]
ムービー内の詳しいASの組み方はもちろん、PerlやJava・PHPを介したCGI連携といった技術や、
XMLSocketを使用したオンラインゲームなど、ムービー以外の用途として活躍するActionScriptの技術交換スレです。
また、AS2.0/3.0の話、Flash Media ServerとかColdFusionやRemoting、コンポーネント等、
他スレでは話題に上がりづらいFLASH周りのコアな技術交換&雑談にもご利用下さい。

前スレ
pc8.2ch.net/test/read.cgi/swf/1071929938/

前々スレ
pc4.2ch.net/test/read.cgi/swf/1054659810/

前々々スレ
pc3.2ch.net/test/read.cgi/swf/1030886688/

※:なおこのスレでは「NowLoadingどうやるの?」みたいな
  初歩的な質問は受け付けませんのであしからず。
  その手の質問やそれに近いレベルの質問は↓でドゾー
ActionScript 誰かが物凄い勢いで解答するスレ 10
pc8.2ch.net/test/read.cgi/swf/1134826648/

参考サイトや参考スレは>>2-5以内。


331 名前:Now_loading...774KB mailto:sage [2007/04/13(金) 14:11:43 ID:hUfDsHqK.net]
それは階層の設計でどうにでもなるからわざわざフレーム使うのはおかしい。
ShapeかBitmapの書き換えは良く使うけどSpriteはスクリプト制御で足りから
ランタイム中に追加フレームがどうしても必要なケースって想定できないなあ。
ありゃあったで便利だけど。




332 名前:Now_loading...774KB mailto:sage [2007/04/13(金) 14:55:13 ID:mxneYkC+.net]
>>325

個人的にはステージにcontainerってスプライト造って、
全部のMCはその中に入れる。
全て消すときはcontainerをremoveChildする、が妥当じゃないかと。

333 名前:すべすべコーダー肌 mailto:sage [2007/04/13(金) 16:25:37 ID:mpAQrj+i.net]
>>327
先のMLでもそういう風に言われてるみたいです。
>>328
らじゃ。その方向でいきます。

334 名前:Now_loading...774KB mailto:sage [2007/04/20(金) 16:14:28 ID:8Uhr7SoJ.net]
FlexBuilderって、Flexプロジェクトと、ActionScriptプロジェクトがあるじゃないすか。
Flexプロジェクトって、構造がよく分かんなくて気持ち悪いから、ActionScriptプロジェクトで作ってるんだけど
ActionScriptプロジェクトで制作しつつ、Flexコンポーネント(ColorPickerとか)を使うって出来ないんすか?

335 名前:Now_loading...774KB mailto:sage [2007/04/20(金) 17:13:06 ID:TaF8Bl29.net]
>>330

俺それ仕事でやったことあるよ。
ASプロジェクトだと、Flex系のクラスが読み込まれないから
プロジェクト右クリックから、
プロパティ→ビルドパス→ライブラリパス→SWCの追加を選んで、
flex.swcやframework.swf, rpc.swcあたりを追加すると
Flexのクラスが使えるようになる。

ただFlexのデータクラスは使えるけど、ビジュアルコンポーネントは多分無理。

ビジュアルコンポーネント使いたかったら、FlexプロジェクトでMXMLにスクリプトだけで

<mx:Script>
public function init(){
var main:Main = new Main()
main.run()
}
</mx:Script>

みたいなことだけ書いて、applicationのapplicationComplete="init()"で起動すればOKかと。

336 名前:Now_loading...774KB mailto:sage [2007/04/20(金) 19:01:11 ID:8Uhr7SoJ.net]
>>331
レスどもっす!
やっぱ、ビジュアルコンポーネントは使えないのかー。一部だけ使いたいのにな…。
データコンポーネントも、ActionScriptからの使い方があんまり詳しく乗ってないすよね。
WebServicesクラス使いたかったんだけど、いまいち分からなかった...orz
MXML上では<operation>要素を追加すればいけるけど、
ASだとoperations:ArrayにAbstractOperationクラスを突っ込むみたいな違いが…。

もうちょい勉強しよ。

337 名前:Now_loading...774KB mailto:sage [2007/04/28(土) 22:16:47 ID:E9mvMSLJ.net]
閑散としてるなぁ... (´・ω・`)

最近papervision3Dやっててタノシス。
Papervision3Dの、AS2番ってSVN1から落としてきても
エラーでまくりで、ちゃんと動かなくね? 俺だけかな…。

338 名前:Now_loading...774KB mailto:sage [2007/04/29(日) 00:02:49 ID:f0vH5pGP.net]
>>333
なんか日本語環境で表示おかしくなる文字があるから
いっかい何かのテキストエディタで一回全ソース保存し直せばうごくかも。

というか俺はそうした。

339 名前:333 mailto:sage [2007/04/29(日) 04:34:16 ID:VzBrSgkt.net]
うお。ホントだ…。エラーでなくなった。
import のファイル名とか絶対合ってるのに何でなんだぜ?って思ってますた... orz



340 名前:Now_loading...774KB mailto:sage [2007/04/30(月) 20:04:19 ID:nKF0ArW1.net]
>>335
ところで、
Papervision3DだったらAS3版のほうが良いと思うぞ。AS2だとあまり速度が出ない。
300ポリゴンを越えたあたりでAthlon64 3200+ で30Fpsの表示が怪しくなってくる。

AS3コンパイル環境もそろえようと思えばすべてタダでそろうし。

341 名前:333 mailto:sage [2007/05/01(火) 20:05:45 ID:1/Iggacb.net]
>>336
やっぱAS2版だと、あんまパフォーマンス良くないんだ…。
AS3版では実際プロトタイプとか作ってみました。

ただ、サイト全体AS3っていう案件は、まだ無いだろうから
Flash Player 8 の案件で、ちょろっと3D効果出すのに使えたらいいなーっと。

342 名前:Now_loading...774KB mailto:sage [2007/05/01(火) 20:30:37 ID:p3gzszCx.net]
AS3でサイト構築いいねぇ
重くて使えなかった物理演算グリグリ


343 名前:Now_loading...774KB mailto:sage [2007/05/12(土) 13:07:08 ID:16mwY0np.net]
Flexからはじめたものです。

数万単位のSpriteを一度に出したり消したりすると、ガベージコレクションが
間に合わなくて、最終的にタイムアウトを起こしてしまうんですが、
なんとかならないでしょうか?

特に個々のcacheAsBitmapを有効にしていると、キャッシュが破壊されて
デスクトップ全体を巻き込む大惨事に発展するんですが・・・。

344 名前:Now_loading...774KB mailto:sage [2007/05/12(土) 13:39:51 ID:pUI/ypHy.net]
数万単位のSpriteを一度に出したり消したりしなくて良いようにする。

345 名前:Now_loading...774KB mailto:sage [2007/05/12(土) 14:03:33 ID:aiHBWBeT.net]
>>339

3000個ずつ10フレームにずらすとか、工夫しろ。

あと3万個をcacheAsは無理だろう。
1個10kbだとしても、300Mいくぞwww



346 名前:339 mailto:sage [2007/05/12(土) 22:15:52 ID:16mwY0np.net]
339です。

結局、キャッシュは大元のキャンバスだけに効かせるようにしました。
単純にtransformオブジェクトの操作だけで出来るもの(移動や色の変更など)は、
自分でキャッシュを指定するまでもなく速いようなので。

>3000個ずつ10フレームにずらすとか、工夫しろ。
なるほど、フレームをずらすとタイムアウトが避けられるというわけですね。
Flexからはじめたのでフレームという概念がちと怪しいのですが、
UIComponentでいえば、validateNow()で1フレーム進むと考えていいんでしょうか?

数万単位のSpriteを一度に出したり消したりする、というのは、
ちょうど作っているのがドロー系のソフトウェアに近いものなので
オブジェクトを一度に削除したりする上に、アンドゥにも対応する必要が
あるからです。
せっかくモデル部分だけをアンドゥにスタックするように
作ったのに、削除したSpriteがちっとも開放されてくれないという・・・orz

347 名前:339 mailto:sage [2007/05/12(土) 22:55:40 ID:16mwY0np.net]
あ、サンプル見たらわかりました。
callLater使ってちょぼちょぼ追加するのが健康によさそうですね。

348 名前:Now_loading...774KB mailto:sage [2007/05/13(日) 04:24:32 ID:p9qM+rmC.net]
なんでドロー系のソフトでSpriteを数万も使おうとするのか全くわからん。
数万もレイヤーがあるのか

349 名前:339 mailto:sage [2007/05/14(月) 08:16:39 ID:Tplo/ZJ+.net]
>344
ビットマップ転送で1枚のSpriteに直接描くとラクですが、
描いた曲線などのマウスヒット判定が必要なのでボツになりました。






350 名前:Now_loading...774KB mailto:sage [2007/05/14(月) 10:28:04 ID:vjPgWV8P.net]
>>345

数万個にhittestは無理じゃない?普通に。
クアッドツリー(四分木)とかそういうの使って、衝突判定しないと。



351 名前:Now_loading...774KB mailto:sage [2007/05/17(木) 14:39:27 ID:CpLI7TJQ.net]
Flash8使ってます。長めのノベルゲームを作ってみたいのですが、テキストフィールドにシーン毎にテキストを書くと手間が非常にかかってしまいます。
そこでシナリオファイルを読み込ませて処理させたいのですが、外部からテキストを読み込ませる方法だと外から丸見えになってしまうので困ってしまいます。
こういう時はどういう方法を使うのがベターなんでしょうか?
変数に長い文字列を割り当てて処理させる方法がいいんですかね?
なにか格好が悪いので、もう少しスマートな方法がないものかなと思うのですが……。
あと、あまり長い文字列割り当てるとメモリ消費量は大丈夫なのかなという心配もあります。

var buf:String = "*start"
+ ",[image name='Aくん' pos=left]"
+ ",Aくん「こんぬつは」";

var aScenario:Array = buf.split(",");
trace(aScenario[0]);

こんな感じでやってます。

352 名前:Now_loading...774KB mailto:sage [2007/05/17(木) 15:32:18 ID:fSOG1ggW.net]
課金がからむFlashゲームとか見ると
getやらpostで送信されるデータの中身見れなかったりするね。
ああいうの結構特殊なことやってるんだろうなあ。

as3ならばByteArrayを用いれば
やりとりされるデータをぱっとみわからなくすることができそうだけど。

353 名前:Now_loading...774KB mailto:sage [2007/05/17(木) 23:56:09 ID:NjF7RrCJ.net]
>>348

素人の盗み見を排除するだけでよければ、
文字コードをいくつかずらして保存したテキストファイルを読み込んで、
逆にずらして復元すればいいんじゃないかと。

354 名前:339 mailto:sage [2007/05/18(金) 01:05:48 ID:pzV8S/bB.net]
>346
結局、Shape内の座標1ドットだけbitmapDataに書き出してヒット判定する
メソッドを作成しますた。

複数のShapeの単純な重ね合わせ処理をsetPixel()使ってドット単位で合成するのは
DisplayObjectContainerの重ねあわせよりも速いですか?
こういった言語はビットマップを直接処理するのは遅いものだと思っていたのですが、
上の処理がわりと速かったので、明日やってみようかと。

355 名前:Now_loading...774KB mailto:sage [2007/05/18(金) 08:19:03 ID:bQAitxEI.net]
>>350

もしAS3でやってるんなら、Rasterってライブラリをググッて探すとよい。
ディフォのベクター描画よりもはやい、ビットマップ描画ライブラリがある。



356 名前:Now_loading...774KB mailto:sage [2007/05/18(金) 12:07:09 ID:+OU3bNWl.net]
>>348に関連するけど、ゲームのランキングとか
どのぐらい、パッと見で分からなくすればいいのか悩む。


357 名前:339 mailto:sage [2007/05/19(土) 02:33:26 ID:PS4eqgbR.net]
>351
ありがとうございます。
ビットマップ上で直接描画するライブラリを用意する方向は
考慮していなかったので目からウロコです。
これを拡張する方向でやってみます。

スケールとか考えるとまたユウウツですけどね(^^;

358 名前:|・ミ ◆H0MotH/SqY mailto:sage [2007/05/30(水) 10:25:16 ID:dBRfZMi1.net]
なんかできた

AVM1Fixer
www.kaikoga.net/m/archives/20

Flash8以前で作ったswfファイルをActionScript3.0でフルアクセスできるように変換するという
必要でない人には本当に役に立たないソフトです。

これはJavaでswfファイルを前もって変換するためのソフトなんですが、
swfファイルを直接バイナリで読み込んで動的に変換する方法がブログの世界では人気みたいです。
ByteArrayの値を書き換えるだけでは
(現時点では)Flash8の無圧縮のswfに限定されるみたいですが。

ただ、ByteArrayに6バイトの値を挿入できればFlash7以前のswfも動的に変換できるし、
ByteArray.uncompress()あたりを振り回せば理論上は圧縮swfも動的に変換できるはずなんです。
まだ誰もやってないだけで。
私はやりません。

359 名前:Now_loading...774KB mailto:sage [2007/05/30(水) 11:32:16 ID:YgXOam6i.net]
>>354
ためしてないけど乙



360 名前:Now_loading...774KB mailto:sage [2007/05/30(水) 12:23:53 ID:YmQVd23D.net]
こういった改造で以前のバージョンのswfにアクセス可能になるのであれば
公式にサポートしてくれてもよいような気もするが
やはりどこかに何か問題があるのかな。

361 名前:Now_loading...774KB mailto:sage [2007/05/30(水) 18:34:37 ID:ZP+IQkWi.net]
フルアクセスってAS2の関数の実行も可能?
とりあえずlcとajaxbridgeで事足りるからいいんだけど。

362 名前:|・ミ ◆H0MotH/SqY mailto:sage [2007/05/30(水) 20:36:14 ID:dBRfZMi1.net]
>>356
改造で読み込んだswfについてまであどべさんはサポートしたくないでしょう。
私もしたくないです。

具体的には、時代を遡るほど使われてるタグが微妙に変化していくので
(タグってのは簡単に言うとswfファイルの中で使われてる言葉のこと)
昔のswfほどFlashPlayerにとって想定外な入力になります。
たとえ問題がなかったとしても、全部の場合についてテストするのは私もしたくないです。

>>357
さすがにAS2.0の関数は全部消えるです。残念ながら。
AS2.0の関数を動かすにはAVM1で動かすしかないので、必然的にLCなどで通信するしかない。

直接MovieClip.gotoAndPlay()が叩けるって意味でした、まぎらわしくてごめんなさい。

363 名前:Now_loading...774KB mailto:sage [2007/05/30(水) 20:38:35 ID:dBRfZMi1.net]
あと、ボタンアクションをswfファイルから削除するのが相当めんどくさいのもある。

ただ、Flash9で読み込むと何も起こらないけど
Flash8以前で読み込むと動くAS、みたいなのが作れそうなのはちょっと面白い気がする。

364 名前:Now_loading...774KB mailto:sage [2007/05/30(水) 21:31:48 ID:YmQVd23D.net]
>改造で読み込んだswfについてまであどべさんはサポートしたくないでしょう。

ちがーう、
簡単な改造で過去バージョンのswfが読み込めるのであれば
改造せずともサポートしてくれてもよいだろう、と言ったの。

>たとえ問題がなかったとしても、全部の場合についてテストするのは私もしたくないです。

問題がないのであればテストする必要がないだろうが。
あなたの言っていることは前後関係が全部逆。
人の話を単に否定したいだけかい。

365 名前:Now_loading...774KB mailto:sage [2007/05/30(水) 21:45:00 ID:YgXOam6i.net]
ふるいversionのswfをサポートするって事は、当然AS2以前のサポートも期待されるわけで、
それが動かないものをサポートしといって叩かれるより、サポートしませんって言ったほうが
良いと判断したとかじゃね。

366 名前:Now_loading...774KB mailto:sage [2007/05/30(水) 21:46:06 ID:YgXOam6i.net]
俺、日本語でおk
ようするに面倒くさかったんだろってことだ

367 名前:Now_loading...774KB mailto:sage [2007/05/31(木) 01:41:52 ID:1H14ChTK.net]
これは個人的に研究してた。

スゴイ限定された使い方だけど、
swfアニメやスキンを投稿するサイトでは
意味があるかもしれないと思うよ。

まだFlash9が普及してないので、flash8しかない人用の当面の救済措置とか。

あとfla8 to 9 で変換すれば、
スクリプトの使用を強制的に無効化できるわけだし。

FlashPlayerは基本思想として、
解析不能なバイトコードは無視する・・・
って仕様なので、ロード失敗しても最悪空swfとして扱われるだけだと思う。
保障はしたくないけど。


368 名前:Now_loading...774KB mailto:sage [2007/05/31(木) 01:49:43 ID:1E97spjB.net]
>>363
Flash9が普及していないならわざわざ変換する意味は無いと思うぜ。
swf投稿サイトでは普通AS3コンテンツからFlash8でコンパイルしたSWFをロードしないぜ?

369 名前:Now_loading...774KB mailto:sage [2007/05/31(木) 02:10:53 ID:1H14ChTK.net]
>>364

AS3じゃないと実現できない何かをする投稿サイトがあって、
けどFlash CS3持ってないと投稿できないんじゃアレなので、
Flash8で作ったモノも投稿できるようにしたいケースって意味だよ。



370 名前:Now_loading...774KB mailto:sage [2007/06/04(月) 23:17:29 ID:AKrTCQmf.net]
pixlibの日本語解説を読みたいんですが甘いでしょうか。

371 名前:Now_loading...774KB [2007/07/20(金) 01:32:55 ID:yp5z/ewa.net]
プリローダーがうまく作れません。

★1フレーム目★
onClipEvent (load) {
%9_root.stop();%9//タイムラインの1フレーム目で止めておく
}

onClipEvent (enterFrame) {
%9// すべて読み込んだら3フレーム目へ
%9if (_root._framesloaded==_root._totalframes) {
%9%9_root.gotoAndStop(3);
%9}
}
★2フレーム目★
_root.gotoAndPlay(1);
★3フレーム目★
サムネイルアルバムみたいなやつ。3M程。

どうやってもいきなり『_root._framesloaded==3』となり、3フレーム目にすっとんでしまいます。
誰か助けてください。
環境は、MX、XPSP2です。

372 名前:367 mailto:sage [2007/07/20(金) 02:05:39 ID:yp5z/ewa.net]
スレ違いでした。済みません。

373 名前:Now_loading...774KB [2007/07/26(木) 16:37:52 ID:zltikblJ.net]
www.r-kei.com/labo/

374 名前:Now_loading...774KB [2007/08/16(木) 16:14:17 ID:L52GkxEf.net]
age

375 名前:Now_loading...774KB mailto:sage [2007/09/03(月) 22:50:58 ID:sG4PYBym.net]
AS3のパフォーマンスチューニングのサイトありませんか?
フラットシェーディングの2万ポリゴンを100x100のサイズにDDAベースで
描画するのに2秒ぐらいかかってまして。

376 名前:Now_loading...774KB mailto:sage [2007/09/04(火) 05:10:38 ID:Qjx2ixJf.net]
それは何をしようがどうにもならんと思うのだが……。
むしろなぜ2万ポリゴンも表示したいのか。

377 名前:Now_loading...774KB mailto:sage [2007/09/04(火) 08:12:25 ID:sSSeypNF.net]
>>372
3になって高速化したと聞いたのでどのくらいなのか調べてました。
数値計算をぶんまわす用途だと、Javaとの比較で一桁、Cで二桁程度は実行速度が
違うという感覚でいいんでしょうか。

Mozillaに寄贈されたASのVMがあるようなので、そっちも調べてみようと思います。

378 名前:373 mailto:sage [2007/09/14(金) 20:15:32 ID:z0XjBaTk.net]
なんとなく分かった。
バイトコードをJITコンパイラでネイティブコードに落としてはいるけどそれだけのようです。
調べた限りでは実行時情報を使った最適化のようなことはしてないし、フロー解析のようなことも
恐らくしてない。

現状で限界までパフォーマンスが要求される用途に使われていないっていうのと
スクリプト言語だっていうのであまりその辺りに重きを置いていないのかも。

379 名前:Now_loading...774KB mailto:sage [2007/09/14(金) 20:21:30 ID:8iqGs0FY.net]
>>374

AS3の高速化ってのは、
そこよりも再生するバーチャルマシンが変わったことによる点が大きいと思うよ。

厳密な型指定がついたから、
変数のやり取り毎に内部で型の判定しなくてすむとかそういう部分。




380 名前:Now_loading...774KB mailto:sage [2007/09/14(金) 20:39:53 ID:z0XjBaTk.net]
>>375
分かりにくかったならすみません。>>374はVMのソース調べた結果わかったことです。

確かに型情報使ってある種の高速化はされてます。
たとえば+演算子の処理内容は数値か文字列か他のオブジェクトかで実行する前に異なる処理に
コンパイルされるし、単純な配列としてのアクセスとハッシュテーブルとしてのアクセスも
区別されてる。

それでも、AVM1で純粋にインタプリタとして実行するのと比べ格段に早くなってるにしても、AVM2も
がちがちに最適化をしてるわけではありません。
サーバーサイドで長時間実行されるなら好きなだけJITに時間かけて実行時性能を最大にするような
最適化をかけてもいいけど、FLASH読み込んだ後数十秒コンパイルするようなことは用途的に
許容できないからそんなバランスになってるんだろうと思います。

381 名前:Now_loading...774KB mailto:sage [2007/09/15(土) 14:35:02 ID:0+rt5rir.net]
君が100倍はやいVMを開発してアドビに売れば、みんなウハウハですよ。

382 名前:Now_loading...774KB mailto:sage [2007/09/15(土) 18:53:36 ID:4kZu1cKL.net]
そのためのオープンソースです。


ネタでなく、実際そんなとこなんだろうし。

383 名前:Now_loading...774KB mailto:sage [2007/09/15(土) 19:10:23 ID:0Wjgo2PV.net]
実際ちょっと調べてみてます。100倍は無理だと思いますけど。

384 名前:Now_loading...774KB mailto:sage [2007/09/15(土) 23:17:00 ID:MG3DeQda.net]
スクリプト処理が多少高速化しても結局描画が足引っ張るから体感ではたいして変わらんべ。

385 名前:Now_loading...774KB mailto:sage [2007/09/16(日) 01:33:28 ID:U5mjIxKH.net]
君が描画スピードが100倍はや(ry

386 名前:Now_loading...774KB mailto:sage [2007/09/25(火) 13:10:06 ID:tZRO7eiE.net]
FAMEで構築してる人いる?

387 名前:Now_loading...774KB mailto:sage [2007/09/26(水) 00:50:00 ID:MiPjmbL8.net]
でもなんか画像の拡縮率をランダムに変えて高速に表示するベンチマークぽいのを見たけど
AS2とAS3では見た目でスピードの違いがわかったよ。


388 名前:Now_loading...774KB mailto:sage [2007/09/26(水) 15:49:37 ID:QommhW5X.net]
AS3は10倍の速度アップと言われててあれだからな。描画は変わらんから
スクリプトアニメーションをAS3にしたら意図しない抑揚がついて笑った。

389 名前:Now_loading...774KB [2007/09/29(土) 12:20:21 ID:v8zp+XND.net]
www.creatistblog.com/pv3d/dynamics/
↑みたいにmxmlでUI作って、その上にpapervision3dのっけたいんだけどサンプルとかどっかに落ちてないかな



390 名前:Now_loading...774KB mailto:sage [2007/09/29(土) 21:46:11 ID:s97Y48Yz.net]
pv3dにFlexサンプルが入ってるがそれじゃ駄目なん?

391 名前:Now_loading...774KB [2007/09/29(土) 23:11:14 ID:v8zp+XND.net]
サンプルにあるのはflaなんですよ。やっぱsdkだけじゃだめっすか

392 名前:Now_loading...774KB mailto:sage [2007/09/30(日) 04:37:33 ID:HaNsjBy/.net]
普通にmxmlのサンプルが入ってるが

393 名前:Now_loading...774KB [2007/09/30(日) 12:27:52 ID:mDxt2mQ7.net]
え、まじですか。どこにありました?

394 名前:Now_loading...774KB mailto:sage [2007/09/30(日) 12:32:11 ID:xkzeIep9.net]
俺のケツん中だよ

395 名前:Now_loading...774KB mailto:sage [2007/09/30(日) 12:57:44 ID:wF6IDFif.net]
そうだ!お前、俺の

396 名前:Now_loading...774KB mailto:sage [2007/10/10(水) 18:07:50 ID:lkIfy0+l.net]
AstroとThermo……
社用案件がFlex1.5時代の保守中心なのに時代はどんどん進むなー
なんだよquakeIIIが動くとか

397 名前:Now_loading...774KB mailto:sage [2007/10/11(木) 17:11:18 ID:TvISlJWE.net]
やっぱASプログラマーって少ないんだよな・・・。
メモリ開放関連でずっとぐぐってたけど解決しなくて俺涙目

1280, 960の■のBitmapDataを生成して、Bitmap型に入れてSpriteに加えるプログラム(Heavy.as)を、
オブジェクトとして読み込んで配列に加えては消していくのを繰り返すプログラムを作ってみたんだけど、
メモリが延々と増え続けていって俺涙目。
Heavy.asに一定時間ごとに音を鳴らすプログラム入れて試してみたら、ずっと一定時間ごとになり続けているあたりで、
参照を消しても対象のオブジェクトは消されないことがわかるし・・・。
解決策はHeavy.as内に、Heavy.as内にある全てのBitmapData型にdisposeして、
イベントも全てremoveEventListenerするようなプログラムかかないといけないのかな。

直に丸々削除するような関数でもあれば楽だったんだけどなぁ


398 名前:Now_loading...774KB mailto:sage [2007/10/11(木) 19:40:02 ID:hnfCfgZq.net]
よくわからん。もし問題なければそのHeavy.asみせて。

399 名前:Now_loading...774KB mailto:sage [2007/10/11(木) 20:02:34 ID:LoIZVITO.net]
ひでぇ設計と日本語



400 名前:Now_loading...774KB mailto:sage [2007/10/11(木) 20:14:56 ID:TvISlJWE.net]
>>394
www.uploda.org/uporg1060798.zip.html
中に入っているTest.swfを実行すると、
延々とメモリ使用量が増えていく・・・はずなんだが、
Windowsでやってみたらちゃんとガベージコレクションされてるのか一定以上増えなくて俺更に涙目。
これ解決しないとゲーム完成に辿り着けないのにor2=3

401 名前:Now_loading...774KB mailto:sage [2007/10/11(木) 21:17:08 ID:MRuNtHOA.net]
Delete関数は何のために書いたの?

402 名前:Now_loading...774KB mailto:sage [2007/10/11(木) 21:17:21 ID:OhoJXt7D.net]
個人的には396は新手のブラクラだと思った

>>393
・ガベージコレクションはいつ呼び出されるか分からない
・普通に追加したイベントリスナーは参照してるのと同じ
・というかメモリの確保や解放はそもそもコストの高い操作
・サイズの大きいBitmapDataはメモリを大量に使うよ、一回計算してみれば?
個人的には同じBitmapDataを使い回して
中身を毎回BitmapData.fillRect()か何かで塗りつぶすコードに書き換えてみる事を勧める

ガベージコレクションを真面目に働かせるのが目的ならともかく
普通に動かすならオブジェクトの作りすぎは禁物

※以下独り言
ゲーム系の制作とWebアプリ系の制作は求められる技術がまるで違うにもかかわらず
AS系職人とかいう名前付けられて一緒くたにされて俺涙目

403 名前:Now_loading...774KB mailto:sage [2007/10/11(木) 21:34:33 ID:TvISlJWE.net]
>>397
Test.as側からのHeavy.asに対する参照を外す際、
それを使ってHeavy.as内のBitmapDataを空っぽにすると
ちゃんと軽くなるってのを確かめる時につけたのがそのまんま残ってただけです。

>>398
ブロック崩しを作ってて、都合上ブロックの生成・削除を繰り返さないといけないことになってるんだけど、
それでちゃんと消してるはずなのにメモリが一向に減らないからどうなんだろうと思って、
ちょっと極端なプログラムを書いて試してみたんだ。

BreakBlock ┬ Block ― Sprite ― Bitmap ― BitmapData
        ├ Block …
        :
        └ Block …
って感じのつくりで、BreakBlockからのBlockへの参照を外せば、
Blockはその下のBitmapDataやらと一緒に消えてくれるかなと思ってたんだけど、
一向に消える気配がなくてどーすりゃええんよーと思ってたところ。

参照から外しても、その内部でイベントが働いたりしてると消えないのかなぁ

404 名前:Now_loading...774KB mailto:sage [2007/10/11(木) 23:00:35 ID:OhoJXt7D.net]
>>399
Flash Player 9のガベージコレクションは参照を消せば直ちにメモリが解放されるわけじゃないよ
ガベージコレクションが動くまではずっとメモリに残りっぱなし。

そしてそのガベージコレクションの動くタイミングだけど、かなり遅いと思っていい。
厳密なタイミングが知りたいなら、
どこかで書いたような気がするけどSystem.totalMemoryが便利
まあ、AS3で本格的なゲームを作ろうと思ってる人なら一度目で見て実感するのがいいよ


俺が使った回避策としては
ブロックを削除するかわりにインスタンスをどこかに保存しておいて
生成する代わりに保存したインスタンスを再利用すれば面白いほど速くなると思うよ
この場合は変数の再初期化のし忘れに要注意だけどな

全部BitmapData.copyPixel()で描画するように書き直すのも最終手段としてはアリだな

405 名前:Now_loading...774KB mailto:sage [2007/10/11(木) 23:19:41 ID:hnfCfgZq.net]
Test.asの
heavyArray[0] = null;
って、もしかして
heavyArray[heavyArray.length - 1] = null;
のつもり?

406 名前:Now_loading...774KB mailto:sage [2007/10/12(金) 00:17:52 ID:u518jYM4.net]
頭を潰しているんだろ
pop

407 名前:Now_loading...774KB mailto:sage [2007/10/12(金) 00:32:39 ID:FMV0xOnK.net]
>>400
丁寧にありがとうございます。
今のところ、システム的に全てを残すというものが難しいので、
もう少しいろいろと工夫してみようと思います。

>>401
空のArray型にpush(一番下に追加)した後、すぐpop(一番下を削除)を繰り返すだけなので、
項目数は絶対に1つしかないです。
だから、この場合だと[0]でも[heavyArray.length - 1]でも同じ結果になります。

408 名前:Now_loading...774KB mailto:sage [2007/10/14(日) 22:00:34 ID:sRm1NK7O.net]
てか、ブロック崩しの場合、画像はブロックの下のレイヤーだよね?
個々のブロックは真四角描いてBevelFilterでもかませときゃ
それっぽいのが出来そうだし。

どうしてもBitmapデータをブロック上に描きたいんだい!って場合は、
大きなひとつのBitmapDataから、一部を切り出してgraphicsの
bitmapFill+drawRectで描くShapeの派生クラスを作ったらどうかな。
少なくともBitmapのメモリの心配はなくなると思うよ。

自分Flex使いなので、派生クラスとか普段作らないヒトだったらゴメン

409 名前:Now_loading...774KB mailto:sage [2007/10/15(月) 22:44:26 ID:FkcAGeVT.net]
>>404
どうやら、メモリが一向に減らなかった原因は
・BitmapDataにはガーベジコレクションが働かない(使わなくなったらdispose()で消さないといけない)。
・派生クラスをオブジェクトとして用いた時、その内部でTimerイベントなど、何らかのイベントが働いていると参照を外してもガーベジされない
だったみたいです。
一つの解決策を教えていただいて申し訳ありませんが、
とりあえずこれでメモリは問題なさそうなので、しばらくこれで様子を見てみようと思います。



410 名前:Now_loading...774KB mailto:sage [2007/10/15(月) 23:19:26 ID:gZWlglvB.net]
>405
うん。イベントリスナは忘れずに外さないと。
慣れるまでは、イベントハンドラの最初にtraceを入れておいたほうがいい。
弱参照も、指定できるところはしておいたほうが無難。

BitmapDataオブジェクト自体、数を作らないように工夫したほうがいいよ。
Bitmapコンポーネント自体、BitmapDataを使い回しするように実装されてるわけだし、
dispose()をしてもすぐ消えるわけではないので。




411 名前:Now_loading...774KB mailto:sage [2007/10/15(月) 23:46:21 ID:FkcAGeVT.net]
>>406
アレ、1つのBitmapに対応するようにBitmapDataが存在するように思ってたけど、
もしかして
bitmapData:BitmapData = new BitmapData(48, 24, true, 0x00000000);
bitmap1:Bitmap = new Bitmap(bitmapData);
bitmap2:Bitmap = new Bitmap(bitmapData);
ってできたりする・・・?
だとしたら漏れの思考ティウンティウン\(^o^)/

412 名前:Now_loading...774KB mailto:sage [2007/10/16(火) 17:55:03 ID:qFYFJp0p.net]
>>407

できるよ。
その場合bitmapDataを更新すれば、全てのBitmapの表示が更新される。

413 名前:Now_loading...774KB mailto:sage [2007/10/16(火) 21:58:22 ID:vC2WbUkQ.net]
>>408
ありがとう。
さっそく仕様変更してみたら、かなり軽くなった。

一つ気になる点は、
bitmapData1:BitmapData = new BitmapData(48, 24, true, 0xFFFF0000);
bitmapData2:BitmapData = new BitmapData(48, 24, true, 0xFFFF0000);
bitmap:Bitmap = new Bitmap(bitmapData1);
addChild(bitmap);
ってした後、イベントでbitmapの参照先をbitmapData2に変更したくなった場合、
一旦removeChild(bitmap);で外した後、
bitmap = new Bitmap(bitmapData2);
って上書きして、再度addChild(bitmap);で加えなおさないといけないのかな。

直接参照先を変更できるようなものがあるといいんだけど、
探しても見つからなかったし、特にこれで問題でないからこのままで動かしてるんだけど・・・。
大丈夫なのかしら

414 名前:Now_loading...774KB mailto:sage [2007/10/16(火) 23:25:14 ID:hnbB0n94.net]
>>409
もしBitmap.bitmapDataプロパティをまだ知らないなら
LiveDocs辺りで調べておくといいと思う

415 名前:Now_loading...774KB mailto:sage [2007/10/17(水) 12:30:10 ID:U2Klb6Zs.net]
>>410
あー、bitmapDataプロパティを変更してやれば、
入れ直さなくても参照先が変更されるのですね。
存在は知っていて、それに対してdrawRectやらの描画をすると、
参照先のBitmapDataに変更が効くのはわかってましたけど、
このプロパティを変えることで参照先を変更できるというのには気がつきませんでした。

416 名前:Now_loading...774KB mailto:sage [2007/10/21(日) 20:22:33 ID:MZ6bCI92.net]
AS3始めたばっかりの初心者です
次のようなコードを書いてみたんですが
実行しても何も表示してくれません
イマイチ原因がわからないので誰かご教授してください
お願いします

package {
import flash.display.*;
import flash.geom.*;

public class Etude extends Sprite {
public function Etude() {
addChild(new BgShape());
}
}
}
import flash.geom.*;
import flash.display.*;


class BgShape extends Shape {
public function BgShape(){
//タイル
var tile:BitmapData = new BitmapData(20,20,true,0xffffffff);
tile.fillRect( new Rectangle(0,0,10,10),0xffcccccc);
tile.fillRect( new Rectangle(10,10,10,10),0xffcccccc);

// 描画してるはずなのに?
graphics.beginBitmapFill(tile);
graphics.endFill();
}
}

417 名前:Now_loading...774KB mailto:sage [2007/10/21(日) 20:30:13 ID:CUQqP5yL.net]
ちょっと今試せる環境にいないから外してるかもわからんけど

graphics.beginBitmapFill(tile);
//ここで四角形か何か図形を書く
graphics.endFill();

いちおう、ここじゃなく質問スレのほうがいいような希ガス

418 名前:Now_loading...774KB mailto:sage [2007/10/21(日) 21:02:45 ID:MZ6bCI92.net]
>>413
うーん、図形は描画されても背景は白いままですね…
どうもスレ違

419 名前:いっぽいんで質問スレに行きます
ありがとうございました
[]
[ここ壊れてます]



420 名前:Now_loading...774KB mailto:sage [2007/10/31(水) 22:32:24 ID:/AgDGvI8.net]
動画(flvとか)を再生するのはできるのですが,
これを1フレームごとに静止画として抽出して処理したいのですが
そもそも可能でしょうか?

421 名前:Now_loading...774KB mailto:sage [2007/11/01(木) 00:10:12 ID:nSqaJiY0.net]
できる。

・・・が、詳しいやり方は忘れてしまった。
動画にフィルターかけて表示したりする手法に必須な処理のはずだから、
その関連で調べれば出る・・・のかな。

var bmpData:BitmapData = new BitmapData(400, 300);
bmpData.draw(video);
って感じでかけなかったっけ?

422 名前:415 mailto:sage [2007/11/01(木) 22:07:31 ID:q229Ncrz.net]
なるほど。
BitmapData.drawメソッドを使えばできそうな感じですね。
今度実際にサンプル作って確認してみます。


423 名前:Now_loading...774KB mailto:sage [2007/11/01(木) 23:06:38 ID:eBxLNgsN.net]
他ドメインの画像or動画はdrawできない制限があるけどな

424 名前:fausut [2007/11/01(木) 23:21:10 ID:XUKW7+hN.net]
はじめまして。
半月前くらいからFlashをやり始めて、
現在、FlashとPapervision3Dを使って、パノラマ画像の全方位参照できるものを
作ってます。
(こんな感じのです↓↓)
labs.blitzagency.com/?p=388
flashvr.sakura.ne.jp/sample.htm

全方位上下360度回転は出来たのですが、
上のサイトみたいに、ホットスポットがうまく付けることが出来ません。
Planeクラスを作って、それをMovieSceneに貼り付けは出来るんですが、
回転させると、パノラマ画像とホットスポットがずれてしまい、
うまく表示させることが出来ません。

うまく実装できる方法がありましたら、教えてください。


425 名前:Now_loading...774KB mailto:sage [2007/11/02(金) 19:43:02 ID:kfKAstev.net]
パノラマ画像とホットスポットをDisplayObjectContainer3Dでまとめてないからじゃね?
ソース見てないしpv3d詳しくないから知らんけど

426 名前:Now_loading...774KB mailto:sage [2007/11/02(金) 22:17:30 ID:kfKAstev.net]
それかカメラじゃなくてパノラマ自体を回してるだけとか

427 名前:Now_loading...774KB mailto:sage [2007/12/22(土) 22:18:23 ID:BPyKaVSz.net]
質問スレが過疎ってるようなんでこっちに・・
TextField内の外部htmlテキストにロールオーバー・ロールアウトで、
asfunctionは実行可能な技があったら教えて下さいませ。
Flash Player 8 書き出し、アプリCS3です。

428 名前:Now_loading...774KB mailto:sage [2007/12/22(土) 22:46:07 ID:zCDEnwd8.net]
>>422
質問の内容がよくわからないけど、
裏にmc置いてhitTestでいいんじゃない?

429 名前:Now_loading...774KB mailto:sage [2007/12/22(土) 22:59:38 ID:BPyKaVSz.net]
>>416
漏れへのレスならドモです。

a hrefでリンクボタン化している文字列にだけ適用させて、
マウスオーバー、アウトでMCの表示を操作したいんですわ。
ちなみに外部テキストはRSSから拾ってるんで内容はRSS更新の都度変わります。

あームリかなぁ。。
現状は仰せの通りTextFieldの裏にMC配置、hitTestで妥協中・・



430 名前:Now_loading...774KB mailto:sage [2007/12/31(月) 17:21:58 ID:yUqwGUDc.net]
リンク部分にカスタムタグ使ってるならStringで抽出してasfunction付のタグ
追加してやればいいんじゃない?

431 名前:Now_loading...774KB mailto:sage [2008/01/03(木) 09:50:56 ID:2SBefrL+.net]
亀レスですがTHX。
普通にa hrefに仕込ませて、
あとはonRollOver、onRollOut使えばイケるんかな・・
すでにwebは公開しちゃったんだが、
時間ある時にやってみますわ。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<261KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef