【AS3】FlashDevelop【フリー】 (601レス)
上下前次1-新
151: 2009/08/14(金)21:15 ID:w4LLHFJe(5/5) AAS
あ、ちなみに誤解の無いように言っておくと、不満色々書いてても
俺根本的にFlash好きだからなww ブツブツ文句言いながら追いかけて楽しんでる
152(1): ひきプロ ◆HIRO2ZQ2Xo 2009/08/14(金)23:21 ID:H3Ft1e6v(2/3) AAS
>>150
この問題はなんで起こるんでしょうねw
ぼくも疑問に思っていました。
width・height への値の代入は、
「描き始める前に領域を確保する」
という効果が出ないようですね。
これは直感と反する動作なので謎の仕様に見えてしまいます。
試しに、図形を描き終わった後から width・height を再設定してみると、
scaleX, scaleY に値を代入したかのように拡大縮小されますね。
「後からサイズを変える」 という効果はあるようです。
省11
153(1): ひきプロ ◆HIRO2ZQ2Xo 2009/08/14(金)23:24 ID:H3Ft1e6v(3/3) AAS
最後の行の書き方がおかしかったですね。
0 / value;
というような式だと、結果は常に 0 になるので、
最初に width・height を設定すると、その段階で
scaleX、scaleY が 0 になってしまうと考えられます。
154: 2009/08/15(土)14:53 ID:srGxDtlq(1/4) AAS
>>152-153 ああなるほど。確かにそうかも。・・ってか、こういう風に利用者側が動きを想像しないと
動作の正解が見えないってのはどうなんだろうな・・ww 困るわ、モヤモヤがいつまでも晴れなくて。 色々と
155: 2009/08/15(土)15:04 ID:srGxDtlq(2/4) AAS
AA省
156: 2009/08/15(土)15:11 ID:srGxDtlq(3/4) AAS
ネタ続き)
で、この当たり前の話がここからどうなるかと言うと、要はAS3って型推論と型厳密が両方使える言語なんだよなって事。
…って、ここで心配事書くはずだったが、ちょっと確認してからにしたいのでやっぱり止めた
157: 2009/08/15(土)18:27 ID:srGxDtlq(4/4) AAS
AS3メモ:
・URLLoader と Loader は継承関係に無い赤の他人。Loader はさり気なく DisplayObject の派生
・Video インスタンスにattachした NetStream を取り出す方法が無い。
※setがあるのにgetが無い的なイメージ。 それは触ってはいけないからじゃ?とも思ったが、コントロールはNetStream側で行う謎設計
※この辺のストリームやI/Oのイメージは、初めから整理されているJava他の言語のイメージは捨てて、全部疑ってかかった方がいい
・if(a < b && c , 1) { ほげほげ } のような構文でコンパイルエラーにならない @FlashDevelop 3.0.1 RTM + Flex3
しかし実行すると Decompressされたソースが山のように吐かれて死亡する。しかもエラーメッセージは
[Fault] exception, information=VerifyError: Error #1068: Boolean と int は共有できません。
になる。原因がわかればわかる話だが、いきなり実行時にこのエラーメッセージ見ても原因が想像出来なかった。まさか typo とは
158(1): ひきプロ ◆HIRO2ZQ2Xo 2009/08/16(日)03:14 ID:AKWy+LpT(1/2) AAS
ちょ〜濃いネタですねw
かなり調べないと付いていけないです。
OO のお話ですが、ActionScript は過去のやり方を引き継いでる部分とか
JavaScript のベースになっている仕様を取り入れるとかで、
おっしゃる通り、色んな考え方が錯綜してるように見えますね。
var obj:Object = new Object();
obj.prototype.func = function ():void { return; };
というような、プロトタイプを使った機能の拡張もできるらしいですね。
実際に使ったことはないですが。
159(2): ひきプロ ◆HIRO2ZQ2Xo 2009/08/16(日)03:25 ID:AKWy+LpT(2/2) AAS
今挙げていただいた話題とは直接の関係はないですが、
・Flash Playerの作り方
外部リンク:www.slideshare.net
ここに書かれている内容によると、
Flash Player の動きって、明文化されてない部分がかなりあるようで、
「バグとか誤動作も含めてそういう仕様」 みたいな状態になってるようですね。
ドキュメントが後から作られてるような感じかもしれませんw
謎の動きをする箇所は、Flash の文化圏はそういうものだと割り切って、
厳密に仕様が存在する環境とは分けて考えた方が
精神衛生上よろしいのではないかと個人的には思いますw
160: 2009/08/16(日)12:40 ID:BH5EXFvM(1/4) AAS
あぁ、書こうと思ってた心配事がとりあえず的中。 原因はつまり、>>158 氏の話の通りだ。 多分過去の仕様を引き継いで
強引に形を変えつつ、増築を繰り返してる&API仕様の整理が出来て無いのか、ライブラリがバラバラ。
具体的にどういう事があったかメモしとくとこんな感じ。 丁度 >>159 の話ともリンクするけど、
俺がやろうとしてた事は、かいつまんで言えば画像、音、動画(FLV)を、特に分け隔てもせずに動的にロードしつつ、再生するものだった。
実際には他にも色々行っているけど、その中の一部として、これをやりたかった。 そしてハマった。
結果、結局さんざん調べてどうやら出来ないとの結論に達して、別の観点で自分で整理して、継承したクラスいくつか作って
再管理する形にしたけど、この 「どうやら出来ない」 って結論に辿り着いた理由ってのが、まさにこのバラバラな作りのせい。
何かの役に立つかもしれないので、念のためまたメモしとく(続く)
161: 2009/08/16(日)13:08 ID:BH5EXFvM(2/4) AAS
(続き 1/2)
差し当たり、自サバのCGI(Perl/PHP)にパラメタをPOSTして、そのレスポンスとして flv ファイルを取得し、それを表示したかった。
画像と音はさくっと完成。 しかし flv でハマる。 結果、GETで投げれば普通に出来たんだが、POSTじゃないと困る部分があったので、そうしたかった。
しかし出来なかった。 その理由を具体的に以下に記す。 原因は上でも書いた通りクラスが一部独自仕様になっており、絶妙にバラバラに作られてたせい。
まず前提として、 flash.net.URLStream と flash.net.NetStream がまったく別物。 一見似てるけど全然別物。 どういう事かと言うと、
継承関係がまず Object ← EventDispatcher ← ほげほげStream となっていて、Stream 抽象クラスのような物は無いし、インタフェースインプリメントの状態もまったく別。
と言うか、 NetStream は IDataInput インタフェースを実装していない。 かと言って、上で書いたダックタイプな手法でごまかそうにも、メソッドのシグネチャが違うので無理。
つまり、この2つは相互に入れ替えが出来ない。 やろうとした事から考えると、NetStream がもしもインタフェースインプリしてたら、自前クラスで機能補完できたんだけど、
それも出来ず、かといって AS3 は多重継承も出来ないので、結果、出来ない。
162: 2009/08/16(日)13:11 ID:BH5EXFvM(3/4) AAS
(続き 2/2)
それならばと、URLStream でバイナリデータを自前でロードし、それを使おうと思ったが、今度は NetStreamにバイナリデータを受け取る口がない。
それならばと目の前の目的である flash.media.Video に渡そうと思ったが、それ自身バイナリデータを受け取るインタフェースが無い。 よって自前でロードして渡す案も出来ない。
それならば仕方が無いので、画像、動画、音声の共通抽象クラスを定義して自前で再実装、NetStream と URLStream に自前で共通のインタフェース定義して、
それをベースに書いてしまえと書いてみたが、ここで致命傷発覚。 つまり、NetStream には POSTデータが渡せない。 というか、HTTP-POSTを投げる方法が無い。
URLStream ならば、URLRequest を引数に取るのでどんなHTTP-METHODでも送信できるが、NetStream は NetConnection とだけ仲良しで、自由なHTTP送信は出来ない。
そして、flash.media.Video は、NetStream, NetConnection しか受け取らない。 そして、flv ファイルのデコードは、flash.media.Video 内のネイティブ実装コードが行っている。
という訳で、ここで詰んだ。
ちなみに現状は、とりあえずもっと上位レベルで自前で管理を揃えてます。 画像、音声、動画を同じように非同期でロードしつつ、どれも同じように 扱えるクラス書いて。
NetConnection/NetStream って、どうやら Flashサーバ向けの固有実装っぽい。 ハードコード祭りらしく、その理由はおそらく >>159
163: 2009/08/16(日)15:58 ID:BH5EXFvM(4/4) AAS
ちなみに、flv ファイルを簡単に扱える VideoClip クラスを作ってあるのでソース貼っとく。
もし必要な人いたらどうぞ。 使用方法他はテキスト中で。 作りはシンプル
外部リンク[txt]:flpannex.so.land.to
164(3): 2009/08/18(火)12:33 ID:9ukPwcJf(1) AAS
FlashDevelop使いってInkscapeユーザも多いのかな?
絵描いてsvgで出力すると、そのままEmbedすればShapeとして使えるんだぜ
165(1): 2009/08/18(火)23:34 ID:VZ4cFrHD(1) AAS
>>164
IllustratorのSVGじゃだめなの?
166: 2009/08/19(水)02:26 ID:lSXfPDKg(1) AAS
>>165 いや Illustratorでも独自拡張の無いSVGなら全然おkだけど、
そもそもオープンソースでって話じゃないかと思う。 FlashDevelop も Inkscape もオープンソース。
大体イラレは高い。 Flashで使うパーツをちょっと描きたいなら、Inkscape で問題無い。
てか凝ったの描いても問題無い。 本気でイラスト描く or 仕事で使うなら買った方がいいかもしれないが
167(2): 2009/08/19(水)22:17 ID:CCAOsmOZ(1) AAS
>>164
俺はFLASHで書くなあ・・・
処理速度欲しいから出力はPNGにしちゃうけどね。
Inkscape使った事ないけど、イイ感じなのかい?
168(1): 2009/08/20(木)12:34 ID:t3Qav2lR(1) AAS
>>167
製品版のFlash持ってるならいらないかもしれないが、
このスレはFlashDevelopユーザのスレだ。
FlashDevelopはAS主体で何か作る時、製品版FlashよりVisualStudioライクで圧倒的に
効率がいいけど絵を描く機能は無いのだ。完全にプログラマ向け。
だが同じオープンソースってくくりでInkscapeと連動させると、結果的に製品版と変わらない内容が
無償で効率よく描けるって事。
Inkscapeそのものは正直ちょっともっさりしてるけど、良くできてるぜ
169: 167 2009/08/20(木)22:00 ID:d8t6qhE/(1) AAS
>>168
なるほど、オープンソースで何とかする場合の話か。空気読めなくてごめんよ。
俺も最初はEDGEで頑張ったりしてたんだけど
細かいアニメーション付ける必要があったから結局FLASH買ったんだよなぁ…
170(1): 2009/08/21(金)00:22 ID:+eU7pAsm(1) AAS
SVGがそのままEmbedできるってのは、AS3標準?FlashDevelopの機能として?
ライブラリ使わないと読み込めないと思ってた
上下前次1-新書関写板覧索設栞歴
あと 431 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.010s