2011.06.28 | 

やぁ、みなさん。徹夜な日々をいかがお過ごしでしょうか?
もっぱらturmtableで音楽を聴きながら作業をしているkaminalyです。

さて、なにやら米国からのアクセス以外はじくようになってしまったturntableですが、
そんなの串させばよいだけなので、その事にはふれませんw

今回の変更で実装も少し変ったようで、
海外製のクロームのエクステンション/ブックマークレットがエラー吐きまくりで
主に使っていた自動イイネが使えなくなってもうた。

しょうがないので、自前でブックマークレットを用意した。
海外のは色々と機能があったんだけど、
使うのはAuto Awesomeだけなので、それだけの機能しか付けてない。


javascript:(function(){
	$("#top-panel + div a").each(function(){
		if($(this).position().left == 370){
		var t, a = $(this),e = $.Event("click");
		e.pageX = 400;
		e.pageY = 600;
		setInterval(function(){
		var s = $("#songboard_title").text().split("-");
			if(s.length == 2){
				s = s[0];
			} else if(s[1].search(/^[0-9 :]$/) != -1) {
				s = s[2] + s[0];
			} else {
				s = s[1];
			}
			if(t != s){
				t = s;
				a.trigger(e);
			}
		},60000);
		}
	});
})();

仕様変更があったらすぐに動かなくなりそうですが(汗
その時はまた書いたらいいのさw

AutoAwesomeなブックマークレット
上のリンクをブックマークして、ルームに入ったらブックマークしたリンクを押すだけです。
部屋を移ったりしたら切れるので、再度押してください。

ではでは。

2011.06.25 | 

Event.ADDED_TO_STAGEのバグ?というメモを前にしたムーチョです。こんにちは。
暑くて脳細胞が熱暴走しそうですね。というかしてる気がします。
そんな中、ニューロンがヒートアップなことがあったのでメモ。

A:外部SWFをあらかじめ読み込んでおいて、ステージにaddChildしない。

B:Event.ADDED_TO_STAGEを設定したDisplayObjectをaddChildする。


class b extends MovieClip{
	private var a:Loader;
	public function b () {
		addEventListener(Event.ADDED_TO_STAGE, onAdded);
	}
	private function onAdded(e:Event) {
		addChild(a.content);
	}
}

BをステージにaddChildしたときには、当然Event.ADDED_TO_STAGEが発生するんですが、
Bの中にAをaddChildしても、 BでEvent.ADDED_TO_STAGEが発生するんです。
上のようなソースだと
onAddedでaを呼び出してaddChild

Event.ADDED_TO_STAGEが発生

onAddedでaを(以下省略
という現象になります。

さらに不思議なのが無限ループにはならず、ループは1度だけで終了します。
前回と同じく外部SWFってところが地雷原な感じです。

2011.06.21 | 

ども。チョイとはまったのでメモです。

jQuery.getJSONを使おうと思ったのだけど、
いっこうにコールバック帰ってこない。

なんや、JSONの時はkeyも「”」でくくらないといけないのか。。
{"key":"value"}
jQueryのパースで止まってたってことのような。
エラーも吐かず。

あと、「’」でくくるのもNGなんだってさ。
ふーん。

2011.06.21 | 

どうも、いまだにFacebookの中で迷子になるkaminalyです。

先週末ブックマークネタを投稿しましたが、
特にすばらしい発見だった、Wolfgang's Vault

このサイトは沢山のライブ音源やら、動画を無料で見せていただける。
音楽好きにはたまらないサイトです。
iphoneアプリやandroidアプリも無料で配布しています。
すばらしい。本当にすばらしい。

そして、もうひとつ、実は先週末から気になっていたサイト
turntable
についに入れたーー!やったー!
このサイトは、好きな音楽のプレイリストを作って、
DJ気分で音楽を流すという、ただそれだけなんですが、
なかなかどうして、日本では絶対に許されないようなサービスだし、
異国の人がどんな音楽を聴いているのか知れたりしてとても良いです。
スペイン語かポルトガル語圏っぽい部屋で
わたくしもDJしながら、今この記事を書いています。

このサービスを楽しむには、Facebookのアカウントを持っている人で、
なおかつお友達にturntableユーザがいないと中に入る事が出来ないんです。

はじめにこのサイトに訪れた時は、見事にはじかれてしまいました。
ともだち少ないのに、奇跡的に1人turntableユーザになっていて、
それに気がついた先週の金曜からだいたい音楽はここで聴いています。

いやぁ、本当に音楽っていいもんですね。
それでは、さよなら、さよなら、さよなら。。

2011.06.17 | 

こんばんはムーチョです。
PC用のサイトをスマートフォンで見る時ってありますか?
私はPCが使える環境ならスマートフォンのブラウザを使ってみることはしないんですが、
目の前にパソコンがありながらも携帯でブラウジングって方も中にはいるでしょう。
また、携帯でブラウジングしなきゃならない時、私は快適なブラウジングはできないもんだと
諦めていますが、快適になるならその方がいいでしょう。

携帯にもちょっと対応したページを作ろうとする時に
マウスとタッチインターフェースの差というのがひとつのネックになってきます。
というわけでタッチインターフェース用の分岐処理を実験してみました。
やっつけやっつけサンプルがこちら。ドラッグで左右にスクロール。

キモな部分だけ抜粋するとこんなソース。要jQuery。


// タッチデバイスかを判別
var isTouch = (document.ontouchstart !== undefined)? true : false;

$('#hoge').bind({
	'touchstart mousedown': function(e) {
		preventDefault(e);
		this.pageX = eventX(e);
		this.pageY = eventY(e);
	},
	'touchmove mousemove': function(e) {
		preventDefault(e);
		var pageXold = this.pageX;
		var pageYold = this.pageY;

		this.pageX = eventX(e);
		this.pageY = eventY(e);
	},
	'touchend mouseup': function(e) {
	}
});

// デフォルトの処理を無効にする
var preventDefault = function(e){
  if(e.preventDefault){
    e.preventDefault();
  }
  else if(window.event){
    window.event.returnValue = false;
  }
}

var eventX = function(e){
	return (isTouch)? event.changedTouches[0].pageX : e.pageX;
}
var eventY = function(e){
	return (isTouch)? event.changedTouches[0].pageY : e.pageY;
}

一応、IE6,7,8、FF3.6,4、Chrome、iPhone、Androidで動作確認。
にしてもこう対応ブラウザが増えると、ひとつのギミックを入れるのに、
どんどん工数が増えてそれはそれで問題な気もしないでもない今日この頃。