Archive for 9月, 2009

このページの目次

Array.lengthの値が期待と違って困ってる

土曜日, 9月 19th, 2009

こんにちは、なかわけです。

Array.lengthの件でちょっと困ってます。

var arr:Array = new Array();
for (var i:uint = 10000; i >= 1; i /= 10) {
	arr[i] = 1 + Math.floor(num / i);
	num = num % i;
}
trace(arr);

このとき、traceされた値が5であってほしいのに、10001が帰ってくる。
困る/(^o^)\
いや、困ってないけどなんか気持ち悪いです。

フルスクリーンのAIRを作るときにハメられたこと

水曜日, 9月 16th, 2009

こんにちは、なかわけです。

メモ程度にさらっと。

AIRを作っててだいたいできたからフルスクリーンにして確認してみようと思い、

stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
stage.scaleMode = StageScaleMode.NO_SCALE;

と書いて、メニューバーの「デバッグ>ムービーのデバッグ」からプレビューしてみたら動きがガタガタになりました。

作っている内容にもよりますが、処理が重いモノを作っているとガタガタに再生されると思います。
げッ!作り直しか?どこがおかしかったんだろう・・・と思いながら、
AIRをちゃんとパブリッシュしてインストールして再生してみました。
すると、ほぼ想定通りの動きで再生されました。

どうやら、Flashからのプレビューではガタガタに再生されるようです。
一瞬、焦った。

AS3で配列の中の重複を取り除いてユニークな配列にする処理

金曜日, 9月 11th, 2009

こんにちは、なかわけです。

AS3に配列内をユニークにして返してくれる処理がなかったので、いろいろ調べながら作った。
使い方によってはユニーク化にもグループ化にもできる。


var nekoArr:Array = [
{color:'white', sex:'male', age:'1'},
{color:'black', sex:'female', age:'3'},
{color:'kiji', sex:'male', age:'2'},
{color:'white', sex:'male', age:'5'},
{color:'black', sex:'female', age:'4'}
];

function uniqueNeko(arr:Array):Array
{
var tmpObj:Object = new Object();
var uniqueArr:Array = new Array();
for (var i:uint = 0; i < arr.length; i++) { var property:String = arr[i]['color'] + arr[i]['sex']; if (!(property in tmpObj)) { tmpObj[property] = true; uniqueArr.push(arr[i]); } } return uniqueArr; } uniqueNeko(nekoArr); [/as3] 色とオスメスでグループ化したいとき(年齢は無視)、colorとsexの値を結合して文字列にしtmpObjのプロパティにするところがミソ。 tmpObj[property]にtrueを入れているけど、trueである必要はなく空文字でもなんでもいいです。プロパティを追加することに意味があるので。 たぶん、これでOKじゃないかなー。おかしかったらコメントください。

AIRのパッケージはできるけど、パッケージ化がうまくできてない

日曜日, 9月 6th, 2009

こんにちは、なかわけです。

タイトルの意味がわかりにくいですね。
この2日間AIRに悩まされました。

AIRの仕事が来て、なかわけは今までAIRを作ったことがなかったので、
最初は手始めに簡単なAIRアプリを作ろうとHowTo系のページを見ながら研究していたら、
いきなりAIRがパッケージ化に失敗するようになりました。

もうちょっとわかりやすく説明すると、AIRのパブリッシュ(パッケージ)はできるとのですが、
書き出されたAIRファイルができそこないで、そのAIRを起動すると「エラーが発生しました。~」
というメッセージが表示されて先に進まなくなりました。

エラーが発生しました。

このページを見ながら作業していたら、うまく動かなくなりました。
http://www.adobe.com/jp/newsletters/edge/september2007/articles/article2/index.html
http://www.adobe.com/jp/newsletters/edge/october2007/articles/article3/index.html

どうやらこのページの記事が古いもので、当然アップデータも古く、気付かずにインストールしてしまいました(バージョンが古いはずなんだからアップデートできちゃうのも問題化と思いますが)。

記事内には、
不具合が発生した場合は Flash CS3 のアプリケーションそのものを再インストールする必要がありますので、あらかじめご了承ください。
と書いてあったので再インストールをしました。

