2013年7月28日日曜日

MXPとかZXPとかってJSFLからどうやって作るの?

全くもって日本語ソースが無いのでこれも書いておく。
誰かの役に立つだろう。


JSFLとは?

Flashのエディタ側拡張スクリプト。
この辺みとけ
 http://help.adobe.com/ja_JP/flash/cs/extend/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7fe8.html

SWFで動くActionscriptではなくて、エディタ側を操作するためのスクリプト。
単純に言うと
・ライブラリのアイテム全部リネーム
・ムービークリップ開いて全部のムービークリップにデバッグ用のムービークリップ足す

とか、普通Flashのエディタ上でやろうとしてる事は大体できるってースクリプトです。
ファイルの保存とかパブリッシュとかもできる。要はマクロっすわ。

んで、JSFL作ったときに、デザイナーさんとかに「できたーよー」とか言っても使ってもらえないわけですよ。
「xxxxxxのディレクトリにコピーして使って」
って事になるんだけど、これがまたえらいわかりにくいところにあるので、リモートでの作業をお願いしてたりしたらインストールの説明がえらい面倒
http://help.adobe.com/ja_JP/flash/cs/extend/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7fe8.html

MXPとは?

そこで、JSFLをインストールするためにパッケージ化して、クリックしたら勝手にインストールしてもらえるよ!って仕組みがMXPらしい。
俺も最近知った。
JSFLのページにそんな事全然書いてないし。

ZXPとは?

どうもMXPが圧縮された形式がZXPだと思う。これも資料があまりないし調べる気も無いからややうろ覚え。
まぁMXPじゃなくてZXP使っとけばいいようだ。

ZXPの作り方

mxiというファイルを作って、そこに適当なJSFL名書いておく。
mxiをクリックするとZXP作ってもらえる。
下ではmxiと同じディレクトリに linkager.jsflというものを作って置いてある形。
files/file/ sourceに自分が使いたい名前書いて、authorとかdescriptionに好きなように書けば良い。


<macromedia-extension
name="Linkager"
version="0.0.1"
requires-restart="true"
type="suite">
  <author name="Nariya Takemura" />
  <products>
<product name="Flash" version="6" primary="true" />
  </products>
  <description>
<![CDATA[This extension installs linkager script.]]>
  </description>
  <ui-access>
<![CDATA[non non only modify fla or xfl.]]>
  </ui-access>
  <license-agreement>
<![CDATA[free :<br>
BSD or Apache lisece.<br/>
exactly free.<br/>]]>
  </license-agreement>
  <files>
<file source="linkager.jsfl"
 destination="$Flash/Commands" />
  </files>
</macromedia-extension>




とりあえずmxiの記法についてはここにエライこまかく書いてあるが英語だしどうせみんな興味ないべ、という気がするが、気になる人は一読を。
http://help.adobe.com/en_US/extensionmanager/cs/using/MXI_tech_note.pdf


その他
もっとちゃんとやりたい人(署名したいとか)は
https://www.adobeexchange.com/resources/7
ここでも読むと良い気がする。
Exchange Packagerとかいうのでパッケージすればいいっぽ。(大して難しくは無いが需要ないだろう・・)

参考リンク

http://blog.kaihatsubu.com/?p=1405
http://homepage2.nifty.com/addsome/as_manager3.htm


2013年7月27日土曜日

SymDepend.cache

SymDepend.cacheについて日本語で書かれてるページが一個もヒットしないのでちょっと書く。


SymDepend.cacheとは?


 Flashのtext保存形式である XFLを作ると中で作られるファイル。
 バイナリファイル、とされているがエディタで開いて中を見ると、ほぼファイル名とかしか書いてない。

何が書いてあるのか?

どうも個別のXFL内のファイルの改訂履歴、いつファイルを修正したかに関連する情報を保持しているらしい
http://stackoverflow.com/questions/4082467/xfl-whats-purpose-of-the-bin-symdepend-cache-file
http://swf.com.tw/?p=301


でもbinary editor(emacs-hexl-mode)で見てもどうもタイムスタンプらしきデータは書かれていないように思うので、実際にどういう情報が書かれているのかはよくわからない。

ただ適当にブログを探すとタイムスタンプとか書かれてるのでおそらく何か書かれてるんだろう。

.gitignore, .svnignoreすべき?

すべき、、ぽい。
しないとバッティングしそうだから。とりあえず俺はしてみる。
そもそも名前がCacheとかついてる時点でVersion Controlされるべきファイルではなさそうな気配...

2013年7月6日土曜日

-Wno-invalid-offsetof , もしくはOffset of on non-POD type の警告について

またレアなネタな気がするが、日本語ブログがあまりヒットしないので書いておく

今使ってるソースが過去移植のソースでiOS向けなんですけど
/Users/takemura/Documents/github/scs/client/***********.cpp:628:49: Offset of on non-POD type 'SYSTEM'

とかでるわけですよ。
warning削ろうとしてて、色々調べて結果的には

xcodeの設定で Undefined Use of offsetof Macro をNOにすればいいと判明

色々説明

・POD, non-POD type とは?

POD = Plain Old Data
virtualとかバシバシ定義してあるようなクラスはnon-POD型, int, float, char, struct, とかはPOD型というくくりで大体あってる
詳しく知りたい人はぐぐれば出てくる


んで、まぁこの Offset of non-POD type... という警告は "offsetof"のマクロを non-POD型に使うとヤバイよ、という警告なわけだが、、、まぁ最近のコンパイラだったら大体大丈夫なんじゃね?という判断でxcode上で以下の設定を弄ると消せる。
少なくとも今使ってるソースでは大丈夫そうに見えたし、こいつ持ってくとしてもいいとこAndroidぐらいだろ。

Apple LLVM 5.0 - Warnings - c++ -> Undefined Use of offsetof Macro

本当は一部ソースだけに制限したかったので
#pragma GCC diagnostic ignored "-Wno-invalid-offsetof"
と書いたのだが、これだと何故かxcodeでは動かない。
んー・・・わからんが警告が消えたのでとりあえずは良しとしよう。。。

"-Wno-invalid-offsetof"についてはこちらの記事が日本語訳しているので気になる人はどぞ。
 http://d.hatena.ne.jp/runicalp/20081130/1228025769