2011年7月22日金曜日

送信確認のためbccでGmailに送ると「送信済みメール」に入っている件

outlookExpressで送信、bccにGmailアドレスをいれると、
なぜか送信済みに入っている。

以下で詳しく解説してくれている。
http://www.vi2tto.jp/entry/20110112126.php

アカウントで送信用のアドレスとして設定しているメールアドレス(通常他のメーラーで使っている自分のアドレスだね)からメールが届いた場合、自動的に「送信済み」に入る仕様らしい。
手動になれているので少々混乱

2011年7月21日木曜日

androidではMouseEvent.CLICKではなくMouseEvent.MOUSE_DOWNを使う

画面タッチのときの挙動が不安定だと思ったので、MouseEvent.CLICKをMouseEvent.MOUSE_DOWNへ切り替えたところうまく動くようになった(みたい)。従来MouseEvent.MOUSE_DOWNはドラッグの前処理的な扱をしていたのだが、通常サイトでもandroid携帯への表示を考慮するならば、ボタンに設定されていたクリックをすべて変更する必要がある

2011年7月20日水曜日

javascriptでのクラス設定

http://jsdo.it/clockmaker/particleにおける冒頭のクラス定義

// -----------------------------------------
// クラス定義
// -----------------------------------------
/**
* パーティクル
*/
function Particle() {
  // コンストラクタを呼び出し
  this.initialize.apply(this, arguments);
}
Particle.prototype = {
  /** コンストラクタ */
  initialize: function(x, y) {
    this.x = x;
    this.y = y;
  },
  x : 0, // X座標
  y : 0, // X座標
  vx : 0, // X方向の速さ
  vy : 0, // Y方向の速さ
  next : null // LinkedListの参照
};
につき調査


以下が詳しい
http://blog.livedoor.jp/aki_mana/archives/2383135.html

function Particle(){
}
でとりあえずクラスを生成し、
中味についてはprototypeを用い後で設定する、ということか?

2011年7月17日日曜日

iPhoneやandroid携帯でロード後URLバー分自動で下げる

iPhoneやandroid携帯でロード後URLバー分自動で下げると表示領域が広がり、かつ雰囲気がいい。

jQueryを組み込み、以下指定する
setTimeout("scrollTo(0,1)", 100);

実装はこんな感じ

// JavaScript Document
$(document).ready(function(){
init();
});

function init(){
setTimeout("scrollTo(0,1)", 100);
}

CSS:背景画像(background)の中央配置

以下で詳しく解説していくれている
http://kumacrow.blog111.fc2.com/blog-entry-296.html#bg-position
background-positionに以下の指定を行う。

  • left top
  • left center
  • left bottom
  • center top
  • center center
  • center bottom
  • right top
  • right center
  • right bottom

ブレゼンハムの直線描画アルゴリズム

wonderFLにて使用されている。
bitmapにCPUにあまり負荷をかけずに直線を描画するためのロジック。
まじめに直線を書こうとすると直線をxの長さと、yの長さに分解し、角度を計算するなど三角関数を使用するが、これはとても負荷がかかる。
しかもピクセル描画すればいいので、厳密に計算しても意味なない。
そこで簡便な計算方法を用い描画を高速させている。

以下その手法


◆縦移動より横移動の方が多い場合=(x1-x0)>(y1-y0)の場合
1.横移動は必ず行う
2.縦移動は移動距離がおおきかったら行う。
3.少なかったら行わない。
4.本来行うべきなのに行わないので誤差がでる。その誤差を貯めておく。
5.ためた誤差が一定の数値を超えたら縦移動する

◆横移動より縦移動の方が多い場合(x1-x0)<(y1-y0)の場合
上記縦と横を入れ替えて同じ計算を実施する
ソースはこんな感じ


