2009/08/31

[iPhone sdk]アプリ公開に関して

便利なサイトを発見してしまった。

目指せ!iPhoneアプリ開発エキスパート
第10回 App Storeでアプリを公開

こんな便利なサイトがあるなら最初から英語のドキュメントなんて読まなきゃーよかったよ。

相変わらず容量悪いなーっと自分を責め続ける今日このごろ。

2009/08/30

[photoshop]背景を一気に透明にする方法

背景を透明にするのにチマチマ消しゴムで消すのも大変だなーっと思い、一気に消す方法がないか調べてみた。

そしたら、こちらのページにありました。

消しゴムツールを押しぱっなしにすると、「マジック消しゴムツール」というのがでてくるから、それを選んで、消したい部分をクリックすると、クリックされた部分と色が似ている近隣が一気に削除されます。

さっそく試してみたのですが、すごく便利でした。

背景がすべて一色で統一されていると、一気に削除されるのですが、他の色が部分に入ってしまうと、それが残ってしまうので、後は、ノーマルの消しゴムで消していくのがいいのかなと思います。

是非、お試しあれ

2009/08/29

[javascript]gf_TimeFormatの修正

T.Sato君から、コメントいただいたので、さっそく検証してみることに!!

修正と言っても、もらったコメントとおり、「(」の位置をずらしただけ。

function gf_TimeFormat(aparam){
return (
function(astr){
return astr.substr(astr.length-2,2);
}("00" + aparam.toString())
);
}

おー、確かに、firefox3で動かすと、きちんと動作しました。

でも、なんで、動作しないのだろうか??
確か、JavaScriptの仕様だと「;」を最後とみなすんじゃーないのかなーっと思ってしまうのだが。

改行がネックになっているんだろうなー。
おそらく、改行したことにより、returnが終わってしまいましたと、JavaScriptが判断したのではないかと。

やはり細かいところまで把握しておかないと、こういう時に困ってしまう。

日々精進

2009/08/28

[mac]Snow Leopardにバージョンアップしたい

いよいよ、8月28日に新OS mac os x 10.6のsnow Leopardがリリースされます。

すでにNETAFULLさんは予約されているらしい。

ぼくは既にApple Storeでファミリーパックを予約しましたよ!

via:「Mac OS X 10.6 Snow Leopard」予約した?

OSの容量が軽量化されたみたいなのですが、今のよりも、少なくなるんでしたら、それに超した事はないですね。

だって、その分、いろいろデータが入るから!!

ファミリーパックと通常版があるみたいなのですが、違いがよくわかりません。





しかも、今、アマゾンのPCソフトランキングみたら1位だった♪
すっげー

2009/08/27

[JavaScript]0を00(2桁調整)にするファンクション

前回とちょっと内容が重複しているのですが、1桁の数字を2桁に返すファンクションを作成しました。
(firefox3で動作確認済み)

function gf_TimeFormat(aparam){
return ret =
(
function(astr){
return astr.substr(astr.length-2,2);
}("00" + aparam.toString())
);
}

引数が2桁の場合は、そのまま2桁で返します。

是非、お使いください。

2009/08/26

[JavaScript]無名関数(lambda)の戻り値

iPhoneのアプリを申請している間、少し時間があいたので、久しぶりにJavaScriptについて。

無名関数を使って引数を右から2文字取り出す関数を考えました。

function gf_TimeFormat(aparam){
return
(
function(astr){
return astr.substr(astr.length-2,2);
}("00" + aparam.toString())
);

}

これを下のように実行してみます。

alert(gf_TimeFormat(0));

本来ならば、「00」と表示して欲しいのですが、残念ながら「undefined」と返されてしまいました。

しかし、下記のように一度変数にセットすると、値が返されるのですが、理由がいまひとつわからないのです。

function gf_TimeFormat(aparam){
//aに結果を一度セットしている
return a =
(
function(astr){
return astr.substr(astr.length-2,2);
}("00" + aparam.toString())
);
}

変数にセットしないと関数が評価されないという仕様なのかなーっと、ひらきなおってみる今日この頃。

lambda奥深し!!

(追記)
firefox3で動作確認を行いました。

2009/08/25

[mac]mac os x 10.5.8にバージョンアッップ

いつの間にか、OSがバージョンアップしていた。

何がパアーアップしたのかなーっとちょっとぐぐってみると、

「外部装置、USB Web カメラ、プリンタによる Bluetooth の全体的な信頼性が向上しました」

via:「Mac OS X 10.5.8」リリース

とありました。

主に、外部機器関連の性能向上らしく、現段階では、あまり使い道はないけど、バージョンアップ自体は無料なので、まぁーいいかなーっと。



2009/08/24

[mac]Photoshop Elementsを購入

iPhoneアプリケーションのアイコンを作成したく、Photoshop Elementsを購入

なんといってもうれしかったのが、mac購入当初から、iPhotoがついていたので、アップグレード版を購入できたこと。

だいぶ安くすんだなー。

windowsってこういうサービスあったっけなー??

おそらくなかったような気が。。。

相変わらず、インストールにものすごく時間がかかりました。

photoshopってなんでこうもインストールに時間がかかるのでしょうか?
確かに、アプリが重たいからかもしれないけどさー。
でも、それって言い訳になっちゃうのかなー。
あそこまで遅いと、インストールが進行しているのか、止まっているのか、わらかなくなっちゃうよ。

あんなに遅いと、人によっては、毎回、毎回、「キャンセル」ボタンを押して、結局、インストールできないと思って、泣いちゃう人いると思うんだけど。

後、インストール完了後、アプリを立ち上げると、ユーザー登録を促す小画面が立ち上がるのですが、何も表示されず、そのまま固まってしまいます。

これってバグじゃーないのか??

この段階って、不具合っていいのでしょうか??

すっげー困って「強制終了」→「アプリ再起動」をしたのに、一向に解決されない。

仕方なく、アドビのアカウントを経由して、製品登録を行ったところ、小画面が表示されず、無事に解消されました。

まぁーパッケージをみると、

対応バージョンが、10.5.2までと書かれていたから、アドビに、クレームをあげても、「バージョンが対応していません」とか、なんとか言って、シカトしそうな気がするから、このまま何もしないけどさー。

ちょっとひどいよ。

もし、対応してくれたとしても「もう一度、再インストールを行ってください」とか言われたら、また長時間インストール作業に喰われてしまい、使い始めるまでに、いったい、何時間かかるんだよーってなります。

しかも、一回も使ってないのに、再インストールって。。。

最近、アドビ、不具合がちょっと多い気がする。

ColdFusionでも、バグあったしなー。

ちょっとよろしくないぞ。

2009/08/23

[mac]スクリーンキャストを撮影

ことごとくうまくいかなかった、YouTubeのアップロードまでの道のり。

このツールですべてが解消されました。

撮影したスクリーンショットを管理することができる「Copernicus」という、Mac OS X用のソフトがありました。試してみました。

via:スクリーンショットの管理ができるキャプチャソフト「Copernicus」

さらに上のコメントに追加するとフリーソフトでした。

Copernicus

というソフトです。

実際に撮影してできたファイルが「mov」形式だったので、そのまま、そのファイルを使って、無事にYouTubeにアップロードできた次第です。

というか最初からこのツールを使っておけばよかったかなと。

ちょっと難点なのが、YouTubeにアップロードが完了するまでに、4時間ぐらいかかってしまったこと。

たぶん、これはツールの問題ではなく回線速度の問題かなと思っています。
こればかりはしょーがないかなと納得させました。

2009/08/22

[iPhone app]実機上でテストする時の注意点2

Development Provisioningからファイルのダウンロードを行い、Xcodeのオーガナイザでファイルを選択するのですが、選択しただけではダメで、ファイル上でダブルクリックする必要があるようです。

これをしないと、コンパイル時にエラーが発生してしまいます。

「Code Sign error: a valid provisioning profile matching the application's Identifier...」みたいなが発生します。

このエラーを取り除くために何時間も悩んでしまいました。

詳しくは、

XcodeからビルドしてiPhone実機へ転送し実行するまでの手順

に記載されています。

このエントリーのおかげで実機でテストできました。

id:ichiro_tanakaさん

good job

です。

2009/08/21

[iPhone app]実機上でテストする時の注意点1

注意する箇所がいくつかあったので、個々にエントリーを書いていこうかなと。

ProgramPortalサイトに入って、CertificatesセクションにあるDevelopmentタグのAction欄からcerファイルをダウンロードを行うのですが、Actionのステータスが変わるのに結構、時間がかかります。

すっげーせっかちなので、同じ操作を何回も繰り返してしまい、さらに、ステータス変更後、取り消し処理を行うのに、さらに時間をかけてしまったので、トータルで2倍以上の時間がかかったかなと思っています。

なので、注意するべきこととして、一度、「Approve」を押したら、しばらく待つことをおすすめします。

2009/08/20

[iPhone sdk]実機で動作確認

及びテストができました。

まじで超感動。

そこでいくつか注意点があったので、改めてまとめていきたいなーっと思っています。

とりあえずまで

[iPhone sdk]iPhone Developer Program購入完了

[iPhone][iPhone Developer Program]iPhone Developer Programの登録時の注意点を参考にしながら、
iPhoneデベロッパプログラムの登録が完了しました。

これで、実機上で開発ができるぞと。

手続きを円滑にすすめていただいた、appleご担当者様お疲れさまです。

大変助かりました♪

2009/08/19

[iPhone app]CoordinatesGetter1.0.0完成

実は、だいぶ前に一つアプリが完成しておりました。

名付けて「CoordinatesGetter」(ver 1.0.0)

言葉で書くよりまずは見ていただくことにしましょー。



これは、window(Objective-CならばUIView)の座標を取得するためのアプリです。

クリックすると(iPhoneでいうところの指でタッチ)座標が表示され、そのままスライド(iPhoneでいうところの指でタッチしながらスライドさせる)させると座標が変化します。

iPhoneのアプリケーションは、Java Appletのように座標を指定してGUIを配置していくので、そもそも、各座標の位置って具体的にどこらへん?という疑問が漠然とあったので、練習として作成しました。
(おそらくInterface Builderを使えば、この問題に悩まされる事はないと思うのですが)

このアプリは今のところ、公開するつもりもないので、あくまで個人用として使っていく予定です。

しかし、やっと、iPhoneのエミュレーターの動画をYouTubeにアップロードすることができた。
アップロードまでの道のりはまた別途書く予定です。

2009/08/18

[cshell]ftp中のコメントについて

cshellでftpコマンドを使う場合に、ftp中にshellのコメントを入れるとエラーになるみたいです。

ftp -n bar.com << _test
user test_user test_password
lcd /bar1
cd /bar2
・・・ちょっと省略・・・

#define

get foo.txt
bye
_test


#defineはコメントなのですが、上を実行すると、エラーになります。

cshellで使われる変数は評価されるみたいなのですが、うーん、ちょっとうなずいちゃうな。

まーいつも通り気にしなきゃーいいんだけど。

2009/08/17

[Objective-C][iPhone sdk]UITableViewControllerの不思議さ

改めて、iPhone sdkに関する昔に書いた日記を読んでみると、不思議なエントリーが見つかった。

以前、iPhoneに表を出力する方法として、表を作成を書きました。

その一部のソースを引用します。

 set_table *tableViewController =
[[set_table alloc] initWithStyle:UITableViewStylePlain];
tableViewController.names = [[NSArray arrayWithObjects:
@"hoge1"
, @"hoge2"
, @"hoge3"
, @"hoge4"
, @"hoge5"
, @"hoge6"
, @"hoge7"
, @"hoge8"
, @"hoge9"
, @"hoge10"
, nil
]retain];

[window addSubview:tableViewController.view];
// Override point for customization after application launch
[window makeKeyAndVisible];

で、問題となったのは、これだけしかしてないのに、なぜ、表として表示されてしまうのだろうか?(正常終了している。)


つまり、プログラムとして表のセクション数を設定する、

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView



1セクションあたりの行数を決める、

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

など、

さらに、セルにどのようなデータを表示するかを設定する

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

を直接呼び出してないのに、きちんと表が作成されている。

なぜか???

こういう仕様だからと納得してしまえば楽なのですが、なかなかそうもいかず、回答を考えてみようかなと。

リファレンスを読んでみる限り、nibファイルが存在しない場合や仮にnibファイルが存在していたとしてもdata sourceやdelegateが存在しない場合、自分自身のクラスにあるメソッドをコールしてしまうのだと。

だから、平気でprotocolにあるメソッドをオーバーライドすればいいわけだし、かつそれが実行されるというわけだ。

それではいつ実行されているのか?

initWithStyleメソッドでこれらの処理が呼び出されていない可能性がある。

なぜなら、配列(上の処理ではnames)を設定しているのが、初期化が終了した後だからだ。
(ひょっとしたら、セクションの設定、各セクションごとの行数の設定は初期化の際に行われているかもしれないが。)

リファレンスを読んでみての感想ですが、おそらくUIViewControllerに定義されているloadViewメソッドが暗黙に呼ばれた際に、上のメソッド郡が実行されているのではないかと推測される。
(UIViewControllerはUITableViewControllerクラスの親クラスなので)

ここら辺は、まだまだ勉強不足なので、経験でカバーしていきたいです。

しかし、htmlのtableタグとは難易度が雲泥の差だな。

2009/08/16

[c][Objective-C]メソッドとファンクションの使い分け

表題の通りなのですが、アプリを作っていて、ちょいちょい悩んでしまうのが、「メソッド」と「ファンクション」との使い分け。

実は、Javaと違ってObjective-CはC言語のファンクションを使うことができます。

なので、あるメソッドorファンクションを作成しようとする際に、どちらを採用していいのか判断に迷うところがあります。

この件に関して、「これ」といった答えはないと思いますが、経験で養っていくしかないのかなと。

2009/08/15

[iPod touch]wifi接続ができない

今、先ほど、宅内無線Lanでwifiが接続できなくなりました。

接続できなくなったのは、iPod touchで、mac bookは接続できるみたい。



で宅内無線LANには、coregaのCG-WLR300Nを使用しているんですけど、原因がなぜかわからない。。。



で、確実に、無線LANではなくてiPod touchが原因なんだと思い、おもいきって、「リセット」→「ネットワーク設定をリセット」を選択して再度、LANのパスワードを設定すれば、接続することができました。

この手の問題も一度はまってしまうと、泥沼にはまってしまうので、超注意したいです。

解決するのに4時間もかかってしまったバカバカしぃ。

突然、接続できなくなったら、まずは、この作業を行うことをおすすめします。

いきなり、「すべての設定をリセット」を選択してしまう前に。

2009/08/14

[mac]ScreenCastにアップロード

Jingからスクリーンキャストを撮影し、撮影でできたswfファイルを、直接、Screencast.comにアップロードすればいいのではないかと思い、「share」ボタンをクリックしたのですが、ステータスが、「preparing upload」から変化が起こらない。

ブロードバンド接続じゃーないとアップロードできないのだろうか?
なんでアップロードできないのだろうか?

ちなみに、先ほど、テストしたところ、ftpで自分のサイトにアップロードしてhtmlタグでブログに組み込んだところ、swfファイルを再生できたみたい。

この手の問題は、一度、ハマッてしまうと中々抜け出せなくなってしまうんだよねー。

後、ファイル変換の件ですが、どーやら、swfファイルはflashのファイルなので、変換できたものの、真っ黒い画面で何も表示されませんでした。

最終的な解決方法として、

1:JingProにアップロード
2:ftpで自分のサイトにアップロード

ぐらいかな。

うーん、自分のサイトにアップロードは、あまりしたくないんだよねー。
関連性がないから。

何かもっといい方法はないのだろうか??

2009/08/13

[Objective-C][iPhone sdk]drawRectを使った再描画

前回、CoreGraphicsを使って円を描画したのですが、その時に、drawRectを経由して、描画を行いました。

これは初期表示の際は、これでいいのですが、途中で再描画を行いたい場合は、どうすればいいのかなーっと思い、ちょっと調べてみました。

■[iPhone] 描画基礎に記載されていましたが、UIViewクラスのsetNeedsDispay setNeedsDisplayメソッド、もしくはsetNeedsDisplayInRectメソッドを使えばいいみたいです♪

確かに、メソッドをコールしてみたところ、再描画が行われました。

一件落着♪

2009/08/12

[C]16進数に変換する

関数ってC言語にないのかなー。

ちょっと調べているんだけど、なかなかみつからないんだよね。

確か、JavaScriptにはtoStringがあって、これを使えば、即座に変換できたんだけどー。

もうちょい深く調べてみるかー。。。

2009/08/11

[C]四捨五入

最近、Objective-Cよりも、C言語に触れ合っている時間の方が長いのではないかと思う今日この頃なのですが、四捨五入をしたい局面があって、やり方を調べました。

四捨五入 round
double rint(double x)

via:2 既製品の数学関数

ポイントは、double型というところかな。

もともとの型がint型などdouble型以外の場合は、キャストを行えばいいと思うのですが。

だんだん、C言語を知ってないとヤバい状況になってきました。

2009/08/10

BatchDOO!を試してみる

前回、QuickTimeProにアップロードしても、swfファイルに変換できなかったので、windowsのフリーソフトで変換しようかなと。

ベクターからBatchDOO!ダウンロードしてインストールを行ったのですが、うまく変換できなかったなー。。。

orz

手順としてはこう

1:macのJingでスクリーンキャストを撮影
2:USBメモリーでwindowsにファイルを移動させる
3:BatchDOO!でファイルを変換(失敗。。。)

エラーメッセージとして、「ファイルが壊れています」といわれてしまうのですが、macではきちんと再生できるんですよね。

原因をさぐりながら、もしダメだったら、もう一つフリーソフトダウンロードしたので、そちらで検証を行ってみたい。

2009/08/09

[C]C言語におけるキャスト

ある型を違う型と見なして値の設定を行えるキャストですが、こちらのサイトを参考にさせていただいた限り、C言語の場合も、Javaと同様に、

(変換したい型)変換したい変数

でいけるみたいです。

むしろ、JavaがC言語の仕様をぱくっている可能性がありそうだなー。

2009/08/08

[mac]半角カタカナに変換

前回、全角カタカナに変換する方法を調べたのですが、今回は半角カタカナについて調べることにしました。

基本的には、Mac OS Xで半角カタカナ入力に記載されている方法でいいみたいです。

つまり、

■アップルメニュー→「システム環境設定」→「言語環境」の「入力」パネルを開いて、「半角カタカナ」にチェックを入れます。

via:Mac OS Xで半角カタカナ入力

で、この通りに操作すると無事に半角カタカナを入力することができました。

めでだし、めでたし。

2009/08/07

[oracle]自動オプティマイザに関して

ひさしぶりのoracleネタ
実は、だいぶ前に、oracleの研修に参加しました。
その際に、oracle 10gから自動的にオプティマイザがかかることを知ったのですが、その確認方法がわからなかったので、ちょっと調べてみることにしました。

まず初めに、[Oracle] オプティマイザ統計情報の収集は基本的にOracle任せでOKを参照すると、

中でも一番便利になったのは、デフォルトで1日1回オプティマイザ統計情報の自動収集が行われるようジョブがスケジューリングされるようになったことです。(※)

※ STATISTICS_LEVEL初期化パラメータが'TYPICAL'または'ALL'の場合に設定されます。(デフォルトは'TYPICAL')

via:[Oracle] オプティマイザ統計情報の収集は基本的にOracle任せでOK

この※以降がとても大事。

では、次に起こってくる疑問は、「STATISTICS_LEVEL初期化パラメータの確認はどうすればいいのでしょうか??」という疑問だが、これは、ここのサイトを見る限り、下記のコマンドでいけるんじゃないかと。
show PARAMETERS STATISTICS_LEVEL

キタ。

valueにTYPICAL or ALLが表示されるかと思います。

確認がとれたら後は、[Oracle] オプティマイザ統計情報の収集は基本的にOracle任せでOKで紹介されているsqlを使えば確認できます。

ちなみに、Oracle10gR1 の STATISTICS_LEVELCommentsAdd Starのサイトにありましたが、STATISTICS_LEVEL初期化パラメータが「BASIC」だと自動オプティマイザが働くなるみたいです。

用心、用心。

2009/08/06

[Objective-C][iPhone sdk]CoreGraphicsを使って図形を表示

Cocoa touchフレームワークの一つ下に位置するCoreGraphics Frameworkを使って図形を表示してみたいと思います。

まずは、単純に円を表示してみよかなーと。

Delegate.mを以下のよーにしました。

TestView *testview = [[TestView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
//円をiPhoneに描くメセッドをコール
[testview drawCircle];

[window addSubview:testview];
[window makeKeyAndVisible];

TestViewクラスは、次の「TestView.h」「TestView.m」で定義、実装を行いました。
/***************************************
TestView.h
***************************************/
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>

@interface TestView : UIView {

  CGContextRef cgContext;
}

-(void)drawCircle;
@end

/***************************************
TestView.m
***************************************/
#import "TestView.h"

@implementation BustView

- (id)initWithFrame:(CGRect)frame {
  if (self = [super initWithFrame:frame]) {
    // Initialization code
  }
  return self;
}


- (void)drawRect:(CGRect)rect {
  // Drawing code
}


- (void)dealloc {
  [super dealloc];
}

-(void)drawCircle{
  //現在のグラフィックスコンテキストを取得
  cgContext = UIGraphicsGetCurrentContext();

  //ストロークカラーの設定
  CGContextSetRGBStrokeColor(cgContext, 1.0, 1.0, 1.0, 1.0);
CGContextSetLineWidth(cgContext, 2.0);

  //カレントポイントから指定した座標に向けて線を引く
  CGContextStrokeEllipseInRect(cgContext, CGRectMake(10.0, 10.0,10.0,10.0));

  //パスに円を追加
  CGContextAddEllipseInRect(cgContext, CGRectMake(30.0, 30.0, 60.0, 60.0));

  //画面に描画
  CGContextStrokePath(cgContext);

  return;
}

@end

実装したのは、drawCircleというメソッドだけで他は、UIViewのデフォルトのままで何も変更していないです。

で、これを実行してみると何も表示されませんでした。

参考にしたのは、以前紹介したこの本です。



なんでかなーと思い、ぐぐってみると、プログラマメモ2: Core Graphicsの練習のためにで、CoreGraphicsを使った図形表示の例が記載されていたのですが、同エントリーで記載されていたsetContentViewメソッドがどーしても、リファレンスを漁っても見つからなかったので、紹介されている方法を断念しました。

で、ひょっとしたら、ひょっとしたらと思い、drawRectメソッドに処理を組みこんだら、なーんと理由はわかりませんが表示できました。

最終的には、このような感じになりました。

Delegate.m
TestView *testview = [[BustView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];

[testview drawRect:CGRectMake(1000, 10000, 1000, 1000)];

[window addSubview:bustview];
[window makeKeyAndVisible];


TestViewクラス
- (void)drawRect:(CGRect)rect {
  // Drawing code
  cgContext = UIGraphicsGetCurrentContext();

  //ストロークカラーの設定
  CGContextSetRGBStrokeColor(cgContext, 1.0, 1.0, 1.0, 1.0);

  //カレントポイントから指定した座標に向けて線を引く
  CGContextStrokeEllipseInRect(cgContext, CGRectMake(30.0, 30.0, 60.0, 60.0));

  //ここまで引いた線を画面に描く
  CGContextStrokePath(cgContext);
}

自作したメソッドだと表示されずに、drawRectだと表示されるのは、何故なのだろうか?

中身が同じまったくといっていいほど変わらないのに、何か納得いかない。
こうして書いてみると、ひょっとしたら、引数にCGRectを渡すのだが、これがないために、表示されないのかなと思ったりしました。

とりあえず、またこれにばかり気を取られてしまうと、先に進めなくなってしまうので、とりあえず納得したいと思います。

実行結果はこのようになります。

Photobucket

しかし、一つレイヤーの低いframeworkを使うだけで、もうCラッシュとは。
core graphics frameworkとか言ってほとんど関数だったしなー。

改めてC言語って大切なんだなーっと。

2009/08/05

[mac]swfに変換できない

何???

QuicktimeProを使ってswfファイルを他のファイルに変換できない。

どうしちゃったの??
できるんじゃないの??

変換できるから、嫁に怒られつつも、浮いたガス代をそっくりそのまま投入したんじゃーないのか。

そんな葛藤をしつつも、変換できる空気が一切流れてこない。

そもそもswfファイルを開くことすらできない。

しかも、環境設定画面で、MIMEタイプの項目でどのタイプのファイルに対応させるのか一覧としてでてくるのですが、swfファイルがない。

もしかして、もしかして、swfファイルに対応してないじゃー。

と思って、調べてみると、なんと、なんと、

TECH BEAT!! 3.0: QuickTime 7.4以降、SWFは非対応になりました

であるじゃないっすか!!

同ブログによると、QuickTime 7.4以降、swf再生できないみたいです。

確かに、仕様のページを見ると記載されていない。。。

やべ!!

最終的な結論として、できねーってことじゃん。

うわー買わなきゃよかったなー。
でも、macに内臓されているカメラを使ってビデオ録画できるから、それを買ったと思えばいいかなーっと。
後、iPodなどに対応するために、色々なファイルに変換できるみたいだし。

ってことは、swfファイルを他のファイルに変換するには、windowsを使わなければいけないのか。

ちょっとそれはヤダナー。

家にいる時まで、windowsにはちょっと。

[mac]QuicktimeProにバージョンアップ完了

だいたい30分ほどで購入とバージョンアップまでが完了しました。

方法はこちらにきちんとまとめられていて、メールで送られてくる情報を環境設定で入力すれば基本問題ないみたいです。

やっと、これで変換できるぞと。

[mac]swfファイルが変換できるかも

前回、スクリーンキャストで録画した動画がYouTubeにアップロードできなかったことを書きました。
(原因としては録画されたファイル形式がswfファイルでそれがYouTubeに対応できていなかったから。)

まいったなーっと思ってぐぐってみると、同じ質問をしている人がここにいました。

Mac版のswfファイル変換ソフトは?

swfファイルを他の動画ファイル形式(movやaviなど)に変換するには
どのソフトを使ったら良いですか?

Windows版のフリーソフトはあるようですが、Mac版が見付かりません。
手もとに、Flash 8やAfter Effectなどのソフトはありますが・・・。

via:Yahoo知恵袋

に対する回答がこちら

最近のQuickTimeでしたら.swfを読み込めるので、Pro版にすれば他の形式に書き出す事が出来ます。

via:Yahoo知恵袋

なるほど!!QuickTimeをProにバージョンすれば変換できるのかー。

で、どこでバージョンアップを購入できるのかというと、AppleStoreのQuickTimeProの購入ページがあるのでそこで購入すればいいみたい。

ちなみに値段が3400円と結構すんなー。

でも背に腹は変えられない。

いざ出陣!!

2009/08/04

[本]楽しく学べるJavaゲーム・アプレット[第二版]

第三版じゃーないよ、二版だよ



1章 Javaって何?
(Javaの誕生Javaの特徴いろいろなJava ほか)
2章 Javaゲーム・アプレットの作り方
(まばたきアプレットソースの書き方
熱帯魚アプレット ほか)
3章 いろいろなJavaゲーム・アプレットに挑戦
(ブロックくずし
ブラック&ホワイト
ブロック落とし ほか)

via:目次

当初、業務でJavaアプレットを使うので、その勉強用として購入した本だったのですが、まさかiPhoneのゲーム開発用書籍として利用するとは思わなかった。

オブジェクト指向で書いてあるのかなーっと思っていたら、意外や意外にプロシージャー指向で書かれていたので、さほど難しくなかったです。

若干、スレッドの処理やアプレット特有の処理があるので、初心者には若干敷居が高いんじゃーないのかなーっと思いましたが。

著者はJava初心者を対象にしているせいか、若干、ソースが冗長に感じられました。
特に、オセロの処理ではそれが強く感じられた。

また、wordを使って書いているのか、本来、小文字のところが大文字になっているため、そのまま書いてしまうと絶対にコンパイルエラーになってしまうところが見受けられたので要注意。

アマゾンレビューでは第三版が酷評されていたので、第二版を選んだのですが、無事に全部動きました。
後、サポートサイトは閉鎖してほしくなかったです。

サンプルプログラムで使われた画像がダウンロードできたそうなのですが、閉鎖されていたおかげで、全然ダウンロードできなくてポーカーの画像を作るのにかなりの時間を要してしまった。

復活を祈ります。

ゲーム開発関連書籍は本作が始めてだったのですが、いい出だしだと思いました。

2009/08/03

[mac]スクリーンショットとキャストを撮影Jing

iPhoneのエミュレーターの動きをブログ上で紹介したいなーっと思っていて、デスクトップの動き(スクリーンキャストと呼ぶらしいです)を撮影するツールをいくつか探してみたところ、

NETAFULLさんの
スクリーンショット&キャスト撮影のナイスなツール「Jing」
スクリーンショット&キャスト撮影の便利ツール「Jing Pro」リリース
のエントリー及び
MOONGIFTさんの
Flashムービー形式でデスクトップ録画「JING」
のエントリーから、Jingというツールを使おうかなと思いました。

Jing Proというツールもあるらしく、これは有料なのですが、普通のバージョンは無料なので、ありがたく使わせていただくことに。

これで、デスクトップの動きを動画にできるので、Youtubeにアップロードを行い、記事として紹介できるぞと。

と思って、土日かけて、試してみたのですが、Youtubeにアップロードできない。。。

orz

ヘルプを見ると、swf形式で作成したファイルは、アップロードできるみたいに書かれていたけど、実際できないみたいです。

うーん、困ったなー。。。

どうしようっといった感じです。

ぐぐってみると、flashがあれば解決できるみたいなのですが、たっかいんだよなー。
(か、JingをProにアップグレードするとか)

もっと何か、いい解決方法はないもんですかね??

2009/08/02

[Objective-C][iPhone sdk]image表示の際の位置とは

[Objective-C][iPhone sdk]imageの位置指定して表示にて、位置を指定して、画像を表示するエントリーを書いたのですが、追加があります。

CGRectMake()ファンクションを使って、表示位置を指定する際に第一引数にx座標、第二引数にy座標を設定するのですが、その点は、ちょーど画像の左上側にきます。

前回作ったサンプルプログラムの実行結果はこのような感じになるのですが、ちょーどジェシカアルバの左上が、原点となります。

Photobucket

あくまで画像の左上なので注意したいところかなと。
(間違っても右下じゃーないよ。)

こうしてみると、本当に、ジェシカアルバって美人だよなー。

家内も、この人だったら浮気してもいいと公認してくれるほど。
確かに、結婚していなかったら、こういう人と付き合いたかったと高校の時から空想していたような。

上の画像は、幸せのセラピーという映画でダウンロードしてきた画像。
マジ美人だよー。

ただiPhoneでジェシカを見たかっただけじゃないのかと自問自答する今日この頃。

2009/08/01

[C]if文について

Objective-Cでif文を使う時が最近あるのですが、ifの使い方は、Cと同じなので、ちょっと使い方を調べてみた。

こちらのサイトを参考にさせていただいた限り、

if(){
・・・
}else if(){
・・・
}else{
・・・
}
でいいみたい。

なんで、わざわざ書いたかというと、特にelse ifの部分。

ほとんどの言語が、この表記の仕方でいけると思うのですが、oracleのpl/sqlではelsifとeが抜けている表現で、同様にひょっとしたら、ちょっと変わった表現をするのかなーっと不安に思ってしまったので、念のために調べた次第であります。

また、andにあたる部分と、orにあたる部分は、それぞれ、JavaScriptと同様に、
&&

||
でいけるみたいです。

equalは==で
not equalは!=でオッケー♪
(JavaScriptは、上記に加え、===と !==もありますが)

こうしてまとめておけば、後で困る事はないぞと。