エンジニアが作る最新ITブログ トップ>エンジニアの発信する【Flash】
2010年12月11日 €CONOMIA - The Monetary Policy Game2010年11月13日2010-11-12ブログから
Powered by t2b 同じテーマの最新記事
2010年11月12日[Actionscript]クラスメンバの記述順序に依存してしまう書き方と、依存させない方法まぁちょぃとこのコードを見てください。クラスメンバで定数を定義して、クラスメンバでそれを代入するコードです。 package { import flash.display.*; public class Main extends Sprite { private const constant:Object = {}; private var variable:Object = constant; function Main() {trace(variable);} } } これ、何が出力されるでしょう?正解は[object Object]です。 では、こちらは何が出力されるでしょう?メンバの順序を入れ替えただけです。 package { import flash.display.*; public class Main extends Sprite { private var variable:Object = constant; private const constant:Object = {}; function Main() {trace(variable);} } } 正解はnullです。まぁ何らかのclass-based OOP言語をやった人なら分かると思いますが、 variableに代入する時点ではconstantが初期化されてないわけですね。 ところで、constメンバをインスタンス変数にしておく理由はないので普通はstaticにします。(参考までにMemory Check - var, const, static - wonderfl build flash online)
private var variable:Object = constant;
- private const constant:Object = {};
+ private static const constant:Object = {};
この状態なら、variableを先に書いても問題無いですね。インスタンス変数より静的変数の方が先に初期化されますから。 しかし、だからと言って - private var variable:Object = constant; + private static var variable:Object = constant; private static const constant:Object = {}; なんてことをしてどちらもstaticにしてしまうと、また順序に依存するようになってvariableの方を先に書くとnullになってしまいます。 スコープが同じなので記述順序がそのまま初期化順序になってしまうからですね。 こういう記述順序に依存しないためにはどうすればいいのかなー。 で、とりあえず思いついた案は別クラスに外出しすること。 /* Main.as */ package { import flash.display.*; public class Main extends Sprite { private static var variable:Object = MainConst.constant; function Main() {trace(variable);} } } /* MainConst.as */ package { public class MainConst { public static const constant:Object = {}; } } ※Main.asにまとめたいけど、コンパイルエラーで上手くいかない。色々試してみる。 2010年10月23日IE9バグ: Flash(swfファイル)に直接アクセスしてリロードすると文字化けデータ出現IE9では私だけでも非常にたくさんのバグを見つけました。正式リリースはまだまだ控えたほうが賢明だと思われます。さて、マイクロソフト社に数多くのバグを報告していますが、そのうちの1件だけ、確認が取れたと報告があったのが、「FlashファイルをHTMLファイルに埋め込む形だけでなく、swfファイルに直接アクセスし、それをリロードした場合、バイナリーデータが無理やりテキスト化された状態(いわゆる文字化け状態)」になるというバグです。 たとえば、http://www.adobe.com/jp/support/flashplayer/ts/documents/swfs/flashplayerversion.swf にアクセスして、リロード(再読み込み)します。いわゆる文字化け状態になります。バイナリーデータがテキスト化された状態で表示されます。MIMEが完全に無視されます。 2010年10月04日PCの音が出なくなる
にこにこ動画再生中にいきなり再生が止まってしまい、
音が出なくなる、
再生しても2秒で止まってしまう、
といった不具合が発生しました。
さらに、メディアプレイヤーなどでも音が出なくなっていて
Windowsを再起動しても直るときと直らないときがあり
直ったとしても動画を再生すると
また音が出ない状態になってしまいます。
検索してみると
flashプレイヤーの不具合、
ffdshowの不具合、
ブラウザとの相性、
などが出てくるのですが、それらは
flashの音のみ、mp4の音のみ、といったように
特定の音だけが出力されない状態で
全...
2010年09月27日AMF0 AMF3 の仕様を読んでみる
Flash/Flex で作成される、いわゆるフラッシュでは、外部と通信する際にいくつかの形式が選択できる。その中でも独自仕様なのが AMF0, AMF3 である。AMF3 は Flex 3 から、それ以前は AMF0 だったそうな。ちなみにFlashのバージョンとの対応はよく知らない。
JSONやらXMLやらでの通信より、データが圧縮されるため高速であるとか。 興味があったので仕様を読んでみた。ページ数はたかだか知れている。 ・AMF0 ・AMF3 COBOLを扱っていた頃、なんか似たようなことをやったような記憶がよみがえってきた。特に、DCPとかいうデータ圧縮ツールはこれに似た概念だったような記憶も呼び起こされた。 AMFの電文を解析するVBAなんかを作ってみたくなったりしている。 同じテーマの最新記事
2010年09月08日2010年09月07日のツイート
@nobusue: Adobe - Flash Player 10: すべての機能 URL Flash Player 10ではマルチコア対応とあるから、マルチスレッドにできるのかな? 2010-09-07 23:32:17 via web @nobusue: Flex/AIRハマり帳 ?第3回 Flash Playerのシングルスレッドモデルでハマらな URL なるほど、callLater関数かTimerを使ってスレッドを占有しないようにするのですね。 2010-09-07 23 ...
2010年08月05日BABOK
最近、BABOKというものがあるそうだ。Business Analysis Body Of Knowledge の略らしい。この、後ろに BOK と付くもの、つまり知識体系は最近の流行なのだろうか。PMBOK以降よく見かける。
いちおう、「超上流」の工程、らしい。 記事としてはここ。 でも、超上流ってネーミングがなんだかなあ。ここまで体系立っていないけれど、似たようなことは今までもやってきている。それは上流工程の一環であって「超上流」と感じたことは一度もない。 私自身も足りない部分を埋めるのに使おうと思う。こういう知識体系が整備されるのは好ましいことだとは思う。 余談ではあるが、整備した側の情熱とか思いとかがあまり伝わらず、学ぶ側が「これだけ知ってればいいんだろ」的に解釈する傾向が高いように感じるのが残念なところだ。 同じテーマの最新記事
2010年07月23日悪意のあるコード
コンピュータに悪い影響を与えるのは、悪意のあるコードだけではない。
過去に、Excelから大型コンピュータへのDBアクセスを行った際、処理が重いため多大な影響を与えてしまった経験がある。たまたま閑散期で被害は最小限だったそうだが、これもよろしくないコードだったといえよう。 このようなものでなくても、コンピュータシステムに多大な影響を与えてしまうコードは、VBAでも記述は可能である。発覚しにくいものも作れてしまう。データの破壊でも漏洩でも可能だ。 プログラミングを行うということは、データを取り扱うということ。データを適切に扱うことも、壊すことも、どちらも可能である。作成者自身は悪意が無くても、プログラムのバグによりコンピュータシステムに被害を与えることも十分に考えられる、ということを忘れてはならない。 「自分だけは大丈夫」という意識は捨てること。問題を起こした人のほとんどが同じ意識である。ユーザーも、プログラマも。 一般的なソフトにはそういう仕組みはないだろうけれど、自分がプログラミングする場合は気を付けた方がいいだろう。 同じテーマの最新記事
2010年07月08日Flashの挙動
何度か書いているが、ブラウザはOperaを使っている。アメブロはIEとFx対応、もしかすると最近はSafariも対応したのかも知れないが、Operaは範疇外。シェア的に弱いのでまあ仕方がない。タグ編集エディタで編集する分には問題ないし。
最近、ブログにログインし、[マイページ]を開くとゆうパックの広告が付いている。 これ、Operaで開こうとすると、ブラウザで現在開いているタブ(つまり、アメブロの[マイページ]を開いている画面)が無反応になる。 もしかして精力的に遅延問題を批判したように思われたから嫌がらせ? http://ameblo.jp/tech-note/entry-10582098362.html http://ameblo.jp/tech-note/entry-10583014014.html http://ameblo.jp/tech-note/entry-10583230367.html そんなにアクセス数のあるブログではない。 ということでLunascapeでチェック。おお、ちゃんと動く。 これ、Operaで動かない特殊事情のあるコンテンツなのだろうか?意図して作っているなら凄いが、Flashでブラウザ依存のことができるのかもしれない。 |
エンジニアが作る最新ITブログ トップ>エンジニアの発信する【Flash】