<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/ME2.2.1" -->
<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/"
	>

<channel>
	<title>code:x</title>
	<link>http://code.xenophy.com</link>
	<description>PHP/JavaScript/Ext JS/ActionScript Code Memo</description>
	<pubDate>Sun, 07 Feb 2010 07:40:20 +0900</pubDate>
	<generator>http://wordpress.org/?v=ME2.2.1</generator>
	<language>ja</language>
			<item>
		<title>2月短いのに。</title>
		<link>http://code.xenophy.com/?p=885</link>
		<comments>http://code.xenophy.com/?p=885#comments</comments>
		<pubDate>Sun, 07 Feb 2010 16:40:20 +0900</pubDate>
		<dc:creator>Kotsutsumi</dc:creator>
		
		<category><![CDATA[記事更新お知らせ]]></category>

		<guid isPermaLink="false">http://code.xenophy.com/?p=885</guid>
		<description><![CDATA[				ども、小堤です。
				ありがたい話なんですが、今月やう゛ぁぃくらい忙しいです。
				タダでさえ短いのに・・・。
				Ext JSの方もいろいろやることありーの、携帯関連のxFrameworkPX対応とか、あとFlashLiteとxFrameworkPXの連携？動的生成？の調査とか・・、おまけにxFrameworkPX 3.5 RCリリースもあるし、さらに制作もあるし・・・てんやわんや。
				まぁ何もすることがないより全然いいんですが、気合い入れて乗り切らないとバタンQしてしまいそう。xFrameworkPX は、早めに3.5正式版だしちゃいたいですなぁ・・機能UPリストはある程度できてるので、3.5.1とかUPしていきたいですわ。
				いま思い描いているものが実装おわれば、PCサイトも、携帯サイトも、携帯Flashも、Ext JSなどのRIAコンテンツも・・・大概いけるので。もういっぽ。まぁ10月に初めて、3月にリリースできるわけですが、がんばったほうか。
				とりあえず、外部的圧力(笑）で、Ext JSの実践開発ガイドをそろそろまじめに考える必要がでてきたので、それも月末あたりから・・という気持ちで・・・はぁ。
				実践開発ガイドは、キンドル？っていうんですか？ｗ　Amazonの端末・・あれでだそうかなぁという話だったりして、それから紙ベースかな、みたいな。
				で、僕キンドルもってませんけど？(笑）かう？えー、いらなくなーい？でも、作るならいるかぁ。 ぼかぁiPad買うつもりなんですが？
				で、さらにググっても、海外から購入しか見当たらない、どっか代理すれや。買う気うせるだろ。そこまでほしくないんだから・・・。
				ってことで、Ext JS実践開発ガイドは、アウトプットは、完全に未定ｗｗｗｗ だけどＥｘｔ.Directも含めた、超初心者からのモダンＪａｖａＳｃｒｉｐｔに関する点から、実際のコンポーネント利用までのExt JS 実践開発ガイドは、仕上げちゃいます。
				最近、実務でExt JS使ってるんで、実際はその先のアプリケーションのこつとか、そこらへんも考えたい・・・実際だしてみて、みんなが買ってくれれば・・・ （ぇExt JS 実践開発ガイド アドバンスとかありえるかもね。
				ってことで、 Ext JS 実践開発ガイドは、TextMate2ばりに気長にまってください（でないってことじゃないよ！）
				さー、一回かえろー。
]]></description>
		<wfw:commentRss>http://code.xenophy.com/?feed=rss2&amp;p=885</wfw:commentRss>
		</item>
		<item>
		<title>Ext.Fx stopFxの挙動と強制停止拡張</title>
		<link>http://code.xenophy.com/?p=884</link>
		<comments>http://code.xenophy.com/?p=884#comments</comments>
		<pubDate>Wed, 03 Feb 2010 01:11:02 +0900</pubDate>
		<dc:creator>Kotsutsumi</dc:creator>
		
		<category><![CDATA[Ext]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://code.xenophy.com/?p=884</guid>
		<description><![CDATA[				ども、引き続き、小堤です。
				さて、ちょいアニメーション関連を調査しているんですが、stopFxの挙動、イメージとちがーーう！（つ＿；）
				ってことで、実験してみました。
				http://extjs.xenophy.info/2010020301.html
				停止ボタンを押すとstopFxをコールするんですが・・・・いきなり終了の状態（アニメーション完了の状態）になります。
				え～、こぉ～まぁ～るぅ 。（＞＿＜）。
				まぁあまりよろしくはないのですが、強制的にアニメーションを停止させる方法として、次のような拡張を、Ext.extender(前に話したやつ)にぶっ込みます。
				// {{{ Ext.Element

Ext.Element.addMethods({
    forceStopFx : function() {
        Ext.lib.AnimMgr.stop();
    }
});

// }}}

				Ext.lib.AnimMgr.stop();を呼ぶだけです。
				実は、Ext JSのアニメーションは、アダプターによって処理される場所が異なるんですが・・・・Ext.libしたのAnimとかそこらへんがアニメーションをするオブジェクトなんですね。
				jQueryアダプターとかまだ試してないんでわからないですが、まぁ・・大丈夫だべ。
				で、Elementクラスにインプリメントしちゃいます。
				これで、el.forceStopFx()の完成。
				具体的に、Ext.lib.AnimMgr.stop();で、一時停止、再開作ってみました。
				http://extjs.xenophy.info/2010020302.html
				ってことで、これでアニメーション中に強制的に止めて・・次のトランジションにいくとかの、処理を書き始めるなど。
				追記
				上記の方法だと、その後のアニメーションでcallbackが呼ばれなくなる・・・なんか考えないと・・。
]]></description>
		<wfw:commentRss>http://code.xenophy.com/?feed=rss2&amp;p=884</wfw:commentRss>
		</item>
		<item>
		<title>Ext.Fx durationの罠</title>
		<link>http://code.xenophy.com/?p=883</link>
		<comments>http://code.xenophy.com/?p=883#comments</comments>
		<pubDate>Wed, 03 Feb 2010 00:38:19 +0900</pubDate>
		<dc:creator>Kotsutsumi</dc:creator>
		
		<category><![CDATA[Ext]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://code.xenophy.com/?p=883</guid>
		<description><![CDATA[				ども、小堤です。
				先ほど、やっと解決？したので・・メモ。
				いやぁ・・・durationあるじゃないですかぁ・・・Ext.Fxの。
				これ、アニメーションをどれくらいの時間で実行するかを指定するオプションなんですが、これね、0設定すると1になります(笑)
				要するに、未指定時は1秒なんですね、0はif文でfalse判定なんで、1になるわけです。
				なんで、限りなく0に近い値を設定するしかいまのところナス。
				duration: 0.00000001 
				とかね。
				まぁ・・・本来の解決はまだ終わって無くて・・・やってられナス。
]]></description>
		<wfw:commentRss>http://code.xenophy.com/?feed=rss2&amp;p=883</wfw:commentRss>
		</item>
		<item>
		<title>Ext.ux.plugins.FocusActive</title>
		<link>http://code.xenophy.com/?p=882</link>
		<comments>http://code.xenophy.com/?p=882#comments</comments>
		<pubDate>Tue, 02 Feb 2010 12:36:56 +0900</pubDate>
		<dc:creator>Kotsutsumi</dc:creator>
		
		<category><![CDATA[Ext]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[記事更新お知らせ]]></category>

		<guid isPermaLink="false">http://code.xenophy.com/?p=882</guid>
		<description><![CDATA[				ども、小堤です。
				やっと起きることができた・・・なんだか・・なぁ(笑)
				さて、先日書いたExt.ux.plugins.FocusActiveです。
				/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */

// {{{ Namespace

Ext.ns(&#8216;Ext.ux&#8217;, &#8216;Ext.ux.plugins&#8217;);

// }}}
// {{{ Ext.ux.plugins.FocusActive

/**
 * Ext.ux.plugins.FocusActive
 *
 * @author  Kazuhiro Kotsutsumi &#60;kotsutsumi@xenophy.com&#62;
 * @version 1.0
 */
Ext.ux.plugins.FocusActive = function() {

    var me = this;
    var overCls = &#8216;x-btn-over&#8217;;
    var active = false;

    // [...]]]></description>
		<wfw:commentRss>http://code.xenophy.com/?feed=rss2&amp;p=882</wfw:commentRss>
		</item>
		<item>
		<title>最高のログイン画面？</title>
		<link>http://code.xenophy.com/?p=881</link>
		<comments>http://code.xenophy.com/?p=881#comments</comments>
		<pubDate>Mon, 01 Feb 2010 21:00:51 +0900</pubDate>
		<dc:creator>Kotsutsumi</dc:creator>
		
		<category><![CDATA[Ext]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://code.xenophy.com/?p=881</guid>
		<description><![CDATA[				ども、小堤です。
				もう、2月ですなぁ・・はぇ～。
				
				先日、作る！といったので地道に作ってます。
				で、ログインの画面あたりからにょっこりやってるわけですが。
				まだ途中半端ですが、もうすぐできます。
				スクリーンキャストを見る！
				なんだかんだ、このログイン画面とかExt　JSで実装しようと思うと結構労力かかるんですよね。まぁウィンドウでもだして入力させるだけならすぐですけど、フォーカス管理や、キー操作のみでの操作とか、ブラウザの戻るボタンでの制御とか・・・ここら辺をじっくり作ってみました。
				で、あと数日でできると思うのですが・・・まぁ悪い癖なんですが・・・またまとめようと・・Spread Office作りながら、実はExt Annexというパッケージも同時に作っています。
				先に行っておきます。公開します。GPLライセンスで。
				まぁうちの会社のExt アプリケーションを開発する上でのベース。商用はライセンス販売できるくらいまでちゃんとしたい、きぼんぬ。
				で、Ext Annexってなによ？って話なんですが、RIA Application Platformという位置づけで、ログイン一つとってもそうだし、ログイン後、Spread　Officeでも実装しますが、ユーザーの管理とか、管理画面系などでよく使うものの基底クラス（そのままでも使えるけど、基本継承してカスタマイズできる）を最初からぶっこんでおくので、カスタマイズして、ページ（前にお話ししたExt.ux.Screen）でページを作ってぶっこんでいく開発スタイルを実現するためのもの。
				手前味噌で申し訳ないですが、xFrameworkPXのxFrameworkPX_Controller_ExtDiret（Ext.Directコントローラー）で実装します。まぁ逆に言えば、さっくり使えます。CakePHPのモジュール作成とかと一緒です、ほとんど。基本機能はできあがっているんで、サーバーサイドもすぐ使えます。 というカタチにしたい気持ちでいっぱい。
				最近、Ext　JSのお話を色々いただくので、操作せいのいいものや、そもそもアプリケーションのRIAのカタチとしてこういうのがいいんじゃね？っていうのを訴えていければなぁ・・とおもっていたり、まぁ、一応GPLでオープンにするので、手伝ってくれる親切な人がいると好きになります（ぇ
				あと、ちょっとわかりにくかったと思いますが、Ext JS標準では、ボタンにキーボードでフォーカスしたときに、見栄え変わらないんですよ。FireFoxとかなら点線でますけど、文字に。他のブラウザだとフォーカスあたってんのか、あたってないのかわからないんで、フォーカス当たると、マウスオーバーと同じ効果をするボタン用のプラグインも作成しました。Ext.ux.plugins.FocusActiveっていうプラグインです。
				結構使えると思うので、近々また紹介します。
				今日は寒すぎるし・・・やることいっぱいだし・・・でも・・・ねちゃおうかな・・明日がんばろうカナ・・かなぁ・・（・＿・。
]]></description>
		<wfw:commentRss>http://code.xenophy.com/?feed=rss2&amp;p=881</wfw:commentRss>
		</item>
		<item>
		<title>Ext.extender.js</title>
		<link>http://code.xenophy.com/?p=880</link>
		<comments>http://code.xenophy.com/?p=880#comments</comments>
		<pubDate>Fri, 29 Jan 2010 12:19:24 +0900</pubDate>
		<dc:creator>Kotsutsumi</dc:creator>
		
		<category><![CDATA[Ext]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://code.xenophy.com/?p=880</guid>
		<description><![CDATA[				
				ども、小堤です。
				はぁ・・・今日も結局寝ることは許されないのねぇ。
				で、Ext.extender.jsについてです。
				これは、僕がExtオブジェクトを拡張するために使っているファイルなんですが、紹介します。まだ3個しかないし。まぁまだ全部ネタ帳から移植してないんで。
				/*!
 * Ext.extender
 * Copyright (c) 2006-2009 Xenophy.CO.,LTD All rights Reserved.
 * info@xenophy.com
 * http://www.xenophy.com/
 */

// {{{ Ext Extender

Ext.apply(Ext,{

    // {{{ maxZindex

    /**
     * DOMツリー内のzindex最大値を取得します。
     *
     * @return zindex最大値
     */
    [...]]]></description>
		<wfw:commentRss>http://code.xenophy.com/?feed=rss2&amp;p=880</wfw:commentRss>
		</item>
		<item>
		<title>スクリプトタグは消してもOK</title>
		<link>http://code.xenophy.com/?p=879</link>
		<comments>http://code.xenophy.com/?p=879#comments</comments>
		<pubDate>Fri, 29 Jan 2010 05:19:34 +0900</pubDate>
		<dc:creator>Kotsutsumi</dc:creator>
		
		<category><![CDATA[Ext]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://code.xenophy.com/?p=879</guid>
		<description><![CDATA[				
				ども、小堤です。
				実験していてわかったんですが、「スクリプトタグは消してもOK」ということがわかりました。
				考えてみれば当たり前か。読み込まれたときにJSコードが実行されるだけだもんね。CSSの場合はlinkタグを消すとCSSが無効になりますけど、スクリプトタグは違います。ちなみにIE8とかCheromeとかFireFoxとかSafariで試してうまくいったので採用。
				なんで、そんなことをするのか？
				先に書いた、Ext.ux.Screenも同じですが、Ext JSのみならずJSでインタラクティブなコンテンツを作成されてる皆さん。僕もその一員ですが、聞きたいことがあります。
				「DOMの掃除って意識していますか？」
				はずかしながら、Ext　JSをはじめたころは全くに気にしていませんでした。これ、操作するにつれて隠してあるだけだとCSSセレクタの速度とか、画面に表示される描画速度が遅くなるんです。アプリケーションが大きくなってきたらなおさら。今のうちに何とかしておきたいですよね。
				で、題名通り、スクリプトタグも消しましょう(笑）　いらんタグはぽいぽいです。HTMLソース見れば残ってても、DOMツリーからは消えてる。普段の逆ですね。
				
				前にお話しした、Spread Officeの開発をちまちまやってて、技術検証しながらやってるんですが、ログイン画面途中までしか作ってないですが、スクリーンキャストでとってみました。
				スクリーンキャスト
				この、ページを表示するのに、10個以上のJSファイルを読み込んでいますが、最後FireBugで確認したときに、スクリプトタグが存在しないことが確認できます。ちなみに、僕はBODYにスクリプトタグ入れる派です。ローディングマスクをかけて、JSの読み込み時間を演出できますからね。しなくてもいいけど。
				ってことで、最近Ext　JSのお仕事も増えてきて、世間的にも去年よりExt JSを聞くようになった気がします。ということは、これからたくさんアプリケーションが作られていくわけで、クリティカルな解決策やセオリーは大事になってきます。 うちの会社では、もう2年近くやってきている実績があるので、業務アプリケーションを作る上でのノウハウはしっかり貯めてあります。
				このDOM削除もその一つですけど、こういうのちゃんとできるかできないかで低スペックPCで遅いとか、使ってるとだんだんおそくるんだよねぇとか、お客さんの嫌な(笑)台詞を笑ってかわせるようになればいいですね。
				※Spread　Officeの画面は、なにかと出てくるかもしれません・・・ただスクリーンキャストが多いと思います。売り物になる予定なんで、ソースだせません、ごめんなさい。 みれる段階まできたらたぶん前に書いた暗号化します。ただ、小出しになりますが、ノウハウはちょいちょい書いていくつもりです。あと、相変わらず落ち着かないんですが(爆）落ち着いたら、ゼノフィのホームページに各UXのページとか作るつもりでいます。あと、どっかで実践開発ガイド再開させます。
				あ、5時すぎてる・・・
]]></description>
		<wfw:commentRss>http://code.xenophy.com/?feed=rss2&amp;p=879</wfw:commentRss>
		</item>
		<item>
		<title>Ext.ux.ScriptLoader</title>
		<link>http://code.xenophy.com/?p=877</link>
		<comments>http://code.xenophy.com/?p=877#comments</comments>
		<pubDate>Thu, 28 Jan 2010 22:31:38 +0900</pubDate>
		<dc:creator>Kotsutsumi</dc:creator>
		
		<category><![CDATA[Ext]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://code.xenophy.com/?p=877</guid>
		<description><![CDATA[				
				ども、 小堤です。
				なんだかJSコード書いてるの、まだギリ楽しいので書いてます。
				さて、題名の件です。いくつかぐぐると、JavaScriptのローダーが存在します。
				でも、Ext JS使ってるなら、Ext JSっぽくかきたいじゃん。
				ってことで作りました。
				Ext.ux.ScriptLoaderです。
				http://extjs.xenophy.info/ScriptLoader/
				処理は、sample1～5.jsを次々読み込んで、それぞれの定義されたファンクションを呼ぶだけなんですが、ポイント！
				
				それぞれのJSコードが読み込まれたときのコールバックをExt JS風味にかける。
				全部読み込み終わったときのイベントを設定できる。
				
				で、App.jsをみてみると
				App.js
				Ext.onReady(function(){

    var loader = new Ext.ux.ScriptLoader({
        listeners: {
            &#8216;load&#8217; : function() {
                alert(&#8220;すべての読み込みが完了しました。&#8221;);
   [...]]]></description>
		<wfw:commentRss>http://code.xenophy.com/?feed=rss2&amp;p=877</wfw:commentRss>
		</item>
		<item>
		<title>【とりあえずできた編】そのアプリケーション1000ページ出せますか？</title>
		<link>http://code.xenophy.com/?p=875</link>
		<comments>http://code.xenophy.com/?p=875#comments</comments>
		<pubDate>Thu, 28 Jan 2010 03:42:43 +0900</pubDate>
		<dc:creator>Kotsutsumi</dc:creator>
		
		<category><![CDATA[Ext]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://code.xenophy.com/?p=875</guid>
		<description><![CDATA[				
				ども、小堤です。
				やっぱ動きは早めに！ってことで、実装完了しました。
				まだ、いくつか制限はありますが、百聞は一見にしかず！みてみればわかります。
				
				仕様
				メニューを1000個作って、ページ（パネル）を1000個切り替え表示する。
				通常のやり方で実装した場合
				 http://extjs.xenophy.info/Screen/examples/unuse.html
				Ext.ux.ScreenPanel/Ext.ux.layout.ScreenLayoutを利用した場合
				http://extjs.xenophy.info/Screen/examples/index.html
				起動するまでの時間を見比べてください。雲泥の差です。
				なぜ、このようなことが起きるか？ 
				Ext.PanelはExt.Containerを継承したクラスです。このExt.Containerは、自分自身をレンダリングする際に、子供のアイテムもレンダリングします。
				Cardレイアウトを使用すると、非表示になりますが、DOMは存在しているわけです。従って、起動時にパネル用のDIVタグが1000個生成されます。
				Ext.ux.ScreenPanelとExt.ux.layout.ScreenLayoutは、親になるコンテナのアイテムをactiveItemで指定された対象のアイテムしかレンダリングしません。
				切り替え時(setActiveItem)に、表示していたコンポーネントを破棄します。
				なので、1つしか生成されないので処理は１／１０００になるわけです。
				ソースコード
				
				この記事みて「ほぉ～ 」って人はそれなりにやってるひとだとおもうので・・・HTMLないのリンクからDLしてくださいｗソース。
				未実装とか
				
				activeItemがまだ数値でしか指定できないので、idとオブジェクトに対応する。
				バグないか探す。
				ちゃんとリリース用のコメント書く
				パネルの中にグリッドとかいれてもっと重いパネルにして試す。
				一段楽したらフォーラムに書き込んでみる？
				
				業務アプリケーションで、コンポーネントの数が多くなると、表示するまではいいんですが、操作しているとどんどん遅くなる（IE6のメモリリークじゃなくて）可能性は、普通に作っていると多々あるわけです。
				これらを解決する策として、もう少し煮詰めマース。
				追記
				
				完成しました。
				http://extjs.xenophy.info/Ext.ux.Screen.zip
				上記からDLしてください。IDの対応はしました。
				で、実際やってみたのですが、ここに書いてあるサンプルただパネルにテキストが表示されているだけですが、ArrayGridサンプルのグリッドを表示してみたところ、unuseの場合（通常の場合）ハングします。スクリプトを停止しますか？とかいわれますが、Ext.ux.Screenを使えば1000個でもいけました。ちょっとパネルとかメニューを生成する部分をJSで行っているので、ここも実際に手書きだともっとはやいと思います。
				こつとしては、多様せずに、大枠となる機能で利用するといいかなぁと思います。まぁアプリケーションの画面切り替えでCard使う最初の部分をScreenに切り替えるだけでいけちゃうので、便利じゃないっすかね。珍しく（？）クレバーなコード書いた気がする（笑 　ほめてほめてー（・＿・。
]]></description>
		<wfw:commentRss>http://code.xenophy.com/?feed=rss2&amp;p=875</wfw:commentRss>
		</item>
		<item>
		<title>Ext.menuアイテムの親はちゃんとクリックできないようにして！</title>
		<link>http://code.xenophy.com/?p=874</link>
		<comments>http://code.xenophy.com/?p=874#comments</comments>
		<pubDate>Thu, 28 Jan 2010 01:48:41 +0900</pubDate>
		<dc:creator>Kotsutsumi</dc:creator>
		
		<category><![CDATA[Ext]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://code.xenophy.com/?p=874</guid>
		<description><![CDATA[				ども、小堤です。
				細かいことでもちゃんと書いといた方がいいのかなぁ、と皆さんと会うと思ったりするわけで。
				メモっときます。
				メニューを多階層にした場合、親のアイテムをクリックしたときに、メニューが消えちゃいますよね？
				http://www.extjs.com/deploy/dev/examples/menu/menus.html
				このデモの左端のメニュー選んでみてください。まだ子供があるのでそっちを選択したいのに間違ってクリックしちゃったらメニュー消えるんですね。
				でも、これ使いにくくないですか？
				で、セオリーとして、親にはちゃんと消えないようにする処理を入れてあげましょう。
				それは、コンフィグオプションのhideOnClickをfalseに設定するです。
				具体的にやってみました。
				http://extjs.xenophy.info/2010012801.html
				まぁ、Ext.ux.Screenでたくさんのメニュー作ってるときにふと思い出したので。HTML内にJS入れてあります。ソースでみてくだはれ。
				ってこで、ちゃんとExt JSのこと書いたからね。
]]></description>
		<wfw:commentRss>http://code.xenophy.com/?feed=rss2&amp;p=874</wfw:commentRss>
		</item>
	</channel>
</rss>
