<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>romatica : Blog</title>
	<atom:link href="http://blog.romatica.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.romatica.com</link>
	<description>Design Flash FDT Design Interaction HeavyMetal</description>
	<lastBuildDate>Wed, 16 Jul 2014 16:04:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>[ObjC][AppCode] yidev第十五回で発表した内容</title>
		<link>http://blog.romatica.com/2014/07/17/objcappcode-yidev/</link>
		<comments>http://blog.romatica.com/2014/07/17/objcappcode-yidev/#comments</comments>
		<pubDate>Wed, 16 Jul 2014 16:03:40 +0000</pubDate>
		<dc:creator>itoz</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Objective-C]]></category>

		<guid isPermaLink="false">http://blog.romatica.com/?p=1923</guid>
		<description><![CDATA[もう先月になってしまいますが、yidev第十五回勉強会で AppCode について発表してきました。 Yide [...]]]></description>
			<content:encoded><![CDATA[<p>もう先月になってしまいますが、yidev第十五回勉強会で <a href="JetBrains AppCode: Switch into top gear of iOS development http://www.jetbrains.com/objc/">AppCode</a> について発表してきました。</p>
<p><iframe src="//www.slideshare.net/slideshow/embed_code/36131953" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px 1px 0; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<div style="margin-bottom:5px"> <strong> <a href="https://www.slideshare.net/romatica/yidev201406pub" title="Yidev201406.pub" target="_blank">Yidev201406.pub</a> </strong> from <strong><a href="http://www.slideshare.net/romatica" target="_blank">itoz itoz</a></strong> </div>
<p><a href="http://qiita.com/itoz/items/18187ee69755d85251ed">Objective-C &#8211; [ObjC][AppCode] yidev第十五回でデモしたAppCodeの内容 &#8211; Qiita</a></p>
<p>AppCodeってすごいいいエディタなのになんだか使ってる人が少なくてもったいないな〜、と思っていて、それは何故だ？と思った時に、「AppCodeのよさは、動いている所をみないとわかりにくい」という結論に達し、勉強会のような場所で積極的にデモしていかないとなー、と思った次第。</p>
<p>その後、いくつかの勉強会で、同じ話をさせていただきました。</p>
<p>第7回 iOS馬場 #ios_baba &#8211; connpass <a href="http://iosbaba.connpass.com/event/6837/" target="_blank">http://iosbaba.connpass.com/event/6837/</a></p>
<p>横浜へなちょこiOSとSwift勉強会 : ATND <a href="http://atnd.org/events/51782" target="_blank">http://atnd.org/events/51782</a></p>
<p>AppCode使う人がふえて、日本語で便利なTIPSがいっぱいネット上に上がっていけばイイな〜と思いながら、<br />
これからもAppCodeを布教していくぞ〜！<br />
※私はJetBrainsとは一切関係ありません。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.romatica.com/2014/07/17/objcappcode-yidev/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[objC][Xcode5] 簡単！Keychain Sharingで異なるアプリ間のデータ共有</title>
		<link>http://blog.romatica.com/2014/05/24/xcode5_keychainsharing/</link>
		<comments>http://blog.romatica.com/2014/05/24/xcode5_keychainsharing/#comments</comments>
		<pubDate>Sat, 24 May 2014 03:25:07 +0000</pubDate>
		<dc:creator>itoz</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[cocoapod]]></category>
		<category><![CDATA[keychain]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://blog.romatica.com/?p=1900</guid>
		<description><![CDATA[Qiitaにも同じ記事書きました。Objective-C &#8211; [ObjC][Xcode5] 簡単！ [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>
Qiitaにも同じ記事書きました。<a href="http://qiita.com/itoz/items/cac060f940e67d97ab9d">Objective-C &#8211; [ObjC][Xcode5] 簡単！Keychain Sharingで異なるアプリ間のデータ共有 &#8211; Qiita</a></p>
</blockquote>
<p>けっこう簡単にできたのでメモ。</p>
<p><strong>「（同じプロビジョニングを使用した）異なるアプリ間でデータ共有する方法」</strong>です。<br />
KeychainSharingを利用するので、アプリを削除してもデータは消えません。<br />
この領域に保存されたものは暗号化される？のでパスワードなどの保存領域として利用するものらしい。</p>
<h3>まず新規プロジェクト作成</h3>
<p>適当に名前をつけてデータを保存する側のプロジェクトを作成。</p>
<p><img src ="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/Xcode5KeyChaingSharing/0_project.png" style="width:100%" /></p>
<h3>KeyChainGroupのIDをつける</h3>
<p>次にKeychain のグループIDを付けます。任意でOKです。<br />
※ここでは「jp.itoz.sample.TestKeyChainSharing」としました。</p>
<p>他のアプリでも同じものを使います。</p>
<p><img src ="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/Xcode5KeyChaingSharing/1_keyChainIdSet.png" style="width:100%" /></p>
<p>上記グループIDが設定されると、「.entitlement」ファイルが出来ています。<br />
中を覗いてみると、$(AppIdentifierPrefix)が付加されていますね。<br />
※このファイルを直接書き換えるとなんかエラるので触らないほうが良いのかも？。(よくわからないだれか教えて。。)</p>
<p><img src ="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/Xcode5KeyChaingSharing/2_entitlement.png" style="width:100%" /></p>
<h3>データを保存してみる</h3>
<p>さっそくデータ保存してみます。<br />
今回は、NSUserDefaultsのようにKeychainのデータにアクセスできるというライブラリ、<a href="https://github.com/TheLevelUp/LUKeychainAccess" target="_blank">LUKeychainAccess</a>をつかってみます。</p>
<p>cocoapodで提供されているので、普通にPodfileを作成して $pod installします。</p>
<p><img src ="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/Xcode5KeyChaingSharing/3_lukeychainaccess.png" style="width:100%" /></p>
<p>インストール完了したらXcodeをワークスペースから開き直して、適当にAppDelegateとかイニシャルViewControllerとかで下記のコードを実行。</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="objc" style="font-family:monospace;">&nbsp;
<span style="color: #6e371a;">#import &quot;LUKeychainAccess.h&quot;</span>
<span style="color: #400080;">NSString</span> <span style="color: #002200;">*</span> <span style="color: #a61390;">const</span> kKeyDic <span style="color: #002200;">=</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;KEY_CHAIN_SHARING_KEY_DIC&quot;</span>;
&nbsp;
<span style="color: #002200;">&#40;</span>略<span style="color: #002200;">&#41;</span>
&nbsp;
<span style="color: #11740a; font-style: italic;">//--------------------------</span>
<span style="color: #11740a; font-style: italic;">//　適当なNSDictionaryを作成</span>
<span style="color: #11740a; font-style: italic;">//--------------------------</span>
<span style="color: #400080;">NSDictionary</span> <span style="color: #002200;">*</span>userDic <span style="color: #002200;">=</span> @<span style="color: #002200;">&#123;</span>
			  <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;userName&quot;</span><span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;itoz&quot;</span>
			, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;password&quot;</span><span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;aaaaaaaaaaaaa&quot;</span>
			<span style="color: #002200;">&#125;</span>;
&nbsp;
<span style="color: #11740a; font-style: italic;">//--------------------------</span>
<span style="color: #11740a; font-style: italic;">// 保存</span>
<span style="color: #11740a; font-style: italic;">//--------------------------</span>
<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>LUKeychainAccess standardKeychainAccess<span style="color: #002200;">&#93;</span> setObject<span style="color: #002200;">:</span>userDic forKey<span style="color: #002200;">:</span>kKeyDic<span style="color: #002200;">&#93;</span>;</pre></td></tr></table></div>

<h3>他のアプリからデータを取得</h3>
<p>先ほどと同じ手順で、再度新規プロジェクト作成し、cocoapodでLUKyechainAccessをインストールし、同じKeychainグループID「jp.itoz.sample.TestKeyChainSharing」をセット。</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="objc" style="font-family:monospace;">&nbsp;
<span style="color: #6e371a;">#import &quot;LUKeychainAccess.h&quot;</span>
<span style="color: #400080;">NSString</span> <span style="color: #002200;">*</span> <span style="color: #a61390;">const</span> kKeyDic <span style="color: #002200;">=</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;KEY_CHAIN_SHARING_KEY_DIC&quot;</span>;
&nbsp;
<span style="color: #002200;">&#40;</span>略<span style="color: #002200;">&#41;</span>
<span style="color: #11740a; font-style: italic;">//--------------------------</span>
<span style="color: #11740a; font-style: italic;">// 取得</span>
<span style="color: #11740a; font-style: italic;">//--------------------------</span>
<span style="color: #400080;">NSDictionary</span> <span style="color: #002200;">*</span>userDic <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>LUKeychainAccess standardKeychainAccess<span style="color: #002200;">&#93;</span> objectForKey<span style="color: #002200;">:</span>kKeyDic<span style="color: #002200;">&#93;</span>;
&nbsp;
NSLog<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;%@&quot;</span>,userDic<span style="color: #002200;">&#41;</span>;</pre></td></tr></table></div>

<p>とすると、先ほどのデータが取得できているのが出力で確認できます！すごい簡単！</p>
<p><img src ="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/Xcode5KeyChaingSharing/4_nslog.png" style="width:100%" /></p>
<h3>注意</h3>
<p>この方法で保存すると、意図的に消さない限りデータは残り続けるのでそのへんは気にした方がいいかも。</p>
<h3>最後に</h3>
<p>違うよ！もっとこうした方がいいよ！<br />
などありましたらコメントいただけると嬉しいです。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.romatica.com/2014/05/24/xcode5_keychainsharing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[memo][xcode5] Schemeを追加したらcocoapod系のLinkerエラーでビルドできない（解決）</title>
		<link>http://blog.romatica.com/2014/05/23/memo_xcode5_scheme_cocoapod_error/</link>
		<comments>http://blog.romatica.com/2014/05/23/memo_xcode5_scheme_cocoapod_error/#comments</comments>
		<pubDate>Fri, 23 May 2014 05:39:53 +0000</pubDate>
		<dc:creator>itoz</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[未分類]]></category>
		<category><![CDATA[cocoapod]]></category>
		<category><![CDATA[memo]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://blog.romatica.com/?p=1890</guid>
		<description><![CDATA[Xcode5で、新たなデバッグ用のConfigrationを追加して、Shceme の Build Confi [...]]]></description>
			<content:encoded><![CDATA[<p>Xcode5で、新たなデバッグ用のConfigrationを追加して、Shceme の Build Configurationからそれを選択し、ビルドしたら下記のうようなLinkerErrorがでた。</p>
<p><span class="path">library not found for -lPods<br />
</span></p>
<p>まずは下記記事を参考に、Schemeでのshare設定をした、が解決せず。<br />
<a href="http://qiita.com/u651601f/items/de2cc28ea8fe36f48a70" target="_blank">Xcode5でCocoaPodsを追加したらLinker Errorが出た際の対処法 &#8211; Qiita</a></p>
<p>そして下記を参考にcocoapod自体をアップデートして、　pod installしなおして、Xcode で Clean 後ビルドしたらうまくいった。<br />
<a href="http://blog.f13.jp/post/26461007263/cocoapods-cocoapods" target="_blank">CocoaPodsでエラーになった(CocoaPodsのアップデート)</a></p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> gem update <span style="color: #660033;">--system</span>
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> gem update cocoapods</pre></td></tr></table></div>

<p>cocoapod は定期的にアップデートしないとですねー</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.romatica.com/2014/05/23/memo_xcode5_scheme_cocoapod_error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[iOS][AIR] XcodeのANEテンプレート使ってみた</title>
		<link>http://blog.romatica.com/2013/12/08/ios_air_xcode_ane_templat/</link>
		<comments>http://blog.romatica.com/2013/12/08/ios_air_xcode_ane_templat/#comments</comments>
		<pubDate>Sun, 08 Dec 2013 04:28:16 +0000</pubDate>
		<dc:creator>itoz</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Native Extention]]></category>
		<category><![CDATA[Air Native Extention]]></category>
		<category><![CDATA[ANE]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://blog.romatica.com/?p=1867</guid>
		<description><![CDATA[この記事は Adobe AIR Advent Calendar 2013 8日目の記事です。 Air Nati [...]]]></description>
			<content:encoded><![CDATA[<p><span class="path">この記事は <a href="http://www.adventar.org/calendars/182" target="_blank">Adobe AIR Advent Calendar 2013 </a> 8日目の記事です。</span></p>
<p>Air Native Extention（以下ANE）作るのめんどいよねー。<br />
うんうん。</p>
<p>最近ANEからはなれていたけど、<a href="http://melancholy.raindrop.jp/wordpress/?p=40" target="_blank">ANEtty</a>以外にもなにかANE生成のお助けツールみたいなのないかなーと思って探してみたところ、<br />
<strong>XcodeのANEテンプレートをgithubで公開している方がいて<br />
つかってみたら、便利だったので、使い方メモ。</strong></p>
<p><a href="https://github.com/divijkumar/xcode-template-ane" target="_blank">divijkumar/xcode-template-ane</a></p>
<p>1 ane化するシェルスクリプトと<br />
2 .ipaのデバッグ用のシェルスクリプトが<br />
ありました。</p>
<p>2とか便利じゃね！？</p>
<h3>[1] swcを作る</h3>
<p>下記のようなAS3を用意し<br />
isSupported というファンクションを用意し<br />
swcとして書き出しておきます。</p>
<div>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;">&nbsp;
<span style="color: #9900cc; font-weight: bold;">package</span> 
<span style="color: #000000;">&#123;</span>
    <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">EventDispatcher</span><span style="color: #000066; font-weight: bold;">;</span>
    <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">IEventDispatcher</span><span style="color: #000066; font-weight: bold;">;</span>
    <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.external</span><span style="color: #000066; font-weight: bold;">.</span>ExtensionContext<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
    <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> SampleANE <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">EventDispatcher</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> context <span style="color: #000066; font-weight: bold;">:</span> ExtensionContext<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
        <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> SampleANE<span style="color: #000000;">&#40;</span><span style="color: #004993;">target</span> <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">IEventDispatcher</span> = <span style="color: #0033ff; font-weight: bold;">null</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0033ff; font-weight: bold;">super</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">target</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
            context = ExtensionContext<span style="color: #000066; font-weight: bold;">.</span>createExtensionContext<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;jp.itoz.sample.ibeacon.TestANE&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;type&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> isSupported<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">Boolean</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0033ff; font-weight: bold;">return</span> context<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">call</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;isSupported&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #0033ff; font-weight: bold;">as</span> <span style="color: #004993;">Boolean</span><span style="color: #000066; font-weight: bold;">;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

</div>
<h3>[2]Xcodeテンプレートインストール</h3>
<p><a href="https://github.com/divijkumar/xcode-template-ane" target="_blank">divijkumar/xcode-template-ane</a></p>
<p>からダウンロードし、解凍後ターミナルから「install_templates.sh」を実行します。<br />
これだけで、XcodeからANE用のテンプレが選択できるようになります。<br />
<img src="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/XcodeANETemplate/0_xcode_temp.png" /></p>
<p>プロジェクトの情報を入力していきます。<br />
[1]で生成したswcを指定する場所があって気が効いてます<br />
<img src="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/XcodeANETemplate/1_newproj.png" /></p>
<p>プロジェクト作成後、<br />
TestANE と TestANE.ane をビルドします。<br />
<img src="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/XcodeANETemplate/1_build.png" /></p>
<p>これで.aneファイルが書き出せました。<br />
※書きだしたaneの所在は、Xcode内でaneファイルを右クリックし Show In Finder しましょう。</p>
<p>※aneがうまく書き出せない場合、swc書き出し時の-swf-versionと、extention.xml、platformoptions.xmlのバージョンが違う可能性があります。</p>
<p>例)swcを-swf-version=22オプションで書きだした場合、extentioin.xmlの冒頭はhttp://ns.adobe.com/air/extension/3.9&#8243;。</p>
<p>対応表参考：<a href="http://sleepydesign.blogspot.jp/2012/04/flash-swf-version-meaning.html" target="_blank">Sleepy Design: [Flash] -swf-version meaning</a></p>
<h3>[4] aneのデバッグ</h3>
<p>まずはFlashBuilderなどで新規プロジェクトを作成し、[3]で作成した.aneを利用たipaを作成します</p>
<div>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> jp<span style="color: #000066; font-weight: bold;">.</span>itoz<span style="color: #000066; font-weight: bold;">.</span>sample
<span style="color: #000000;">&#123;</span>
    <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.text</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">TextFieldAutoSize</span><span style="color: #000066; font-weight: bold;">;</span>
    <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.text</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">TextField</span><span style="color: #000066; font-weight: bold;">;</span>
    <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.text</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">TextFormat</span><span style="color: #000066; font-weight: bold;">;</span>
    <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Sprite</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
    <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> TestANE <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">Sprite</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> _ane <span style="color: #000066; font-weight: bold;">:</span> SampleANE<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
        <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> TestANE<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #6699cc; font-weight: bold;">var</span> _tf <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">TextField</span> = <span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">TextField</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #0033ff; font-weight: bold;">as</span> <span style="color: #004993;">TextField</span><span style="color: #000066; font-weight: bold;">;</span>
            _tf<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">defaultTextFormat</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">TextFormat</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">null</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">20</span><span style="color: #000066; font-weight: bold;">,</span> 0xcc0000<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
            _tf<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">autoSize</span> = <span style="color: #004993;">TextFieldAutoSize</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">LEFT</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
            <span style="color: #0033ff; font-weight: bold;">try</span> <span style="color: #000000;">&#123;</span>
                _ane = <span style="color: #0033ff; font-weight: bold;">new</span> SampleANE<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
                _tf<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span> = <span style="color: #004993;">String</span><span style="color: #000000;">&#40;</span>_ane<span style="color: #000066; font-weight: bold;">.</span>isSupported<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
            <span style="color: #000000;">&#125;</span>
            <span style="color: #0033ff; font-weight: bold;">catch</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">error</span> <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">Error</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                _tf<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span> = <span style="color: #004993;">error</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">message</span><span style="color: #000066; font-weight: bold;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

</div>
<p>「.ipa」ができたら、<br />
Xcode内のdebugIPA.shの、PATH_TO_IPAプロパティに、「.ipaファイルのパス」を指定します。<br />
<img src="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/XcodeANETemplate/2_ane_debug_path.png" /></p>
<p>その後、<br />
debugTestANEAIRApp を実行すると、ipa内のobjCの情報がトレースできます！</p>
<p><img src="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/XcodeANETemplate/2_ane_debug.png" /></p>
<h3>最後に(ハマったところ)</h3>
<h4>.aneがキャッシュされる</h4>
<p>FDTは、aneファイルをbinフォルダ以下にキャッシュするので、（たぶんFlashBuilderも）変更のたびにキャッシュをけさないとハマる事があります。</p>
<p>例えばこんなエラーが出た時とか疑ってみるといいかも<br />
<span class="path">Property isSupported not found on com.hoge.SampleANE and there is no default value.</span></p>
<h4>extension.xmlの記述ミス</h4>
<p> <span class="path">Error #1009: Cannot access a property or method of a null object reference.</span><br />
こんなエラーが出た場合。<br />
Xcodeプロジェクト内の、extension.xmlを自分のバージョンにあわせて正しく書き直しましょう。<br />
「1行目の末尾のバージョン」「指定しているid」など。<br />
特に<strong>extensionIDは下記３つが同じでなければならない</strong>ので、要確認です。</p>
<p>・swc内のExtensionContext.createExtensionContextの第一引数に渡している文字列<br />
・.ane作成時のextension.xmlのidタグに指定している文字列<br />
・AIRパッケージ時のアプリケーション記述ファイルのextensionIDタグに指定している文字列</p>
<h4>EventDispatcherを継承</h4>
<p>あと、swc側は、EventDispatcherを継承したクラスでないといけません。<br />
よくSprite継承のままswcを作ってハマります。<br />
EventDispatcher継承した、ANE用のテンプレートなんかを作っておくとよいでしょうね。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.romatica.com/2013/12/08/ios_air_xcode_ane_templat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[LeapMotion][AIR] LeapMotion を AIRアプリ で使う</title>
		<link>http://blog.romatica.com/2013/07/23/leapmotionair-air/</link>
		<comments>http://blog.romatica.com/2013/07/23/leapmotionair-air/#comments</comments>
		<pubDate>Tue, 23 Jul 2013 13:22:19 +0000</pubDate>
		<dc:creator>itoz</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[FDT]]></category>
		<category><![CDATA[Native Extention]]></category>
		<category><![CDATA[ANE]]></category>
		<category><![CDATA[LeapMotion]]></category>

		<guid isPermaLink="false">http://blog.romatica.com/?p=1842</guid>
		<description><![CDATA[LeapMotionをAIRアプリで動かしてみる。 LeapMotionAS3っていうANEライブラリがgit [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/LeapMotionAS3/title.png" /></p>
<p>LeapMotionをAIRアプリで動かしてみる。</p>
<p><a href="https://github.com/logotype/LeapMotionAS3" target="_blank">LeapMotionAS3</a>っていうANEライブラリがgithubにあるので、これのサンプルをコンパイルしてみるメモ。</p>
<p>※LeapMotionAS3はスワイプとかサークルとかジェスチャーイベントもあるみたい。</p>
<h3>環境</h3>
<p>Mac OS 10.8.3<br />
<a href="http://www.adobe.com/devnet/air/air-sdk-download.edu.html" target="_blank">AIR SDK 3.7</a><br />
<a href="http://fdt.powerflasher.com/" target="_blank">FDT</a></p>
<h3>FDTでの設定</h3>
<p>特に何の変哲もないですが一応メモ。</p>
<p>[1]新規プロジェクトでDesktopAIRを選択。<br />
<img src="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/LeapMotionAS3/0_newproject.png" /></p>
<p>[2] ダウンロードしたLeapMotionAS3を解凍して「src-example/(以下)」を、プロジェクトの「src/」にコピー</p>
<p>[3]「bin/LeapMotionAS3.ane」と「libs/away3d-core-fp11_4_1_1_Beta.swc」をプロジェクトの「lib/(以下)」にコピー<br />
※AIR SDK3.7のCompiler(ASC2.0)のバージョンを使っている場合はたぶん、「LeapMotionAS3-asc2.ane」をコピー<br />
<img src="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/LeapMotionAS3/1_project.png" /></p>
<p>下記のようなエラーが出た場合、binフォルダ以下に自動的にできた「tmp」フォルダを削除することで解決する。<br />
（tmpが見当たらない場合は「Project」＞「Clean」や「Reflesh」をしてみると出てくるかも）</p>
<blockquote><p>
Error: Duplicate platform Windows-x86 found for extension com.leapmotion.leap.air.native.LeapNative
</p></blockquote>
<h3>サンプル</h3>
<p>src/samples/swipeGallery/SwipeGallery.as<br />
を開いてソース上で右クリック、「Run As(or Debug As)」 ＞ 「FDT AIR Application」</p>
<p><img src="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/LeapMotionAS3/4_run.png" /></p>
<h4>samples/swipeGallery/SwipeGallery.as</h4>
<p>左右にスワイプするサンプル<br />
指を左右に振ることで、１ブロック単位でスライドする。<br />
あんまり早く動かすと認識しない。<br />
<img src="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/LeapMotionAS3/2_SwipeGallerySample.png" /></p>
<h4>sample/visualizer/Visualizer.as</h4>
<p>認識した指を３D空間上に表示<br />
Away3Dを利用している。<br />
<img src="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/LeapMotionAS3/3_VisualizerSample.png" /></p>
<h3>とりあえず動かしてみた</h3>
<p>とりあえずそれっぽいものを作って動かしてYoutubeにアップしてみた。<br />
<iframe width="420" height="315" src="//www.youtube.com/embed/TNNg8zwujYE" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.romatica.com/2013/07/23/leapmotionair-air/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[design][icon] ANEttyアイコンデザイン</title>
		<link>http://blog.romatica.com/2013/07/23/anetty_logodesign/</link>
		<comments>http://blog.romatica.com/2013/07/23/anetty_logodesign/#comments</comments>
		<pubDate>Tue, 23 Jul 2013 11:17:03 +0000</pubDate>
		<dc:creator>itoz</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[ANE]]></category>
		<category><![CDATA[icon]]></category>

		<guid isPermaLink="false">http://blog.romatica.com/?p=1853</guid>
		<description><![CDATA[少し前ですが@Hiiragi3の作成されているAir Natitive Extension 作成サポートアプリ [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/ANEttyLogo/Annety_logomain.png" /></p>
<p>少し前ですが<a href="https://twitter.com/Hiiragi3" target="_blank">@Hiiragi3</a>の作成されているAir Natitive Extension 作成サポートアプリ、「<a href="http://melancholy.raindrop.jp/wordpress/?p=2409" target="_blank">ANEtty</a>」のアイコンデザインをさせて頂きました。</p>
<p><a href="https://jypg.net/works/5022" target="_blank">ANEtty アイコンデザイン &#8211; itoz | JAYPEG </a></p>
<p><a href="http://www.behance.net/gallery/ANEtty-Logo-Design/9386987" target="_blank">ANEtty Logo Design on Behance</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.romatica.com/2013/07/23/anetty_logodesign/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AIR3] AIRアプリとシェルスクリプトの通信方法</title>
		<link>http://blog.romatica.com/2013/05/27/air3_shellscrip/</link>
		<comments>http://blog.romatica.com/2013/05/27/air3_shellscrip/#comments</comments>
		<pubDate>Sun, 26 May 2013 16:43:07 +0000</pubDate>
		<dc:creator>itoz</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[FDT]]></category>
		<category><![CDATA[AIR3]]></category>
		<category><![CDATA[memo]]></category>
		<category><![CDATA[Native Process]]></category>

		<guid isPermaLink="false">http://blog.romatica.com/?p=1816</guid>
		<description><![CDATA[AIRアプリ(デスクトップ) から シェルスクリプト を叩きたい！ みたいなことってたまにありますよね。 （ロ [...]]]></description>
			<content:encoded><![CDATA[<p>AIRアプリ(デスクトップ) から シェルスクリプト を叩きたい！<br />
みたいなことってたまにありますよね。<br />
（ローカルサーバを起動したいとか、コマンドラインで起動するライブラリ使いたい的な時とかとか&#8230;）</p>
<p>そんなときの方法メモ。</p>
<h3>ポイント</h3>
<p>ポイントは３つ。<br />
・<strong>ネイティブプロセス</strong>を利用<br />
・アプリケーションは「<strong>ネイティブインストーラー形式</strong>」でパッケージする（Macはdmg、Winはexe）<br />
・シェルに<strong>実行権限</strong>を与える</p>
<p>[参考] <a href="http://help.adobe.com/ja_JP/as3/dev/WSb2ba3b1aad8a27b060d22f991220f00ad8a-8000.html" target="_blank">Adobe Flash Platform * AIR のネイティブプロセスとの通信</a></p>
<h3>シェルスクリプトの用意</h3>
<p>例）hello.sh<br />
「HELLO + (AIRから受け取った文字列)」を出力するシェルスクリプト。</p>
<div>
<pre class="brush: bash; title: ; notranslate">
#!/bin/sh
# $1にはAIRから渡された引数が入ってくる
echo 'HELLO' $1
</pre>
</div>
<p>今回はAIRアプリ内にこのシェルを含めちゃいます。<br />
<a href="http://fdt.powerflasher.com/" title="FDT" target="_blank">FDT</a>での設定はこう。</p>
<p><img src="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/air3_shellscrpit/packageContents.png" /></p>
<h3>ActionScript3サンプル</h3>
<p>AS３のサンプルです。<br />
シェルに WORLD という文字列を渡しています。</p>
<div>
<pre class="brush: as3; title: ; notranslate">
/**
 * copyright (c) 2013 www.itoz.jp
 * @author itoz
 * @since 2013/05/27 9:40:08
 */
package jp.itoz.sample
{
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFormat;
    import flash.text.TextField;
    import flash.desktop.NativeProcess;
    import flash.desktop.NativeProcessStartupInfo;
    import flash.display.Sprite;
    import flash.events.NativeProcessExitEvent;
    import flash.events.ProgressEvent;
    import flash.filesystem.File;
    import flash.utils.IDataInput;

    /**
     * [AIR3]Desktop AIR と シェルスクリプトの通信サンプル
     * @see http://help.adobe.com/ja_JP/as3/dev/WSb2ba3b1aad8a27b060d22f991220f00ad8a-8000.html
     */
    public class TestShellApp extends Sprite
    {
        private var _process : NativeProcess;
        private var _tf : TextField;

        public function TestShellApp()
        {
            
            _tf = addChild(new TextField()) as TextField;
            _tf.defaultTextFormat = new TextFormat(null, 20, 0x0);
            _tf.autoSize = TextFieldAutoSize.LEFT;
            
            if (NativeProcess.isSupported) {
                // ----------------------------------
                // 対象のシェルスクリプト設定
                //----------------------------------
                var info : NativeProcessStartupInfo = new NativeProcessStartupInfo();
                // 今回は、ビルドファイルにhello.shを含めるようにしているのでapplicationDirectoryでアクセス
                var shFile : File = File.applicationDirectory.resolvePath(&quot;hello.sh&quot;);
                info.executable = shFile;
                
                // ----------------------------------
                // シェルスクリプトに渡したい引数
                // ----------------------------------
                var args : Vector.&lt;String&gt; = new Vector.&lt;String&gt;();
                args.push(&quot;WORLD!&quot;);
                info.arguments = args;

                // ----------------------------------
                // NativeProcessインスタンスの作成
                // ----------------------------------
                _process = new NativeProcess();
                // 終了イベント
                _process.addEventListener(NativeProcessExitEvent.EXIT, onProcessComplate_Handler);
                // シェルの出力を受け取るイベント
                _process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onProcessOutputData_Handler);
                // エラーイベント
                _process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, onProcessErrorData_Handler);
                _process.start(info);
            }
            else {
                trace(&quot;[NativeProcess] Not Supported!&quot;);
            }
        }


        /**
         * シェルからの出力を受け取るイベント
         */
        private function onProcessOutputData_Handler(event : ProgressEvent) : void
        {
            //----------------------------------
            //  シェルから受け取った文字列を表示
            //----------------------------------
            var bytes : IDataInput = _process.standardOutput as IDataInput;
            var oStr : String = bytes.readUTFBytes(bytes.bytesAvailable).toString();
            trace(oStr);
            _tf.text = oStr;
        }

        /**
         * 終了イベント
         */
        private function onProcessComplate_Handler(event : NativeProcessExitEvent) : void
        {
            trace(&quot;[NativeProcess] Exit!&quot;);
        }

        /**
         * エラーイベント
         */
        private function onProcessErrorData_Handler(event : ProgressEvent) : void
        {
            trace(&quot;[NativeProcess] Error!&quot;);
                               trace(_process.standardError.readUTFBytes(_process.standardError.bytesAvailable)) ;
        }
    }
}

</pre>
</div>
<h3>シェルスクリプトに実行権限を与える</h3>
<blockquote><p>
Exception fault: Error: Error #3219: The NativeProcess could not be started. &#8216;launch path not accessible&#8217;
</p></blockquote>
<p>コンパイル時上記のようなエラーが出た場合、シェルに<strong>実行権限がないので与えてあげます</strong>。<br />
与え方はターミナルを起動してchmodコマンドで下記のようにします</p>
<div>
<pre class="brush: bash; title: ; notranslate">
$chmod u+x /Users/itoz/workspaces/TestShellApp/bin/hello.sh 
</pre>
</div>
<p>u は所有者の権限、x は実行権限、つまり u+x は「所有者に実行権限を与える」という意味。</p>
<h3>アプリケーションをパッケージする</h3>
<p>先述の通り、NativeProcessを使用した場合、<strong>ネイティブインストーラーとしてパッケージしないと動作しません</strong>。<br />
<a href="http://fdt.powerflasher.com/" title="FDT" target="_blank">FDT</a>でネイティブインストーラーとしてパッケージする場合はここにチェック。<br />
拡張子は、Macなら.dmg、winなら.exeにします。<br />
<img src="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/air3_shellscrpit/nativeInstaller.png" /></p>
<h3>インストール＆起動</h3>
<p>アプリ起動時の画面。</p>
<p><img src="https://dl.dropboxusercontent.com/u/958512/_blog/romatica/resource/air3_shellscrpit/helloworldApp.png" /></p>
<p>AIRからWORLDという文字列をシェルに渡し、シェルで HELLO WORLD と出力し、それをAIRで受け取りテキストフィールドに表示しています。</p>
<h3>最後に</h3>
<p>なにか間違いなどありましたらコメントなどいただけるとありがたいです。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.romatica.com/2013/05/27/air3_shellscrip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[iOS][objc][flash] Cocos2D用のスプライトシートを Flash CS6で書きだし再生するまで</title>
		<link>http://blog.romatica.com/2012/12/13/flashcs6_cocos2d_spliteshee/</link>
		<comments>http://blog.romatica.com/2012/12/13/flashcs6_cocos2d_spliteshee/#comments</comments>
		<pubDate>Thu, 13 Dec 2012 10:54:47 +0000</pubDate>
		<dc:creator>itoz</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[memo]]></category>
		<category><![CDATA[objective-C]]></category>

		<guid isPermaLink="false">http://blog.romatica.com/?p=1795</guid>
		<description><![CDATA[ざっくりメモ。 「Flash CS6のスプライトシート書き出し機能」でCocos2Dデータを作成し再生するまで [...]]]></description>
			<content:encoded><![CDATA[<p>ざっくりメモ。</p>
<p><strong>「Flash CS6のスプライトシート書き出し機能」でCocos2Dデータを作成し再生する</strong>まで。</p>
<h3>Flashでの作業</h3>
<h4>[1] FlashCS6で、ライブラリから変換したいMovieClipを右クリックで「スプライトシートを生成」を選択</h4>
<p>※入れ子のMCのアニメーションは変換されないようです。<br />
※MovieClip複数をまとめてスプライトシート化できるようですが、今回は１つのみのサンプル</p>
<p><img src="http://dl.dropbox.com/u/958512/_blog/romatica/resource/flashcs6_cocos2d_spliteshee/flashSpriteSheet.png" /></p>
<h4>[2]「データ形式」プルダウンから「Cocos2D」を選択し書きだし</h4>
<h4>[3]「画像ファイル」と「.plist」ファイルができている</h4>
<h3>Xcodeでの作業</h3>
<h4>[4]Xcodeを立ち上げCocos2Dプロジェクトテンプレートでプロジェクトを作る</h4>
<p>　※テンプレートはCocos2Dをダウンロードしたフォルダの「install-templates.sh」を実行すると、Xcodeにインストールされる。</p>
<h4>[5]プロジェクトのResouceseフォルダに、Flashで書きだした2ファイルをドラッグドロップ。</h4>
<p><img src="http://dl.dropbox.com/u/958512/_blog/romatica/resource/flashcs6_cocos2d_spliteshee/animeData.png" /></p>
<p>※ charactor の部分がMovieClip名。複数選択するた多分複数のkeyがつくと思われる（試してない）<br />
※4桁の数字でナンバリングされるよう。</p>
<h4>[6]HelloWorld.hファイルに CCSprite CCAction を追加。</h4>
<div>
<pre class="brush: cpp; title: ; notranslate">
#import &lt;GameKit/GameKit.h&gt;

// When you import this file, you import all the cocos2d classes
#import &quot;cocos2d.h&quot;


// HelloWorldLayer
@interface HelloWorldLayer : CCLayer &lt;GKAchievementViewControllerDelegate, GKLeaderboardViewControllerDelegate&gt;
{
    CCSprite *_charactor;
    CCAction *_sampleAction;
}

@property (nonatomic, retain) CCSprite *charactor;
@property (nonatomic, retain) CCAction *sampleAction;


// returns a CCScene that contains the HelloWorldLayer as the only child
+(CCScene *) scene;

@end

</pre>
</div>
<h4>[6] HelloWorld.ｍファイルの修正</h4>
<p>initメソッドのなかの「if( (self=[super init]) )」の中身をごそっといれかえ。</p>
<div>
<pre class="brush: cpp; title: ; notranslate">
if( (self=[super init]) ){
//---------------------------------------------
// ファイル名
//---------------------------------------------
        
        NSString* fileName = @&quot;sampleAnim&quot;;
        //plist名
        NSString* plistName = [NSString stringWithFormat:@&quot;%@.plist&quot;,fileName];
        //Flash側のMovieClip名
        NSString* keyHeadName = @&quot;charactor&quot;;

        
        //---------------------------------------------
        //　plist 読込み
        //---------------------------------------------
       
        [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:plistName];
        
        
        //---------------------------------------------
        //スライス総数取得
        //---------------------------------------------
        NSString* path = [[NSBundle mainBundle] pathForResource:fileName ofType:@&quot;plist&quot;];
        NSDictionary* dictionary = [NSDictionary dictionaryWithContentsOfFile:path];
        NSArray *arr  = [dictionary allValues];
        int AllImageNum = [[arr objectAtIndex:0] count];
//        NSLog(@&quot;スライス総数: %d&quot;,AllImageNum);
        
        //---------------------------------------------
        // spriteSheet 読込
        //---------------------------------------------
        CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:
                                            [NSString stringWithFormat:@&quot;%@.png&quot;,fileName]];
        [self addChild:spriteSheet];
        
        //---------------------------------------------
        // アニメーションフレーム生成
        //---------------------------------------------
        NSMutableArray *sampleAnimFrames = [NSMutableArray array];
        
        for(int i = 0; i &lt;AllImageNum; ++i) {
            //4ケタにゼロサプライする
            NSString* zeroSupress =[NSString stringWithFormat:@&quot;%04d&quot;, i];
            
            [sampleAnimFrames addObject:
             [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:
              [NSString stringWithFormat:@&quot;%@%@&quot;,keyHeadName, zeroSupress]]];
        }
        
        //---------------------------------------------
        // CCAnimation作成
        //---------------------------------------------
        CCAnimation *sampleAnim = [CCAnimation animationWithFrames:
                                 sampleAnimFrames delay:0.03f];//1フレームの時間
        
        //---------------------------------------------
        //スプライト設定
        //---------------------------------------------
        NSString* firstKeyFrameName = [NSString stringWithFormat:@&quot;%@0000&quot;,keyHeadName];
        
        CGSize winSize = [CCDirector sharedDirector].winSize;
        self.charactor = [CCSprite spriteWithSpriteFrameName:firstKeyFrameName];
        _charactor.position = ccp(winSize.width/2, winSize.height/2);
        self.sampleAction = [CCRepeatForever actionWithAction:
                                [CCAnimate actionWithAnimation:
                                 sampleAnim restoreOriginalFrame:NO
                            ]
                           ];
        
        //---------------------------------------------
        //アニメーションスタート
        //---------------------------------------------

        [_charactor runAction:_sampleAction];
        [spriteSheet addChild:_charactor];
}

</pre>
</div>
<h4>[7]Runする</h4>
<p><img src="http://dl.dropbox.com/u/958512/_blog/romatica/resource/flashcs6_cocos2d_spliteshee/cocos.png" /></p>
<h3>さいごに</h3>
<p>今回は取り急ぎ再生できるまで、ですが、MovieClipを複数選択したり、フレームアクションを設定したり、といったことまで汎用的に使えるようにしたい所。<br />
（だれかそんなの作ったら教えて(´д｀)</p>
<h3>参考</h3>
<p>サンプルデータ：<a href="http://mdlab.jp/project/tool/02.html" target="_blank">Flash を HTML5に変換するアプリ 「SWF Animation Converter」 を利用して、キーボード操作できるキャラクターアニメーションを作成する｜マルチデバイスLab. &#8211; Multi Device Lab.</a></p>
<p><a href="http://tv.adobe.com/jp/watch/learn-flash-professional-cs6-jp/13744/" target="_blank">スプライトシートの作成とワークフロー | Learn Flash Professional CS6 | Adobe TV</a></p>
<p><a href="http://www.raywenderlich.com/1271/how-to-use-animations-and-sprite-sheets-in-cocos2d" target="_blank">How To Use Animations and Sprite Sheets in Cocos2D</a></p>
<p><a href="http://wayohoo.com/programming/objective-c/xcode4-plist-reading.html" target="_blank">【Objective-C】Xcode4で作った .plist を読み込む方法。 | 和洋風KAI</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.romatica.com/2012/12/13/flashcs6_cocos2d_spliteshee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【The Agonist】Heavy Metal Advent Calendar 2012 &#8211; ジ・アゴニスト</title>
		<link>http://blog.romatica.com/2012/12/09/heavy-metal-advent-calendar-2012_theagonist/</link>
		<comments>http://blog.romatica.com/2012/12/09/heavy-metal-advent-calendar-2012_theagonist/#comments</comments>
		<pubDate>Sat, 08 Dec 2012 16:01:43 +0000</pubDate>
		<dc:creator>itoz</dc:creator>
				<category><![CDATA[Heavy Metal]]></category>
		<category><![CDATA[The Agonist]]></category>

		<guid isPermaLink="false">http://blog.romatica.com/?p=1783</guid>
		<description><![CDATA[このエントリは、Heavy Metal Advent Calendar 2012 (9日目) への投稿です。  [...]]]></description>
			<content:encoded><![CDATA[<p>このエントリは、<a href="http://www.adventar.org/calendars/50" target="_blank">Heavy Metal Advent Calendar 2012 (9日目) </a>への投稿です。</p>
<p><img src="https://dl.dropbox.com/u/958512/_blog/romatica/resource/metalAdventCal2012/agonist.png" /></p>
<p>女Vo率いる、カナダモントリオール出身 The Agonist。<br />
2012年オレオレメタルランク第一位。(2011もだけどな！いやむしろ2008からだけどな！)。</p>
<p>3年ぶりの待望のニューアルバム「<a href="http://www.amazon.co.jp/gp/product/B007WFQZG4/ref=as_li_ss_tl?ie=UTF8&#038;camp=247&#038;creative=7399&#038;creativeASIN=B007WFQZG4&#038;linkCode=as2&#038;tag=romatica01-22">Prisoners</a>」をぶちかまし、2度めの来日を果たした彼女ら。</p>
<p>脳みそを、ぶん殴られたかと思ったら撫でられるような振れ幅で包みこみ叩き潰してくる狂気と美貌の表裏一体ことAlissa嬢のVocal。<br />
マジでぶっ飛んでてﾔｳﾞｧｲよ。<br />
「嬢メタル」とかってワードでくくってんじゃねーよ！（某サイトとか某誌とか）</p>
<p>先日の渋谷O−Eastライブでは、前回来日よりさらに進化したステージで、演奏隊のパフォーマンス、ボーカルもメッチャ声でてたし、かなりの貫禄感。<br />
後半はモッシュとダイブが渦巻いてやばいテンションだった！<br />
はやくも次の新作と来日が待ち遠しいわ〜。</p>
<p><iframe width="640" height="360" src="http://www.youtube.com/embed/EdT7M4f2L9A?rel=0" frameborder="0" allowfullscreen></iframe></p>
<p><iframe width="640" height="480" src="http://www.youtube.com/embed/yTo2Q1Fjvrc?rel=0" frameborder="0" allowfullscreen></iframe></p>
<p><iframe width="640" height="360" src="http://www.youtube.com/embed/_jud_SnKTlY?rel=0" frameborder="0" allowfullscreen></iframe></p>
<p><iframe width="640" height="360" src="http://www.youtube.com/embed/aXzIeI0mkFI?rel=0" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.romatica.com/2012/12/09/heavy-metal-advent-calendar-2012_theagonist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[cinder] Cinder で HelloWorld する</title>
		<link>http://blog.romatica.com/2012/11/30/cinder_helloworld/</link>
		<comments>http://blog.romatica.com/2012/11/30/cinder_helloworld/#comments</comments>
		<pubDate>Thu, 29 Nov 2012 16:06:29 +0000</pubDate>
		<dc:creator>itoz</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Cinder]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[cinder]]></category>

		<guid isPermaLink="false">http://blog.romatica.com/?p=1766</guid>
		<description><![CDATA[CinderでHelloWorldするまでのメモ。 環境：OSX 10.8.2 / Xcode 4.5.2 D [...]]]></description>
			<content:encoded><![CDATA[<p>CinderでHelloWorldするまでのメモ。</p>
<p><span class="path">環境：OSX 10.8.2 / Xcode 4.5.2</span></p>
<h3>Download</h3>
<p><a href="http://libcinder.org/download/">http://libcinder.org/download/</a></p>
<p>解凍して cinder_0.8.4_mac を適当なフォルダに置く</p>
<h3>Xcode プロジェクト作成</h3>
<p>Cinderには<strong> プロジェクト生成お助けツール TinderBox.app</strong> があります。</p>
<p>解答したフォルダ以下の<br />
<span class="path"><code>tools/TinderBox.app</code><br /></span><br />
を起動。</p>
<p><img src="https://dl.dropbox.com/u/958512/_blog/romatica/resource/cinder_helloworld/1_TinderBox.png" alt="TinderBox"></p>
<p>[1] Location にプロジェクトを作りたい場所を指定。<br />
[2] Xcodeアイコンを選択し Createボタンを押下。</p>
<p>できたフォルダ以下に「Xcodeプロジェクト」が入ってます。<br />
のでこれを起動。</p>
<p><span class="path"><code>xcode/***.xcodeproj</code></span></p>
<h3>Hello World</h3>
<p>起動後、Sourceフォルダの.cppファイルのsetup()メソッド内に下記を記述</p>
<div>
<pre class="brush: cpp; title: ; notranslate">
std::cout&lt;&lt; &quot;HelloWorld&quot;  &lt;&lt;std::endl;
</pre>
</div>
<p><img src="https://dl.dropbox.com/u/958512/_blog/romatica/resource/cinder_helloworld/5_HelloWorld.png" alt="Cinder HelloWorld"></p>
<h3>Build する</h3>
<p>Xcode左上の矢印アイコンを押下で、ビルド。<br />
アプリが立ち上がり(この時点では画面真っ黒)、 HelloWorld と表示されてば成功.<br />
<img src="https://dl.dropbox.com/u/958512/_blog/romatica/resource/cinder_helloworld/10_HelloWorld.png" alt="Cinder HelloWorld"></p>
<h3>ErrorでRUNできない場合。</h3>
<h4>BaseSDK の設定が間違っている？</h4>
<p>こんなエラーメッセージの場合</p>
<p><span class="path">The run destination My Mac 64-bit is not valid for Running the scheme &#8220;MyCinderProject&#8221;</span></p>
<p>自分の場合は Bulid Setting の BaseSDK を「LatistOSX (10.8)」にすることでRUNできるようになりました。環境によっては違うと思いますがこのあたりをいじるとうまくいく（かも？）</p>
<p><img src="https://dl.dropbox.com/u/958512/_blog/romatica/resource/cinder_helloworld/20_Error1.png" alt="Cinder HelloWorld"></p>
<h4>Cinderにパスが通っていない？</h4>
<p><img src="https://dl.dropbox.com/u/958512/_blog/romatica/resource/cinder_helloworld/20_Error2.png" alt="Cinder HelloWorld"></p>
<p>Build Setting の最下段 CINDER_PATH にちゃんとDLしたcinderフォルダまでのパスが指定されているか確認。</p>
<p>もしくは、TinderBox.app の Preferenceでcinderフォルダのパスをちゃんと指定出来ていない状態でXcodeプロジェクトを生成した場合、このエラーが起きます。</p>
<h3>最後に</h3>
<p>こちらのエントリもご一緒に。<br />
<a href="http://blog.romatica.com/2012/11/26/cindermemo/">[cinder][memo] Flasher的視点からのCinderメモ | romatica : Blog : Archive </a></p>
<p>間違いなどありましたらご指摘いただけると嬉しいです。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.romatica.com/2012/11/30/cinder_helloworld/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/


Served from: blog.romatica.com @ 2014-08-18 13:38:46 -->