【AS3】FlashDevelop【フリー】 (601レス)
1-

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の機能として?
ライブラリ使わないと読み込めないと思ってた
171: 2009/08/21(金)06:11 ID:XE5HNHp8(1) AAS
>>170 あぁ、それどうなんだろ。メタタグの処理してる所で何かしてんのかな?
あ、あと、>>164 1個間違えた。ShapeじゃなくてSpriteだった

public class Main extends Sprite
{
  [Embed (source = '../lib/box.svg')]
  private var SvgBox:Class;

  private var box:Sprite;

  public function Main()
  {
    box = new SvgBox() as Sprite;
省2
172
(1): 2009/08/21(金)12:22 ID:uilm8B9A(1) AAS
FlashDevelopで使えるウィジェットキットみたいな物ってなんかないだろうか。
mxmlでなく、AS3で使えるソースライブラリ

無ければ自分で作る
173
(3): 2009/08/24(月)17:05 ID:vwB2Xwdq(1) AAS
3Dスレが盛ってないからこっちで聞きたいのですが、
GoogleSketchUpで吐いたkmzファイルから取り出したdaeファイルを、
papervision3d2.0のcolladaクラスで読み込もうとするとエラーを吐かれます。

daeファイルの修正が必要だということを言っているサイトはいくつか見つけたのですが、
具体的にどこを修正すればいいのか分かりません。

なにか手がかりだけでも教えていただけませんでしょうか。
174: 2009/08/24(月)20:03 ID:BBkP+lkD(1) AAS
>>173 どういうエラーかわからないと、何とも言えない気がする
1-
あと 427 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.009s