- 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以内。
- 315 名前:Now_loading...774KB mailto:sage [2007/04/10(火) 21:59:00 ID:TgbNMekf.net]
- Stateパターンあたりを応用して使うのもいいぞ。
ただ>>308を見る限りそれは本当にAS3で作るべき案件なのかは疑問だな。 アニメやボタンを多用するグラフィカルなUIは AS2で作ったほうがクライアントのリアルタイム要求を反映させやすいという事実は確かにある。 AS2とAS3はどちらが上ということではなく、両方知っていることで表現の幅が増えると考えるべきじゃないかな。
- 316 名前:Now_loading...774KB mailto:sage [2007/04/10(火) 22:03:57 ID:QykAah/2.net]
- フレーム上にMC置いてフレーム数制御したほうが見通しがいいケースがあるって話かな
AS2かAS3かの話じゃなく、Flexが向いてるかFlashが向いてるかって話な気もする。 Flash CS3が出たらASのバージョン問わず同じ事できるんじゃね
- 317 名前:Now_loading...774KB mailto:sage [2007/04/10(火) 22:32:23 ID:katNKAsA.net]
- 別にAS3でもフレームスクリプトは生きてるしMXMLでもScriptタグ使えるし
ゆるい型指定にも対応してるし別にOOP知らなくても十分書けると思うが。 むしろイベントの効率的な管理の方が重要だと思うよ。
- 318 名前:Now_loading...774KB mailto:sage [2007/04/12(木) 10:33:24 ID:JdJEaK3B.net]
- >>AS3でもフレームスクリプト
AS3の文法で、つまりFlaxでもフレームスクリプト書けるってこと? FlashCS3を使えば、ってこと? 前者なら方法キボンヌ。
- 319 名前:Now_loading...774KB mailto:sage [2007/04/12(木) 12:52:35 ID:8q1634YF.net]
- 方法なんてAS2と同じ。MC上に書けないってだけ。
現状はSDKで開発してる人が多いからクラスでの解説が多いけどな
- 320 名前:Now_loading...774KB mailto:sage [2007/04/12(木) 14:19:33 ID:ktJSj56X.net]
- なんだ、ただのしったか君か。
- 321 名前:Now_loading...774KB mailto:sage [2007/04/12(木) 14:32:32 ID:90P0V9Rw.net]
- >>316
Flash9 Public Alphaとか見る限り、 フレーム上でもかけるよ。 Flex2 Builderの方では、触ったかぎりフレームという概念自体がない
- 322 名前:Now_loading...774KB mailto:sage [2007/04/12(木) 14:58:45 ID:koi5NMUt.net]
- [Frame()]タグでゴニョゴニョするってのはあるけど、わかりやすい方法ではないね
- 323 名前:Now_loading...774KB mailto:sage [2007/04/12(木) 15:13:58 ID:JdJEaK3B.net]
- >>316
「AS2と同じ」と言われてもピンとこないのですが… Flexスレで、プリローダ作るのに[Frame]メタデータ使ってたんで、 もしやASだけでフレームスクリプトが書けちゃうアンドキュメンテッドな技法があるのかなと思って聞いてみたんですが、 そうでもなさそうな感じですかね。 タイムラインが使いたければFlashを、っていう住み分けになっていくのでしょうか。 スクリプトだけで、もしくはコンパイラの指定なんかで ごりごりフレームが増やせちゃったりできるといいんだけど。
- 324 名前:Now_loading...774KB mailto:sage [2007/04/12(木) 15:14:51 ID:8q1634YF.net]
- FlexじゃなくてFlashの話。
- 325 名前:Now_loading...774KB mailto:sage [2007/04/12(木) 16:18:29 ID:90P0V9Rw.net]
- >>320
あぁ・・・そんなメタデータあった・・・ すっかり忘れてた。 Flex使おうってコーダー肌の人なら、 シンプルなタイムラインなら 自力で実装するの難しくないと思うよ。 関数を配列に突っ込んでいって、 onEnterFrameで1づつインデックス動かして、 中の関数を実行すれば擬似Timelineは作れると思う。
- 326 名前:すべすべコーダー肌 mailto:sage [2007/04/12(木) 17:01:25 ID:JdJEaK3B.net]
- >>322
実は、こっちのスレだったかFlexスレだったかで、 addChild/removeChildを繰り返すとPlayerが落ちる って話しが出てましたから、 空白のキーフレーム追加でばっちり解
- 327 名前:決っ!ってなことを目論んでました。
「フレームスクリプトが書ける」のならフレームの追加もスクリプトでできるんじゃないかと… しかしこの話題は海の向こうでも揉めてるようでw http://www.mail-archive.com/flexcoders@yahoogroups.com/msg59707.html >>擬似タイムライン 今見つけたんですが、(有名だったらすみません) http://d.hatena.ne.jp/asahiufo/20061119 とかおもしろそうですね。 [] - [ここ壊れてます]
- 328 名前:Now_loading...774KB mailto:sage [2007/04/12(木) 18:34:40 ID:kDLRii/9.net]
- >addChild/removeChildを繰り返すとPlayerが落ちる
>って話しが出てましたから、 >空白のキーフレーム追加でばっちり解決っ!ってなことを目論んでました。 状況がわかりにくいな
- 329 名前:すべすべコーダー肌 mailto:sage [2007/04/13(金) 10:31:07 ID:mpAQrj+i.net]
- すみません。
ステージ上にMCをいくつか配置した後、 一旦ステージをまっさらにする必要があるのですが、 その際removeChild使ってムービークリップを一つずつ消していくんじゃなくて、 空白のキーフレームを挿入して一発で前部消してしまう、ってことがしたかったのです。
- 330 名前:Now_loading...774KB mailto:sage [2007/04/13(金) 13:41:22 ID:mxneYkC+.net]
- AS3でそれをやると、よほど注意しないと
イベントのヌルポとかで死ぬよ
- 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に変更が効くのはわかってましたけど、 このプロパティを変えることで参照先を変更できるというのには気がつきませんでした。
|

|