package {
import flash.desktop.NotificationType;
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.geom.Point;

public class Blesenham extends Sprite {
private var _canvas:BitmapData;
private var point_0:Point;
private var point_1:Point;

function Blesenham() {
//set canvas
_canvas = new BitmapData(stage.stageWidth , stage.stageHeight , false , 0x000000);
addChild(new Bitmap(_canvas) );
//set event
stage.addEventListener(MouseEvent.MOUSE_DOWN , onMousedown);
}
private function onMousedown(event:MouseEvent):void {
var target:MouseEvent = event.currentTarget as MouseEvent;
//イベント引き継ぎ
if (point_1) {
//二つポイントがある 描画取り消し
point_0 = null;
point_1 = null;
_canvas.fillRect(_canvas.rect , 0x000000);
}else if(point_0){
//1つポイントがある 二つ目を登録し描画
point_1 = new Point(mouseX , mouseY);
_canvas.setPixel(mouseX , mouseY , 0xFF0000);
_drawLine(point_0.x , point_0.y , point_1.x , point_1.y , 0xFF0000 , 1.0);
trace(point_1);
}else {
//1つもポイントが無い
point_0 = new Point(mouseX , mouseY);
_canvas.setPixel(mouseX , mouseY , 0xFF0000);
trace(point_0);
}
}
private function _drawLine(x0:int , y0:int , x1:int , y1:int , color:int , alpha:Number):void {
var steep:Boolean = Math.abs(y1 - y0) > Math.abs(x1 - x0);//x移動より y移動の方が大きい
/*
* こんな感じだとtrueになる
* ■
*  ■
*   ■
*    ■
*/
var tmp:int;
if (steep) {
//x移動より y移動の方が大きいときはxとyの値を入れ替えるそして書くときも入れ替える
//計算手順の簡略化のためかも。
tmp = x0;
x0 = y0;
y0 = tmp;
tmp = x1;
x1 = y1;
y1 = tmp;
}
if (x0 > x1) {
//①マイナス向けに移動してたらx0とx1を入れ替える→右から書こうが左から書こうが同じだよってことか
tmp = x0;
x0 = x1;
x1 = tmp;
tmp = y0;
y0 = y1;
y1 = tmp;
}
var deltax:int = x1 - x0;//横距離を計算 ①で入れ替え計算しているので必ず正になる
var deltay:int = Math.abs(y1 - y0);//縦距離を計算して絶対値化
var error:int = deltax / 2;//x移動距離の半分?これを誤差とみなすのだろうか
var ystep:int = y0;
var y:int = y0;
if (y0 < y1) {
//正方向なら1
ystep = 1;
}else {
//負方向なら-1
ystep = -1;
}
for (var x:int = x0; x <= x1 ; x++) {
//xは必ず1ずつ動かす このために①でx0とx1を入れ替えてた あとはyのことだけ考慮すればよい
if (steep) {
//steepがtrueってことはxとyが入れ替えられている → 描画もyとxを入れ替える
//_canvas.setPixel32(y , x , color | ((alpha * 0xff) << 24)  );
_canvas.setPixel32(y , x ,  ((alpha * 0xff) << 24) | color   );
}else {
//_canvas.setPixel32(x , y , color | ( (alpha * 0xff << 24)  ) );
_canvas.setPixel32(x , y , ( (alpha * 0xff << 24) | color ) );
}
error = error - deltay; //x移動距離の半分(=誤差)からy移動距離(絶対値)を引く 誤差をためておく
if (error < 0) {
//yの増分がxの増分半分を超えたらyをひとつ移動させ、マイナスになってしまったエラーにまたx増分を足す。以降繰り返し
y = y + ystep;
error = error + deltax; //誤差に横全移動距離を足し、新たな判定基準にする
}
}
}
}
}

2011年7月11日月曜日

INFOBAR 謎の音が鳴る

アラームでもスケジュール通知でも無く。
2011.7.10 12:53 infobarが鳴るピピピピツ、ピピピピツ4連続×2回の電子音が鳴る。

原因不明。ネットでも二人ほどいるみたい。
auショップでも首をかしげるばかり。

ブレゼンハムの線分描画アルゴリズム

http://www5f.biglobe.ne.jp/~kenmo/program/SLG/bresenham/bresenham.html
の解説がわかりやすい。

Flash ライブラリ stats

メモリ使用状況などを表示するライブラリ。
wonderFLで左上に表示されているモノ。
元あった場所(http://code.google.com/p/mrdoob/wiki/stats)には既に無く、
http://code.google.com/p/mrdoob/source/browse/trunk/libs/net/hires/utils/?r=109からエディタに貼り付け作成。

2011年7月10日日曜日

Eメール受信したときの音量

着信音じゃなくて通知で変わる。少々紛らわしい。

メール再振り分け

受信メールと、作成したフォルダでのボタン押したときの内容が異なるから少しややこしい。
実際にその作成したフォルダに入ってからMENUボタン->フォルダ管理を押すと、項目が増えている。その中の一番下、再振り分けを実施する