が、今度は今までAIRのパブリッシュできていたFlashファイルもパブリッシュできなくなってしまいました。
Flash自体のインストールに失敗したのかと思って今後はライセンスを解除してCSごと再インストールしてみたのですがやっぱりダメでした。

その後いろいろ試したり調べたりしてダメだっだのですが、解決方法をほぼ偶然的に見つけました。
なかわけはそもそも勘違いをしていて、CSの再インストールのときに各ソフトのアップデートを自動的に行いインストール後には最新の状態になっているモノだと思っていました。
しかし、CSの再インストールはパッケージCDの中身しかインストールしないようです(これって普通?)

もしや、と思ってFlashを起動しメニュー>「ヘルプ」>「アップデート」をしてみました。
すると、AcrobatとIllustratorの更新がありました・・・。
「アクロバットとイラレか・・・」と思いながら、とりあえずアップデートをかけてみました。
イラレのアップデートが失敗した・・・。

おいwと思い、もう一度メニュー>「ヘルプ」>「アップデート」を選択しました。
すると、100数件のアップデートが見つかりました。おぉ!と興奮しながらインストールボタンをクリックすると、その中にFlashのアップデートも!

途中1度再起動要求がありましたがその後めでたくアップデートが完了!
AIRも無事パッケージできるようになりました!!

要するに、2回「アップデート」をするというのが正解だったようです。
今回、痛感したのは記事の日付とアップデータの内容をよく確認してからアップデートしようということでした←基本(いや、しかし古いアップデータがインストールでき(ry・・)。
はぁー、1日半無駄な時間を使ってかなりストレスでした・・・。

EC-CUBE非公開商品をランキングに表示しない

金曜日, 9月 4th, 2009

こんにちは、なかわけです。

今日はEC-CUBEの話。

タイトル通り、EC-CUBEで非公開の商品をランキングに表示しない方法。
(さらに…)

CSSで複数のクラスを指定したセレクタがIE6でうまく機能しない

木曜日, 9月 3rd, 2009

こんにちは、なかわけです。

仕事中に見つけたIE6の不具合。
メニューがあって、選ばれてるものだけ背景色を変えたかったときのこと。
こういう風に書くとIE6でうまく機能しませんでした。

<ul>
    <li class="menu">ねこ</li>
    <li class="menu selected">ゲーム</li>
    <li class="menu">チョコレート</li>
</ul>
.menu {
    background:#CCCCCC;
}
.menu.selected {
    background:#CC0000;
}

この場合.menuと.selectedを同時に適用したゲームの背景はグレーになり、赤くなってくれません。
このときは、別の方法で解決しましたが、以下のページに回避方法が紹介されてました。

http://css-el.seesaa.net/article/108157845.html

でも、場合によっては無駄な要素を増やしたり、CSSのセレクタに文脈セレクタを追加したりしないといけないからヤダなー。

IEでCSSで指定してもフォントのサイズが小さくならない

木曜日, 9月 3rd, 2009

こんにちは、なかわけです。

今日も仕事中に見つけたIEのこと。

取引先からもらったHTMLとCSSを元にコーディングをしていて、IEだけ文字が小さくならない不具合にぶつかりました。
なかわけがfont-size:10pxと書いた部分は小さくならず、取引先が書いたfont-size:77%は小さくなります。

取引先からもらったCSSにはこんな感じに書いてありました。

  font-family:'Lucida Grande',Arial,Helvetica,'ヒラギノ角ゴ Pro W3','メイリオ','MS Pゴシック',sans-serif;
  font-size: x-small;
  line-height:1.2;

どうやらfont-familyに日本語フォントより先に英字フォントを指定していると、
IEは指定されたフォントでは10pxにできないとご認識して10pxの文字指定を無視するようです。
(font-familyの順番を変えるとうまく10pxに変わりました。細かい検証はしてません)。
しかし、77%のようにパーセント指定すると小さくなります・・・。

調べればそれなりにわかったんだろうけど、ハメられたなー・・・。