トップページ⇒tech
1001コメント348KB

iモード携帯電話用Java(iアプリ) Part 5

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
NTT DoCoMoのiモード携帯電話用Javaに関する話題を扱うスレッドです。
DoCoMo以外は下記スレへ。

CLDC+MIDP+携帯電話用Javaスレッド part 2
http://pc5.2ch.net/test/read.cgi/tech/1070858996/

過去スレ
Part 1 http://piza2.2ch.net/tech/kako/975/975428633.html
Part 2 http://pc3.2ch.net/tech/kako/1000/10007/1000723476.html
Part 3 http://pc2.2ch.net/test/read.cgi/tech/1040898596/
Part 4 http://pc5.2ch.net/test/read.cgi/tech/1067139509/
0002デフォルトの名無しさんNGNG
■ DoCoMoの公式サイトと、その他開発に必要なもの

iアプリコンテンツの作成について
http://www.nttdocomo.co.jp/p_s/imode/java/index.html
Java[tm] 2 Platform, Standard Edition v 1.4
http://java.sun.com/j2se/1.4/ja/
CLDC仕様書 日本語版
http://java.sun.com/products/cldc/docs/CLDC1.0_ja_docs.zip


■ 機種依存情報

ん・ぱか工房
http://www.saturn.dti.ne.jp/~npaka/
Overflow! さかきけいのページ(504iまでの機種依存情報つきAPIリファレンスあり)
http://godwood.allnet.ne.jp/vioret/
KVM Mark(ベンチマーク)
http://www.seckey.net/iappli/KVMMark.html
0003デフォルトの名無しさんNGNG
■ アプリを省サイズ化するツール(Obfuscator、Optimizer)

Java Blender
http://web.yl.is.s.u-tokyo.ac.jp/amo/JavaBlender/
jarg - Java Archive Grinder
http://jarg.sourceforge.net/


■ 主なアプリ配布サイト

ギガアプリ
http://g-appli.net/
アプリ★ゲット
http://appget.com/pc/
Kajas
http://www.kajas.com/


■ 関連板

携帯アプリ板
http://news6.2ch.net/appli/
携帯・PHS板
http://etc.2ch.net/phs/
0004デフォルトの名無しさんNGNG
>>1
乙です。

ところでP900iでパレットチェンジ(Palette#setEntry)が
やたら遅いんですけど。
(setEntry使う/使わないで2倍ぐらい速度差がある)
手元にはSHとPしかないんですがSHは問題ない速度です。
他にパレットチェンジが遅い機種ってありますか?
0005デフォルトの名無しさんNGNG
>>4
そもそも無い機種もある
0006デフォルトの名無しさんNGNG
色変えはバイナリでGIFパレット部を書き換えて読み込ませるのがよい。
0007デフォルトの名無しさんNGNG
>>6
4は表示させたままパカパカ色変えする
みたいな使い方じゃないのか?
0008デフォルトの名無しさんNGNG
それは厳しいですな。
つーか携帯アプリ、画面モード256色にできれば色々おもしろのにねー。
0009デフォルトの名無しさんNGNG
>>4
動的にパレットを変えるような使い方は想定外臭い
なんだそりゃって感じだが
00104NGNG
>>5-9
ありがとうございます。

ドラクエは海動かしたりタイトルとか町移動とか
結構使ってるんで大丈夫なのかなと思ったのですが
フレームレートも低いし1パレット変更してるだけっぽいので
あのぐらいがギリギリなんですかね。。
自分はFFの補助魔法掛かった時みたいなこととか
背景動かしたりとか同時にいろいろやりたかったので残念です。
0011デフォルトの名無しさんNGNG
海動かしてるのは、パレット変更じゃないだろ(;´Д`)
おそらくタイトルも、ただたんにアニメパターンをImageとして持ってるだけ。
0012デフォルトの名無しさんNGNG
ビルドする時に
public void keyPressed(Panel p,int key)
の内容?{
-- listing --

$170:

41:iload 2

・
   ・
   ・
164:invokevirtual void setText(java.lang.String)

$189:

39:return
}

が表示されて最後に
java.lang.ArrayIndexOutOfBoundsException
って出てビルドに失敗しました
って出るんですけど
keyPressedで良くある失敗って何かありますか?
何処が悪いかよく分からないんで・・・
keyPressedの処理内容が多すぎるのかな・・・とかちょっと思うんですけど制限ってありますか?
0013デフォルトの名無しさんNGNG
>>12
>java.lang.ArrayIndexOutOfBoundsException
配列を範囲外のインデックスでアクセスしてるって意味。
keyPressed()ではなく配列のサイズやインデックスを疑ってみて。
0014デフォルトの名無しさんNGNG
>>13
ありがとうございます。
配列ってのはよく分かってないんですが、使って無いと思うんですが・・・
一番最初にnullpoもでてました。ひょっとしてめっちゃあほな事してるんですかねorz
とはいえ、やはり全文見ない事にははっきりわかんないですよね。
もっかい自分で見直します。

自分で書くってのは凄い難しいですね(;^_^A
間違いが分かればなるほど〜って思うんですけど、見つかるまでが辛いっす。
図書館で4,5冊借りてきたんですけどあまり良い本ないですね。
記述方法とか、制限が詳しく書かれてないから発展させにくくて困ります。orz
ちょっといじるとすぐにERRORでるもん(T.T)
まあずぶの素人だからそう思うのかもしれませんけど・・・
皆様お薦めの本とかってありますか?
0015デフォルトの名無しさんNGNG
>>12
これって、このエラーが出てコンパイルできなかったってことだよね。
これはバイトコードのダンプのように見えるのだけど、
なんか、コンパイラが想定外の入力を受け取ったがために混乱して落ちてるような気がする

ビルド環境が正しく構築されてるか確認してみた方がいいよ。
コードが間違ってるのなら、すくなくとも意味が理解できるコンパイルエラーが出力されるはずだから。
0016_NGNG
アプリからメールメニューはLAUNCH_MAILMENUで表示できますが
新規送信メール画面を表示することってできませんか?

0017デフォルトの名無しさんNGNG
変数はどれぐらい宣言するとメモリ不足になるんでしょうか?
ビルドして実行するとERR出るんでメモリ不足の様な気がするので・・・
0018デフォルトの名無しさんNGNG
ERRだけじゃわからん。
何エラーなのか。
メモリーが足りない場合のエラーはOutOfMemoryだ
0019デフォルトの名無しさんNGNG
iアプリ関連の資料はほぼ揃えました。
自分のやりたいことを実現するにはこのAPI(ドコモ提供)だな、
と大体のイメージができて、よしこれで作れるぞと思ったら
for文やif文、int型だのstring型だののルールやら
配列、ポインタなどなど、JAVAの根本的な部分をわかってなかった。
一般のJAVAの資料だと、どこまでがiアプリで使えてここからはiアプリで使えない
とは明記されてないと思うのですが、
ドコモAPI以外の、iアプリでも使えるJAVAの基本資料だけを
ウマくピックアップしてくるコツがあれば教えてください
0020デフォルトの名無しさんNGNG
Java1.3準拠だ。
0021デフォルトの名無しさんNGNG
503用アプリ作ってるんだけど
浮動小数点演算できないのにはビビッタ
0022デフォルトの名無しさんNGNG
>>19
CLDC1.0のAPIは見てるかい?
http://java.sun.com/j2me/
から探してくるなり。
(CLDC1.1ってのもあるけど、そっちはドコモは採用してない)。
0023デフォルトの名無しさんNGNG
>19
>for文やif文、int型だのstring型だののルールやら
>配列、ポインタなどなど、JAVAの根本的な部分をわかってなかった。
このあたりはそれほど食い違っているわけでもないから、
普通の Java のサイトで勉強したほうがわかりやすいよ。
0024デフォルトの名無しさんNGNG
>>21

素人かorz
0025デフォルトの名無しさんNGNG
Java┳J2SE … PCのJava
   ┃
----┃---(越えられない壁)---------------
   ┃
   ┗J2ME━CLDC━DoJa … iアプリのJava

こんな感じ。ドコモのドキュメントと一緒に、J2MEとCLDC押さえとくよろし。
002619NGNG
レスをくださった皆様、ありがとうございます。
早速 Java1.3、J2ME、CLDC1.0、KVMをキーワードに
サイトや書店で資料を集めてきます。

for文if文あたりの文法なら誰かの書いたソースを読めば何とかなるか
とも思ったのですが、やっぱり一応ちゃんとした資料を読んでおかないと
何かと不便ですもんね。ありがとうございました。
0027デフォルトの名無しさんNGNG
今、RPGの作成に挑戦しているんですが、巨大なマップを表示するいい方法が思いつきません。

・マップ作成
int[][]image = {
{1,1,…,1},
・
・
{0,0,…,0}
};

・マップ呼び出し
for (int i = 0; i < 48 ;i++){
for (int j = 0; j < 48; j++) {
if (image[j][i] == 0) {
g.drawImage(img1,i*20,j*20);
}
if (image[j][i] == 1) {
g.drawImage(img2,i*20,j*20);
}
}
}

…って感じで作ったら、描画処理が多すぎるせいか、恐ろしく動作が鈍くなってしまいました。
なんとか処理を早くする方法はないでしょうか?
002827NGNG
書き忘れたので一応。
Doja3.0で作っています。
0029デフォルトの名無しさんNGNG
>>27
描かなくてもいいものは描画しなくていい
1チップ20ドットなら12x12枚でしょ
48枚も要らない
003027NGNG
>>29
返信ありがとうございます。
確かに描画しすぎだったので、13×13枚だけ描画するようにしました。
for (int i = 0; i < 13 ;i++){
for (int j = 0; j < 13 ;j++){
if (image[j][i] == 0) {
g.drawImage(img1,i*20,j*20);
}
if (image[j][i] == 1) {
g.drawImage(img2,i*20,j*20);
}
}
}
※実際のとは少し違います。

それでさらにrepaint()の回数も減らして実機(N505i)で実行してみたんですが、
最初のうちはなかなかスムーズなんですが、だんだん動きが鈍くなってきて、
最終的には強制終了になってしまいました。
これでも描画しすぎなんでしょうか?
それとも他の部分に問題があるんでしょうか…orz
0031デフォルトの名無しさんNGNG
dispose()し忘れてんじゃない?
003227NGNG
>>30をちょっと訂正。
最終的には強制終了って書きましたが、それは勘違いでした。
image[i][j]のiまたはjが負数になることがあるせいでした…orz

>>31
dispose()…してませんね;
もしかしたらそれが原因かも知れません。
ちょっと勉強してきます。
0033デフォルトの名無しさんNGNG
描画画面大の裏Imageをつくり、そこにチップを並べてる。
移動していない時はこれをdrawImageするだけなので軽い。
動くときは、進行方向とは逆の方向へ裏Imageを全体的にをずらし、
新しく見えるようになる部分を描き足す。

OK?
003427NGNG
dispose()はあまり関係ありませんでした;
それと、一度にする処理を減らしてみたら、動きがスムーズになりました。

>>33
その方法良さそうですね。
ただ、「裏Imageにチップを並べる」というのがよくわかりません。
描画画面大の画像を用意しておいて、そこにチップを上書きするんでしょうか?
それとも、チップを並べたのをImageにすることができるのでしょうか?
質問ばかりで申し訳ありません…orz
0035デフォルトの名無しさんNGNG
>描画画面大の画像を用意しておいて、そこにチップを上書きするんでしょうか?
これが正解。

なぜなら、同じ面積の描画を行うなら、チップのような小さいものを大量に描画するより、
まとめて描画したほうが圧倒的に速いから。

8*8のチップを毎回描くなら64回の描画が必要。

だが、上記方法だと1マス右に動いた時、
7*8の大きな領域+新たに見える8個のチップ+その裏Imageをディスプレイに転送
で、計10回の描画で済む。
チップ数が多くなるほど速さの違いは顕著になっていく。
003627NGNG
>>35
丁寧な説明ありがとうございます。
やり方がわからなかったので少し時間がかかりましたが、無事作ることができました。

今までは13*13のチップを毎回描いていたので、一回に169回描画、
今は12*13の領域+13+表に転送で、一回に15回描画…。
こうして比べてみると速くなるのは当たり前ですね;

遅くなりましたが、返信してくださった皆様、ありがとうございました。
0037デフォルトの名無しさんNGNG
そういや、900iではImage#createImageのサイズ制限どうなってる?
N505iが320×320まで、D505iが画面サイズまでだったと思うけど。
0038デフォルトの名無しさんNGNG
>37
P900iは320x320の模様
0039デフォルトの名無しさんNGNG
        ___
     ,.r<弌ヾヾヾヾヾヾ`ト`、-、__
    /-ニニヘヾヾヾヾヾヾヾヾヾヾ`ー-、
   ./ー二�e `゙ `゙ ゙`ヾヾヾヾヾヾヾヾ、シナヘ
  仁一彡       ゙、ヾ、ヾヾ ゙ヘイ〃メ入
  f‐ニ=ツ ,.'   - 、 __        チ彡ニ┤
  !彡ニヽ   ` ー -- 二 _ー_--    三ニ-}
  V;〃ラ  /〃ニー        ̄   メ二ーヲ
  ハテj   ,. ニ、  、    、tヘヾi、 ヾミニソ
  .l. レ   < (・) > .;  .;:'  ,.= 、   lミ,‐ヲ
  ! l   、  ̄  ,! .i  < (・) >   レ' ノ
  l ト 、  ` '"´ ,!  l  、  ̄ ,   : ,j   
  `1゙ヽ      ,!  l   ` ´  ,.イ ,/
   l ';  ,.:' (´,、 ,. ヽヾ    ,.:' /`  
   .| ; ,:'   `   ´ ′ヽ  ,.' /     
     ! ; ,.'  _,,,_ __    ;  ;' /  
    ',  ゙、"ー-ニニニ=ヽ  ,.' /
    ヽヾ `ー--'''ー-一''′ /
     `ヽ、    、 _ノ/
        ` ー--一''''"´
わしの妹のところに無言電話をかける奴は許さん
電話会社に盗聴させるぞ
0040デフォルトの名無しさんNGNG
>>38
つーことはN900iも? というか、Nの制限がPに伝染したんかいな?
せめて4画面ぶんくらい確保できないとやりにくいんだけどなあ。
0041デフォルトの名無しさんNGNG
イメージマップでは128個までしかイメージを設定できないという制限がある
ってどういう意味なのでしょう?チップの種類を0から7fまでしか割り当てられない
という解釈で正しいですか?セルが128個までだと一画面で12x12=144すら表示できない
ことになってしまう。チップを8x8にしてせめて30x30は表示したいのですが。
0042デフォルトの名無しさんNGNG
フル画面別チップならイメージマップする意味無し夫
0043デフォルトの名無しさんNGNG
イメージマップって使ってる?
どの機種でも速いなら使ってみたいが…
0044デフォルトの名無しさんNGNG
>>41
制限というか、byte[]には-128から127しか指定できないからねえ。
別のメソッドでも用意しない限り、どんなにがんばっても128個以上は無理っす。
0045デフォルトの名無しさんNGNG
ブラウザから起動で渡せるパラメータ(IApplication.getParameterでとれるもの)
をエミュレータのiDKDoJa3.5で渡すことはできますでしょうか?
eclipseから起動して使っています。

あとブラウザから起動のテストをブラウザからエミュレータ起動して
行うことはできますでしょうか?

教えてくださいませ。
0046デフォルトの名無しさんNGNG
DoJa-3.5(FOMA)使って開発しているんですが、携帯エミュの
ヒープメモリー容量って調整できないんでしょうか?
0047デフォルトの名無しさんNGNG
× DoJa-3.5(FOMA)
○ iαppliTool for DoJa-3.5(FOMA)
でした
0048デフォルトの名無しさんNGNG
>>45
HTML書いて、どっかに置いとくんじゃなかったっけ。
0049デフォルトの名無しさんNGNG
>>46
doja.exeの起動オプションに
-mx [ヒープサイズ]
じゃなかったかな?
付属のドキュメントに書いてあったと思う。
005046NGNG
>>49
う、圧縮ファイルを解凍したほうにドキュメントがあったんですね。
ずっとインストール先探してましたorz。

「-mx 2800k -i jamへのフルパス」でいけました。
-mxオプションだけでiAppliTool立ち上げてもヒープサイズは変わってくれませんでした。
0051デフォルトの名無しさんNGNG
>>49
それはiαppliTool for DoJa-3.5を開発ツールとして使用してるときには使えない罠
iαppliTool for DoJa-3.5をあくまでエミュレーターとして使う分には使える
要するに-mxと一緒に-iでjamのパス渡してやらないと-mxは機能しない
(こうして起動すると開発ツールとしてではなくあくまでエミュとして起動しちゃう)
っていうかコレはバグだよなと俺は思った。仕様だというにはお粗末過ぎる
ちなみにデフォルト値は1Mbyteとかなり小さいので(Doja-3.0は2Mだったのに…)
かなり辛い……eclipseとか使わないでiαppliToolのみで開発するなら
3.5専用の機能を使うんじゃなければ3.0で開発したほうがいいよ
005251NGNG
ってもう返事でてるし…(´−`)
005346NGNG
>>51
タッチの差でしたね。

>3.5専用の機能を使うんじゃなければ3.0で開発したほうがいいよ
ついでなのでコンパイルなどもエディタ経由からコマンドラインでやってしまうことにしました。
この方がエラー行にタグジャンプ出来ていい感じです。
0054デフォルトの名無しさんNGNG
ttp://www.saturn.dti.ne.jp/~npaka/ibook2/izon.html
> N505i/N900i/SO505i
> BGM用のMIDIはMIDI ch1-8を使う必要がある。
> それ以外を使用した場合、鳴らないか動作しない(未確認)。

・・・ってあるけど、ドラム鳴らしたい場合はどうすればいいんでしょうか?
0055デフォルトの名無しさんNGNG
900iの中ではどれがオススメよ?
0056デフォルトの名無しさんNGNG
このスレ的には、NPはダメだな。
0057デフォルトの名無しさんNGNG
sage
0058デフォルトの名無しさんNGNG
ごめ
間違えた

外部ライブラリをDojaのプロジェクト
から
使うにはどこにjarを置くのでしょうか
005945NGNG
>48
どうも、探したらありました。エミュにブラウザがあるんですね。
いつもeclipseから立ち上げてるのでわかりませんでした。
ただUserAgentがJava/1.4.1_07
になってしまい、webアプリ側ではUserAgentを識別してiアプリリンクの
on/offをしてるので変えたいのですが、方法ありますでしょうか?
0060デフォルトの名無しさんNGNG
敬語を二つ重ねるのを聞くと虫唾が走るぜ
0061デフォルトの名無しさんNGNG
え〜
SHダセェよ。
0062デフォルトの名無しさんNGNG
むぅ、さっそく環境整えるところからつまづいてる。さっぱりわからん。
http://jp.sun.com/software/sundev/jde/
ここでSun One Studio Comminucation Editionをダウンロードしろとか
書いてあるけど実際いったら
Sun Java Studio Enterprise 6 2004Q1とかが置いてあるし・・・
0063デフォルトの名無しさんNGNG
それは忘れてEclipse使おう。
0064デフォルトの名無しさんNGNG
>>62
NetBeansでも可。
でもプラグインは使わない。
開発ディレクトリのsrcと$DOJA_HOME\doja_classes.zipをマウント
ビルド自体はDoJa環境でやる。
単なるエディタ用だね。
006562NGNG
なるほど、ネットとか本の情報ってもう古いみたい。
i-JADEとかJ-Builderがどうとか本に書かれてるけど廃れたのかな?
とりあえずDOJAとeclipseがあれば良い感じだね。
今おとしてまつ・・・
0066デフォルトの名無しさんNGNG
503i の頃に少し触れたきりで大分経つけど、 i-JADE のサイトの
フリー版の放置ぶりを見たときはワロタ。

あれはいつからああなったのかな。
0067デフォルトの名無しさんNGNG
もっと儲かるかと思ったけど、
実は全然儲からないと分かったからとかだったりして
006862NGNG
インスコ完了、eclipseぱっとさわったが噂通り速そうだ。
続きは明日・・・おやすみ。
0069デフォルトの名無しさんNGNG
>>67
あっさりDoCoMoが公式エミュレータ−だしたからじゃない?
あんなん出してくるとは思わなかったよ。
504iで機能もふえて、機種別エミュレートもむずかしくなったし。
0070デフォルトの名無しさんNGNG
i-JADEはクラス覗けばわかるけど、J2SEをDoJaに見せかけるラッパーにすぎなかったからね。
504i以降のフィーチャーに対応できず沈没ってとこか。
0071デフォルトの名無しさんNGNG
最初は2機種(F,P)くらいだったから、機種別エミュレートもできたんだよね。
504iから5機種になって、しかも赤外線通信とかいいだして、イベントのタイミングも違ったりして、エミュレーションできなくなったし。
0072デフォルトの名無しさんNGNG
なるほどねー。

最初は i-JADE のほうが使いやすいと思ったり、サイトもバンバン情報だしていて
追っかけること自体が楽しかったけど、もう最近は停滞しちゃってるみたいだね。
0073デフォルトの名無しさんNGNG
すいません一つ質問なのですが、
DoJa3.0エミュと実機では動くものの、
手元にあるSO505iでのみ初回起動時の画像DLの時に
「hc=(HttpConnection)Connector.open("ここに画像URLが入る",Connector.READ,true);」
のところで
「java.lang.SecurityException: Illegal host」
というエラーが発生するのです。
対処の仕方をご存知の方居られませんでしょうか?

ちなみに端末は全て505iで、SH以外(友達中探しても
SHユーザーだけ見つからなかった)で確認しました。
0074デフォルトの名無しさんNGNG
>>73
Illegal hostってことは、ダウンロード元とは違うホストに繋ごうとしてるからだと思われ。
ちなみに、同じかどうかは、ホスト名を単純に文字列比較して同じかどうかを判定してるので
IPアドレスが同じで違うホスト名とかはダメよ。
007573NGNG
>>74
レスサンクスです。

ダウンロード元と違うホストですか…;
サイトでの今の置き方はjarとjamとimageフォルダ(下にgifが入っている)が
同じディレクトリなのですが、
gifをjar&jamと同じディレクトリに置いた方が良いのかな?
手元の以外の実機以外では動いているから確信が持てないのがつらいなぁ。
なんにせよ今日はもう目がショボショボしてキツイので明日起きてから試してみます。
0076デフォルトの名無しさんNGNG
「iアプリコンテンツ開発ガイド for DoJa-3.0 詳細編」が
一昨日づけでアップデートされてる模様。
0077デフォルトの名無しさんNGNG
http://www.nttdocomo.co.jp/p_s/imode/java/caution.html
ドコモも機種依存情報公開してるのを完全に忘れてた。
自分のアプリがN505iで引っかかりまくってまともに遊べてないらしい理由もわかった。_| ̄|○

ちゅーか、描画キューをフラッシュする方法がないのに完全に並列動作にするかふつー?
適宜ウェイト入れろと言われても、どれだけの量入れれば十分か
アプリの側からはわかんないじゃん。
DirectXみたいにlock、unlockあたりでフラッシュしてくれないと困るよ。
007877NGNG
って、もしかしてGraphics#getPixelあたりでイヤガラセしてやればいいのかな。
これ呼べばフラッシュせざるを得ないじゃん。(正しいピクセルを返そうとする限りは)

N505i持ってる方、実際のところどうでしょうか。
0079デフォルトの名無しさんNGNG
誰かロードランナー作って。
0080デフォルトの名無しさんNGNG
うらやましいか!SO505i(S)買え。
0081デフォルトの名無しさんNGNG
>>N505の糞仕様

_| ̄|○ 通りでdrawStringを大量に行う必要があるHELP画面で、キーの反応が超絶鈍くなるわけだ
008273NGNG
ダメでした。
imageフォルダをエミュのリソース置き場と同じresにしたり
画像の置く位置を変えてみたりもしましたがダメ。
大体自分のサイトの同じ位置に置いているのに
ホスト名が違うってエラーが出ることが謎ですよね。
(この辺全然詳しくないですが…;)
う〜ん、比較しているホスト名を表示する方法ないかなぁ?
0083デフォルトの名無しさんNGNG
>>81
なるほど。
オレもキーの反応にぶいの何でかなーと思ってたが、そういうことか。

さすがはNだぜ
0084.NGNG
>>82

>う〜ん、比較しているホスト名を表示する方法ないかなぁ?

IApplication.getCurrentApp().getSourceURL();
0085デフォルトの名無しさんNGNG
iアプリ初心者です。前スレでも話題に上っていたようですが、
{project root}/resフォルダがjarに入らないので、resource://が使えず困っています。
Eclipse2.1.2 + iAppli Development Kit for DoJa3.0/3.5です。
上手く行っている方はいらっしゃるのでしょうか?
まぁ、サーバ+ScratchPadにしろと言われればそれまでですが……

どうもCPL抵触して全面書き換えになったようですね。それ以降の症状なのかな……
008673NGNG
>>84
レスありがとうございました、無事解決しました。
お教えいただいたものでurlを取り出してみたところ
ホスト名が微妙に変わっていたので、
それの対策をしたら動くようになりました。
自分の端末だけ動かないのは悔しかったですから、
動いてホッとしました。

でも昨日今日だけでかなりの回数ダウンロードしたから
パケ代が怖いな…。
008774NGNG
>>86
おお、すまん。最初からgetSourceURLするよう勧めとけばよかったな。。
0088デフォルトの名無しさんNGNG
>>85
前スレ724より
>結局、パスに追加してた C:\cygwin\bin が悪さ(?)してたという結論に。
>それまでパスの先頭付近にいたので、最後尾に移してみたら、普通にビルド通る様になった。
>そちらとは直接の原因は違うかもしれないけど、似た様な事情かもしれない。
>参考までに。
漏れはコレで解決しますた。cygwin使ってなかったらスルーしてくだたい
0089デフォルトの名無しさんNGNG
% wget -S http://ah-k.kyocera.co.jp/download/000001/000000/update.bin
--23:40:41-- http://ah-k.kyocera.co.jp/download/000001/000000/update.bin
=> `update.bin'
Resolving ah-k.kyocera.co.jp... done.
Connecting to ah-k.kyocera.co.jp[211.14.6.5]:80... connected.
HTTP request sent, awaiting response...
1 HTTP/1.1 200 OK
2 Date: Thu, 20 May 2004 14:56:25 GMT
3 Server: Apache/1.3.29 (Unix) PHP/4.2.4-dev mod_ssl/2.8.16 OpenSSL/0.9.7d
4 Last-Modified: Wed, 19 May 2004 07:42:20 GMT
5 ETag: "13f898-c4-40ab0fdc"
6 Accept-Ranges: bytes
7 Content-Length: 196
8 Keep-Alive: timeout=10, max=100
9 Connection: Keep-Alive
10 Content-Type: application/octet-stream

100%[====================================>] 196 191.41K/s ETA 00:00
009089NGNG
誤爆です。スマソ。
0091デフォルトの名無しさんNGNG
>>90
初パッチおめ
0092おしえてNGNG
質問です
サーバのCGIにPOSTするiアプリを作成してます
以下のプログラムをN900iで実行するとConnector.openでエラーが発生します。
※N505i、SO505i、SH900iだと正常に動作しています(他機種は未確認)
-------------
HttpConnection con = null;
try {
con = (HttpConnection)Connector.open(
"http://xxx/yyy/test.cgi",
Connector.READ_WRITE,
true );
con.setRequestMethod( HttpConnection.POST );
:
:
-------------
このアプリは接続するtest.cgiと同じディレクトリからダウンロードしたものです
このプログラムの前に通信関係のプログラムは一切動かしていません

理由がぜんぜん分からん
同じ問題に当たった方いますか?
なにか事前にやっておくべき処理が抜けてるのかなあ。。。
0093デフォルトの名無しさんNGNG
そりゃN900だもの。
JPEG読み込みまわりにも致命的バグがあるし、もうだめすぎ
N900&P900
過去の仕事をこれ対応にするなら、作り直すくらいの料金もらわないと割に合わない。
0094デフォルトの名無しさんNGNG
N900iとP900iには通信系でカナーリきな臭いバグがある。
009592ですNGNG
>>93
>>94
レスありがとうございマス
そうかぁ、N900じゃしょうがないのかw
自分のせいじゃなさそうで安心しましたw
徹夜までして調査してた「かい」がありましたよ(爆死
009692ですNGNG
とは言っても、N900iでサーバ接続するアプリはあるみたいなので
できない訳ではないと思うんですが。。。

どなたかご存知ないですかね?
0097デフォルトの名無しさんNGNG
>>96
GETは?
009892ですNGNG
>>97
レス、ありがとうゴザイマス
GETは試してません
実はN900iもっていないので。。
試してみる価値ありますね


0099デフォルトの名無しさんNGNG
とりあえず、あFOMAだけSPSIZEを409600取って味噌
010092ですNGNG
>>99
どうなるんですか?
010192ですNGNG
>>97
GETと思ったのですが、
POSTを指定する前のConnector.openでエラーが発生していますので
GETでも同じだと思います。。。
N900iには困ったもんだ
0102デフォルトの名無しさんNGNG
>101
エラーって何?
例外も発生せずに強制終了してるの?
010399NGNG
>>100
通信できるようになる(なった
010492ですNGNG
>>102
例外が発生します
例外の内容を表示して確認したいところですが
N900i端末を持っていないので、それもできません。
というのも、どこで例外が発生したかはオリジナルの
エラーコードで判断ができるのですが何の例外が発生したかは
コードに記述していませんでした(そもそもこれがイカンですね)
とにかくConnector.openが例外を投げていることは確かです。
010592ですNGNG
>>103
おお!ほんとですか?
すごい仕様(外)ですねw
ちなみにSH900iでは動いてるんですが、N900i固有の問題なんですかね?
0106デフォルトの名無しさんNGNG
>>92
con.connect(); は書いてる?
もうちょい前後のソースとかエラー発生時の情報を提供した方がいいかも。
0107106NGNG
ああ、なんかトンチンカンなこと書いちゃったな。忘れてくれ…
0108デフォルトの名無しさんNGNG
>>104
実機が手元にないのか。それは辛いなあ。
せめて例外の種類と詳細メッセージがわかれば、かなり搾れるんだが。
AppTraceをonにすれば、例外の種類くらいわかるんじゃなかったっけ?
010992ですNGNG
>>108
AppTraceをONにしたことないのですが
どうやらprintln()で出力した情報をみれるみたいですね
こんなことになるなら、例外処理にスタックトレースとか
入れておいたほうがよかったのかな。。
0110デフォルトの名無しさんNGNG
開発中は、すべての例外を補足して表示。
これ基本。
本番でもすべての入り口に例外処理。
Canvas#paintとかprocessEventとかIApplication#resumeとかは全部tryでくくる。
011192ですNGNG
Connector.openって何の例外発生するんですかね?
実際は以下のようにコードを書いているのですが
HttpConnection con = null;
con = (HttpConnection)Connector.open( IApplication.getCurrentApp().getArgs()[0] + "test.cgi", Connector.READ_WRITE, true );
#ADFのAppParamには「http://xxx/yyy/」と記述

接続URLが不正以外で例外なんて発生しなそう。。
IApplication.getCurrentApp().getArgs()[0]が正しく取得できないことなんて
あんのかな。
0112デフォルトの名無しさんNGNG
>>111
まずは切り分けしる。
直書きせい。
0113デフォルトの名無しさんNGNG
思ったんだが、やっぱ質問スレ立てる?
0114デフォルトの名無しさんNGNG
なんで?
このスレで十分じゃん。
0115デフォルトの名無しさんNGNG

************ヽ(`Д´)ノ機種依存情報!!************


P900とN900で、通信、JPEG読み込み系の意味わからんエラーがでる場合は、
スクラッチパッドサイズを409600にしる!
そうしないと、ある程度以上メモリーを使ってからの通信、JPEG読み込みでバグる!


F900の待ち受けアプリは蓋開けなどにより非活性化した場合、
FOLD_CHANGED_EVENTより先に止まっていたスレッドが動き出す。
おかげで「蓋を開けたときに背景が変化する」みたいなアプリの場合、変な動作になる。
0116デフォルトの名無しさんNGNG
iモーション(*.3gp)はiアプリから扱えませんか?
音声の再生が目的なのですが
iメロディだと各機種ごとに規格がバラバラなんですよね。
各機種(といっても各900i限定で構わないです)で動く
共通のひとつの音声ファイルをiアプリで扱えれば・・
0117デフォルトの名無しさんNGNG
>>115
FOLD_CHANGED_EVENTについては、その動作は仕様どおりだと思うが?
スレッドが先に復帰するという動作はきちんと記述されてるし、それで動作が
おかしくなるならアプリの方のバグじゃないかと。

それとは違う動作がF900にはあるの?
0118デフォルトの名無しさんNGNG
>>116
ドコモのサイトからダウンロードできる仕様書(PDFのやつね)が
ついこないだ更新されてるから、それみてみ。
最後の方読んだら書いてあるよ。
ちなみに150KB制限とかあるから気をつけてね。
0119108NGNG
>>111
おいおい。
そのコードじゃConnector.open()で例外が起きてるかどうかも分からないじゃん..
たとえばgetArgs()がnullだったらどうするの?
あと、AppTraceは、標準出力だけじゃなくて、例外キャッチせずに落ちた場合に、
落ちた原因となった例外名だけ表示された記憶があるんだよね。
ちなみに、printStackTrace()は、AppTraceをonにしても表示されないっす。使えん。
012092ですNGNG
>>119
IApplication.getCurrentApp().getArgs()
ってADFのAppParamに書いてあってもnullになる可能性があるんですかね?
そうだとすると確かにこれじゃマズイですね。。。
0121119NGNG
>>120
さすがにAppParamに書いてあったらnullにはならない。
だけど、本当にAppParamに書いてあるの?
実はHTML書き間違えてて違うADF読み込んでるとか。
AppParamの行が2つあるとか。
あるいは綴りが少し違ってるとか。
そういう「あたりまえ」だと思ってることを確かめてくことがデバッグでしょう。
012292ですNGNG
>>115
スクラッチパッドって1つのアプリで大量につかうと他のアプリに
当然影響あるんですよね?
個人で配布してるアプリごときにそんなことしたくないなあ。。
N900,P900どうしてくれるんだ!って感じですねw
012392ですNGNG
>>121
AppParamに書いてあるかどうかですが
N505iやSH900i等で動作しているから大丈夫と思うんですよね。
今回の処理とは別フローで通信処理(データをDLしてSPADに書き込む)
があるんですけど、通信エラーの出るN900iでもそこは正常に動作
しています。そこの処理も
IApplication.getCurrentApp().getArgs()[0]
が使われているんですよ。。。
わけわからん。やっぱりSPSIZEの問題なのかな。。
0124デフォルトの名無しさんNGNG
>>123
そういや他の機種で動作してたんだな。スマソ。
やっぱり例外の種類と内容がわからないと何とも…。
012592ですNGNG
>>124
例外表示しなかったの致命的ですよね。。
今後はこんな不条理なエラーがあるってことを頭に置いて
例外表示するように注意します。
0126デフォルトの名無しさんNGNG
>>117
>スレッドが先に復帰するという動作はきちんと記述されてるし
まじで?
F900以外(504全機種、505全機種、DOJA2.1FOMA全部、900のF以外)は
まったく逆で、FOLD_CHANGEDのほうが先にくるぞ。
0127デフォルトの名無しさんNGNG
>>126
>sleep()メソッドを呼び出したスレッドは、休眠状態から非活性化状態に遷移すると
>sleep()メソッドから復帰し、それに続くロジックの処理を再開します。
>sleep()メソッドからの復帰は、システムイベントの通知に先立って行われます。

コンテンツ開発カイドに書いてるこれがそうだと思ってるんだがどう?
またこう書いてるんだから、非活性に復帰した直後の実行がシステム通知よりも
先におきる場合もあるし後にも起きる場合もあるよね。
sleepしたスレッドとシステム通知スレッドが別の可能性もあるんだし。
以前の端末全てがそうだとしても、それはたまたまでしかないでしょ。
0128デフォルトの名無しさんNGNG
>>127
そうだったのか…。
たまたまということはなく、常に意図した動作をしていた。
つまり今までは必ず

sleep復帰 → FOLD_CHANGE → 描画

だったんだなぁ。
Sleep復帰と描画までに数ミリ秒余裕があるから平気だったのかな。

F900iは、FOLD_CHANGEがくるのが他の機種に比べて遅いだけで、仕様どおりではあると。
0129デフォルトの名無しさんNGNG
>>127
そう。結局、それを保証されても、実行順序は何も保証されてないんだよな。
0130116NGNG
>>118
インラインプレイヤーモードって機種依存なのですね。
BGM的な用途には向かないのかな。
MediaPresenterのsetAttributeに渡すパラメータがいまいちわからない。
じゃなくてAudioPresenterでiモーション音声を再生すればいいのか。
いろいろ試してみます。ありがとうございました。
0131デフォルトの名無しさんNGNG
N900i、ShortTimer10個くらい作るとUIExceptionだよ
013292NGNG
N900iだけでConnector.openで例外が発生する件
本質的な解決じゃないけど例外は出なくなったので報告。

例外を発生するアプリは通信処理前にスクラッチパッドから約100kの
データをロードしててメモリをたくさん使っています。そこで
>>115氏の内容を参考に
データロードする前に通信処理をしたところ例外が発生しなくなりました。
ある程度メモリを使ってから通信するとエラーが出る可能性大です
ちなみにアプリのSPSIZEは95kbです。
とりあえず何の例外が発生したか出力するようにしたので
N900iユーザから報告待ちです。
わかったらまた書き込みます。
0133デフォルトの名無しさんNGNG
>>132
報告お疲れ様です!
参考になります!
013492NGNG
N900iだけでConnector.openで例外が発生する件
例外が分かりました

com.nttdocomo.io.ConnectionException: NoResource

リソース不足ってことですかね。
やはりメモリの問題ですか
013592NGNG
ってゆーか単純にリソース食い尽くしてエラーが出てるの?
自分のプログラムが端末の限界を超えて作ってしまったってこと?
でもN505iで動くし,もしかするとSPSIZE=409600KBであれば動くかも
しれないので,なんともいえないですね。。。
0136デフォルトの名無しさんNGNG
メモリーが超余裕でもN900とP900はメモリーオーバー吐く。
SP409600にするとでなくなる。(>>135 単位KBじゃないぞ)
ひどすぎるバグである。
013792NGNG
>>136
KB誤記スマソ
本当にひどすぎるバグだ=3
0138124NGNG
>>135
リソース不足だったか。Nってすぐメモリなくなるんだよな。なんでなんだか。
ちなみに、ConnectionExceptionとかは、getMessage()の内容も重要だけど、
getStatus()の戻り値も重要なので、今後デバッグする時は出力するように書いといた方が良いカモ。
0139デフォルトの名無しさんNGNG
>>138
メモリ管理が5KB単位なんで、頻繁に確保したり解放したりしてると
フラグメンテーションでえらいことになる。

しかもRuntime#freeMemory()では検出できないという・・・orz
0140デフォルトの名無しさんNGNG
フラグメンテーションって。。。
GCするときにコンパクションしてないってことか...orz
0141デフォルトの名無しさんNGNG
>>139
まぁ、ネイティブなんでfreeMemoryとかじゃわかんないよなぁ。

NP問題については以前話題になってたが、
spsize409600にするのが基本のようだね。
jamだけ変更すればいいわけなんで、
それが一番簡単でトラブルも少なくていいかもな。
へたに、spsizeケチるより
どーんといこうや。
0142デフォルトの名無しさんNGNG
NとPはgcが未実装だってどこかで見たが
0143デフォルトの名無しさんNGNG
さすがにGCは実装してると思うぞ…。
GC実装してなかったらCLDC準拠じゃないだろ。。
0144デフォルトの名無しさんNGNG
こうして見ると、Nは503iからずっとトラブルメーカーか?
他にも酷い機種はあるが、トップシェアならきちんとやってくれ。
0145デフォルトの名無しさんNGNG
おれも、作ったアプリがNでテスト通ったときが一番ほっとするなぁ。
0146デフォルトの名無しさんNGNG
丁度Nの話題なんでN505i固有のバグで質問があります。
知識ある人教えてください。

アプリケーション起動中に不特定なタイミングで電源キーを押下すると、

「終了しますか? Yes/No 」のダイアログが出ずに、

「ソフトに継続動作できない障害が発生しました」で落ちてしまいます。

タイミングによっては落ちたり落ちなかったり、バグの原因が特定できなくて、
かなりハマってます・・。

Runtimeで取得したヒープメモリは、ファイル展開時には100%使用するのですが、
通常時は1/3ぐらいの消費量です。

何か注意すべき事や、同症状のバグが出た人はいませんか?
0147デフォルトの名無しさんNGNG
import com.nttdocomo.ui.*;

class HelloWorldCanvas extends Canvas {
public void paint(Graphics g) {
g.drawString("★",5,20);
}
}
public class HelloWorldIAppli extends IApplication {
public void start() {
Display.setCurrent(new HelloWorldCanvas());
}
}

このソースでで★の部分にめちゃくちゃ長い文章入れたいんですが、右端で折り返して、
縦にスクロールできるようにしたいんですが・・・
どうすればいいんでしょうか
0148デフォルトの名無しさんNGNG
>>147
そういう機能のクラスを作れ
じゃなきゃTextBoxで代用だ
0149デフォルトの名無しさんNGNG
>>147
Canvasだと、
自分で行を分割してスクロールさせるしかないと思う。
0150147NGNG
これは大変だ(;´Д`)
テキストボックス使うと1行あたりの表示文字数少なくなっちゃうから、
Canvas使って1行ごと分けようかな・・・
015127NGNG
どうも、また来ました。

まだまだRPG製作中なんですが、描画関連でまた困っています。
>>33の方法で描画速度はかなり速くなったんですが、操作キャラや敵キャラなど、
他にもいろんな画像を使い始めたら、だんだん動きが鈍くなってきました。

プレイする人にとっては、動きが鈍いのはきついと思うのでできれば速くしたいのですが、
なかなかいい方法が思いつきません…orz
そこで図々しい質問だとは思いますが、何か描画を早くするテクニックみたいなものはないでしょうか?

あと、>>30のを改良(?)して↓のようにしたんですが、皆さんもこんな感じにマップを描いているんでしょうか?
for (int i = 0; i < 13 ;i++){
for (int j = 0; j < 13 ;j++){
g.drawImage(img[image[j][i]],i*24,j*24);
}
}

※img[]に画像を入れています
0152デフォルトの名無しさんNGNG
>>151
差分だけ描画
0153デフォルトの名無しさんNGNG
>>150
そのためにFont#getLineBreakがあるんだが…
0154147NGNG
>>153
指定した文字列の改行位置を取得します。off からlen 文字の部分文字列の幅が width より 大きい場合は、つぎの行の先頭になる文字列の位置を返します。
(抜粋)
ですか・・・
できるだけ簡単に"表示して終わり"。
っていうのにしないとClassが増えてわけわかめだからこまります
初心者でHPと本参考にしながら勉強とアプリ製作同時進行なもんで
0155153NGNG
>>154
別にクラス増やす必要ないでしょ?
APIリファレンスに出てるサンプルコードをコピペしてメソッド作ればおわりじゃん。。
0156147NGNG
>>155
やってみます
0157155NGNG
がんがれ
0158デフォルトの名無しさんNGNG
まずは、行を分割するメソッドとか
少しずつ確実に進めるのがいいよ。
iアプリはdebuggerが貧弱なんでバグると特定するのが大変。
急がば回れということで着実にプログラミングにはげめ。
0159.NGNG
Canvasでimageに限らず差分だけ描画って結構難しいですね・・・。
repaint()とclareRect()を上手に使うのでしょうか・・・?
0160デフォルトの名無しさんNGNG
スクロール前とスクロール後で同じチップになるところは
描画しないということじゃないのかな?そのかわりカクカクスクロールだね
スムースなスクロールを希望するなら背景用のデカイ画像を用意してその上に
数少ないチップを並べて、チップのみスクロールさせるとかするしかないよ
すなわち、その方法で表現できないゲームは作らないほうがいいということかな。
0161.NGNG
俺も情報量の多い表をCanvasで作成するとかなり動作が遅くなってしまいました・・・。
505の時はそんなに気にしなくてもそこそこ早く動いてたのに、N,P900を使用すると激遅。
俺の書いてるプログラムも問題なのだろうが、900iは描画速度遅すぎない?
0162デフォルトの名無しさんNGNG
>>161
NとPは遅いね。Graphic#drawString()が特に遅いみたいだ。
0163デフォルトの名無しさんNGNG
はじめまして。
今日からiアプリを作ろうと思っているのですが、将来的にはRPGのようなものを
作ろうと思っております。
HelloWorldなどの単純なプログラムは作れるようになりました。

次に画面の中心に画像があるときに、キー入力を読み込み、
右キーを押したとき→画像が右に移動
左キーを押したとき→画像が左に移動
下キーを押したとき→画像が下に移動
上キーを押したとき→画像が上に移動
するようなプログラムを作ろうと思っているのですが、どのようにしたらいいのか
まったくわからない状態になってしまいました。
すでに6時間以上進展してないので、どなたか助け舟をだしていただけないでしょうか?
0164デフォルトの名無しさんNGNG
誰か知っていたら教えてくれないか?
マップスクロールする様なタイプのアプリを作ったのだが、何故かSH505&SH900“だけ”
遅いと言われてしまった(遅いはずのDでも問題なく動いているらしい)。
俺はSHの実機を持ってないんで、描画系をいろいろと工夫してテストを頼んでみたのだが、
多少の改善はしたが遅いままだそうだ(505では依存系のImageMapも使ったんだが…)。

そこで質問なのだが、SH系特有の動作がトロくなる処理などあるのだろうか?
かれこれ3日ほど悩んでいるのだが、N505では問題ない速度だし…。
俺にSHを買えという啓示なのだろうか…(涙)。
0165151NGNG
>>152
やっぱりそれくらいしかないですか;
既に差分だけ描画はできていますので、他の処理を軽くできないか検討してみようと思います。
返信ありがとうございました。

>>163
プログラムを書くと長くなるので、↓とかを参考にしてみてください。
ttp://homepage2.nifty.com/psycosexy/iappli/
0166151NGNG
>>164
ちょっと気になって、
ttp://www.itmedia.co.jp/mobile/articles/0403/26/news050.html
とかを見てみたんですが、SHはメモリとのデータのやり取り以外は優秀ですね。
もしかしたら、描画以外に問題があるのかも知れませんが、自分にはわかりません…orz
0167デフォルトの名無しさんNGNG
SHはスクラッチパッドのアクセス遅くなかったっけか。
0168デフォルトの名無しさんNGNG
>>163
冷たい言い方だが、
それらの方向キーを押したときに、
そのように画面を再描画できるようなプログラムを作れとしか言えん。
描画するものの位置をキーの入力で変えればいいだけだ。

画面上の任意の位置に任意の色の点や画像を表示できるのだから、
あとはそれを自分でキチンと処理できれば
(速度とかの問題を除けば)できるはずだと思う。

6時間も悩んでると言ってるが、
ほんとにその間いろいろ試してみたのか?
プログラミングの初心者だと思うがはなはだ疑問だ。
0169デフォルトの名無しさんNGNG
そもそもイベントドリブンなプログラムの書き方を理解してるかどうかあやしいよな。
そこを理解してないと、どうすれば良いか見当も付かないだろう…。
0170デフォルトの名無しさんNGNG
>>163
まず、どこがわからないのかを、もっと詳しく説明してくれ。

・画像を表示させる方法
・画像の表示位置を変える方法
・キー入力を取得する方法

のどこで詰まってるんだ?
0171デフォルトの名無しさんNGNG
>>164
うーん。SHは本来描画も演算もトップクラスで速いんだが・・・
現在の描画系はImageベース?
0172デフォルトの名無しさんNGNG
>>169
システムイベントも信用できないけどね
0173デフォルトの名無しさんNGNG
初めてお邪魔します。

ドコモから落としてきた開発環境のエミュレーター実行時に
ALERT: Invalid constant pool entry
と出て起動しません。
どういったことが考えられるでしょうか?
よければアドバイスお願いします。
0174164NGNG
早速のレスありがとう。

>166
この記事は俺も読んだよ(で、さらに訳が分からなくなった…orz)。
まあ、真っ先に思い浮かんだのが描画系だったんで、もしかすると
166 の書いている通り、描画以外に問題があるのかもしれん。
実機が手元にあれば、パケ死覚悟で処理別の速度チェックを行えるんだが…。

>167
SPは最初のデータ読み込みと最後のスコア登録だけでしか使ってないんよ。
たぶんSPは問題ないと思われる(最初に書いておけば良かった、申し訳ない)。

>171
最初は drawImage & Clip で描画していたけど、今は ImageMap & Clip を使ってる
(まあ、どっちも Image ベースなんだが、直接か間接かの違いだね)。
本当は Clip も外してみたいんだけど、ピクセル単位でのスクロールがあるんで
外せないんだよな…。

俺も、もう少し自力で調べてみるわ。
何か分かったら、自己レスするよ。
0175デフォルトの名無しさんNGNG
>>174
使ったことないからわからんけど、ImageMapが遅いんじゃないの?
0176デフォルトの名無しさんNGNG
import com.nttdocomo.ui.*;
public class Painter extends IApplication{
public void start(){
Display.setCurrent(new MyCanvas());//MyCanvasクラスを画面にセットする。}}
class MyCanvas extends Canvas{
public void paint(Graphics g){
for(int dy=0; dy<240;dy++){
g.getColorOfRGB(255,0,0);
g.fillRect(0,dy,240,1);
g.getColorOfRGB(255-dy,0,0);}
//文字列の描画
g.drawString("グラデーション",50,130);}}
DoJa-3.5(FOMA)を使ってiアプリの勉強を始めたのですが、画面をグラデーションさせる所で詰まってます。
画面サイズは240*240で上の方から赤から黒へグラデーションさせて画面中央に文字を描画したいのですが、考え方は合ってると思うのですがどこが間違ってるのでしょう?
0177デフォルトの名無しさんNGNG
>>176
fillRectの第4引数を2にしてみな
もしくはdrawLine使うとかな
0178デフォルトの名無しさんNGNG
iアプリの通信について教えてください
iアプリは、ダウンロードしたサーバーとしか通信できないのですか?
iアプリは、数字のIPアドレスはつかえない、は正しいでしょうか?
iアプリは、ダイナミックDNSのアドレスでも通信できるのでしょうか?
以上質問3連投
3連打で打ち返してくださいまし
0179デフォルトの名無しさんNGNG
>>178
あー、ここで色々質問に答えてるけど、さすがにその質問の仕方はむかついたわー。
仕様書読め。
どれも基本的すぎる上、態度が気に食わん。
0180デフォルトの名無しさんNGNG
>>176
塗る前に色をセットしてない。
0181デフォルトの名無しさんNGNG
>>176
getColorしたものを、setColorしなきゃだめだぞ
0182171NGNG
>>174
Clipが外せない理由がちょっと気になった。
ひょっとして、でかーいマップ画面を作って、それを全部描こうとしてない?

チップに分けているなら、敷き詰めたときに描画エリアより少し大きくなるだけの
マップを作って、それをスクロール量分だけずらして描けばいい。

スクロール量がチップサイズを超えたらチップのマッピングを変更。

的外れだったらすまん。
0183164=174NGNG
>182
質問に答えてくれてありがと〜。
drawImageでやっていた時は、チップから生成している Image は描画分+1行列だけだね。
ImageMap の場合も、描画ウィンドウ範囲はやっぱり描画分+1行列だよ。
そしてマップが移動する時にピクセル単位でスクロールさせて(2〜3描画程度)、
用意したチップマップサイズを超えたら、足りない分だけ描画している。
マップ移動時にカクカクと見せないための処置なんですよ。

で、さっき売り切れ寸前の実機を手に入れて試してみましたさ〜(1万円が飛んでいく〜)。
…えらく騒がせて申し訳ないけれど、マップ描画以前でも遅延が発生してやがる…_| ̄|○
描画よりもメインルーチンの部分に問題あるんじゃないか…。

本当にスレ汚してスマン…。
でも、遅延の理由が分かったら自己レスするわ(SHだけで起こるのも興味深いし)。
0184デフォルトの名無しさんNGNG
>>173 それ、浮動小数点数使ってるとでるよ。
CLDCは浮動小数点数は未サポートなんよ。(コンパイルは通る)
確かドキュメントに載ってたはずなのでもっかい確認すれ。
0185173NGNG
>>184
うおお、有難うございます!
0186デフォルトの名無しさんNGNG
とりあえず、SH505iのImageMapは特に遅くない。
少なくともdrawImage2重ループよりは速くなる。
0187デフォルトの名無しさんNGNG
はやくCLDC1.1対応になって欲しいものだ…。
いつから対応するんだろうねぇ。
0188171NGNG
>>183
なるほど。外してたスマソ。

どういう処理で遅くなってるのかまで切り分けてくれれば、なにか
アドバイスできるかもしれん。

現象については俺も興味あるトコなんで、何かわかったらよろしく〜
0189デフォルトの名無しさんNGNG
ここですか?
BREWを馬鹿にするスレは
0190デフォルトの名無しさんNGNG
>>189
こっちじゃないですかね。
http://pc5.2ch.net/test/read.cgi/tech/1076511398/
0191デフォルトの名無しさんNGNG
auはJavaに戻りつつある。
0192デフォルトの名無しさんNGNG
>>191 auはPhase3迄でJava対応は終了だと思ったが・・・?
0193デフォルトの名無しさんNGNG
はじめましてです。
i-アプリで単語帳(クイズ形式)のようなものを作ろうと思うのですが、
(漠然とした話ですみません)
単語や訳のデータはテキストベースで結構な量になってしまうので、
扱いをどうしようかと迷っています。

サーバから逐一落としてくるのでは通信料も多くかかりますし。
端末内のメールをJAVAから読み込めるのでしたらそこにデータを置いて、
メールをPCとやりとりすれば、編集も容易で可用性十分なんですけども。
やはりトラステッドiアプリの配信なんて個人では無理でしょうか?

バケ代が安く済ませられ(すんません貧乏なんです)、
編集の容易さや、端末間のデータの移動しやすさなど
上手く解決できる、何か良い知恵はないでしょうか?
宜しくお願いしまする。
0194デフォルトの名無しさんNGNG
>>193 テキストをjarで圧縮して、ネットワークダウンロードして、スクラッチパッドに書き込め。200KまでOKだ。
0195デフォルトの名無しさんNGNG
妥当な提案だ。
UTF8そのままでは、テキストと言えどもかなりかさばるので
何らかの形で圧縮を施すのも忘れずに。
imonaの中の人の圧縮とか、悪くないサイズに縮んでくれまますよ。
0196193NGNG
>>194
>>195
早速のレスさんくすです。
やはりスクラッチパッドに詰め込んでしまうのが妥当ですよね。
データ編集は別のアプリからCGI使ってやることにします。
バケ代については…パケ割入ります。
ありがとうでした。
0197デフォルトの名無しさんNGNG
ケチケチせんとパケ放題入っとけ
0198デフォルトの名無しさんNGNG
>>195 使う文字を決めてしまって(ひらがな+英数字+漢字+記号)256種類に収めれば
とりあえず1バイトで表現できるので素のテキストよりは軽くできると思うが。だめかな?
0199164=174=183NGNG
>183
 やっと原因が分かった…。
 つうか、俺の初歩的ミスだったよ…○| ̄|_

 原因は「ShortTimer」が発生させるイベントを「processEvent」でうまく取得できな
かった事のようだ。「processEvent」はイベント発生時に遅れる事はあっても呼ばれる
もんだと思っていたが、呼び出しタイミングは任意だったんだな…。

 俺が作っていたアプリでは「IApplication派生=メインルーチンクラス」と
「canvas派生=描画クラス」を作っていて、メインルーチンから描画クラスの
「ShortTimer」が発生させたイベントのカウンタを見に行く仕様だったんだ
(一つにまとめろという意見はあると思うが、その通りとしか言いようがない…)。

 で、他の機種(NやらD、SOなど)では一定間隔で「processEvent」が作動して、
タイマーイベントの取得ができていたんだが、SHだけは「メインルーチン」ばかり
動作して「processEvent」が動かずに取得できなかった(多分イベントキューには
たまっていた?)。どうもSHは「processEvent」か「canvas」クラスの動作が他と
違う感じだ。

 修正したところは、メインルーチンのウェイト処理で「Thread#yield()」を使用
したところ、うまく動いたよ(「Thread#sleep(1)」でもいいんだよな)。要は別スレ
ッドへ実行を譲ればいいわけだから。

 このメソッドの存在を忘れるとは、改めて俺にはJavaの知識ねぇなぁと思ったね。
始めてから半年にもなるというのに…。
 スレ汚し、スマンね…。
0200デフォルトの名無しさんNGNG
メインスレッドをSleepなんぞかけずに無限ループさせているが、
processEventが動作しなくなるなんてバグでたことないぞ。
0201デフォルトの名無しさんNGNG
スレッドを無限ループさせるなら
wait()かsleep()かyield()は必須だね。マルチスレッドプログラミングの基本。
たしかに、よく入れるの忘れるけどな...orz
0202171NGNG
>>199
解決おめ〜
スレ汚しとは言うけど、俺にとってはためになる話だった。thx。

ただ、やっぱしメインと描画で別のスレッドを走らせるのは変えたほうがいいと思う。
Canvas派生クラスのrun()の中だけでウェイト入れてぐるぐる回そう。
0203デフォルトの名無しさんNGNG
結局そこに落ち着くんだよなあ…。
timerイベントの方がクールだとか人は言うが、端末毎に実装が違うとしか思えん
挙動の違いを見せる事があって、どーにも安心して使ってらんないし。
0204199NGNG
>200
いや、こいつはCanvas派生クラスにメイン処理を作っていれば、本来は起こらないバグ
だとは思うよ。
だから、携帯Javaアプリを作り慣れている人間は、滅多にお目にかかれないバグだ
ろうね。お目にかかっても、ちっとも嬉しくはないんだけどね...orz

>201
確かに実行管理はスレッドの基本だから、これからは忘れないようにすればいいかねぇ
(別にメソッド名は暗記せんでもいいとは思うが、存在は忘れないようにせんとね)。
SH900iでも同じ仕様らしいから、今後も同様の仕様の機種が出てくるかもしれんし。

>202
ためになると言っていただけると、俺も恥を晒して書いた甲斐があったというもんです。
確かに、canvas派生にrunメソッドをおいて、スレッド化するのが一番だと気付きました。
ただ、現状コメント含めて3000行のソースを、数日でバグを発生させずにマージする
自信がなかったもんで断念ですよ...orz
次回の開発では、もう少しうまく設計できると嬉しいよ。

>203
JavaVMの動作の違い(仕様)と言ってしまえばそれまでなんだろうけれど、本当
にDやらNで動作していた事が不思議だ(なんかSHの動作の方が正しい気もするし)。
ShortTimer は確かに便利なんだが、こうもVMの違いがあると困るのも確かだね。


では、本当にみなさんありがと〜。
これからも何かあったらよろしく(俺も応えられる範囲で答えるから)。
0205デフォルトの名無しさんNGNG
明示的にスレッドオッ立てなくても、描画イベントやタイマイベントは
処理中に平然と割り込んでくるから、作法をひとつ間違えただけで
同期処理が甚だしく面倒になるんだよなあ…。
iアプリはpaint()内で描画しなくてもgetGraphics()してやれば
何時でも描画できる分、メインのループに処理を集中させられるんだが、
これがVodaとかだと小細工を労するか、諦めて描画と本体の2ブロックに
プログラムを叩き割るかしないといけなくなるから、無意味に大変なんだよなあ…。

つか、やっぱりみんな同じ所に引っかかるものなんだなと、ちょっぴり安心した(w
0206デフォルトの名無しさんNGNG
あの・・・
どなたか長い文章を表示するアプリで、画面の右端で折り返して表示してくれるアプリのソースのヒントください・・・
いろいろ試行錯誤してみたんですけどできなくて・・・・
0207デフォルトの名無しさんNGNG
>>206
「いろいろ試行錯誤してみた」じゃ何を試したのかわかんないから
助けを求められても何もできないよ。
APIリファレンスのFont#getLineBreak()を読め、としか。
0208デフォルトの名無しさんNGNG
Font#getLineBreak()の使い方わからないので、
テキストボックスで作ってみたんですけど、文字サイズが大きくて見づらくてこまってるんです・・・
0209デフォルトの名無しさんNGNG
>>208
ちょっと待て。
Font#getLineBreak()がわからなくてテキストボックスで作ってみた、って言ってるけど
アプリをPanelとCanvasのどちらで作るかも決めてないってことかい???

ま、それはそれとして。
Font#getLineBreak()はCanvasで文字列を描画するもの。
APIリファレンスに載ってるサンプルが理解できなかったら勉強するかアプリの制作をあきらめる。

テキストボックスはPanelに配置するもの。
複数行表示はできてるみたいだね。それで文字の大きさが問題、と。
APIリファレンスでTextBoxの「クラス com.nttdocomo.ui.Component から継承したメソッド」の中に
「setFont」ってあるでしょ。今度はそこ読んで何とかしてみ。
0210デフォルトの名無しさんNGNG
>>208
なぁ…。
getLineBreakでぐぐって、一番上にでてくるリファレンスに、
そのものずばりサンプルソースがまるまる書いてあるんだが…。

 な め る な よ ?
0211デフォルトの名無しさんNGNG
プログラムの組み立て方についてなのですが、

トップメニューに0.gifを表示しつつ
1.画像A
2.画像B
3.画像C
の様なメニューを表示します。
キーイベントが発生したら
それぞれ1.gif、2.gif、3.gifを表示します。

といったオーソドックスな分岐なのですが、

キーイベントのif文で
if(param == Display.KEY_1){
1.gifを表示する処理
} else if(param == Display.KEY_2){
2.gifを表示する処理
} else if(param == Display.KEY_3){
3.gifを表示する処理
}
とするのがいいのか、
フラグを使ってrepaint();した先のpaintの中で分岐させればいいのか、
paint1、paint2、paint3を作ってキーイベントからそれぞれに飛ばした方がいいのか、
どの方法がおすすめでしょう?

こういう場合の定石なんてあります?
ぶっちゃけ動けば何でもいいのでしょうが、
あとあとの拡張性なんかを考えるとどうすればいいのか
混乱しています。なにとぞ救いの手をお願いします〜
0212デフォルトの名無しさんNGNG
キーイベントで分岐。
0213デフォルトの名無しさんNGNG
>>212
全部じゃねーか(藁

>>211
処理内容によるかも知れないけど、最初の案でいいと思うよ。
無駄に変数やメソッドを増やすこともないし。
0214デフォルトの名無しさんNGNG
>>211
repaint()を呼んでも必ず直後にpaint()がコールされるわけじゃないから
(ラグがある時がある)気をつけてね。
なので、どちらかと言えばprocessEvent()が呼ばれたときか、
タイトルループの中でgetKeypadState()使って処理したほうがヨサゲ。
0215デフォルトの名無しさんNGNG
>>211
iアプリコンテンツ開発ガイド 詳細編に理由とともに書いてあるが、
processEvent()内の処理は極力短時間で完結させよとのこと。

paramを変数に保存し、repaint()先のpaint()で分岐して各画像を描いたらいいのでは。
0216デフォルトの名無しさんNGNG
そもそもrepaintなんぞ使わないに一票。
reapaintのは、全画面再描画用フラグを立てるだけの入力しか書いていない。
0217211NGNG
みなさんありがとうございます。
処理内容は、画像表示+αも想定してまして、
その+α部分の規模が大きくなってしまう可能性もあったりします。
極力短時間で完結させるならば、
フラグだけ持ってさっさと外に逃げた方が無難そうですね。
+α部分の処理を独立させるか否かは別にして、
すぐに外に出る、という方向で骨組みの処理の流れを今一度考え直してみます。
getKeypadState()使った処理も考えてみますね。ありがとうございます。
0218デフォルトの名無しさんNGNG
複数のキーを同時に押すことがあるなら、getKeypadState()を使ったほうが楽。
0219デフォルトの名無しさんNGNG
ちなみに、getLineBreakのサンプルコードは、
503iの時APIリファレンスは間違ってるので注意w
0220デフォルトの名無しさんNGNG
F505iGPSでiアプリで位置情報を取得したいんですけど、
どうやってやったらいいんでしょう??
誰か知っている人がいたら教えてくれるとうれしいです。
0221デフォルトの名無しさんNGNG
Dojaのデバイス情報ってどこにもないのでしょうか。
見つけたのは古くて、現在のDojaでは利用できませんでした。
機種ごとにあれば、と思い各メーカのページやDoCoMoのページも探してみたのですが見当たりません。
私の検索能力では見つけることができませんでした。
自分で作るしかありませんか? それともすでにどなたかが作っているとか?
もしご存知の方がいらっしゃいましたら、ご教示いただけるとありがたいです。
0222デフォルトの名無しさんNGNG
>>220
パッケージcom.nttdocomo.device.locationを使うんじゃないの?
DoJa3.0のAPIリファレンス嫁
オプションAPIなのに標準APIの方に載ってるが…

>>221
エミュのスキンのことか??
普通は画面のサイズを変えるくらいしかしないから、そんな物わざわざうpしないと思われ
漏れは、skin.confの
lcd_width = 240
lcd_height = 271
を変えるだけしかやった事無い
0223デフォルトの名無しさんNGNG
>>221
ちょっと言ってる意味が分かんない。
具体的にどんな情報を探してるの?
0224221NGNG
>>222
ありがとうございます。
やはり動作チェックさえできればいいくらいのものなんですね。

>>223
質問の仕方が悪かったようです。申し訳ありません。
>>222さんの回答で充分です。
ありがとうございました。
0225デフォルトの名無しさんNGNG
import com.nttdocomo.ui.*;

public class test extends IApplication{
public void start(){
Display.setCurrent(new myCanvas());
}
}

//Canvasクラス設定
class myCanvas extends Canvas{
public void paint(Graphics g){

// 小さいフォントを指定
Font f = Font.getFont(Font.SIZE_SMALL);
String str = "フォントを指定する方法は、2通りあり、「タイプを指定する方法」と、「フォントのフェイス、スタイル、サイズを指定する方法」の2種類があります。";
int begin=0, finish=0;

for(int i=0; i<3; i++){
finish = f.getLineBreak(str, begin, str.length()-begin, 160);
int kaigyo = f.getLineBreak(str, begin, finish, 160);
begin=finish;
}
}
}

あの・・・
やってみたんですが・・・
悪いところ指摘してください。おねがいします
0226デフォルトの名無しさんNGNG
>>225
> int kaigyo = f.getLineBreak(str, begin, finish, 160);

ここが意味ワカンネ
0227デフォルトの名無しさんNGNG
文字列が変化していないのだが・・
0228デフォルトの名無しさんNGNG
>>227
そうなんですよil||li _| ̄|● il||li
0229デフォルトの名無しさんNGNG
まずサンプルコードをテキストエディタで書き写せ
で、それをここへコピペしろ
話はそれからだ
0230これですか?NGNG
Font f = Font.getFont(Font.STYLE_PLAIN);
String str = "ある晴れた日の午後、アヒルが池で気持ちよさそうに泳いでいた。";
int begin=0, finish=0;

for(int i=0; i<3; i++){
finish = f.getLineBreak(str, begin, str.length()-begin, 50);
int kaigyo = f.getLineBreak(str, begin, finish, 50);
begin=finish;
}

0231デフォルトの名無しさんNGNG
確認するが、文字開始位置を出しているだけなのに、
文字列が表示されないとか思っているわけ、じゃないよな???
0232デフォルトの名無しさんNGNG
>>231
g.drawString(str,10,10);

ってのを追加しても意味ないですよね・・・
どうすれば・・・
0233デフォルトの名無しさんNGNG
>>232
232==206で、210にあるソースを試しているってのを説明しないと
何をしたくてどううまくいかないのかが読んでいる人には全然理解
できんぞ。おれはもう説明する気ねーけど。
0234デフォルトの名無しさんNGNG
ttp://www10.plala.or.jp/java/kouza/19.htm
ここに載っていたソースをコピーして>>225を作り、コンパイルしてたんですが、
文字が表示されなかったんです。
それでどれを使って文字を表示すればいいのかと思って
g.drawString(str,10,10);
というのを使ってみたんですが、それでは

for(int i=0; i<3; i++){
finish = f.getLineBreak(str, begin, str.length()-begin, 50);
int kaigyo = f.getLineBreak(str, begin, finish, 50);
begin=finish;
}

を記述した意味がなくなってしまうのではないのかなぁ
とおもって困ってます
0235デフォルトの名無しさんNGNG
>>228
おい、文字列を変化させるコード書かずになにを期待してるんだ?
0236デフォルトの名無しさんNGNG
ソース見せるだけじゃ意味ないからこれは調べてくれよ。
1.getLineBreakで次の行にすべき最初の文字位置が求められる
2.文字位置が求められたら、それを参考にstrから必要な文字列を抜き出す
3.抜き出した文字列をdrawStringで書き出す
これでしたいことはできるんじゃないかな。多分分かっていないと思うから、結論から言うと、
getLineBreakは「自動的に改行してくれる」ものじゃないということだ。

>>232が分かっていると思われるメソッドについては、そのまま入れておいたから、
何を調べればいいかは分かるだろ? がんがれ。
0237デフォルトの名無しさんNGNG
>>232
回線(ry
0238デフォルトの名無しさんNGNG
int kaigyo = .... と begin=finish; の間に

g.drawString(str.substring(begin,finish),0,i*f.getHeight()+f.getHeight());

を入れてみてちょ
0239デフォルトの名無しさんNGNG
>>238
キタ Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒(。A。)!!!!!!!!!!!
キタ━━━( ´∀`)`・д・´) -_-)´・ω・`)丶`∀´>´・.・`)=3━━!!!!

どうもありがとうございます!!
やっとできた!!!
0240デフォルトの名無しさんNGNG
先ずAPIリファレンスのFont#getLineBreak()を見ろ
で、そこに書いてあることを読んで理解しろ
そこにそのものずばりのサンプルコードも載っている

理屈がわからないなら出来ても無意味だぞ
つーか、ほんとにちゃんと動いてるのか?
0241デフォルトの名無しさんNGNG
文字の表示はされました
後は改行したい位置での改行と、縦スクロールするのにはどうやって記述するのかを調べてきます
0242デフォルトの名無しさんNGNG
なんでAPIリファレンスのコードコピーしないんだよ。。
あれで殆ど用は足りてるのに。
0243デフォルトの名無しさんNGNG
このスレが必要なくなっちまうからじゃないのか?
ネタを続かせるためだろ、多分。
0244デフォルトの名無しさんNGNG
改行問題で困っている質問者(206氏)は問題が解決するまで名前欄に「206」と入れた方がいいよ。
助ける側もその方がやりやすい。

ついでだから>>206から>>241(ここまで読んだ)までのまとめ。

質問者
206=208=225=228=230=232=234=239=241=…

やろうとしていること
長い文章を画面の右端で折り返して表示するプログラムを書く。

質問者のレベル
プログラミング初心者。
サンプルソースを理解不十分のままコピペしてトライ&エラー。苦戦中。
0245デフォルトの名無しさんNGNG
なんでAPIリファレンス見ないんだろうね。
よくわからんページのサンプルソースは見るくせして。
0246デフォルトの名無しさんNGNG
>>207がAPIリファレンス読めと言って>>208で分からないと答えている。
読んでも理解できなかったってことじゃないかな。
0247デフォルトの名無しさんNGNG
つまり、どれがサンプルかわからなかったってことか。
0248206NGNG
APIリファレンスってこれですよね?
http://java.sun.com/j2se/1.4/ja/docs/ja/api/

サンプルコードがどれなのかわからなくて・・・・

0249デフォルトの名無しさんNGNG
つまり、DoJaのリファレンスすら見てないバカだったってことか。
0250デフォルトの名無しさんNGNG
ちなみに、こいつのバカなところは、リファレンスを見ろと言て、リファレンスが見つけられてないのにそのまま話題を続行したことだな。
あの時点でgetLineBreakのリファレンスがみつかってないことをいってれば、こんなことにはなってない。

やれっていわれたことをできないのはしょうがない。でも、それができてないことを隠して話題を続けるやつは、救いようがない。
0251206NGNG
http://lecture.ecc.u-tokyo.ac.jp/~cichiji/cp-01/i-mode-java/com/nttdocomo/ui/Font.html
これですか?
0252デフォルトの名無しさんNGNG
>>251
まずオフィシャルのものをダウンロードしろよ・・・
0253デフォルトの名無しさんNGNG
>>206
まず、このスレの>>2を見よ。
DoCoMo公式サイトから必要なドキュメント(資料)をダウンロードせよ。
開発の対象としている機種が
504シリーズならDoJa2.xプロファイル用を。
505シリーズならDoJa3.0プロファイル用、および3.x共通用を。
900シリーズならDoJa3.5プロファイル用、および3.x共通用を。

ダウンロードしたか? iアプリ開発に固有のAPIのリファレンス(説明書)は
「iアプリコンテンツ開発ガイド for DoJa-○.○ APIリファレンス編」というやつだ。

206がやろうとしていることも、そのものずばりの解答がそのまま掲載されているんだぞ。
Fontの項目のgetLineBreak()の説明を読んでサンプルコードを理解せよ。


206よ。
きみは質問する立場として、質問者のスタートラインにも立っていなかったってことだ。
今はAPIリファレンスが読めるように(必要な項目の内容が理解できるように)がんばれ。
0254デフォルトの名無しさんNGNG
おれはまず、やれっていうことができなかったら、そのことを申告できるようになってほしい。
0255デフォルトの名無しさんNGNG
>>248
まあそれもAPIリファレンスだから間違っては無いw
誰も「Dojaの」APIリファレンスとは教えてない罠。

おまいら見てると癒されるからもっとやれw
聞くほうも聞くほうだが、教えてるほうも(ry
0256デフォルトの名無しさんNGNG
>>209の
>APIリファレンスに載ってるサンプルが理解できなかったら勉強するかアプリの制作をあきらめる。
を完全に無視したあたりが原因かもなー。
まず「調べ方」あるいは基礎の基礎からの勉強が必要だったという。
進んでいるように見えてこれから先、何回も同じような壁があるだろうから、
結局は先に勉強しておいたほうが「急がば回れ」を実感できるよ思うよ、実際…
0257デフォルトの名無しさんNGNG
>>251
そこのgetLineBreakのところにまんまなサンプルコードあるじゃんよ…。
0258デフォルトの名無しさんNGNG
これも見ないとiアプリは作れないよ
CLDC仕様書 日本語版
http://java.sun.com/products/cldc/docs/CLDC1.0_ja_docs.zip
>>2に書いてあるリンク先なんだけど、見てないヤカン

しかし…やっぱりネタなのかな?
0259デフォルトの名無しさんNGNG
おもしろい反応が返ってこないから、ネタじゃないだろ。
ま、一次情報の大切さがわかってくれればよいのだが。
0260デフォルトの名無しさんNGNG
>>206
いままで私も同じところでつまずいて
いました。>238さんの方法でなら、確
かに解決しますね。初心者同士これか
らも頑張りましょう。けれども、どう
してこの一行が必ずいるんでしようか
ね?よろしければ、教えてください。
>>206

0261デフォルトの名無しさんNGNG
ママに持て?
0262デフォルトの名無しさんNGNG
>>260
なかったらどこで出力するんだ?
0263デフォルトの名無しさんNGNG
>>260
30点
改行位置が不自然杉
0264206NGNG
>>260
まず一番最初のソースの失敗した原因は
文字を画面に表示するためのものが記述させてなかったからと思います
きちんとgetLineBreakの意味を勘違いしないでわかってればこんな失敗しなかったと思うので、
サンプルソースみて勉強してきます
0265デフォルトの名無しさんNGNG
>>260
いいかしらね?
0266206NGNG
縦読みか・・・
釣られた・・・・
orz
0267デフォルトの名無しさんNGNG
当方、iappliTool for DoJa-3.5にてiアプリを開発しています。

resディレクトリの中に置いたtest.txtの中に書かれている
文字列を読み取って処理するにはどのようにしたらよいのでしょうか?
画像ファイルはMediaManager#getImage、
音楽ファイルはMediaManager#getSound
を使用しているのですが・・・。

よろしくお願いします。
0268デフォルトの名無しさんNGNG
InputStream ins = Connector.openInputStream("resource:///test.txt");
こんな感じだったかと
あとはInputStreamReaderを使うなりなんなりして頑張る
0269デフォルトの名無しさんNGNG
>>251=206
キミが見てるのは503i用のAPIリファレンスの悪寒。
>>219 が本当かどうかちゃんと見てないが、ちゃんと最新のをダウンロードしてこい。
0270267NGNG
>>268
ありがとうございます!
InputStreamReaderとBufferedReaderを使って、
なんとか希望通りの動作をするようになりました。
0271デフォルトの名無しさんNGNG
>>269
>>206が503iを対象にしたものを作ろうとしているときは…
などと考えると疲れるな、やめとこ。
0272デフォルトの名無しさんNGNG
ボタンが押下されたら画面を切り替える処理の場合、

public class Canvas1 extends Canvas {
public void processEvent(int type, int param){
if(type == Display.KEY_PRESSED_EVENT){
Display.setCurrent(new Canvas2());
}
}

public class Canvas2 extends Canvas {
public void processEvent(int type, int param){
if(type == Display.KEY_PRESSED_EVENT){
Display.setCurrent(new Canvas1());
}
}

このコードで表面上は目的が達成されるのですが、
Display.setCurrentのnewでインスタンスを生成しっぱなし
ってメモリ的には無問題でしょうか?
0273272NGNG
DoJaのエミュが今どのくらいメモリを消費しているのか
調べる方法ってあります?
0274デフォルトの名無しさんNGNG
>272
Runtime
0275272NGNG
インスタンス生成前と生成後を

long m1 = Runtime.getRuntime().totalMemory();
System.out.println( m1 );

long m2 = Runtime.getRuntime().totalMemory();
System.out.println( m2 );

で比較してみたのですが同じ数値が返されました。
このコードって実機じゃないと有効じゃないのかな・・・
0276デフォルトの名無しさんNGNG
>>275
Runtime#totalMemory()は、仮想マシンの総メモリ容量を返す。
空きメモリを見たければ、 Runtime#freeMemory() な。

だけど、断片化などのメモリ管理の都合で、必ずしも正確な値を返さないようだ。
0277272NGNG
ありがとうございます。
インスタンス生成前と生成後で数値の変化が確認できました。
うーんよくわからないけど破棄する処理は不要なのかな・・・
もう少し勉強してきます。
0278デフォルトの名無しさんNGNG
>>277 ガーベッジコレクションっていう仕組みがあるから大丈夫なのよ。
0279デフォルトの名無しさんNGNG
>>278
ということにしたいのですね。
0280デフォルトの名無しさんNGNG
必要ないのに毎回newするのはあんまりイクナイ
0281デフォルトの名無しさんNGNG
ガベコレがあるからといって、むやみにnewするのはやめとけ。
0282デフォルトの名無しさんNGNG
というか、GCの挙動が、機種によってあまりにも違いすぎ。
0283デフォルトの名無しさんNGNG
>機種によって...
まぁそのへんの話になってくると愚痴になりやすいので、
俺たちで何とかできる部分はないか考えてみようぜ。

例えば>>272なんかだと
「new Canvas1()」の部分があからさまにアレだしさ。
0284デフォルトの名無しさんNGNG
Java Blenderを使ってアプリを圧縮してるんですが、
このツールを使って作成したアプリは
商用などでも制限なしで使えるのでしょうか?
ocamlのホームページなどを色々見てみたのですが、
いまいち要領を得ません。
誰かご存知の方がいましたら教えていただけないでしょうか?
0285デフォルトの名無しさんNGNG
とりあえず、不要な領域はnullを代入してgc()しとけ。
初期化とか画面遷移のタイミングでやるのが基本。

・・・だよね?
0286272NGNG
あからさまにシロウト丸出しでした
きっとnew以外のCanvas表示方法がありますよね
そっちを使えばメモリ云々なんて気にすることないし。
gc()は勉強になりました。多くのヒントをありがとうございます。
0287デフォルトの名無しさんNGNG
うむ、キャンバス切り替えるたびにnewするのは馬鹿らしい。
っていうか、Canvasのオブジェクトはひとつしか使う必要がないと思うのだが。
0288デフォルトの名無しさんNGNG
誰かiアプリでピンボール作ってくれませんか?
少ないですが報酬も出します。

高額は出せないので、暇な人で作れそうな人。
0289デフォルトの名無しさんNGNG
>>288
せめて、対応機種と納品条件
それともちょっと具体的な金額を提示してくれないと
なんとも言えないような気もする。
0290272NGNG
>>287
それは言い換えれば、何枚画面があろうと
ひとつのCanvasオブジェクト内で工夫するのがベターだ
という解釈で正解ですか?
だとすると考え方を根本から変えなければ。
現在、Canvas1.java、Canvas2.javaな状態でして・・
0291デフォルトの名無しさんNGNG
最近はjarのサイズ制限がぬるくなったからいいねぇ。
0292272NGNG
何をやりたいのか説明しますと、ゲームで
●タイトル画面(キー入力でメニュー画面へ)
●メニュー画面(メニュー選択後キー入力で各画面へ)
・はじめから
・つづきから
・面セレクト
・操作説明
の様な構成で各画面を行き来する部分の作り方を試行錯誤中なのです。
0293272NGNG
>>291
すみません、DoJa3.5以上を対象機種として作ってたりなんかします(汗)
趣味なので自分の携帯で遊べればいいや、という発想でして。
0294デフォルトの名無しさんNGNG
>>292
やり方は色々だと思うけど、自分なら
画面状態をフラグで管理して描画やキー入力処理を振り分けるよ。
メモリ使ってでもCanvasオブジェクトを複数使いたいなら
毎回ではなく最初に一度だけnewしておいて使い回したほうがいいね。
newしてgc()するとアプリが一瞬止まる。
止まってもいいようなケースなら問題ないか。
0295デフォルトの名無しさんNGNG
>>292
なんかいきなり色んなことに取り組み過ぎじゃないか?

まずは肝心のゲームの部分から手をつけた方がいいんじゃない?
カキコ見てると、とてもゲームの部分出来てるように思えんのだが…
0296デフォルトの名無しさんNGNG
FOMA900iでPrimitiveArrayクラスを使用して3Dのテストをしているのですが、
テクスチャ付きの3角形ポリゴンを描画しようとすると以下の問題が発生していて困っています。

エミュレータでの確認
 java.lang.IllegalArgumentException: The primitives require texture setting
 のエラーで描画できない。

P900(個人所有)
N900(友人の協力により確認)
 正常に描画できる。

で、特に疑問なのが、リファレンスには
「未サポートの場合、 メソッドが呼び出された時点でUnsupportedOperationException」
とあるのに、エミュレータでは「The primitives require texture setting」とでるので、
プログラムの凡ミスの可能性があるような気もしますが、P900、N900では正常に
動作しているので困っています。

The primitives require texture settingはどのようなミスがあったときに出るエラーなのでしょうか?

0297デフォルトの名無しさんNGNG
>>290
画面を管理するクラスを作って、それぞれの画面はそのクラスを継承したものにする。
キー入力や描画処理は、現在表示中の画面にイベントを転送するだけになる。
そうすると、唯一のキャンバスの全ての処理を例外補足しておけば、ほとんど全ての例外に対応できる。
クラスといっても項目数は多くないから、newしてもあまりメモリに負担はかけないし。
メニューみたいな選択画面は継承でいろいろなバリエーションを作れるし。
1回作れば、再利用も簡単。
ドラクエみたいな重なるメニューも実装しやすい。
0298デフォルトの名無しさんNGNG
>>297
iアプリの容量やパケット従量制を考えると
クラスの数を増やさないほうが良いと思われ
って、ちとケチくさい意見だったら失礼。
特に継承とか利用する設計だとどうしてもクラスが増えるし
最終的にマージしようとすると大変。
0299デフォルトの名無しさんNGNG
FOMAでパケ放題を見越せば、そんな設計はレガシーになるよ
0300デフォルトの名無しさんNGNG
>>298
クラスを使わずにコードが散乱したほうがトータルの容量が増える可能性もある。
クラスをまたがった重複コードは圧縮されないし。同じクラス内なら、同じコードが圧縮される。
効率の悪いフラグ処理で、無駄なコードが多くなることもあるし。というか、クラスを使わないで作られてるものはだいたいそうだ。
容量の問題があるなら、いったんクラスを使って整理した形で書いたものを、後で容量の問題が出てきたときにまとめていけばいい。

ダウンロードの話で言えば、結局30KBになるわけだし、画像の方が比較にならないくらい大きいので、そこが問題になることはない。

基本的に、クラスを使わない方がいい、という意見は、クラスを使った設計ができない人が、容量の問題をタテに自分を正当化するだけ、ということが多い気がする。
0301デフォルトの名無しさんNGNG
>>296
とりあえず、
Graphics3D#setPrimitiveTextureArray()
Graphics3D#setPrimitiveTexture()
によるテクスチャの設定を行っているかどうかを聞きたい。

Graphics3Dまわりのエミュレータの挙動はあちこち怪しげなので、lockするたびに
透視変換パラメータやらテクスチャ設定やらをやり直さないとうまく動かなかった
気がする。

>>297>>298
容量制限があるので、クラスを分けるよりは、現在の状態を保持する変数を用意
して、その値を見てswitch()で分岐させとくのが楽でいいと思う。
0302デフォルトの名無しさんNGNG
>>300
クラスを使ったほうが綺麗に書ける場合は確かに多いけど、現時点ではまだ
容量制限がきついのも事実。

盲目的に「クラス使っちゃ駄目」ってのはナンセンスだけど、終盤で容量が
足りなくなったりしたら悲惨なんで、クラスの分け方にはかなり気を使うね。
0303デフォルトの名無しさんNGNG
100Kマンセー
0304デフォルトの名無しさんNGNG
漏れはこんな感じ

・10KBならクラスは2つだけ!
・30KBなら無闇にクラスを作らないように気を付ける
・100KBならオブジェクト指向でGO!

30KBじゃまだまだキツイよ
凄く小さなアプリしか作らないなら話は別だが
0305296NGNG
>>301
有難うございます。解決できました。

Graphics3D#setPrimitiveTextureArray()
をしていて
Graphics3D#setPrimitiveTexture()
をしていなかったのが原因でした。

0306デフォルトの名無しさんNGNG
クラス1つ増やすと無条件で数百バイト余計に食うからなあ。
0307デフォルトの名無しさんNGNG
>>288
ピンボールかぁ…
オレなら条件にもよるが、
¥1000ぐらいで作ってやっていいと思ってたが、
反応がないとこを見ると釣りか。
0308デフォルトの名無しさんNGNG
>>300
>基本的に、クラスを使わない方がいい、という意見は、クラスを使った設計ができない人が、容量の問題をタテに自分を正当化するだけ、ということが多い気がする。
↑この発言は、ちょっとひどいなぁ。
30KB制限ギリギリのアプリをオブジェクト指向バリバリで
設計したことある人ならこんなことはいえないよ。
あるクラスを継承して作った複数のクラスを容量収まらないから
1つにまとめる作業って結構大変だよ。
設計段階からある程度考慮したほうがよいと思うけどなあ。
まあオブジェクト指向を愛する人(自分も含む)は皆
クラスで美しく作りたいのが本音だけどね。
0309デフォルトの名無しさんNGNG
>>304
まぁ、処理内容にもよりますよね。
簡単なアプリだったらそれくらいですかねぇ。
0310デフォルトの名無しさんNGNG
>>307
おいおい、1000円って時給だよな?
0311デフォルトの名無しさんNGNG
>>308
そうだねぇ。
30kでもちょっとこったアプリだと、
classどころかmethodも展開したりするからねぇ。
オブジェクト指向以前の問題だったりして鬱
0312デフォルトの名無しさんNGNG
>>310
いや、*条件次第*ではひっくるめて¥1,000-でOKなのだがw
0313デフォルトの名無しさんNGNG
1000円だと、とりあえずピンポールの画面イメージまでなら作れるな
0314デフォルトの名無しさんNGNG
>>313
納期1分でもその値段でOKでつか?
0315デフォルトの名無しさんNGNG
そーゆーことか
0316デフォルトの名無しさんNGNG
>>314
納期1分の仕事って業界ではいくらが相場なんだ?
0317デフォルトの名無しさんNGNG
>>316
たぶん、普通はいくら提示されても受けない。
ネタにマジレス過去悪いな
0318デフォルトの名無しさんNGNG
>>304
大きいアプリ作るなら、終盤でのちょっとした変更とか修正が、フラグ処理でやってるとほんとにやりにくくなる。
新しいもの作らないなら別だけど、新しいものを試行錯誤しながら作るときには、少なくとも画面に関してはちゃんとクラス分けして、だいたい落ち着いてから統合していく。
0319デフォルトの名無しさんNGNG
>>316
そんな仕事は無いから安心汁!
0320デフォルトの名無しさんNGNG
今日中っていうのはあった
0321272NGNG
>>294
>>297
参考になります。たしかにやり方は色々ですよね。
あとから書き直すのは大変だけど色々なやり方を経験してみます。

>>295
ゲーム本編は別の言語で書いたものをそのまま移植
というより焼き直しなので割と楽観的に考えています。
むしろ今はゲーム本編に手を出す以前の基本を勉強中で。

納期の無い道楽ですが本業が忙しくて時間が作れない〜
貴重な自由時間だ、さっさと続きを作らなくては
ありがとうございました。
0322デフォルトの名無しさんNGNG
>>304
俺は、仕事でやってるんで、クラスは最低限しか作らない。
仕様変更が多いく、プログラムが分かっていない企画が
無茶なことをよく言ってくるので、ギリギリのサイズになることが多い。
0323デフォルトの名無しさんNGNG
俺は仕事でやってるんで、なるべくクラスを使う。
仕様変更が多いく、プログラムが分かっていない企画が
無茶なことをよく言ってくるので、変更しやすい状態にしておく。
30KB制限の場合、32KBを越えたあたりから、最適化にとりくむ。
とりあえず35KB程度なら、オブファスケータ使えば30KB程度におさまるし。
0324デフォルトの名無しさんNGNG
まとめると、
「プログラムの構造は人それぞれだが、やっぱ30KBの制限は厳しいね」
って事か

100KBフルに使い切ったアプリってどの位入るんだろうな
900i専用アプリってやった事無いからわからん
0325.NGNG
やっぱり基本は1画面1クラスですか?
Commonクラス(共通部分用)とかはあまり作らない方がいいですかねぇ?
0326デフォルトの名無しさんNGNG
>>325
1画面1クラスにしたら、共通部分が基底クラスになるだろ。
0327デフォルトの名無しさんNGNG
>>325
サイズが収まって、期待どおりの動作をすれば
そんなのどーでもいい。
0328デフォルトの名無しさんNGNG
今、いろいろ試しているんだけど、サイズ小さくするならインナークラスより
独立したクラスにしたほうが良いのか…
インナーもprivateよりpublicにしたほうが小さいし…
0329デフォルトの名無しさんNGNG
>>328
外側のクラス名の分、クラス名が長くなるからじゃネーノ?
0330デフォルトの名無しさんNGNG
zip圧縮だから、
似たコードが近所にくるように
classやmethodの順番弄ったりすると縮むけど、
激しくマンドクセー
0331デフォルトの名無しさんNGNG
>>329 60バイトくらい大きくなるよ。そんなもんか?
0332デフォルトの名無しさんNGNG
全機種対応が凄く大変なので、
そろそろ503を切り捨てたいんだけど、
まだ使ってる人います?
0333デフォルトの名無しさんNGNG
>>332
504が出た瞬間に、すでに切り捨ててます。
0334デフォルトの名無しさんNGNG
あのさ、プロを無礼るのもいい加減にしとけよ。
0335デフォルトの名無しさんNGNG
無礼るって久しぶりに聞いた
0336デフォルトの名無しさんNGNG
>>335
ぶれる?
0337デフォルトの名無しさんNGNG
>>336
「無礼」で「なめ」って読む。
「無礼る」って単語はないけど。
0338デフォルトの名無しさんNGNG
最終的にサイズ縮める必要があるとしても、そのための作業時間を
稼ぐために、携帯相手と言えども最低限のクラス化はして、
作業効率上げた方がトクというのが、漏れ的結論。

504と505で共通のアプリを作る場合にグラフィック以外のコードを
共通クラスに括りだしたり、機種の個別対応のための緩衝クラスを
設けたりするの、最初は忌避してたけど、試した限りではデメリットを
メリットを上回ってる気がするしで、最近は恐れず普通にJava的プログラミング
しちゃうようになったよ。
あんまり大量にクラスを持ち込まない限り、オビュファスケータかませば
ほとんど気にならないレベルまで縮められるしね。
preverifyかけた時点で、速度的なオーバーヘッドもかなり解消されてると思う。
最後の一押しのためにクラスを解体する必要が出てくる事も多いけど、
それまでの作業が無駄になるわけじゃないし、まあいいかなと。
つか、その辺どうしても気になる向きには、Cのプリプロセッサを併用するって
手もあるしね。
実際、引数マクロが使えるだけでも凄い楽になる。

ただ、JavaBlenderとかで最適化をかける場合に、クラス階層が複雑だと、
変なバイトコードに変換されてしまう気がしていて、それが少し心配。
納品直前に突然動かなくなったりして困った事が、過去数度あった。
あと、JavaBlenderとjargの併用とかも問題みたい。
時々とんでもない縮み方をして、えええー!?と疑ったらコードの半分くらいが
ばっさり消滅してたってことがあった。
漏れが夢見てたとかならいいんだけど…。
0339デフォルトの名無しさんNGNG
>>338
JavaBlenderってクラス融合するんだよね
チト怖いな

漏れはjarg(バイトコード最適化OFF)+ProGuardにしてる
有料のツールで良いのがあれば使ってみたいが‥
0340デフォルトの名無しさんNGNG
グラフィックは別モジュールでダウンロードさせて
馬鹿みたいに広くなってるスクラッチパッドに保存して使うようにしたら、
容量的に意識して変な最適化をすることもなく、Javaとして(らしく?)開発できると
感じているんだけど、まだまだ甘ちゃんですか。
0341デフォルトの名無しさんNGNG
>>340
それは既に常套手段だと思うんだけど、504を捨ててくれるなという
案件も、まだまだ多いからねぇ…。
職業倫理的にトータルの通信料も抑えてあげたいというのもある。
それにjar30KBの制限は504も505も変わらないし。

手を抜いた書き方すると簡単に足が出るし、詰め込もうと思えば
相当な量を入れられるしで、中々面白いラインではあるんだけど、
今後の携帯事情を考えれば、確かに無駄な苦労ではあるよな(w
0342デフォルトの名無しさんNGNG
>>340
それは当たり前の・・・。
文字列とか3Dデータとか圧縮の効くデータはZIP圧縮させておく、とかなら、ちょっとアマちゃんじゃないかも。
0343デフォルトの名無しさんNGNG
>>342
それも当たり前の・・・。
0344デフォルトの名無しさんNGNG
ジダイハソコマデΣΣ(゚д゚lll)
0345デフォルトの名無しさんNGNG
考えてみれば、505でZIP解凍できて感激してたころから、もうすぐ1年半が経とうとしてるのか。
当たり前だな。_| ̄|○
0346デフォルトの名無しさんNGNG
みな、プリプロセッサとか使ってるの?
0347デフォルトの名無しさんNGNG
使ってます。
0348デフォルトの名無しさんNGNG
>>346
簡単な自作のやつを使ってる。
0349デフォルトの名無しさんNGNG
自作アプリのURL晒し合って各機種での動作確認をし合ったり
ソース晒し合って改造し合ったり、
みたいなコミュニティってありますか?
0350デフォルトの名無しさんNGNG
プリプロセッサは使わないと話にならんだろう。
特に機種毎に別アプリを用意するプロでは。
0351デフォルトの名無しさんNGNG
eclipse 使うときはどうしてるんだ? プリプロセッサ
0352デフォルトの名無しさんNGNG
実際、各機種ごとのアプリを作ってるヒトデ、
eclipse使ってる人いる?
0353デフォルトの名無しさんNGNG
eclipseは使ってないなぁ。
ちまちまとMakefile書いてる。
モノによっては最後に手動でJBlender
0354デフォルトの名無しさんNGNG
jblenderって概算でどのくらい圧縮される?
jargだと10%〜15%くらいは削れるんだけど、それに比べて激しく(・∀・)イイ?
0355デフォルトの名無しさんNGNG
>>354
うーん、似たようなもんかなぁ
0356354NGNG
>>355
ありがと
やれることなんて同じようなもんだから、効果も同じってことね
0357デフォルトの名無しさんNGNG
Panelのコンポーネントで用意されている機能でも
Canvasで書いた方が容量節約になる?
0358デフォルトの名無しさんNGNG
>>357
なにするかによるだろ。
0359デフォルトの名無しさんNGNG
Ant でやってる人っている?
0360デフォルトの名無しさんNGNG
Antでpreverifyとかができなくてあきらめたのは昔のはなしか。
0361デフォルトの名無しさんNGNG
俺は、プリプロセッサ VisualC++ のを使ってるなあ。
コマンドラインで。
0362デフォルトの名無しさんNGNG
>346
 俺は #define だけ使ってるねぇ。
 まあ #ifdef 使えば、機種ごとのアプリ作成も簡単だし、デバッグ埋め込みと取り外しも
簡単になるとは思うんだけど、他の奴がソース解析する時に見にくくなると思って使いづら
いんだよねぇ。
 ちなみにプリプロセッサは、ん・ぱか工房の人が本で紹介してた ppp.exe 使ってる。
0363340NGNG
>>342 - >>345
そうですか。まだまだ甘ちゃんでしたね。
結局グラフィックを埋め込んでも30KBにはおさまってしまう程度の
ものしか作ったことがないです。すんません。
0364デフォルトの名無しさんNGNG
>>362
ああ、それは言えるな。
他人と言わず、自分でも見難くなってしまうのが辛いが、
ソース分けるよりはマシと思ってPP使ってしまう。
0365デフォルトの名無しさんNGNG
PP使うんなら、機種毎のとこは別ファイルにしている物をincludeすればよいんでないのか
0366デフォルトの名無しさんNGNG
includeはいいよね。
汎用メソッドとか全部別ファイルにしてあるよ
0367デフォルトの名無しさんNGNG
eclipseで使えないかなぁ。
ttps://sjpp.dev.java.net/
0368デフォルトの名無しさんNGNG
DoJa3.5でのDisplay.KEY_CLEARの使い方って
他のキー(たとえばKEY_1など)と違います?
エミュだとKEY_1などはイメージ通りの反応なのですが
KEY_CLEARがまったく反応してくれない。
DoJa 3.5 (APIリファレンス)には
KEY_CLEAR [iアプリオプションAPI] と書いてあるのに
DoJa 3.5 (オプションAPIリファレンス)にKEY_CLEARが書いてない。
うーん
0369デフォルトの名無しさんNGNG
PPはCPP32がオススメだな。
__LINE__でデバッグ表示させればExceptionの場所もすぐにわかるし、
インクルード元ファイルのファイル名と行数をコメントで埋め込んでくれるので
複数モジュールに分けてて開発できて楽チン也
0370デフォルトの名無しさんNGNG
>>369
CPP32って何?
0371デフォルトの名無しさんNGNG
>>368
KEY_CLEARの解説をよーく読みなよ。

・505iS以降の端末でのみ使用可能(無印505iでは使用不可)
・端末によってはそもそもクリアキーがないことがある
(Pが確かそうだよな)

特定の機種向けじゃなければ、機能を割り当てるべきではない。
エミュで反応しないのはご愛嬌だが(w
0372デフォルトの名無しさんNGNG
>>370
Borland C++ Compiler 5.5 に付属の PP だったような。
0373デフォルトの名無しさんNGNG
GNU CPP を cygwin で。
0374デフォルトの名無しさんNGNG
>>362 >>364
確かに。使いすぎはよくないみたい。
会社の Java しか知らない若い連中に iMona のソースを
見せたときの拒絶反応に驚いた。
0375デフォルトの名無しさんNGNG
「Javaしか知らない若い連中」ΣΣ(゚д゚lll)
0376デフォルトの名無しさんNGNG
いろいろ知ってるけどiMonaのソース見たときは驚いたわ

これが携帯Javaの本気の書き方か、ってね
0377デフォルトの名無しさんNGNG
enumが使えるとイイヨ
0378デフォルトの名無しさんNGNG
>>377
static final int で定数定義すれば?
0379デフォルトの名無しさんNGNG
(>_<)
0380デフォルトの名無しさんNGNG
>>377 static finalを定数に置き換えてくれるツールもあるで。
0381デフォルトの名無しさんNGNG
>>371
機種依存というのは理解していたつもりなのですが
DoJa3.5のエミュは505iS以降の端末と同等のはずだ
と思い込んでいました。ご愛嬌ですかw
パケ代ケチらずに疑問に感じたら実機で試せということですね。
ありがとうございました。
0382デフォルトの名無しさんNGNG
>>381
お疲れ〜&がんがれ〜
Dojaは、Scratchpad4096k確保できないとかダメダメなんで
いろいろつらいな。
0383SH900iNGNG
SH900iのテストモードへの行きかたしってますか?
0384デフォルトの名無しさんNGNG
みんなstatic finalで満足しちゃってるのか・・・慣れって恐いなw
0385デフォルトの名無しさんNGNG
>>380
そのツール教えてくれ
0386デフォルトの名無しさんNGNG
eclipseでやってるんだが、AppNameってどうやって設定すればいいのかわかりません。
0387.NGNG
>>383
俺は知っているが、知ってどうする?
0388デフォルトの名無しさんNGNG
>>386
Antのbuild.xmlに書くんじゃないの?
0389386NGNG
>>388
bin/*.jamが勝手に作られててAppNameとClassNameがなかったので
手書きしたらうまくいきますた。
Antは勉強してないのでサパーリ。ホントはこっちに書くのかな。
0390デフォルトの名無しさんNGNG
>>389 つーかさ、bin/*.jamが勝手に作られるってことは
Doja対応のプラグインつかってんでしょ。マニュアル読もうぜ。
0391デフォルトの名無しさんNGNG
マニュアルも読んでんだよ、うんこ野郎。
jamも毎回上書きされるんじゃないかって思ったんだよ、このウンコ。
0392デフォルトの名無しさんNGNG
>>391
釣りウザイ
0393デフォルトの名無しさんNGNG
まあ解決したなら良いじゃないか。
>>391も尻拭くのを忘れんな。
俺みたいに尻からぬるぽが飛び出して自宅にウォシュレット取り付ける様な目には
遭いたくないだろう?


static final int で定数列記するの、普通に不便だよなあ。嵩張るし。
Java的では無いのかもしらんが、enumとか使わせてくれ!て感じだ。
だが、プリプロセッサの類いを噛ますとソースコードがJavaでもなんでも
なくなってしまうので、収まるなら大抵jargとかでの圧縮だけで済ませちゃってるよ。
温る過ぎ?
0394デフォルトの名無しさんNGNG
>>393
まぁ、それで収まるんだったら問題ないだろ
0395デフォルトの名無しさんNGNG
いまさらだが506iってDoJa3.0プロファイルなのね。とりあえずDとFは。
てっきり4.0になるのかと思ってた。900iの新しいやつらもiアプリ的には
従来と大差ないのかな
0396デフォルトの名無しさんNGNG
506は505から何も進化しとらんよ。
場つなぎで出すだけ。
DoCoMoは全員FOMAに移動して欲しいわけで、それのためのワンクッション。

2世代前は切り捨ての法則で、今後アプリ開発がQVGAだけになったら楽だなぁ。
0397デフォルトの名無しさんNGNG
シリーズ名が変わらないのにDoJaのメジャーバージョン変わったら混乱のもとだよ。
506がDoJa3.0なのは正解じゃないかな。

DoCoMoはDoJaのバージョン管理がちょっと変じゃないかと思う。
505iのDoJa3.0を基準に考えた場合、
505iSで一部追加や変更があったにもかかわらずDoJa3.0のまま。
これはDoJa3.1とすべきだったのでは。

そうすると900のDoJa3.5とかぶりそうになるけど、それは900でDoJa3.5としたのがおかしい。
900のAPI群は50xシリーズから大きく変わっているのにマイナーバージョン変えただけのDoJa3.5。
これこそDoJa4.0と名付けて欲しかった。
0398デフォルトの名無しさんNGNG
解像度がせめて320x320できることなら400x400になって欲しい
とゆうのは無謀かw
0399デフォルトの名無しさんNGNG
>>398
ドッターの身にもなれw
0400デフォルトの名無しさんNGNG
>>399
いつもお世話になってます(w
0401デフォルトの名無しさんNGNG
>>397
ライブラリやさんじゃないからねぇ。
そこらへんのブランチとかのノウハウはないんだろう。
0402デフォルトの名無しさんNGNG
>>397
いやまったく同意<505iSはDoJa3.1とすべき

俺も getKeypadState(0); とかやっちゃって無印505で落ちるバグ
出してもーた・・・orz
0403ドッターキラーNGNG
解像度はしばらくこれで打ち止めなのかねえ。VGAとか言って欲しいけど。
0404デフォルトの名無しさんNGNG
>>401
DoJa3.xはj3dがオプション
0405デフォルトの名無しさんNGNG
絵描きとしても8x8とかの小さいドットで表現するよりも
16x16以上、24x24くらいの方が何かと表現しやすくない?
もちろんものにもよるけど
0406デフォルトの名無しさんNGNG
性能だけあがってもなぁ。
開発単価あがってくれないとやってらんない。
0407デフォルトの名無しさんNGNG
>>405
労力に見合う報酬が上乗せされていくと思うか?
0408デフォルトの名無しさんNGNG
>>405
手間がかかる。
0409デフォルトの名無しさんNGNG
ピンボール¥1,000-は、ちょっとふっかけ過ぎたかな…
遠足のおやつ制限より安くすべきだったか… orz
0410デフォルトの名無しさんNGNG
単に相場を知りたかっただけなんじゃないのか、と。
んで、だめだここじゃ参考にならん、と。
0411デフォルトの名無しさんNGNG
良くも悪くも皆努力して、安値安定しちゃったからなあ。
質もめちゃくちゃ上がってるし、ユーザ側も大分目が肥えてきてるし。

開発コストと実装させる成果のバランスが崩れかけてる昨今、
おまいら今後どうやって生き延びてく予定でございますですか?
0412デフォルトの名無しさんNGNG
ドラクエやらリッジレーサーが動く時代に、ゲーム屋じゃない企業がiアプリでゲームやっても敵うわけない。
iアプリのゲームで儲けようと思うのはあふぉ。
0413デフォルトの名無しさんNGNG
そこでエロアプリですよ。↓
0414デフォルトの名無しさんNGNG
やっぱエロしかないか…

しかしドキュモが許さない罠
0415デフォルトの名無しさんNGNG
公式サイトには認められないとしても
勝手に作って売るのはアリじゃないの
売り上げ回収の問題はあるけど
0416デフォルトの名無しさんNGNG
Java質問・相談スレからきました

以前 mac で iappli を作ろうとしたら preverifier が無いので無理だと言われました
久しぶりに時間もできそうなので、再度トライしようと思ったんですが相変わらずな
状況なのでしょうか?
なにか preverifier が無くてもなんとかなるのでしょうか?
よろしくお願いします
0417デフォルトの名無しさんNGNG
金の回収はコンビニ決済業者に丸投げで。
諸費用が問題だが。。。
0418デフォルトの名無しさんNGNG
>>416
http://homepage.mac.com/drmx/java/
が使えるかも

http://zdn.zentek.co.jp/ で504までのエミュが買えるみたいだが
Macだと505以降は無いみたい
0419416NGNG
>>418
さっそくありがとうございます

なんか怪しい preveriifier でつね
とりあえずこれでトライしてみます
0420デフォルトの名無しさんNGNG
zentekの「既に業界のデファクト・スタンダードの地位を確立したi-JADE」がとても気になる。
どこの業界でデファクトスタンダードになってるんだろう・・・
0421デフォルトの名無しさんNGNG
503、504 あたりではお世話になったけどなあ・・・
0422デフォルトの名無しさんNGNG
公式エミュがでてから、ぜんぜん聞かなくなった。
お世話になった人は、やっぱ便利だったのかな。
0423デフォルトの名無しさんNGNG
前々から気になってたんですけど
公式エミュで文字出力するとき意図する位置より1ドットか2ドット下に
でてしまうんですが、自分だけですかね?
実機だとちゃんとでるんですが
0424デフォルトの名無しさんNGNG
>>423
その下がり幅は機種によって違ってくるぞ
Font.getAscent()を座標計算に加味すれば吸収できる
0425デフォルトの名無しさんNGNG
(゜ロ゜)!なんとそうでしたか…全部直さなきゃ
>>424
ありがとうございました
0426デフォルトの名無しさんNGNG
リソースからデータを読み込むのですが、
ひとつのファイルにはまとめてありますが
セパレータで区切られた1000個くらいのデータがあり
配列にオフセットを取得し必要になったら本体を読み込む、
という仕様を考えています。
この方法だと、アプリ起動中はストリームが開きっぱなしになるのですが
何か問題はあるでしょうか?
用が済んだらストリームは閉じなければならない、
という意識があって、この仕様自体気持ち悪いのですが
これ以外の方法が思いつかなくて・・・。
経験豊富な皆様方、どうかご助言よろしくお願いいたします。
0427426NGNG
オフセット取得したらストリーム閉じればいいじゃん
何悩んでたんだおれはアホだスンマセン忘れてくだされ
0428デフォルトの名無しさんNGNG
がんがれ
0429デフォルトの名無しさんNGNG
>>420
もう言ったもん勝ちだな。
生暖かく見守ってやろうぜ。
0430ドッターキラーNGNG
> 既に業界のデファクト・スタンダードの地位を確立した

過去形だしウソではないかも。
0431デフォルトの名無しさんNGNG
最初に自分で「カリスマ」って言っちゃってメディアでもカリスマ扱いされたら
それはもう社会的にカリスマとして認められたのと同等、みたいなね。

ところで、delphiのseekに相当するメソッドは無いのでしょうか?
skipで前には進めるけど巻き戻しが出来なくて。
もしかして、skip(-20);で20バイト戻ったりするのかな。試してみよ。
現在位置を得るメソッドも無さそうだなあ。
これも自分で頭からカウントしていくしかないのかな。
0432デフォルトの名無しさんNGNG
>>423
SHだと上にずれるよね。
SOは上下は気にならないけど右に寄る。
0433デフォルトの名無しさんNGNG
私は、座標や中央寄せなど、表示させたい位置が
はっきりと分かっている場合は
Font.getHeight()
Font.stringWidth()
を使って対処してます。。。
0434デフォルトの名無しさんNGNG
アセント値使ってもズレるのか?
漏れは文字の表示位置で困った事無いんだが…
0435デフォルトの名無しさんNGNG
同じアプリを動かして比較してみたが
SH900iはF900iより遅いっぽい。
処理によってはかなりの差が出た
操作性や画面の大きさならSHなのにな
0436デフォルトの名無しさんNGNG
質問です。
N900iとP900iでアプリダウンロード直後はアプリから通信できるのですが、
いったんアプリを終了して再度起動すると通信できなくなってしまいます。
どなたか何が原因かわかりませんでしょうか。
SH900iだと大丈夫です。
0437436NGNG
ちなみにN505iとD505iも大丈夫でした。
0438デフォルトの名無しさんNGNG
>>436
>>92の質問と同じかな?
>>132-144
あたりを見るといいでしょう
SPSIZE=409600にするのが基本
ということで話が終わってますよ
0439438NGNG
失礼。144じゃなかった
>>132-141だ
0440436NGNG
>>438
ありがとうございます。
明日会社で試してみます。
0441デフォルトの名無しさんNGNG
>>436
うむ、初回ダウンロード一発目は通信できるが、
その後メモリ不足で通信失敗ってのは
sp4096で解決するバグのような気がする。

外出だが、検証報告は有益だと思うんで
動作確認したら報告きぼん
0442436NGNG
結果報告です。

P900iではSPsize=409600にすることでうまくいきました。
N900iでの結果はしばらくお待ちください。
SPsizeと実行時のヒープメモリーは全く関係ないと思っておりましたので、
この掲示板を見なければ一生わからなかったかもしれません。
ありがとうございました。
0443デフォルトの名無しさんNGNG
N900とP900は、両方Pの会社が作ったものだから結果は同じと思われ
0444ドッターキラーNGNG
にしても、アプリ1つで確実に400KB+αですか。
PとNのアプリ保存用メモリってどれくらいなん? 最大保存件数10件ってあるから5MB?
0445デフォルトの名無しさんNGNG
11月かよ。
0446デフォルトの名無しさんNGNG
>>443
逆だと思ってた…orz
0447デフォルトの名無しさんNGNG
>>442
オレの書いたプログラムはNでもPでも、SPSizeで409600指定しないで例外出なかったからなぁ
なんかプログラミング方法に問題あるんじゃねぇの?
0448デフォルトの名無しさんNGNG
>>446
お前、Pの技術力と、Nの糞味噌業界鼻つまみもの独自仕様だらけ解像度独自ふざけんな技術を見れば、
勘違いしようがないだろうが…
0449デフォルトの名無しさんNGNG
>>447
通信やJPEG読み込みの前にどれくらいメモリーを使うかが鍵。
0450436NGNG
>>447
SPSizeが実行時のメモリーに影響するのが
そもそもおかしいと思われ。本来全く無関係であるべき。
0451デフォルトの名無しさんNGNG
>>449
それはネットアクセス前にgcを走らせても?
0452デフォルトの名無しさんNGNG
>>431
mark()とreset()
0453デフォルトの名無しさんNGNG
>>443
>>446 漏れも逆だと思ってた...
0454デフォルトの名無しさんNGNG
>>451
それで解決するなら、NP900は糞だなんて言われないよw
わけわからずメモリーオーバー
0455デフォルトの名無しさんNGNG
>>443
>>446
>>453
俺も思ってた。
だってコンポーネントを見るとN50Xシリーズから引き継いでそうだからさぁ・・・。
0456デフォルトの名無しさんNGNG
URL履歴一覧で左右キーでスクロールできたり、
URL履歴をそのまま編集できるすばらしいインターフェイスまわりを見るにP様では?
0457デフォルトの名無しさんNGNG
>>451
449ではないんだけど
gcコールしても使用中のメモリは解放されないのでNG
自分のアプリでこの現象が発生したのは
大量の画像データ(100KB弱)をImageオブジェクトとして生成した後に
Connector.openを使用した時で、例外(NO RESOURCE)が発生した。
ちなみにアプリサイズは30KB
0458デフォルトの名無しさんNGNG
ナショナル900とパナソニック900ってことですね?
0459デフォルトの名無しさんNGNG
>>442
報告乙カレイヤー

まぁ、業界人ならN・Pどっちがソフト担当してるか知ってる罠
直す気が無い糞メーカーは、4096k上等!だろうから
それに答えてあげるのがプログラマの勤めだろうねw
0460436NGNG
念のためN900iでも検証したところ、正常に動作しました。
以上、報告まで。
0461デフォルトの名無しさんNGNG
F900iでHTMLLayoutを使ったアプリがうまく動かないと報告うけたんですが、なんか情報あります?
0462デフォルトの名無しさんNGNG
>>461 該当コードを晒せば一発だよ
0463powNGNG
質問ここでよろしいでしょうか?
C3DMathのメッソドがどうにもうまく使えないので苦労してます。
固定小数点の扱い方が間違ってるかと思うのですが
自分では解決できなくなってしまいました
たとえば5の3乗の計算だと

int beki = 3;
int buf = 5;
int ret;

buf <<= 16;
beki <<= 16;

ret = C3DMath.pow(buf, beki);
ret >>= 16

と考えたんですがpowでRuntimeExceptionが出てしまいます
どなたか識者の方アドバイスいただけたら幸いです
0464デフォルトの名無しさんNGNG
つかえんやつだ。
0465デフォルトの名無しさんNGNG
>>462
晒しますので、よろしくお願い致します。
HTMLLayout HTML = new HTMLLayout();
p_menu = new Panel();
lb_1 = new ListBox( ListBox.CHOICE, 2 );
lb_1.append( "Foo" );
lb_1.append( "Bar" );
b_menu_submit = new Button( "Hoge" );
lbl= new Label( " HogeHoge " );
int lbllength = lbl.getWidth();
p_menu.setLayoutManager( HTML );
p_menu.setBackground( Graphics.getColorOfRGB( 204, 204, 204 ) );
HTML.begin( HTMLLayout.CENTER );
HTML.begin( HTMLLayout.P );

//続く・・・
0466デフォルトの名無しさんNGNG
il_logo = new ImageLabel( LoadImage( "logo.gif" ) );
p_menu.add( lbl = new Label( " " ) );
lbl.setBackground( Graphics.getColorOfRGB( 204, 204, 204 ) );
HTML.br();
p_menu.add( il_logo );
HTML.end();
HTML.br();
HTML.begin( HTMLLayout.P );
p_menu.add( lbl = new Label( "Text1" ) );
lbl.setBackground( Graphics.getColorOfRGB( 204, 204, 204 ) );
HTML.br();
p_menu.add( lbl = new Label( "Text2" ) );
lbl.setBackground( Graphics.getColorOfRGB( 204, 204, 204 ) );
HTML.br();
p_menu.add( lb_1 );
HTML.br();
p_menu.add( b_menu_submit );
HTML.end();
HTML.end();
0467461NGNG
465, 466に晒したソースをF900iで動作させると、左上にゴチャっと表示されてしまうようなのです。
HTMLレイアウトがぜんぜん利いていないのかな、という感じです。
0468デフォルトの名無しさんNGNG
他では?
0469powNGNG
三菱の特定の機種しかj3dとj3d2のクラスを使えないってことなのかな…
0470デフォルトの名無しさんNGNG
ゴルフのスコアシートアプリを作ったのですが、
SH900i,SH505iで「ソフトに誤りがあります」ダウンロードできません・・・。
N900i,P900i,P505iSでは問題なくダウンロードできて動いています。
操作上でエラー起こるならわかりますが、
ダウンロードの段階で弾かれるのは何故でしょうか?
アプリのサイズは15kbでスクラッチパッドは100kbでhttpを使用します。
ダウンロード直前に確認できるソフト情報にLaunchByAppキーを設定していないのに
「アプリからの起動」が「あり」になってるのが気になるのですが・・・。
ダウンロードしたアプリすべて「アプリからの起動」が「あり」にもなってるし・・・。
どなたか解決策が分かりますでしょうか?
0471デフォルトの名無しさんNGNG
>>470
とりあえず、jamの内容晒してもらわんとなんとも言えん。
TargetDevice設定してたとかいうくだらんオチじゃないよね?
0472デフォルトの名無しさんNGNG
>>469
j3d2は三菱だけだねー。
j3dは全機種使えるはず。
0473470NGNG
>>471
情報が足りなくてすみません。jam晒します。
UseNetwork = http
MessageCode =
LaunchByBrowser =
TargetDevice =
GetSysInfo =
AllowPushBy =
PackageURL = GolfScore.jar
LaunchApp =
ConfigurationVer =
AppName = ゴルフスコア表
ProfileVer =
MyConcierge =
UseBrowser =
>続く
0474470NGNG
LaunchByMail =
AppParam =
IletPreserve =
UseTelephone =
LaunchByApp =
TrustedAPID =
AppVer =
LastModified = Thu, 03 Jun 2004 17:14:02
AppClass = Main
AccessUserInfo =
GetUtn =
LaunchAt =
DrawArea =
AppSize = 15132
SPsize = 102400
AppTrace = on

以上です。よろしくお願いします。
0475デフォルトの名無しさんNGNG
>TargetDevice =
これはマズイんじゃないか?
他の項目にもいえることだけど、
指定無しの項目はもともと出力されないハズでは?
0476デフォルトの名無しさんNGNG
TargetDevice =
ProfileVer =

これら2つとも指定がないのがまずいのでは。
Javaアプリケーションマネージャが、このアプリがその携帯電話で
実行できるものなのかどうか判別できない。
0477powNGNG
>>472
ありがとうございます
j3d2駄目なんですね…
j3dでまかなって動かせました

javaもiアプリもはじめて触ったんで無茶苦茶な質問だったかもしれません
失礼しました。
0478470NGNG
>>475
>>476
アドバイスありがとうございます。
TargetDevice = all900i,all505i
ProfileVer = DoJa-3.0
に設定してだめだったので、
TargetDevice = SH900i
ProfileVer = DoJa-3.5
を指定してみましたが、ダウンロードできませんでした。
今まで20個くらいアプリを作っていて、この2つの項目を指定したことがなく、
問題なく動いていました。
SH900iを使用したのは初めてですが、SH505iでは動作確認していました。

>他の項目にもいえることだけど、
>指定無しの項目はもともと出力されないハズでは?

このjam情報は直接ブラウザからアクセスしたものをコピペしました。
携帯側では表示されないという認識でよろしかったですか?

何度もすみませんが、分かりましたらアドバイスをお願いします。
0479470NGNG
追記します。

>SH900iを使用したのは初めてですが、SH505iでは動作確認していました。

は今まで作った20個くらいのアプリでという意味です。
0480デフォルトの名無しさんNGNG
>>478
DojaのADF設定で吐かれるjamには、
パラメータを指定しなかった項目は出力されなかったと思う。
AppVer =
とかいう行は生成されないってこと。

このjamってどうやって生成したんだ?
0481470NGNG
>>480
eclipse + DoJa3.5のエミュ(DoCoMo配布)で生成しました。
0482デフォルトの名無しさんNGNG
とりあえず、値を指定してない項目を削除てみたら
0483476NGNG
>>478=470

>TargetDevice = all900i,all505i

この書き方が間違っている。末尾に「i」を付けてはいけない。

TargetDevice = all900,all505
ProfileVer = DoJa-3.0

としてみて。

それから>>475氏>>480氏がいうように、値を指定しないキーはjamファイルに書かない。
DoCoMo配布のエミュレータでは書き出されないしね。
0484476NGNG
ごめん。
iアプリコンテンツ開発ガイド 詳細編 読んだら
TargetDevice と ProfileVer はオプショナルキー(指定しなくてもいいキー)だった。
変にこだわったこと書いて混乱させてスマヌ。
0485470NGNG
>>476=484
とんでもないです、アドバイス感謝しております。
これが原因でないとすると、振り出しに戻りますね。
ダウンロードできるアプリと出来ないアプリの違いをもう一度確認してみます。
何か分かりましたら、レスします。
ありがとうございました。
0486デフォルトの名無しさんNGNG
>>485
ついでに言っとくと、
頻度は稀だと思うが、
jamの取得時に通信エラーしたりすると
「ソフトに誤りがあります」になることがあったと思う。
0487デフォルトの名無しさんNGNG
>>466
まず、なんでbegin(CENTER)して、すぐにbegin(P)してるの?
意味ないじゃん。
0488デフォルトの名無しさんNGNG
そういえば、imodeのHTMLのDTDって
きちんと定義してる資料とか知らないか?
docomoの資料には
w3cのようなまともなものが見当たらなかったんだけど
0489デフォルトの名無しさんNGNG
>>488
そんなものはdocomo内部資料にも無いと思われ。
cHTMLの資料で良いなら、w3cに
http://www.w3.org/TR/1998/NOTE-compactHTML-19980209/
こんなのがあるぞ。
0490デフォルトの名無しさんNGNG
>>489
�dクス
0491デフォルトの名無しさんNGNG
すいません一つ質問なのですが、

void exe(){
String fName[];
Name = new String[11];
Name[0] = "Moon:";
〜
Name[10] = "Star:";

dispName();
}

void disp() {
for (i=0;i<=10;i++){
g.drawString(Name[i],120,120);
}
return;
}

この時exe()内からdisp()に行った時にexe()内の配列を参照できなくて困っています
参照できる方法はあるでしょうか?

exe()内で大量に配列を定義して必要に応じて取り出したいと思っているので
0492デフォルトの名無しさんNGNG
プログラミングの基本を勉強し直した方がいいよ。
void exe(){}内で宣言したString fName[];はexe()内でのみ参照可能。
void disp(){}からも参照したいなら、void exe(){}の外で宣言するか
void disp(){}へ引数で渡さないとだめ。

それから、ソース貼るときはコピペでな。
>String fName[];
>Name = new String[11];
とか、
>dispName();
>void disp() {
とか、素で間違えてるのか書き込み時に書き間違えてるのかわからんよ。
0493デフォルトの名無しさんNGNG
釣りだろ?
0494470NGNG
>>483

不要な項目をjamから消してみましたがダメでした・・・。
とりあえずご報告まで。

>>486

情報ありがとうございます。
通信エラーが起きてはいなそうですが、その可能性も追ってみます。
0495491NGNG
>>492 レスありがとうございます とても恥ずかしい質問をしたみたいで、すみませんでした 初心者向けの本を買って勉強します ソースは文で説明が出来そうになかったので……以後気を付けます
0496デフォルトの名無しさんNGNG
>>495
変数スコープは外部から参照されないからいいのであって、
参照したほうがいいものは同一クラスのトップで宣言されるべきだ。
勉強初めたばかりで大変だと思うがガンガレ!

敷居は高いかもしれんが、
懇切丁寧に教えてくれた492氏のように
なにげにこのスレは親切だと思う。
0497デフォルトの名無しさんNGNG
初心者であります。Cでプログラムを組んだりは少しできると思います。
iアプリの製作をしてますが、
いろんなところで調べても普通のjavaは解説してありますが、
iアプリでの場合とは違うため適応できません。なので、ここに来ました。

すべて同じパッケージの直下にあり、
ソースファイルはパッケージ化(1行目 package SameFile;)しているものとして、
メインのソースファイルと、
それ以外にクラスを分割したソースファイルが複数あるとします。
メインのソースファイル(例:GameSelect.java)
クラス分けされたソースファイル(例:WalkGame.java,JumpGame.java,WaterGame.java)
この場合、起動時にGameSelect.javaを実行し、選択画面からWalkGame.javaやJumpGame.javaを起動したいのです。
また、Softkey2をGameSelect.javaに戻るボタンとして、
単純にGameSelect.javaの中でWalkGameのクラス、その他のインスタンスを生成して、
processEventで1keyはWalkGame、2keyはJumpGameに飛ぶよう(各クラスを呼び出す)設定したつもりなのですが、
1回目はちゃんと表示されますが、そこからSoftkey2を押して選択画面に戻りもう一度同じゲームを選択した場合、画面の切り替えが行われません。
しかし、Softkeyに設定している文字は、GameSelectの時の文字とWalkGameを選択した時の文字では、変化しています。
ということは、WalkGameのコンストラクタしか読まれていないことになります。
そこで、コンストラクタだけではなく、WalkGame.java全体を実行できるようにしたいのですが、
どうすればいいかわかりません。ご教授くださいませ。
あと、わかりにくく、見にくい内容でごめんなさい。
0498497NGNG
書き忘れていましたがソースファイルは全部Canvasです。
開発は、 iαppliTool for DoJa-3.5(FOMA)+そこいらにあるeditor
Eclipseはありますが、ノートパソコンなので処理が遅くなるためeditorを使ってます。
ちなみに、サクラエディタってのを使ってます。
0499デフォルトの名無しさんNGNG
>>494
AppSize合ってないとかそんなことはないよな
0500デフォルトの名無しさんNGNG
>>498
>書き忘れていましたがソースファイルは全部Canvasです。

???

とりあえず、Display#setCurrent() とかちゃんとやってる?

あとは、基本的な作りがアプリ向きじゃないんじゃないかなぁ。
Canvas派生クラスは1個にしたほうが・・・
0501デフォルトの名無しさんNGNG
eclipse+iαppliTool for DoJaでやってる人、
コードアシストってちゃんと動きます??
0502デフォルトの名無しさんNGNG
[質問]
1byteだけ通信した場合でも、1パケット分の通信費掛かりますか?
それとも累計で128byteになった時に1パケット分の通信とみなされますか?
0503デフォルトの名無しさんNGNG
ゲームのリプレイを記録したくてその方法を考えています。
記録したいのはカーソルの上下左右が押下された順番です。
byte変数を4個用意するやり方だと
1000アクションで1KBもの容量を消費してしまいます。
ビットで記録すれば、上(00)、下(01)、左(10)、右(11)、と
4アクション記録できるので1000アクションで250byteと
容量を節約できるのですが、スマートなコードが思いかなくて。
おそらく「そういう時はこう書け」的な定石があるような気がするのですが
いかがなものでしょうか?達人の方には幼稚な悩みかもしれませんが
よろしくお願いいたします。
0504デフォルトの名無しさんNGNG
>>502
累計で128byteに満たない分が
来月の電話代に繰り越されるとは
考えにくいのだが
実際はどうなんだろう。
たぶん1byteだろうが何だろうが
1回の通信で128byte未満なら
1パケットとして扱われる気がする。
0505デフォルトの名無しさんNGNG
5秒で切っても10円玉は戻ってこない
0506497NGNG
>>500
メインのソースファイル(GameSelect.java)のprocessEvent内で
Keyの1を押した場合
Display.setCurrent(GameSelect.walkgame);
でWalkGameを実行しています。
逆にWalkGame.javaのファイルのprocessEvent内で
Softkey2を押した場合
Display.setCurrent(GameSelect.select);
を表示しています。
selectはGameSelect.java内にあるCanvasのクラスです。
この辺で私が変な記述をしていると思うのですが、
当初の思惑通りに動かしたければ、これをどのように変えればいいのかがわかりません。
おそらく、一つのソースファイルないで分岐させまくって作ればできるのかもしれませんが、
それでは、ソースが長くなりすぎるので分けて作りたいのです。

>あとは、基本的な作りがアプリ向きじゃないんじゃないかなぁ。
だとすると、基本的な作りを変えるしかなさそうですね。

いい方法があれば、よろしくお願いします。

追記なんですが、
paint()内からジャンプして、
外部(同一ソースないでも別のソースファイルでも)で描画処理を行うことは可能でしょうか?
これも、paint()内が膨大になりすぎるので、分割したいのですが、よい方法があればお願いします。

0507デフォルトの名無しさんNGNG
>それでは、ソースが長くなりすぎるので分けて作りたいのです。
分けない方がいいよ
0508デフォルトの名無しさんNGNG
>>501
コードアシストってオブジェクト名を打ち込むと
そのメンバが表示されて入力ラクチンになるやつのこと?
それならちゃんと出るよ。ちがったらスマソ
0509470NGNG
ダウンロードできました!!!
詳しい原因はいまだ不明ですが、できる時とできない時の差がある程度分かりました。
jamに記したアプリの名前で結果が変わりました。

↓検証結果
ゴルフスコア表×
ゴルフスコア表です×
ゴルフスコア紙○
ゴルフ表スコア○
ゴルフスコア表○
ごるふすこあ表○
表ゴルフスコア○
ゴルフスコアひょう○
ゴルフスコア○
ゴルフ表○
ゴルフhyou○
ゴルフスコアhyou○

「ゴルフスコア表」と「ゴルフスコア紙」の違いはよく分かりません・・・。
他のアプリに「ゴルフスコア表」と名前をつけてもダウンロードできませんでした。
お時間のあるかたは試してみてください。意味不明ですが・・・。
0510デフォルトの名無しさんNGNG
文字コードが一致してないとかはない?
0511デフォルトの名無しさんNGNG
ああ。アプリの名前ね。

文字によってダメだよ。
表は文字コードの2バイト目が'\'。
DBなんかでも問題になるSJISの鬼門系文字だね。

おそらく
「ゴルフスコア表」
これは前半が半角カタカナなので2バイト文字と誤認され
ゴ
ルフ
スコ
ア0x95
0x5C
と分解され、'\'がアプリ名に混ざっているのでエラー。
「ゴルフスコア表です」も同様。

「ゴルフ表」は運がいいことに半角文字が偶数個だったので
ゴ
ルフ
表
と判断され、'\'が含まれていると誤認されなかった。
0512デフォルトの名無しさんNGNG
ああ、補足
0x5C = '\'ね

またF2102Vなどの旧Fフォーマも、アプリの日本語名でDLエラーを起こしやすい。
気をつけたほうがいい。
0513デフォルトの名無しさんNGNG
>>497
よくわからんから下のソース参考にして

import com.nttdocomo.ui.*;

public class Sample extends IApplication {
public void start() {
GameSelect gs = new GameSelect();
Display.setCurrent( gs );
gs.start();
}
}
>続く
0514513NGNG
class GameSelect extends Canvas {
Game walkGame = new Game( this, "WalkGame" );
Game jumpGame = new Game( this, "JumpGame" );
public GameSelect() {
}
public void start() {
setSoftLabel( Frame.SOFT_KEY_1, "WALK" );
setSoftLabel( Frame.SOFT_KEY_2, "JUMP" );
}
public void paint( Graphics g ) {
g.drawString( "GameSelect",0,10 );
}
public void processEvent( int nType, int nParm ) {
if( nType == Display.KEY_PRESSED_EVENT ) {
switch ( nParm ) {
case Display.KEY_SOFT1:
Display.setCurrent( walkGame );
walkGame.start();
break;
case Display.KEY_SOFT2:
Display.setCurrent( jumpGame );
jumpGame.start();
break;
}
}
}
}
>続く
0515513NGNG
class Game extends Canvas {
GameSelect gs = null;
String gameName = "";

public Game( GameSelect obj, String name ) {
gs = obj;
gameName = name;
}
public void start() {
setSoftLabel( Frame.SOFT_KEY_2, "SELECT" );
}
public void paint( Graphics g ) {
g.drawString( gameName,0,10 );
}
public void processEvent( int nType, int nParm ) {
if( nType == Display.KEY_PRESSED_EVENT ) {
switch ( nParm ) {
case Display.KEY_SOFT2:
Display.setCurrent( gs );
break;
}
}
}
}
おわり
0516470NGNG
>>511
今後名前の付け方も気をつけてアプリ作ります。
ありがとうございました!
0517デフォルトの名無しさんNGNG
>>511
また信じられんような問題があるなあ……。
JAMファイルはSJISで書けゆーといて、そのSJISで誤認識されたらたまらんがな。
0518デフォルトの名無しさんNGNG
医と表はダメっぽい
0519デフォルトの名無しさんNGNG
>>517
サーバ側の問題だよ。
0520デフォルトの名無しさんNGNG
>>519
そりゃなかろう
0521デフォルトの名無しさんNGNG
饅頭怖い問題かよ
0522501NGNG
>>508
そう、それです。
Eclipse2.1.2+DoJaプラグイン(ドコモ)3.5なんですが、
補完もされない(候補も出ない)しJavaDoc添付によるホバー表示もできないんです。。
よかったら、環境やバージョンを教えてもらえますか?
0523508NGNG
>>501
環境ですが
Eclipse2.1.2 + DoJa2.0プラグインでした。なので
改めてDoJa3.5入れて試してみましたが
コードアシストしてくれますよ。
0524497NGNG
>>507
513さんのプログラムも分けずに書かれているので、
このプログラムを参考に作ろうと思いますので、
507さんの言うとおり、分けずに作ってみることにします。

>>513
丁寧にプログラムまで書いていただいてありがとうございます。
ファイル(クラス)分割はやめて、
地味に一つのソースファイル内で作っていきます。ありがとうございました。
0525デフォルトの名無しさんNGNG
SH505,900のバグだったって事か
AppNameに0x5C(\)を含む場合は要注意と…
http://www.psl.ne.jp/perl/pdojo00c.html
ここにある文字ですな
0526デフォルトの名無しさんNGNG
>>525
再現した人いる?
0527デフォルトの名無しさんNGNG
さすがにそれくらいドコモでも試験してると信じたいが。。
0528デフォルトの名無しさんNGNG
>>527
とりあえず、現象は出てるわけだし。
0529デフォルトの名無しさんNGNG
再現もなにも、ばりばりうちの会社での「リリースチェック項目」に含まれてるよw
0530デフォルトの名無しさんNGNG
>>502
ドコモのサイトに

パケットとは
課金するデータ量の単位のことです。
1パケット(=128バイト)ごとに0.3円(税込0.315円)の課金となり、
パケット通信料は1ヵ月の総パケット数から算出しています。

って書いてあるから、月が変わらない限りは1byteのパケット通信128回で1パケットと思われ。
0531デフォルトの名無しさんNGNG
>>530
うんにゃ。
パケットとは通信の箱の単位。
1byteでも1パケットという箱に入れてデータを送る。
0532デフォルトの名無しさんNGNG
>>530
パケット通信について勉強してください。
0533デフォルトの名無しさんNGNG
ナルホド
0534デフォルトの名無しさんNGNG
アプリ名に「時刻表」って出来ない
0535デフォルトの名無しさんNGNG
>>534
できると思われ。
「Super時刻表」はだめだと思われ。
0536デフォルトの名無しさんNGNG
パケット通信なんていうものは存在しない
ていうかどんな通信でもそういうことやっているだけのこと
ただ、時間でお金取るのかデータ量でお金取るかの選択に
データでお金取る事に決めた
で、どのデータ単位でとろうかとしたときに
パケット単位で取ればいいじゃんってなった
ちなみにH"は時間でお金取る
0537デフォルトの名無しさんNGNG
ttp://e-words.jp/w/E38391E382B1E38383E38388E9809AE4BFA1.html
0538デフォルトの名無しさんNGNG
>>535
多分できると思われ
「スーパー時刻表」は無理と思われ
0539デフォルトの名無しさんNGNG
半角カナと英数で挙動が違うの?
0540デフォルトの名無しさんNGNG
0x80以上のため、いいかげんに作ってるSJIS読み取り機能だと、
二バイト文字と勘違いしてしまう。
0541デフォルトの名無しさんNGNG
>>534
試しもしないでウソ書くなよ。
SH505iで試してみたら、
○ 時刻表
○ ウ表
○ スコア表
× ゴルフスコア表

ちなみに、ダウンロード自体はできてるようだが、
ダウン終了して保存するときに、
「ソフトに誤りがあるため保存できません」
と蹴られる
0542デフォルトの名無しさんNGNG
やだなぁ。単純な法則性のない(ように見える)バグ。
0543デフォルトの名無しさんNGNG
文字列が短い時はOKなのか
法則が良くわからん…
教えてエロイ人
0544デフォルトの名無しさんNGNG
おいおい、これで法則がわからんってのはちょっと勘が悪いぞ。
0545デフォルトの名無しさんNGNG
煽るより情報を出すべし
0546デフォルトの名無しさんNGNG
>>543
「表」の前が奇数バイトだとダメ
0547デフォルトの名無しさんNGNG
>>546
では、「ウ表」と、「スコア表」で大丈夫な理由は?
0548デフォルトの名無しさんNGNG
「表」って言う文字ってよく文字化けの例で見かけますよね
0549デフォルトの名無しさんNGNG
ボスケテエロイ人〜
0550デフォルトの名無しさんNGNG
半角文字が中途半端な対応で、濁点とか半濁点入るとダメだったりしてね。
該当機種持ってないから分からないや。
0551デフォルトの名無しさんNGNG
そもそも半角非対応とか
今までは運良く使えてただけだったり
0552デフォルトの名無しさんNGNG
携帯で使える、簡単なランダム生成プログラムはないでしょうか。

Randクラスだと、Seedが設定できないようで、ランダム性を含むゲームの
リプレイファイルを作るのが大変なのです。
0553デフォルトの名無しさんNGNG
今日からi-appliをやってみようとして、javaSDK1.4.2をインストールしたのだが
iαppli Development Kit for DoJa 3.5 Ver.1.03 が、インストールできません。
セットアップ実行直後のエラーは「Java(TM) 2 SDK Standard Edotionが見つかりません」です。
環境はWindowsXPSP1、JavaSDKインストール後に再起動したりしたのですがダメでした。
DoJa 3.5のサイトにJava1.3.1意外はダメとか書いてあったので、それが原因でしょうか。というかSunのサイトでJavaSDKの1.3.1が見つからなかったので、やってしまったのですが…
環境変数の設定などを行い、"Javac"などは動作するので、Java自体のインストールは問題ないと思うのです。
朝からハマってるのでどなたかご教授いただければ…
0554デフォルトの名無しさんNGNG
>>552
RandってRandomのこと?
コンストラクタの引数でseedは指定できるけど。
いったいドキュメント何みてるの?
0555デフォルトの名無しさんNGNG
>>553
java 1.3 でぐぐってみ。1.3系もちゃんと置いてあるよ。

>>554
なんと。大変失礼しました。
0556501NGNG
>>523
いろいろ試してみたんですが、相変わらず動かず困っています。
クラス名(com.nttdocomo.ui.Button等)はでるのですが、
メソッド名やメンバ、Javadocはでてこないんです。
そちらではすべて表示されていますか?
それと、J2se SDKのバージョンも関係あるのでしょうか。。
0557デフォルトの名無しさんNGNG
何だかよく分からない場合は、再度インストールを行う。
ただし、すべてデフォルトの設定で、だ。
それでうまくいく場合、推奨されないフォルダ名だったりするわけ。
あとDoJa使うだけなら、環境変数の設定とかは必要ないよ。
0558501NGNG
>>557 さん みなさん、
実に情けない話なのですが、
Eclipseのインストールパスに空白が入ってたというだけの話でした。。
ありがとうございました。
0559デフォルトの名無しさんNGNG
>>558
ヤッチャッター!

って、悪いのは>>558じゃないんだけど、この手のクロスプラットホーム開発
されてるアプリにはありがちだ罠。
ともあれ、動いてよかった。
0560デフォルトの名無しさんNGNG
今更かもしれないけどWindowsでケータイアプリ開発するなら
開発ツールのインストール先や開発中に使うフォルダで
・Program Files
・Documents and Settings (My Documents)
これらのフォルダは使わないように注意ってことだな。
0561デフォルトの名無しさんNGNG
この手のは大抵デフォルトでC:直下に作りたがるので、
C:の下がゴチャゴチャになって気持ち悪い罠。
余計な苦労したくないなら、甘んじて受け入れるしかないが。

そしてスレ違いhage
0562デフォルトの名無しさんNGNG
 はじめまして。
 スクラッチパットに書き込んだ文字列を
 取得するには、どうしたらいいのでしょうか?
 何故か文字化けするのですが・・・
 誰か教えて下さい。お願いします。
0563デフォルトの名無しさんNGNG
さいきんやっちゃったのはあれだね。
IBMのJ2ME開発環境(Eclipseベース)使ってて
Eclipse自体は環境変数CLASSPATH無視するからって
気にしてなかったらなぜかフリーズ頻発。
ワークベンチから呼ばれるツールがCLASSPATH
見てたよ... orz.

話戻すとEclipse自体は↑の開発環境等IBMの
商用版がc:/Program Files/IBM/以下にインストール
される都合上空白に関しては開発段階から必ずチ
ェックされるけどその他URLエンコードが必要な
パス名に関しては保証されてない。個々のプラグイン
に関しては正しくEclipseAPIを使っていれば
問題になることはないんだけど、Docomoは
やっちゃったんだろうな。
0564デフォルトの名無しさんNGNG
>>562
書き込んでいるところと、読み込んでいるところのソース張ってごらん
0565562NGNG
 すいません、今しがたできました・・・。
 .readChar()で一文字ずつ読もうとしたのが駄目だったらしく、
 .readLine()で1行づつ読むとできました。
 お騒がせしました。
0566デフォルトの名無しさんNGNG
UTF-8の文字コードを読み込みたいのですが
Encoding UTF_8 not foundとなってしまいます。
byte[] bytBuff = {(byte)0xE3,(byte)0x81,(byte)0x82,(byte)0xE3,(byte)0x81,(byte)0x84,(byte)0xE3,(byte)0x81,(byte)0x86,(byte)0xE3,(byte)0x81,(byte)0x88,(byte)0xE3,(byte)0x81,(byte)0x8A};
try {
System.out.println(new String(bytBuff, "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
開発ガイドにはOutputStreamWriterでUnicodeも
扱えそうに書いてありますが使い方がわかりません。
バイト配列からも使えますか?
0567デフォルトの名無しさんNGNG
>>566
UTF-8じゃないUnicodeであるに一票。
0568デフォルトの名無しさんNGNG
>>566 ぱっと見、ソース中でUTF-8ってなってるのに
メッセージ中でUTF_8になってるのがすげー気になる。
0569デフォルトの名無しさんNGNG
F2051でおかしな現象に遭遇しました。

1.アプリをダウンロードするURLの書かれたメールを受信
2.メール文中のURLをクリックしてジャンプ先でアプリをダウンロード
3.ダウンロード直後に起動

上の方法でアプリを起動すると「通信を許可しますか?」というダイアログの背景にメー
ラー画面が表示されている状態でアプリが起動されるのですが、この状態でアプリが落ち
る場合があるようです。

とはいえ、全てのアプリでそうなるわけではなく特定のアプリのみです。また、メーラー
画面が表示されていない状態で起動している限りは上記症状は発生しません。

メーラーにヒープを持っていかれてリソース展開に失敗しているのかな、などと勝手に想
像しているのですが、同じ状況に遭遇された方、いらっしゃいますか?



0570デフォルトの名無しさんNGNG
>>567
ということはUTF-8は読み込み不可能???

>>568
UTF-8というのはStringクラスで認識しているようで
その上でEncodingが見つからないといわれているので
(iアプリの)StringクラスではUTF-8は絶望的ですよね。。。
0571デフォルトの名無しさんNGNG
>>570 UTF-8 → UCS-2 の変換は単純だから実装しちゃいなよ
0572デフォルトの名無しさんNGNG
>>570
いや、DataInputStreamを開けば、ふつうに readUTF()で読めたような・・・
0573デフォルトの名無しさんNGNG
>>570
http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html
DoJaがどうかは知らんが、これ見ると、"UTF-8"じゃなくて"UTF8"だったりしない?
0574デフォルトの名無しさんNGNG
>>566
・http://java.sun.com/j2se/1.3/docs/api/java/lang/package-summary.html#charenc には、
 > Every implementation of the Java platform is required to support the following character encodings.
 > Consult the release documentation for your implementation to see if any other encodings are supported.
 として UTF-8 が挙げられている。

・"UTF--8"などと書いてみると java.io.UnsupportedEncodingException: UTF--8 となり、
 - → _ 変換などは行われていない。

ソース見たら "UTF_8" ってミスタイプしてるに50ペリカ

>>570
DataInput#readUTF で読み込めるのはその長さが前置されたUTF-8文字列だお
0575デフォルトの名無しさんNGNG
微妙にアンカーミスった鬱出汁脳
0576デフォルトの名無しさんNGNG
ちょっと試してみた。DoJa-3.0エミュレータ。
>>566のソースを適当な手持ちのアプリのソースに貼り付けてコンパイル、実行。
ソースではnew String(bytBuff, "UTF-8")だがエラーメッセージは
java.io.UnsupportedEncodingException: Encoding UTF_8 not found
と出る。
ハイフンがアンダースコアにされてる。
0577デフォルトの名無しさんNGNG
つーか何故UTF-8?英数字がメインなのか?
漏れは基本的にSJISでやってるけど…
正確にはSJIS_iって事になるのかな(良く知らん)
0578デフォルトの名無しさんNGNG
さすがDoJaだ。UTF-8サポートが無くてもなんともないぜ!

…マジカヨ
0579デフォルトの名無しさんNGNG
>>574,578
これはJ2SEの仕様。
CLDCでは最低限サポートすべきエンコーディングは実装依存だった覚えがある。
0580デフォルトの名無しさんNGNG
>>577
バイト配列で取得したXMLの一部を読みたいのですが
UTF-8が読めないと。。。

>>571
UCS-2へ変換しても今度はバイト配列の
UCS-2をどうやって読めばいいのかが???

>>572>>574
ByteArrayInputStreamをDataInput#readUTFすると
java.io.EOFExceptionがでました。

>>579
マジっすか…。
0581デフォルトの名無しさんNGNG
>>580
UCS2にできちゃうんだったら、2バイトずつchar[]に入れればOKのはず。
javaのcharはUCS2なので。
0582デフォルトの名無しさんNGNG
>>580
readUTFは、ちょっと違うUTF8だから、APIリファレンス読んで、それなりに読めるように加工する必要があると思う。
J2SEのAPIリファレンスだけど、readUTFの仕様は同じだろうから、これ参考にしてみて
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/io/DataInput.html#readUTF()
具体的には、最初に何バイトの文字列かを書いておく必要がある。
0583デフォルトの名無しさんNGNG
商売に使えそうなので教えるのはもったいない気もしつつ、フォロー。

>>580
携帯用にカスタマイズしたkXML2を拾ってくればXMLパースできるよ。
俺んとこのテストプログラムではUTF-8も問題なく読めた。
0584デフォルトの名無しさんNGNG
詳しく試す気もないのでよくしらんが、
とりあえずShiftJISだったら問題ないんだろ?
0585デフォルトの名無しさんNGNG
確かに、どうせネットワーク越しにとってくるんだろうから、サーバサイドでSJISにしとくべきな気もするなw
0586デフォルトの名無しさんNGNG
間違っていたら申し訳ないけど
>>566で言ってる
(byte)0xE3,(byte)0x81,(byte)0x82 = 「あ」
の場合、ビット列にすると
11100011,10000001,10000010
先頭が「1110xxxx」に一致するので「この文字は3バイトコードですよ」
ってことをDataInputSteam.readUTF()の説明に書いてあるだけのような。。。
自力でUNICODEに変換するのなら、先頭1バイトの上位4ビットを読んで
何バイトで構成される文字かを割り出してUTF-8のエンコーディングルールにのっとって
UNICODEに変換すればいいのかもしらんが、それで本当にできるか知らん。
ちなみにjavaのUTF8は確か4バイトコード(先頭が「1111xxxx」)に対応していなかったような
#UTFDataFormatExceptionがスローされるって書いてあるし
混乱させたらスイマセン
0587sageNGNG
>>582>>581
ちょっと今は試せないのであとでじっくり読んでみます。
ご助言どうもです。

>>583
実はkXML2をパーサに使ってます。
日本語が混ざったUTF-8って読めました?
0588デフォルトの名無しさんNGNG
仕様書ではSJISだけしか必須とされてないんじゃなかったか?
あとは実装依存だったような。
0589583NGNG
>>587
kXML2のソースは若干いじってる。
InputStreamReaderは、エンコーディングを指定しなければ
UTF-8で読んでくれる。

とりあえずエミュレータ上ではそれで日本語読み込めてるよ。
実機で動かなかったら笑うしかないなw
0590デフォルトの名無しさんNGNG
>>589
マジ?DoJaのデフォルトエンコーディングはSJISだった気が…。
>>586
そういう意味だったら2バイトじゃなくて1バイトだろ。
「まず、2 バイトを読み込み、それを使って readUnsignedShort
メソッドとまったく同じ方法で符号なし 16 ビット整数を作成します。
この整数値は「UTF 長」と呼ばれ、読み込まれる追加のバイト数を表します。」
0591590NGNG
>>586
ちょっと補足。連続カキコ勘弁。
そもそも、原理的に、readUTF()で何バイト読まなきゃいけないかはヘッダに読み込むべき
バイト数がかかれてない限り決定不能だしね。
0592デフォルトの名無しさんNGNG
iアプリを作りたくて今日から始めたのですが、
環境はWindows2000Pro SP4で
1.Java2SDK1.3.1-11
2.Eclipse2.1.1(LanguagePack)
3.Doja3.0
とインストールしてDoja3.0のユーザーガイドPDFの「13.Eclipseの利用」の
「HelloWorld」をやってみたのですが、実行しようとすると

「com.nttdocomo.eclipse.DoJaBuildException: Fail to create
C:\JAVA\eclipse\workspace\hello\bin\hello.jar」

とエラーが出てしまい実行が出来ません。これはなにを間違えると
こうなってしまうのでしょうか?

自分では5,6回は見直し、最初からやり直しとかしているのですが
エラーが出てしまいます。
Docaを使わずに、普通のJAVAアプリとして、やってみた時は実行できました。
Java環境は初めてなのですが、基本的なことを見落としているのでしょうか?

制作手順は、
1.新規−Dojaプロジェクト−プロジェクト名「hello」でプロジェクト制作
2.新規−クラス−パッケージ「hello」、名前「HelloWorld」でクラス制作
3.以下のコードを入力(コメントは削除)
package hello;
import com.nttdocomo.ui.*;
public class HelloWorld extends IApplication {
public void start() {
System.out.println("Hello World");
}
}
4.プロジェクト−Doja3.0設定−AppName「hello」、PackageURL「hello.jar」、AppClass「hello.HelloWorld」に設定
5.実行 → エラー
0593デフォルトの名無しさんNGNG
>>592
で、
「C:\JAVA\eclipse\workspace\hello\bin\hello.jar」
は存在してるの?
0594デフォルトの名無しさんNGNG
いえ、存在してません。そこには「hello.jam」が有るだけです。
「hello.jar」ってEclipseが作ってくれるファイルですよね?
0595デフォルトの名無しさんNGNG
J2SDKにパス通せ。
0596デフォルトの名無しさんNGNG
パスは、どのツールのどこで設定するのでしょうか?
探しても、判らないです...
0597デフォルトの名無しさんNGNG
コントロールパネルからシステムのプロパティを開いて
「詳細」タブの「環境変数」ボタンを押して
下のリストボックスにある「Path」ってやつの最後に
C:\jdk1.3.1_11\bin(←デフォルトの場合)を追加する。
セミコロン区切りになってるので注意すること。
0598デフォルトの名無しさんNGNG
出来ました、ありがとうございます!

Doja,Eclipseに設定するところがあると思い込んでいて
環境変数に追加とは、思いもつかなかったです。
0599583NGNG
>>590
ごめん、ちょっと勘違いしてた。
ソース調べてみるわ
0600586NGNG
>>590
スミマセン、自分が間違ってましたm(__)m
(byte)0xE3,(byte)0x81,(byte)0x82 = 「あ」
の前に「あ」の長さ3をあらわす2バイトをつけて
0x00,0x03,0xE3,0x81,0x82 としたらEOFExceptionも発生せずに
readUTF()でUTF8の「あ」が読めました。
なるへそ
0601デフォルトの名無しさんNGNG
最近勉強を始めたばかりなのですが、Panelについて質問があります。

Labelを生成する際にLabel.RIGHTのように位置指定が出来ると思うんですが、
なぜか真ん中に表示されてしまいます。
また、Labelを縦に2つ並べたいんですが、実際に配置すると横に配置されてしまいます。
そこで、よく分からないのですが、
HTMLLayout lm = new HTMLLayout();
setLayoutManager(lm);
lm.begin(HTMLLayout.CENTER);
Label lb = new Label("Hello World!1");
add(lb);
lm.br();
Label lb2 = new Label("Hello World!2");
add(lb2);
lm.end();
とやればうまく出来ました。
改行の仕方はこれであっているのでしょうか?
開発環境はDoja3.0です。
0602デフォルトの名無しさんNGNG
>>601
Label.RIGHTは、ラベル内の文字列の位置あわせで、画面中のラベルの位置じゃなかった覚えが。
改行はその通り。HTMLLayoutが楽っす。
0603601NGNG
>>602
どうもありがとうございます。
>Label.RIGHTは、ラベル内の文字列の位置あわせで、画面中のラベルの位置じゃなかった覚えが。
ということは、Labelはある一定範囲の枠があり、その中に文字列が入っているという事になりますよね?
だとすると、多少なりとも右側に文字列が格納されてもいいかなぁと思うんですが・・・

それと、もう一つ疑問なんですが、今度は左右にLabelを表示してみようかと思い、
HTMLLayout lm = new HTMLLayout();
setLayoutManager(lm);
lm.begin(HTMLLayout.LEFT);
Label lb = new Label("Hello World!1");
add(lb);
lm.end();
lm.begin(HTMLLayout.RIGHT);
Label lb2 = new Label("Hello World!2");
add(lb2);
lm.end();
のようにやったんですが、なぜかHello World!2が一行改行された状態で表示されてしまいます。
br()を指定していなくてもend()をすると勝手に改行されてしまうのでしょうか?
また、そうだとするとどのように対処したらよいのでしょうか?
0604初心NGNG
自分で作ったiアプリを自分の携帯にダウンロードしたいのですが、
どこのサーバーにアップすればいいのですか?
0605デフォルトの名無しさんNGNG
>>604
インターネットから見れるとこならどこでも。
0606デフォルトの名無しさんNGNG
>>603
Labelは、自分でsetSizeしないと、文字がっぴったりおさまる大きさにしかならないよ。
左端と右端に、、っていうのは、
もう画面幅調べて、2つのラベルの幅の合計が画面幅-数ピクセルくらいになるように調整しないと辛いんじゃないかな。
ちなみに、HTMLLayoutのその方法じゃ全然だめ。
HTMLで、
<LEFT>
hoge
</LEFT>
<RIGHT>
piyo
</RIGHT>
って書くとhogeとpiyoの間で改行されるでしょ?
0607601NGNG
>>606
どうもありがとうございます。

setSizeは知りませんでした。
実際にサイズ指定して、Label.RIGHTとしたらちゃんと右側に表示されました。
また、LEFTタグとRIGHTタグは私の勉強不足で存在を知らなかったのですが、
改行されるのは仕様だったわけなんですね。
今回はラベルなので、左右の端に表示させるのは教えていただいた方法で出来そうですが、
これがボタンになったらボタンの間に空のラベルを入れて空白開けたりとかなり面倒ですね。

まだまだ勉強を始めたばかりですので、どんどん知識を深めていこうと思います。
本当にどうもありがとうございました。
0608デフォルトの名無しさんNGNG
>>605
マジっすか?
勝手にアップしちゃって、サーバー管理者にごらぁされませんか?
0609デフォルトの名無しさんNGNG
>>608
領域確保してもらってアカウントがあるなら、文句言われることはない。
0610デフォルトの名無しさんNGNG
>>608
何か問題あるのか?

釣りとしか思えんが…
0611デフォルトの名無しさんNGNG
>>610
CGIみたいなサーバーに影響を与えるものと混同してるのではないかと。
0612デフォルトの名無しさんNGNG
>>610
EzWeb とかだと別だけどね。
0613デフォルトの名無しさんNGNG
>>610-612
ありがとうございます。では、yahooなどで問題ないということですね?
0614デフォルトの名無しさんNGNG
>>613
鯖の利用規約を読んでください。
第三者に判断なんかできませんよ
0615デフォルトの名無しさんNGNG
APIリファレンスをみると、複数行の文字はラベルではなくテキストボックスを使うと書いてあるのですが、
テキストボックスの黒い枠を消す事は出来るのでしょうか?
また、選択できないようにsetEnabled(false)とすると文字が薄くなってしまうのですが、
これもなんとか出来ないのでしょうか?

Dojaのバージョンは3.0です
0616デフォルトの名無しさんNGNG
>>615
なんともなんねぇ。しかも機種で表示が違うからね。
0617615NGNG
>>616
そうですか、どうしようもないなら仕方ないですね。
どうもありがとうございました。
0618デフォルトの名無しさんNGNG
>>615
AnchorButtonをsetEnabled(false)で使うという手もあるが、
やっぱり薄くなる機種があったような。。
0619デフォルトの名無しさんNGNG
>>607
ああ、すまん。LEFTとRIGHTはタグじゃないね。
<p align=left>とか<div align=right>とかだね。
まあ、どっちにせよ、ブロック要素は改行されること位知っておいてくれ。。
あと、setSize()知らないってどういうことだ?APIリファレンスは見てるんだよね。
0620601NGNG
>>619
偶然起きてましたのでレスを・・・
setSize()は本当に凡ミスです。
親クラスのところ見てませんでした。
なぜかLabelやButtonはObjectクラスを継承してるもんだと思い込んでました。
お恥ずかしい限りです。
0621デフォルトの名無しさんNGNG
親クラスっていうな。
0622デフォルトの名無しさんNGNG
ある場所だけで起こるイベントを作りたいのですが
F505iGPS以外で位置情報を取得するような方法は無いのでしょうか?
ぐるなびとかの今いるエリア程度でも良いのですが。
0623デフォルトの名無しさんNGNG
>>622
openiエリアはどうよ
0624622NGNG
openiエリアってサイト名ですよね?ぐるなびの名前を出したのが
まずかったかも知れません。書き方が悪かったですね。

iアプリ上で現在地(エリア)を取り込んで
特定の場所(緯度経度)なら処理を行うアプリを作りたいのです。

ドコモの公式サイトからAPIを落として読んでいたのですが
F505iGPS用のメソッドは見つかったのですが他が見つけられません。

いい方法があればどなたか教えてください。
0625デフォルトの名無しさんNGNG
>>624
GPS載ってない携帯なら物理的に不可能だろ。
常識ってもんないの?
0626デフォルトの名無しさんNGNG
携帯用にカスタマイズされたkXML2って、どこにあるかわかりますか?
0627デフォルトの名無しさんNGNG
>>625
公式サイトで、iモードイエローページとか、現在地によって出てくる場所かわるよね。
物理的には可能だよ。
0628デフォルトの名無しさんNGNG
電波を受信したアンテナ場所で物理的な場所はドコモには判るんだろうけど
それをユーザーにも開放しているのかはシラネ
0629デフォルトの名無しさんNGNG
ttp://k-tai.impress.co.jp/cda/article/news_toppage/5090.html
0630622NGNG
>>627-629
情報ありがとうございます。
公式サイトにしか提供されていない機能だったんですね。
私も627さんと同じく公式サイトをみて可能なんだなと
思い質問させて頂きました。
このコンセプトのアプリは出回ってないので上手く使えば
注目されるものが出来るかなぁと思ったのですが・・・。
また、別の案を練る事にします。
ありがとうございました。
0631デフォルトの名無しさんNGNG
>>630
GPS的な使い方でなくて構わないなら、ユーザがいる場所の周りにある適当な店の
電話番号なりを入れてもらって、そこから特定するという手もあるよ。
番号データベースをローカルに持つように設計すれば、電波が届かない場所でも(以下略
0632デフォルトの名無しさんNGNG
だからオープンiエリアを使えよと…
0633デフォルトの名無しさんNGNG
>>630
オープンiエリアは誰でも使える
でもアクセス先がドコモの鯖になるから一般のiアプリからは利用出来ない
0634デフォルトの名無しさんNGNG
前にも書き込みさせてもらったのですが、
iαppliTool for DoJa-3.5(FOMA)+サクラエディタで作ってはいるのですが、
端末で見た場合とPCで見た場合とでは、若干ずれが生じます。
どんなずれかといいますと
CanvasでdrawStringとdrawRectをしただけのものです。
(具体的には、drawRectで四角を作り、その中に文字を描くということ)
PCできれい四角のど真ん中に作ったつもりだったのですが、
端末で見ると、文字がやや右にずれます。
もしかしたら、フォントのサイズの違いかと思いますが、
端末はSH900iでdocomoのサイトではデフォルトは12となっています。

もちろんプログラム内では、フォントのサイズを変更したりはしていませんので、
デフォルトのフォントが呼ばれているはずですが・・・
iαppliTool for DoJa-3.5(FOMA)のデフォルトのフォントというのは、
サイズは「12」ではないのでしょうか?
また、「12」でなかった場合、「12」に変更は可能でしょうか?
よろしくお願いします。
0635634NGNG
> PCできれい四角の
PCできれいに四角の
0636デフォルトの名無しさんNGNG
>>634
デフォルトサイズへの変更をしてみるとよい・・・ってその変更自体が分からないのか・・・
Font.getFont あたりで調べてみると良いかも。サイズは「数値」での指定ではなかったと思うけどね。
つまりデフォルトのフォントサイズは公称通り。どうしても違うとか気になるなら、実機でうまく
動くまで調整するしかない。どうせターゲット機種でしか使わないんだから。

レイアウトを決め打ちしたいだけなら文字列の長さ(文字数ではない)を取得して計算させてもイイ
stringWidth あたりを調べてちょ。
0637デフォルトの名無しさんNGNG
PCと実機でフォントが違うからね。実機でもそれぞれ内蔵フォントが違う。
フォントサイズが12ドットって決まってるなら、12ドットの枠内に収まるってだけ。
その12ドットの枠内で上下左右どちらに寄るかは機種依存ってことで。

Font#getAscent()とFont#getDescent()を取得して表示位置を微調整するように組めば
どの機種でもねらった位置に表示できるようになると思うけど、そこまで厳密に調整する
必要のないアプリなら、表示位置については割り切ってしまおう。
0638デフォルトの名無しさんNGNG
>>637は>>634へのレス
0639デフォルトの名無しさんNGNG
さらに追加一言。
Font#getAscent()とFont#getDescent()じゃ左右の表示位置調整には利用できないね(^^;
0640634NGNG
>>636-639
返信ありがとうございます。
SH900iと特定の端末をだしたのはただ単に、私の持っている端末がそれなので、
それでしか、製作途中では確認できないためSH900iといいましたが、(ある程度できたら友達のも借りますが)
ttp://www.nttdocomo.co.jp/p_s/imode/spec/info.html
ここを見る限り、Doja2.0以降はデフォルトフォントのサイズは12x12となっていますので、
12x12のサイズで作ればDoja2.0以降の端末であれば、
レイアウト的に大丈夫だと思っていましたがそれだけでは、ダメなんですね・・・
636さんが言っているのは、
getFont(0x00000000)のあたりのことですよね?カッコ内を0x70000200に変更したりですよね?
私が作ろうとしているアプリの場合、
フォントは12x12のデフォルトのフォントでかまわないのです。
(むしろフォントを変更した場合、機種により変更したフォントのサイズが一定でない可能性があるため、
 レイアウトがぼろぼろになりそうなので・・・)
drawRectで作った枠にdrawStringの文字列が入らない場合は、
フォントを小さくするより、枠を大きくしようと思っています。
っで、悩んでいるのはそこではなくて、
iαppliTool for DoJa-3.5(FOMA)のエミュレータのデフォルトフォントサイズなのです。
たとえば、上記サイトにて、SH900iほかN506i等でもデフォルトフォントは12x12になっていますが、
iαppliTool for DoJa-3.5(FOMA)のデフォルトフォントはいくらなのかなと思いまして、、
そのサイズはどこかに記述されているのでしょうか?
それとも、レイアウト的にずれたように見えるのは、637さんのおっしゃるとおり、
上下左右の機種依存のためだけで、実際はエミュレータでもデフォルトフォントは12x12なのかな?

って書いてて思ったんですが、エミュレータで1文字だけstringWidthで数値を出せば分かりますね。
それと現段階では、文字をdrawRectの中にきれいに敷き詰めようと思った場合は、
drawRectに余裕をもたせて、stringWidthでセンター割りをしたほうがいいかもしれません(^^;)
もう少し、調べてみます。
ほかにアドバイスがあれば、お聞かせくださいませ。
0641デフォルトの名無しさんNGNG
12x12なのは全角文字
0642デフォルトの名無しさんNGNG
>>634
DoJa-3.5のエミュレータでもデフォルトフォントは12ドット。
drawRectで描く枠のサイズを指定するにあたってはFont#getBBoxWidth()
を使えばちょうどよい大きさが取得できるんじゃないかな。
0643デフォルトの名無しさんNGNG
デフォルトフォントサイズは12x12(TINY)で、これはDoJa3.0以降の仕様だから
エミュでも実機でもこのサイズ
24x24(MEDIUM)も共通
でもSMALLは機種によってサイズが違うんだよね‥一番良いサイズなんだけど
0644デフォルトの名無しさんNGNG
505用iアプリ作ったんだけど、
N505iのユーザから、
「message=Bad dynamic heap objects found」
というエラーが表示されて落ちるという報告がきた。
誰か似たような症状に出会ったことある?

ちなみに、他にもN505iユーザいるようだが
このユーザ以外からは報告をもらったことがない。
0645デフォルトの名無しさんNGNG
drawpixels
0646デフォルトの名無しさんNGNG
>>644
ある人だけ反応すればいいのかもしれないが、放置されてると思われるのもなんなので。

ないな。
たまたまよろしくない挙動をしたんじゃなかろうか…。くらいしかわからんエラーメッセージだな。
きちんとオブジェクト管理してれば出なさそうなんだが。
0647デフォルトの名無しさんNGNG
>>644
何か、デバッグ目的でassertionかけた所に引っかかったって感じのメッセージだなw
0648デフォルトの名無しさんNGNG
J2MEUnit って使ってる人います?
0649デフォルトの名無しさんNGNG
ブラウザからのアプリ起動で、パラメータを渡したく
以下の様にやっているのですが、起動はするのですが
パラメータが上手くいきません。
何か足らない所がお分かりになる方がいましたら
ご教授頂けると非常に助かります

●HTML側

<OBJECT declare id="app" data="http://www.test.com/app.jam" type="application/x-jam">
<PARAM NAME="p1" VALUE="test"></OBJECT>
<A ista="#app" href="err.htm">起動</A><br>

●アプリ側

public class testapp extends IApplication {
public void start(){
String p1 = this.getParameter("p1");
Dialog d = new Dialog(Dialog.DIALOG_INFO,"test");
d.setText("Param1 = "+p1);
d.show();
Display.setCurrent(new b());
}
}
0650デフォルトの名無しさんNGNG
>>649
で、ダイアログには何て表示されてるんだ?
0651デフォルトの名無しさんNGNG
PARAMタグで渡すのってアプレットの仕様じゃなかったっけ?
iアプリならjamの中のAppParamに書くんだよ

詳しく調べたわけじゃないから間違ってたらスマソ
0652デフォルトの名無しさんNGNG
>>651
504以降ならブラウザからiアプリを起動する事が出来る
その時にパラメータが渡せる

んで、やり方は合っているように見えるな‥
0653649NGNG
>>650
ダイアログにはnullと表示されます。

>>652
自分的にも、ぬけてる所はないと思うだけに
まいってます…
0654デフォルトの名無しさんNGNG
>>649
DoJaのドキュメントと照らし合わせてみたけど、合ってるっぽいよなー。
PARAMタグの name と value が大文字だから・・・なんてことはないよな、
まさか・・・

だが、ドコモのやることだから、ありえないこともなさそうなのが怖い。
0655はじめNGNG
突然失礼します。
iアプリを制作中なのですが、DoJa3.5ではコンパイル成功後、実行も問題なく出来るのですが、
DoJa3.0を用いるとコンパイル成功後、実行出来ずに止まります。

エラーメッセージは下記の様に表示されます。
java.lang.ArrayIndexOutOfBoundsException


ソースはここです。
http://mirage.zive.net/upload/source/up0172.txt

何処に原因があるのかわからなく、書き込みしました。
どなたかご教授お願いします。
0656634NGNG
>>641-643
遅くなりましたが、フォントサイズの件ですが、
大変参考になりました。
皆様ありがとうございました。

たぶん、また調べてもわからないことがあれば聞きにくるかと思いますが、
よろしくお願いします。
0657デフォルトの名無しさんNGNG
>>655
> ArrayIndexOutOfBoundsException
=配列のインデックスが範囲外だよ例外

ということなので、そのあたり調べるように。
0658テスト料金がかかってかかってNGNG
スクラッチパッドにダウンロードしたgif画像を保存するテストをしたいのですが、
スタンドアロンPC1台でテスト可能な方法はあるのでしょうか?
0659デフォルトの名無しさんNGNG
>>658
(鯖から?)ダウンロードしたgif画像をスクラッチパッドに保存したいと思ってる。
PC1台でテスト可能な方法を教えてくれ。

藻前の意図するとこはこんな意味だよな。

オレはできるだけ実地に近い条件でテストしたほうがいいと思うので、
普通にエミュで鯖からダウンロードしてる。
パケ代とか発生しないから問題ないだろ?
0660デフォルトの名無しさんNGNG
スタンドアロンって書いてあるぞ。
私も何故スタンドアローンでやりたいかは理解できんが…。

そのマシンにapacheインストして、接続先をlocalhostでやればいいと思われ。
0661名無しNGNG
高レベルAPI で Button を作成後、そのボタンを消去する方法はあるのでしょうか?
0662デフォルトの名無しさんNGNG
button.setVisible(false);
0663名無しNGNG
>662さん
ありがとうございます。
試してみます。
0664デフォルトの名無しさんNGNG
>>655
ソースざっと眺めただけだから何ともいえないけど、
初期化で
shougaibutu = new char[gw][gh];
ってしてるけど、
shougaibutu[bdlx/65536][bdly/65536]
はまったく問題ないのん?
0665デフォルトの名無しさんNGNG
>>655
よくわからんけど
gw = getWidth();// 横幅
gh = getHeight();// 縦幅
で取得される値が変化するなんてことはないかな。
shougaibutu = new char[gw][gh]; // 障害物の情報領域作成
for(int i = 0;i < gw;i++){
 shougaibutu[i][0] = 1;
 shougaibutu[0][i] = 1; // <=== ★★★
 shougaibutu[gw-1][i] = 1;
 shougaibutu[i][gh-1] = 1;
}
forの★2行目★,gw(横幅)がgh(高さ)を超えたらアウトですが
0666デフォルトの名無しさんNGNG
>>655
mycanvasのpaint()でgwとghを取得しているけど、
それだとstart()のshougaibutu初期化の時に、
ちゃんと値が取れていることは保証できないよ

paint()内の取得はやめてnew mycanvasした直後にgw = w_canvas.getWidth()してみそ
0667655NGNG
数人の方々アドバイス有り難う御座います。
早速試した後、報告致します。
0668665NGNG
>>667
できることなら今後の発展のために
どの行で例外が出ているかまで自分で追求することオススメ。
自分の持っていない端末上で発生するエラーなら別だけどね。
Eclipseのデバッガを使ってもよし、最悪各行にprint文を挿入して
どこまで表示されるかで判断してもよし。
発生する行とExceptionの種類がわかれば大抵エラーの原因は見えるYO。
それでも不明なエラーだったときに質問するのがスマート&キュート。
がんがれ!
0669デフォルトの名無しさんNGNG
自作した通常起動なアプリを
待ち受け起動させたいのですが、
ADFのMyConciergeをYesにしただけではダメみたいで
java.lang.RuntimeException: must be MApplication
というエラーメッセージが出ました。
検索したところ、MApplicationを継承しろ、ということなのですが、
この場合、IApplicationは継承しなくてもいいのでしょうか?
IApplicationをMApplicationに置換してADFのMyConciergeをYesにすればOK?
0670デフォルトの名無しさんNGNG
APIリファレンスのMApplicationクラスをよくごらんなさい。
IAppliationを継承しているハズ。
0671669NGNG
ありがとうございます
DoJaのエミュでは待ち受け起動できたのですが
実機でダウンロードしようとすると
「ソフトに誤りがある」とのメッセージが出たので・・・。
バージョンアップだとダメで
ウェブブラウザからアドレスにアクセスすればいいとかあるのかな。
もう少し勉強してみます・・・
0672デフォルトの名無しさんNGNG
自分で作ったアプリを出来るだけ安く実機でテストする方法を教えてください
0673デフォルトの名無しさんNGNG
>>672
一発で動作するように、
エミュとの違いに細心の注意を払ってコーディングする。
0674デフォルトの名無しさんNGNG
>>672
メーカーのプリインストールアプリを開発する仕事をする。
そうすると、転送するためのケーブルが借りれる。
さらにお金も入ってウマー
0675デフォルトの名無しさんNGNG
>>674
それはケーブルが重要なの?
転送ソフトが重要なの?
0676デフォルトの名無しさんNGNG
>>675
両方じゃない?
どっちかといわれればケーブルの方だろうけど、ここで問題にするような話じゃない。
0677デフォルトの名無しさんNGNG
いやいや開発コストを大きく左右する大問題でしょ
可能なら転送システムを自作するよ
まいどまいど微々たる調整でパケ代浪費してられないさ
0678デフォルトの名無しさんNGNG
>>677 パケ放題入ったほうがいろいろ楽しめるぞ
0679デフォルトの名無しさんNGNG
シグナリングテスタでも使って転送汁
0680デフォルトの名無しさんNGNG
>>679
むっちゃ高いねんけど・゚・(ノД`)・゚・
0681デフォルトの名無しさんNGNG
>>677
ま、せいぜい数万円の得をするために、DoCoMoやら携帯各社と争う方がバカらしいと思うけどね。
0682デフォルトの名無しさんNGNG
>>672
正しいアドバイスかわかりませぬが
試作版を公開してテストユーザ募るのがいい
ただゲームとか人が食いつきそうなアプリに限られるかな。
これが一番現実的。
0683デフォルトの名無しさんNGNG
>>682
公開できるレベルになるまでが結局大変。
ゲームみたいに、ハードにあまり依存しないソフトだと、だいたいエミュレータでバグはとれるし。
バグ情報が集まっても、その修正は自分でアプリダウンロードして確認する必要がある。
0684682NGNG
>>683
なるへそ
確かにそうかも
0685デフォルトの名無しさんNGNG
>>684
仕事で作るアプリだと、リリース前に公開するわけにはいかんしね。
0686デフォルトの名無しさんNGNG
フリー向けだったら携帯アプリ版に動作確認のスレ立てたよ。
「動作確認はここでタノメ」ってやつ
0687デフォルトの名無しさんNGNG
ドコモ社員が持ってる魔法の携帯使えるといいんだけどねw
0688デフォルトの名無しさんNGNG
>>687
秋葉原の怪しいイラン人が持ってる魔法の携帯はどうですか?
0689デフォルトの名無しさんNGNG
そんなもんイラン。
0690デフォルトの名無しさんNGNG
こちらで聞くのが正解でしょうか?

お聞きしたいのですが
「太鼓の達人」のように
サイトからシナリオをDLしてきて、それをアプリ本体が受け取り
スクラッチパッドに格納したいのですが
手順はどのようにすればいいのでしょうか?
iアプリで考えております。

あと505iだと30kが制限とありますが
プログラム本体の容量ですか?それとも画像などのリソース含むですか?
0691デフォルトの名無しさんNGNG
>>690
iアプリコンテンツ開発ガイドの第五章と第七章を読め

>あと505iだと30kが制限とありますが
30kはJARのサイズ。
プログラム以外のリソースも含められる。

http://www.nttdocomo.co.jp/mc-user/i/spec/info.html
0692デフォルトの名無しさんNGNG
>>690
サイトからシナリオをDL→ スクラッチパッドに格納

大体このような手順で問題ないよ。
0693デフォルトの名無しさんNGNG
だからその手順を聞いてるんだろ
0694デフォルトの名無しさんNGNG
HTTPConnection#connect()→ストリームで受信/格納
0695デフォルトの名無しさんNGNG
>>693
っていうか、質問者は、その質問をするレベルにない。
せめてHelloWorld相当のiアプリくらい作れ。
0696デフォルトの名無しさんNGNG
これ以上の具体的な手順を説明しろということは、
「誰か代わりにプログラム作ってよ」
と言ってるのと変わらんね。
0697デフォルトの名無しさんNGNG
>>690
皆さんが言うとおりiアプリコンテンツ開発ガイドをよく読めばやり方はつかめます。
ソースの具体例が欲しくなったらネットで検索してみるとよいでしょう。
質問されたことはiアプリ開発においてとても基本的なことなので、答えそのものの
サンプルがよく見つかると思います。

iアプリ開発の技術的な質問はこのスレでOK。
開発ガイド読んで、ネットで検索して、それでも困ったら質問してみるがよろし。
0698デフォルトの名無しさんNGNG
Eclipse 3.0でDoJaプラグイン動く?
軽く試したけど、なんかクラスファイルがjarファイルに含まれずにダメっぽい。
0699デフォルトの名無しさんNGNG
すいません、初心者ですが、リスト画面切替について教えて下さい。
ComponetListenerを使って、ListBoxで生成リストのあるリスト項目を選択したら、
別のListBoxで作ったリスト画面を表示させたいです。
リスト単体は表示することができます。
さらに新しいクラスを定義するのかなど、
すいませんが、教えていただけないでしょうか。

:
:

public void start(){
TEST_Panel test_panel = new TEST_Panel();

:
:
}

class TEST_Panel extends Panel{
:
}
public void componentAction(Componet s_com , int s_type , int s_param){
if( s_com == single )&&(s_type == SELECTION_CHANGED)&&(s_param==2){
   ここの処理がよく分かりません。
}
}
:
:
0700デフォルトの名無しさんNGNG
doja3.0を導入してプログラムに励もうとしましたが
一瞬ウインドウが開いたかと思った刹那
ウインドウが閉じ、アプリ終了してしまいますがなぜでしょうか?
j2SE1.3とJ2ME1.04はインストール済みです。
0701デフォルトの名無しさんNGNG
半角スペースが含まれたディレクトリにインストールした、とかは関係ないっけ?
0702デフォルトの名無しさんNGNG
c:\iDKDoJa3.0に展開しましたのでそれはないと思いますが・・
0703デフォルトの名無しさんNGNG
なにか、ウインドに表示されているのですが文字を読むまもなく強制終了
以前は動いたのになぜ・・
0704デフォルトの名無しさんNGNG
とりあえず文字を読め。
我々はエスパーじゃないのだから、さっぱりわからん。
0705デフォルトの名無しさんNGNG
画像データをHTTP経由でサーバーから取得し、
スクラッチパッドに保存するプログラムを作成しているのですが、
電波状況が突然圏外になったりした時の対処方法に困っています。

ダウンロード中に圏外になる等、エラーが発生した場合には
「通信エラーが発生しました。決定キーでリトライ」等のダイアログを出し、
ユーザーが決定キーを押すと通信リトライ・・・という形にしたいのですが・・・。

下記のようなソースを書いてみましたが、リトライ時に
「Already connecting」というエラーが発生してしまいます・・・。
0706705NGNG
int byteNum = 0;
HttpConnection hc;
InputStream is;
OutputStream os;

while (true) {
try {
hc = (HttpConnection)Connector.open(url_ + filename, Connector.READ, true);
hc.setRequestMethod(HttpConnection.GET);
hc.connect();
is = hc.openInputStream();
os = Connector.openOutputStream("scratchpad:///0;pos=" + sp_pt_ + ",length=100000");
int temp;
while ((temp = is.read()) != -1) {
os.write(temp);
byteNum++;
}
hc.close();
is.close();
os.close();

break;
}
catch (Exception e) {
Dialog d = new Dialog(Dialog.DIALOG_ERROR, "ERROR");
d.setText("通信エラーです。決定キーでリトライ");
d.show();
}
}
0707703NGNG
読む間があればよんでる。
なぜに強制終了するのか原因がさっぱりわからない。
トラブルシューティングもどこにも乗ってない。
0708デフォルトの名無しさんNGNG
失敗してcatchにとんだ時にcloseしていないのが原因。

if (null==hc) hc.close();
if (null==is) is.close();
if (null==os) os.close();
ってcatchの中に書いておきなさい
0709704=708NGNG
ああ、抜けた。
もちろんopen前にnullを入れておくのを忘れないように。

>>707
君がさっぱり分からないのに、その場にいない我々がわかると思うか?
そもそもPrintScreenすら知らないのか?
キーボードの右上に「PrintScreen」ってボタンがあるだろ。
それを押すとPCの画面が撮影できる。
BMPファイルを開いてCTRL+Vをすれば貼り付けられるから、それで文章も読めるだろう。
0710705NGNG
>>708>>709
早々のレス、ありがとうございます。

>>706の2〜4行目を
HttpConnection hc = null;
InputStream is = null;
OutputStream os = null;
として、
catchの中を
catch (Exception e) {
 try {
  if (hc != null) hc.close();
  if (is != null) is.close();
  if (os != null) os.close();
 }
 catch(Exception ee) {
  ee.printStackTrace();
 }
 Dialog d = new Dialog(Dialog.DIALOG_ERROR, "ERROR");
 d.setText("通信エラーです。決定キーでリトライ");
 d.show();
}

としてみましたが、以前と変わらないエラーが出る状況です・・・。
何がいけないんでしょうか・・・。
0711デフォルトの名無しさんNGNG
>>710
catchの中じゃなくて、finallyの中に書くのが普通
finally {
  if (hc != null) try { hc.close(); } catch (IOException e) {}
  if (is != null) try { is.close(); } catch (IOException e) {}
  if (os != null) try { os.close(); } catch (IOException e) {}
}
あと、hcとisとosの宣言はwhileの中に移動すれ
0712704=708NGNG
たはは。
null==になってたね。失礼。
そのとおり!=が正しい。


んでエラーだけど、関係ないかもしれないが、2度目のhcやisにnullが入ってないな。
心配だ。
dialog出した後にでもnull代入するか、開く前にnull代入するべし。

あと
if (hc != null) hc.close();
if (is != null) is.close();
if (os != null) os.close();
のcloseとnullかどうか調べているものの対応が、本当にこの書き込みのとおりか確認。
結構失敗あるよ。
0713デフォルトの名無しさんNGNG
711と712のアドバイスをそのまままとめると
所望の動作を行わないから注意ね。
0714705NGNG
while (true) {
 HttpConnection hc = null;
 InputStream is = null;
 OutputStream os = null;
 try {
  hc = (HttpConnection)Connector.open(url_ + filename, Connector.READ, true);
  hc.setRequestMethod(HttpConnection.GET);
  hc.connect();
  is = hc.openInputStream();
  os = Connector.openOutputStream("scratchpad:///0;pos=" + sp_pt_ + ",length=100000");
  int temp;
  while ((temp = is.read()) != -1) {
   os.write(temp);
   byteNum++;
  }
  hc.close();
  is.close();
  os.close();
  break;
 }
0715705NGNG
 catch (Exception e) {
 }
 finally {
  try {
   if (hc != null) hc.close();
   if (is != null) is.close();
   if (os != null) os.close();
  }
  catch(Exception ee) {
   ee.printStackTrace();
  }
  Dialog d = new Dialog(Dialog.DIALOG_ERROR, "ERROR");
  d.setText("通信エラーです。決定キーでリトライ");
  d.show();
  hc = null;
  is = null;
  os = null;
 }
}
0716705NGNG
>>711
ありがとうございます。
ご指摘の部分、修正してみましたが・・・やはり状況は変わらないようです・・・。

>>712
何度も申し訳ないです。
>>711氏がおっしゃるようにwhileの中に宣言を持っていき、
更に念の為ダイアログ表示後にもnullを代入してみましたが、同じエラーを吐きます・・・。
ちなみに上記ソースはコピペしていますので、誤字脱字の類はないと思います。
他に怪しいところ等ありませんでしょうか?
0717デフォルトの名無しさんNGNG
while (true) {
 HttpConnection hc = null;
 InputStream is = null;
 OutputStream os = null;
 try {
  hc = (HttpConnection)Connector.open(url_ + filename, Connector.READ, true);
  hc.setRequestMethod(HttpConnection.GET);
  hc.connect();
  is = hc.openInputStream();
  os = Connector.openOutputStream("scratchpad:///0;pos=" + sp_pt_ + ",length=100000");
  int temp;
  while ((temp = is.read()) != -1) {
   os.write(temp);
   byteNum++;
  }
  break;
 }

0718デフォルトの名無しさんNGNG
 catch (Exception e) {
  Dialog d = new Dialog(Dialog.DIALOG_ERROR, "ERROR");
  d.setText("通信エラーです。決定キーでリトライ");
  d.show();
 }
 finally {
  try {
   if (hc != null) hc.close();
   if (is != null) is.close();
   if (os != null) os.close();
  }
  catch(Exception ee) {
  }
 }
}
かな。動かしてないけど。
0719705NGNG
>>717-718
おぉ!ありがとうございます。
なるほど・・・ダイアログ表示はcatchの中で行なって、
close処理はfinallyで行うんですね・・・。

早速上記に書き換えて実行してみたところ・・・いけました!

ですが新たな問題が・・・
1度目のダイアログが出た時に、圏内に戻って決定キーを押した場合は
うまく動作するのですが、まだ圏外にも関わらず決定キーを押すと、
ConnectionExceptionが発生するようです・・・。
これはどういうことなんでしょう?
0720デフォルトの名無しさんNGNG
圏外だからじゃないの?
0721705NGNG
1度目のダイアログが出ている時、まだ圏外なのに決定キーを押すと、
finallyの中にあるcatchにConnectionExceptionがキャッチされます。

その後は何度リトライしようとしても、ダイアログが表示されるcatchブロックに
ConnectionException: Already connectingで捕まってしまう状況ですね・・・。
0722デフォルトの名無しさんNGNG
>>719 どういうこともなにも、そのままやん?
0723705NGNG
>>720
言葉足らずで申し訳ありません。

最初に通信を試みようとした時に圏外だとダイアログが表示される
↓
ダイアログの決定キーを押した時も圏外のままだと
再びダイアログが表示される
↓
圏内に入ってダイアログの決定キーを押しても
Already connectingでcatchに捕まってしまうため、
ダイアログが表示される
↓
以下同文

・・・という感じなんです。
0724704=708NGNG
とりあえずダイアログの表示はずしてみたら?
いや。ダイアログの表示を、closeしたあとに変えてみたら?
なーんか悪さしてそうに見える。

あと、hcとかisの宣言時にnullいれるのやめて
HttpConnection hc = null;
 InputStream is = null;
 OutputStream os = null;
 try {
  hc = (HttpConnection)Connector.open(url_ + filename, Connector.READ, true);
  hc.setRequestMethod(HttpConnection.GET);

じゃなくて
 try {
  hc=null;
  is=null;
  os=null;
  hc = (HttpConnection)Connector.open(url_ + filename, Connector.READ, true);
  hc.setRequestMethod(HttpConnection.GET);
にしてみそ
0725デフォルトの名無しさんNGNG
もしかして724って、変数にnull入れないとそれまでその変数から
参照されてたインスタンスがGCされないとおもってんだろか。
さらにGC対象になったらすぐにGCされるとおもってんだろか...
0726デフォルトの名無しさんNGNG
なんか、いろんな状況を想定するのマンドクセ
って意図が感じられるんですが、
なんと反応していいもんだか…
0727デフォルトの名無しさんNGNG
>>719
 finally {
  try {
   if (hc != null) hc.close();
   if (is != null) is.close();
   if (os != null) os.close();
  }
  catch(Exception ee) {
  }
 }
これだとどれか一つのcloseが失敗すると他のcloseが実行されないから
だめ。まとめずまめにcatchすること。
0728705NGNG
>>727
finally {
 try { if (hc != null) hc.close(); } catch (Exception e) {}
 try { if (is != null) is.close(); } catch (Exception e) {}
 try { if (os != null) os.close(); } catch (Exception e) {}
 // 念の為
 hc = null;
 is = null;
 os = null;
}

ありがとうございます。このように直してみました。
今、複数の実機で試してみてるんですが、
機種によってはうまくいくものもある模様・・・。N900は望み通りの動作をするみたいです。
ますますわからなくなってきました・・・。
0729デフォルトの名無しさんNGNG
>>728 connect()の動作はドコモが配ってあるマニュアルにもあるように
機種によって差があるので最低限それだけは一度目を通すこと。
あと、//念の為 以降はいらない。whileループの最後で
スコープから外れるでしょ。
0730デフォルトの名無しさんNGNG
>>725
うんにゃ。流石にんなことは思ってないけど、特に間違っているように見えなかったから
怪しげなところをひとつひとつ潰していこうってだけ。

ああ、しかもほんとだ。宣言がwhileの中じゃん
ヽ(;´Д`)ノぼろぼろだな俺

にしても、いつも俺が商業で使っているルーチンとほとんど変わらないように見える。
なぜダメなのかわからん。
0731デフォルトの名無しさんNGNG
本質とは関係ないかもしれないが気になることが。
ストリームを閉じてから接続を閉じるんじゃないの?
0732デフォルトの名無しさんNGNG
あ、ほんとだ
0733デフォルトの名無しさんNGNG
久々に見に来た
初心者増えたな・・・orz

昔お世話になった人たちは、
まだ見に来てくれているのだろうか・・・
0734デフォルトの名無しさんNGNG
>>733
時期的にそれどころじゃない人が多いかも知れない。
0735デフォルトの名無しさんNGNG
初心者も質問に来られる雰囲気は大事ですよ。
(*´ω`*)もふふん。
まぁ初心者サイトのソースぱくる位は先にして欲しいかもしれないけど。
0736デフォルトの名無しさんNGNG
しかし初心者サイト自体初心者が作ってんだよな...
0737デフォルトの名無しさんNGNG
でも、
いつもこんな調子だと、
機種依存?な質問しても、
初心者レスに埋もれて返答なさそうだよね・・・

って、見てて思った


ていうか、質問内容が初心者すぎないか・・・orz
0738デフォルトの名無しさんNGNG
EclipseでDoJaプラグイン使ってiアプリ作ろうと思うんですが、CLDCやらDojaAPIのJavaDocってどうやって組み込んだらいいですか?
0739デフォルトの名無しさんNGNG
>>738 それぞれのjarやzipファイルのとこで右クリック、プロパティを
選んでそこで設定。
0740デフォルトの名無しさんNGNG
>>739
「doja_classes.zipにはプロパティページがありません」となります。
0741740NGNG
Eclipse2.1.3 + DoJa3.5です。
0742740NGNG
質問age
0743デフォルトの名無しさんNGNG
>>740 じゃ、プロジェクトのプロパティ開いて
Java build path -> librariesのとこで指定。
0744740NGNG
>>743
できたです。
でも、オプションAPIのJavaDocはどうすれば・・・
0745740NGNG
と思ったら、設定が反映されない・・・
開きなおすと消えてる。
0746740NGNG
これって、普通はなやむところじゃないんでしょうか・・・
0747デフォルトの名無しさんNGNG
>>746
自分もそれ、できなくて困ってます。
こちらはeclipse2.1.2+doja3.5ですが、.zipを.jarに変更したら、
設定が消えることはなくなりました。
しかし、Javadocがホバー表示されない。
にもかかわらず、Navigate>外部Javadocを表示する(Shift+F2)では表示されます。
Eclipseのバグ??できるようになりましたか?
0748デフォルトの名無しさんNGNG
javadocのホバー表示はソースから直接読み取っているから
ライブラリのソースが公開されない限り無理だね。
0749740NGNG
zipのままJavaDocの組み込みができた人がいるのかどうか、知りたい。
それがだめなら、今日ルイ・コスタがでるかどうか、知りたい。
0750デフォルトの名無しさんNGNG
>>748
そうだったんだ・・。ありがとうございます。
0751747NGNG
>>740
変更って、名前変更しただけですよ。
0752740NGNG
>>751
zipのままできる方法があるのなら、その方法でやりたいから。
0753740NGNG
ゴールシーン見逃した・・・

拡張子変えてしまったら、プロジェクトがそのままでは使えないよね?
0754740NGNG
おぉ、ルイコスタ。

ファイル名変更ではなくて、コピーしてjarファイル作らないと実行できないね。
それでもオプションAPIのJavaDocは組み込めないけど。
0755740NGNG
結局、関係ないjarファイル追加して、そのドキュメントを設定するのがいい気がする。
0756デフォルトの名無しさんNGNG
コンパイラにしろエミュレータにしろ参照するライブラリは
それぞれ設定できるからいかようにも。でもzipファイルとjarファ
イル両方用意してプロジェクトのビルドパスだけjarにするのがいいかもね。
あと今試したけどR3.0だとzipファイルにjavadocのattachできる。

で、JavaDocのホバー表示だけど、CLDCに限っていえば、
Docomoが配ってるやつではなくて、IBMのやつはソース込みになってる。
だからビルドパスにはIBMの入れて、エミュレータではDocomoのを
参照するという手もあり。
...ってアレ? Sunのほうもユーザ登録すればソース入手できた気がする
けど、ごめん、よく覚えてない。
0757740NGNG
>>756
zipファイルにjavadoc結び付けれないのは、2.1の仕様?
0758デフォルトの名無しさんNGNG
>>707
再インスコ
0759デフォルトの名無しさんNGNG
最近Eclipseの質問おおいが、
そんなにこれはいいものなのか?
0760デフォルトの名無しさんNGNG
>>759
Eclipseは非常に良くできてて便利だけど
大きくても100KB程度のiアプリなら別に無くてもいいもの

アレは広大なクラスライブラリを相手にする時にありがたいよ
0761デフォルトの名無しさんNGNG
>>760
なるほどね。
みんなでEclipseって騒いでるから、
すごい便利なものなのかと思ってたよ。

それだったら、俺には全然必要ないな。
なんせ、クラスなんて多くて3個だからなw
0762デフォルトの名無しさんNGNG
>>761
HelloWorldから便利に使える。
クラスが3つもあるなら充分。
0763デフォルトの名無しさんNGNG
どっちやねん。
まあ、漏れは別件で使ってるけど
0764デフォルトの名無しさんNGNG
>>763
使わないのはもったいない。
0765デフォルトの名無しさんNGNG
ってか、どうやったら「無くていいもの」っていう意見がでるか不思議。
0766デフォルトの名無しさんNGNG
エミュレータでGraphics3D使うとjava.lang.ClassCastExceptionが出るのはなぜ?
エミュレータはiDKDoJa3.5を普通にインストールしただけ。
何か追加しなきゃならないものってありますか?

import java.io.*;
import java.util.*;
import com.nttdocomo.ui.*;
import com.nttdocomo.opt.ui.j3d.*;
final class MyCanvas extends Canvas {
  public void paint(Graphics g) {
    Graphics3D g3d = (Graphics3D)g; // ここで例外発生
  }
  void main() {
    for (;;) {
      repaint();
      try { Thread.sleep(1000); } catch (Exception x) {}
    }
  }
}
public final class Test extends IApplication {
  MyCanvas c = new MyCanvas();
  public void start() {
    Display.setCurrent(c);
    c.main();
  }
}
0767デフォルトの名無しさんNGNG
>>766
ttp://www.mascotcapsule.com/toolkit/docomo/download/tools.html
0768デフォルトの名無しさんNGNG
>>766
そういうときは「Graphics3D iアプリ」とかで検索するんだ。
0769デフォルトの名無しさんNGNG
Eclipseに関する質問ってたびたび出てくるね。
私は使ったことがないんだけども、よく使ってる人はスレで出てきた分だけでも
FAQとしてまとめて、次スレからテンプレにしてみてはどうだろう。
0770766NGNG
>>767
ありがとう動いたよ
0771デフォルトの名無しさんNGNG
>>769
たびたびは話題になるが、FAQという感じではないと思われ。
0772デフォルトの名無しさんNGNG
新バージョンでどうですか?とかだからねぇ。
0773デフォルトの名無しさんNGNG
でもコンパイルできねぇ、リソースがjarに入らねぇってのはよく出るね。
0774デフォルトの名無しさんNGNG
Eclipse、ドコモのプラグイン使わないで
一度自分でbuild.xml書いたほうが小回りきくし
使いまわせるし楽なんだけどな。
ファイルの大きさ取得するタスクは
どっかから拾ってくる必要あるけど。
0775デフォルトの名無しさんNGNG
プリプロセッサでマクロバリバリのプログラムでもうまく使えるんなら
面白いんだけどな〜

EclipseとCのマクロどっち取るかと言われたらやっぱマクロだよな〜
0776デフォルトの名無しさんNGNG
おれなら両方とる。
0777707NGNG
なぜか、dojaほっといて
Eclipseの設定していたら普通に起動した。
いまだに、原因はわかりませんが
お騒がせしました。

0778デフォルトの名無しさんNGNG
ダウンロードサイトからDLしたいファイルを一覧で表示し、
選択したファイルをスクラッチパッドに書き込みたいんだが
そんなことできる?

<ファイルの一覧表示>
0779デフォルトの名無しさんNGNG
>>778
できる。
0780デフォルトの名無しさんNGNG
ファイル一覧情報を書き込んだlist.txtでもつくって、まずはそれを読み込めばいいだろう。
0781デフォルトの名無しさんNGNG
ls.cgiとかそんな感じのをサーバに置いときなさい。
0782デフォルトの名無しさんNGNG
作ったiアプリでBGM流したいんだけど、形式は何が使えるの?
音楽はサパーリわかんね
0783デフォルトの名無しさんNGNG
>>782
SMFを独自形式にコンバートしたもの。
なんかの機種はSMFが使えるはず
0784デフォルトの名無しさんNGNG
>>782
好みだし大きなお世話かもだがやめた方がいいよ
だって機種ごとの互換性保つの超大変だし
一度システム作っちゃえばあとは楽なのかもしれないけどね。

コンバータはググれば見つかるんじゃないかな。
各機種用のファイルを全部一気に吐き出してくれる優れもの。
そいつの名前は〜失念・・・
0785デフォルトの名無しさんNGNG
わかったコレコレ↓
http://www.hundredsoft.jp/wav2mld/
0786デフォルトの名無しさんNGNG
>>782
*.MLD(MFi形式)
FOMAは*.mid(SMF形式)
0787デフォルトの名無しさんNGNG
wav2mldを使ってSO505i用のmld作ったんですが、
PsmPlayerでは再生出来るのに実機で再生出来ません。

何故??
0788デフォルトの名無しさんNGNG
自己解決しました(^_^;

SO505i用をSO505iSで再生していました。
0789778NGNG
>780
すごい!単純だけど、それが一番簡単でいい。
気がつかなかったよ!
0790デフォルトの名無しさんNGNG
>>789
って優香、
DirectoryIndexをonにしとけば list.txt作る必要もないだろ?
0791デフォルトの名無しさんNGNG
>>790
アプリにそれを解析しろというのか。
list.txtが楽
0792デフォルトの名無しさんNGNG
ええっと、ドラクエのようにモンスターの形はいっしょだけど
一部色が違う(パレット変更)ようにすることで別モンスターと
いうようにしたいんだけど、
画像のリソースじゃなくて
プログラムで読み込んだ画像を任意の色を任意の色にパレット変更
って感じにしたいんですが、
どうすればいいでしょうか?

0793デフォルトの名無しさんNGNG
>>792
PalettedImage
0794デフォルトの名無しさんNGNG
サポートしてない機種多すぎ。
素直にスクラッチパッドに保存し、パレット部を直接書き換えるべし。
0795デフォルトの名無しさんNGNG
imode以外のブラウザ、タブブラウザなどからJarファイルを直接ダウンロードされているのですが、これを防ぐ方法はないものでしょうか
0796デフォルトの名無しさんNGNG
>>795
imode以外のIPを弾け
0797デフォルトの名無しさんNGNG
ご返答ありがとうございます。具体的にどうゆう対策でIPをはじけばよいのでしょうか
0798デフォルトの名無しさんNGNG
>797
君の立場じゃ無理。
0799デフォルトの名無しさんNGNG
俺も>>797には無理だと思う。
0800デフォルトの名無しさんNGNG
>>795
元のjarはo-rしといて、
CGIでソレを読み込んでimodeのときだけ吐く
っていうのもありかなぁ?
0801デフォルトの名無しさんNGNG
>>797
.htaccessにでも書けば?
0802デフォルトの名無しさんNGNG
ちょいと失礼します。
待ち受け起動したアプリからのブラウザ起動ってぜ〜ったい不可能ですかね?
待ち受け状態から自アプリを通常起動させてパラメーターによってブラウザ起動させようとしたけど
アプリからアプリの起動って同じADFじゃできないみたいだし。。。
アプリを2つダウンロードさせるのも何だし、なんかいい方法ないもんですかね???
0803デフォルトの名無しさんNGNG
不可能。はい次。
0804デフォルトの名無しさんNGNG
>>802
どうしようもないね。
0805デフォルトの名無しさんNGNG
待ち受け起動したランチャーに別アプリ起動させるしかない
0806デフォルトの名無しさんNGNG
DoJa-3.5のエミュって、PointingDeviceのエミュレートに対応してないのな。
マウスカーソル位置拾えねぇよ・・・orz

まったくドコモのやることは・・・・

0807デフォルトの名無しさんNGNG
DoJaの標準APIで拾えないんじゃないか
0808デフォルトの名無しさんNGNG
>>807
確かにオプションAPIではあるが。

DoJa2.x系のエミュレータでは対応していたのに、3.x系では対応していない模様。
505シリーズにアナログポインティングデバイス付きの機種がなかったから削って
そのままになってるのだと思われ。
0809デフォルトの名無しさんNGNG
またしてもdoja3.0が意味不明で強制終了。
インストールしなおしてもだめです。

こんな方ほかにも折られます
0810デフォルトの名無しさんNGNG
809です。
error ・・・
と、エラーのつづりは一瞬を何度も見てなんとか読めたが
その後がさっぱりわからん。
瞬く間なので画面のキャプチャーすら取るひまがなし。
0811デフォルトの名無しさんNGNG
DOS窓開いてからdoja.exe叩くとかそういう発想はないのかね
0812デフォルトの名無しさんNGNG
はいはーい、提案。やっぱ質問用スレ立てよう。
「【初心者歓迎】iアプリ相談室」とかそんな感じのを。
興味深い話題が、横合いからの質問でザクザクぶった切られまくるのではかなわん。
なんかギスギスしてるし。

スレの勢いもほぼ十分っていうか、むしろ分けたほうが
遠慮なく機械的に質問・回答できるようになって流通量増えるんじゃないかと思う。

オーケーならスレ立てに取り掛かるし。
0813デフォルトの名無しさんNGNG
初心者だからといって、自分で調べることを怠るべからず。

っていうか、スレ増えても散漫とするだけ
0814デフォルトの名無しさんNGNG
いいんじゃねえの?正直自治厨うぜぇし。

>>813
そう照れ隠ししながら、藻前が初心者スレのログからFAQページ
作ってくれると信じてるぞ。
0815デフォルトの名無しさんNGNG
そんなに活発でもないスレを分割する理由がわからん。
0816634NGNG
スクラッチパッドからのロード中の画面で、
1%,2%,3%,4%,5%って数字が増えたり、
バーが塗りつぶされていったりする、いわゆるよくある画面だと思いますが、
あれは、スレッドで並行に動かしているのでしょうか?
それとも、読み込むforループの中に画面を描画するメソッドや
repaintなりを組み込んでいるのでしょうか?
しょうもない質問ですが、どちらなのか教えていただけませんでしょうか?
よろしくお願いします。
0817デフォルトの名無しさんNGNG
後者だな。
0818デフォルトの名無しさんNGNG
両方だな。
0819デフォルトの名無しさんNGNG
(;´Д`)-3
まさか前者を容認するカキコがあるとは思わなかったわ。
説明くらい書かないとまずいな。

画像1枚を読み込むとき、そのどれくらいまでを読み込んだか知る術はない。
つまり「画像を何枚読み終わったか」しか知りえない。
すなわちあの%は、単純に「読み込み済み枚数 / 全体枚数」なわけで、%の増え方は一定しない。
これを容認できるなら前者。普通容認する。

どうしても%の増え方を一律にしたいなら、全て読み込み終える時間を機種毎に正確に測り、
「現在の時間 / 機種毎の全て読み込み終える(略」をスレッド表示。

どちらでもどうぞ。
0820デフォルトの名無しさんNGNG
>>819
画像読み込む時にバイト単位で読み込めばいけるんじゃねぇの?<正確な%の増え方
0821デフォルトの名無しさんNGNG
バイト数と展開の速度がイコールとは限らん。
高圧縮JPGとかな。

そもそも厳密にやってどうする。
だから「後者だな」と言った。
0822デフォルトの名無しさんNGNG
>>819
%は増えなくても、たいてい、なんかアニメーションしてるだろ。
0823デフォルトの名無しさんNGNG
「画面が止まってると使用者が不安になるから、何でもいいから動かせ」
ってのがプログレス表示の由来だ、と上司に聞いたことあるな。
%表示の正確性はあるにこしたことはないけど、とりあえずどうでもいいというのが実務レベルの実際。

スレ違いだけど、
昔のパソコンソフトで処理待ち中に文字をリバースで点滅させてたのもそういう意味をこめてたらしい。
ハードウェアの機能だったから、ソフトが暴走してても点滅しっぱなしなんだけどね(笑

0824デフォルトの名無しさんNGNG
%バーが塗りつぶされていくのを聞かれているのだから、後者だろう。

%に関わりなく一定間隔でキャラがアニメしてるなら、
そんなものスレッドに決まってると816(2通りの方法を思いつく人物)ならすぐわかるだろ。
0825デフォルトの名無しさんNGNG
処理中にrepaintしても、処理が終わってアプリケーションに制御が戻るまで反映されない機種ってなかった?Fあたりで。
0826デフォルトの名無しさんNGNG
repaint()由来のpaint()は非同期で実装依存だから
いつ実行されるかわからないのが実情
0827デフォルトの名無しさんNGNG
>>825
Fは、precessEvent()内でrepaint()してもそのときのコールバックが終了したあとに
再描画になるね。イベントドリブンで組む場合には気をつけねばならぬ。
0828デフォルトの名無しさんNGNG
そう、だから、%バーの塗りつぶしも、スレッドじゃないとだめな気がしてたんだけど。
0829デフォルトの名無しさんNGNG
ダメな気が → ダメなことがある気が
0830デフォルトの名無しさんNGNG
プログレスバーなんか雰囲気でいいじゃん
漏れの糞コードなんか起動時に色々初期化が重いから
テキトーにプログレス処理を振り分けて書いて
ヨシこの辺で30%くらい、ここまできたら80%だ
みたいな感覚でやってる
機種毎の速度の違いすら考えてなかったり・・・
0831デフォルトの名無しさんNGNG
重いといってもPCのエミュだとプログレスバーの表示すら見逃しかねない程度なんだけどね
0832デフォルトの名無しさんNGNG
マルチスレッドマンドクセ
むかし、鯖へのアクセス時に画面に動きを付けるために使った事があるだけだな
(j-phone用だったけど)
new Thread(){
 public void run(){
//描画
 }
}.start();
とかメソッドの中に書いた希ガス

あとrepaint()は一切使わない方向で
誰か(ん・ぱか氏?)の本にそう書いてあったヨ
0833デフォルトの名無しさんNGNG
普通repaintは使わないな。iの場合。
0834デフォルトの名無しさんNGNG
ttp://homepage1.nifty.com/marukun/java/vapp.html

Vodafone用だけどプログレスバーのサンプル発見した。
ほしふるよぞらの作者さん
0835デフォルトの名無しさんNGNG
>>812
どっちかと言われれば賛成。正直微妙だが。

で、repaintメソッドか。そんなものもあったな(ワラ
ウィンドウシステムのための仕組みをケータイで使う理由がわかんね(゚�听)
0836デフォルトの名無しさんNGNG
まーあれだ
Graphics用だろ。
0837デフォルトの名無しさんNGNG
>>812
条件付き賛成
線引きの草案を出してよ

たとえば
「総合スレ」と「質問専用スレ」
「雑談スレ」と「質問スレ」
「総合スレ」と「初心者専用スレ」
みたいに各スレの方向性を明確に打ち出してちゃんと区別しないと
ナァナァになって分けた意味なくね?になるし

スレを分けるか否かは別にして、
テンプレやFAQがもっと濃い内容だと初心者には優しいかもね。
漏れにはそんな濃いFAQは作れないけどw
0838デフォルトの名無しさんNGNG
マンドクセー事いってんじゃないですわよこのやろう。
作ってみて利用されれば残るだけの話。
0839812NGNG
それもそうですわね。んじゃサクッと立てる方向で。ちょっと待っててクレー。

>>837
http://pc5.2ch.net/test/read.cgi/tech/1088705781/
http://pc5.2ch.net/test/read.cgi/tech/1086373839/
みたいなの想定してる。単に初心者を吸収する目的で立てるスレっちゅーか。
0840デフォルトの名無しさんNGNG
単なる乱立やめてくれ。
初心者スレをわけるような流量ないだろ。
このスレが初心者歓迎になればいいだけの話。
0841デフォルトの名無しさんNGNG
現状でも、初心者質問がほとんどなんだからさぁ。
0842デフォルトの名無しさんNGNG
今でも初心者歓迎じゃないの?
確かに色々機種依存情報も書き込んできたけど、初心者に答えるのも好きよ?

特に重大情報なんてそう頻繁にでてくるわけじゃないんだから、普段のネタがないのも困る。
0843デフォルトの名無しさんNGNG
2ヶ月かかっても900いかないんだから。
FeliCaでももりあがってないし。
しばらく大きめの話題なさそうだし。
0844デフォルトの名無しさんNGNG
age
0845デフォルトの名無しさんNGNG
iアプリDXでも、携帯に保存している写真を読み取ることはできないですよね?
0846デフォルトの名無しさんNGNG
現在Doja3.0で勉強しているのですが、
Panelクラスを継承しているクラスの中で矢印キー(カーソルキー)が押された場合の処理はどう書けばよいのでしょうか?
今現在は数字キー等と同じように、
if(受け取った値 == Display.KEY_UP)
のようにしているのですが、これでは反応してくれません。
一体どのようにすればいいのでしょうか?
0847名無しさん@そうだ選挙に行こうNGNG
>>846
調べてさしあげました。
以下iアプリコンテンツ開発ガイド for Doja3.0より引用

DoJa-2.0プロファイル以降では、
高レベルAPI利用時におけるこれらのキーのキーイベントにつ
いて以下のように規定されています。
・ 方向(上下左右)キーはキーイベントを発生しません。
これらのキーは、スクロールおよびフォーカス制御のために
常にPanelで処理されます。
(以下略)
0848名無しさん@そうだ選挙には行かないNGNG
keyListener
void keyPressed(Panel panel, int key)
void keyReleased(Panel panel, int key)
これらは何に使うんだろうね・・・
0849名無しさん@そうだやっぱり選挙には行かないNGNG
と思ったけど0123・・*には必要なわけか
ひとりごとを言ってしまいました。
さやうなら。
0850名無しさん@忘れ物NGNG
>>845
アプリ内で撮影して使うのであれば
DXどころか504isからできたりするようです。

ん・ぱか先生のサイト
ttp://www.saturn.dti.ne.jp/~npaka/sorami/1/index.html

加えて、iアプリコンテンツ開発ガイド for Doja3.0には
「iアプリから携帯電話のネイティブの画像データ管理機能を呼び出し、
マイピクチャ領域からの画像の入出力を行うことができます。(以下略)」

なんて書いてあるので普通にできるんじゃないでしょうか。
できなくても責任はとりません。

今度こそさやうなら。
0851名無しさん@そうだ選挙に行こうNGNG
>>840
俺は初心者歓迎になれそうもない。S/Nどんどん悪くなってってるんでキレかけ。
こういう話してる最中ですらこれだからな。
iアプリ開発系の情報得られるのここだけだから、来ないわけにもいかないし。

>>842
>初心者に答えるのも好きよ?

キミは好きかも知れないけどなあ。
答えるのがそんなに好きなら、それこそ質問スレで存分に答えればよろしいのでは。

というか立てるならさっさと立てれ>>812
0852名無しさん@そうだ選挙に行こうNGNG
>>850
com.nttdocomo.system.ImageStoreってのがあった。
ふつうにDXからできそうだ。
0853名無しさん@そうだ選挙に行こうNGNG
>>851
初心者スレたてたところで、SN変わるわけじゃなし。
0854名無しさん@そうだ選挙に行こうNGNG
俺は個人的に「初心者歓迎質問スレ」作って欲しい。

>>847から答えてるのは実は俺なんだけど
ご覧の通り質問内容が公式なドキュメントに書いてあるレベル。
質問する方も、答えてしまうのも問題あるだろうけど
ガイドを読めないというのがエントリユーザの現実。
仕事でやってる人はまた別の次元の話があるだろうし。
双方が話しにくいのが流量が増えない原因だったり?

というわけで立てるならさっさと立てれ>>812
0855名無しさん@そうだ選挙に行こうNGNG
>>854
別になぁ、公式ドキュメント全部見る前に、できるかできないかだけ知りたいってことあるし。
できる、ってわかれば、やり方は調べるし。

わけたところで流量は変わらんし、SNもかわらん。
どっちかがすたれるだけ。
ま、次スレとして使われるだけだな。
0856名無しさん@そうだ選挙に行こうNGNG
立てたきゃ立てろ
フォローはしない
0857名無しさん@そうだ選挙に行こうNGNG
理想を求める学生さんが、現実を知るのにはいいかもしれない。
0858名無しさん@そうだ選挙に行こうNGNG
iアプリDXのテストって、公式サイトとして認められたサーバーに置いてDLするしかないよね?
0859846NGNG
>>847
どうもありがとうございます。
私も調べてみたのですが、そのような表記は発見できませんでした。

>方向(上下左右)キーはキーイベントを発生しません。
との事ですが、イベントが発生しない場合はどのように処理すればいいんでしょうか?
0860名無しさん@そうだ選挙に行こうNGNG
>>859
あきらめろってことだな。
上下とってなにがしたいの?
0861846NGNG
>>860
練習として計算機を作っていまして、
今は数字キーを押した後に、画面上にある「+」「−」「×」「÷」ボタンを押す事によって計算しているのですが、
そのボタンを方向キーに置き換えたいと思っています。
0862名無しさん@そうだ選挙に行こうNGNG
>>861
Canvasでやれ。
0863名無しさん@そうだ選挙に行こうNGNG
チン  ☆  マチクタビレター  ☆ 
       チンチン           マチクタビレター ♪
           ♪   ☆ チチン
    ♪                .☆   マチクタビレター
        ☆ チン   〃  ∧_∧  ヽ        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ   ___\(・∀・ ) /\_/ <  分割マダー?
        チン    \_/⊂    つ    ‖    \__________
           / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|     ‖  
        |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|   /|\ 
        |             |/ 
0864名無しさん@そうだ選挙に行こうNGNG
>>863
せんでヨカ
0865812NGNG
どうもです。実のところちょっと逡巡してたんですが、一応立ててみました。
急ごしらえなのでいろいろ不足かも知れないけど許して。

【初心者歓迎】iアプリ相談室
http://pc5.2ch.net/test/read.cgi/tech/1089530578/
0866名無しさん@そうだ選挙に行こうNGNG
>>858
だいたいそんな感じ
でもそんな事聞いてどうすんの?
0867デフォルトの名無しさんNGNG
>>866
いやぁ、iアプリDXを作りたいんだが。
テスト用にそのコンテンツプロバイダーのサーバー借りる必要があるのかな、と。
0868デフォルトの名無しさんNGNG
>>867
エミュレータで簡単な動作確認くらいならできたはず
エラーのエミュレーションは難しいかも知れんが・・・

DXアプリは、
URLをドコモに申請し(俺が申請してるわけじゃないので、詳しくはわからんが・・・)、
ドコモからIDもらってようやく実機テストできるんで、
もしDXアプリ作るんなら、早めに手をうっておいたほうがいいと思うよ!
0869デフォルトの名無しさんNGNG
jarのURLを登録するときに本番用テスト用の2つを登録が出来るから、
テスト用を喪前の鯖にすればいいんじゃないの?

つーかCPに聞いとくれ
0870デフォルトの名無しさんNGNG
まだねぇ、その仕事を受けるかどうか、DXにしないとだめな仕様になるかどうか、わからないからねぇ。
しかも、赤外線がからむから、実機じゃないとテストにならない、というオマケ月。
0871デフォルトの名無しさんNGNG
>>852
DXじゃなくてもできる。
0872デフォルトの名無しさんNGNG
processEventでのFOLD_CHANGED_EVENTが待ち受けアプリでしか
使用できないような気がするのですが
やりたい事は通常アプリで端末閉じたらアプリ停止処理をしたいのですが
何か良い手はないでしょうか
0873デフォルトの名無しさんNGNG
なんかドコモのドキュメントが更新されてる。FeliCa関連だと。

てーか、jguideforDoJa3_0_opt_040709.pdfが普通に保存できないぞ(゚Д゚)ゴルァ!
IrvineでURL直叩きで落としたけど。
0874デフォルトの名無しさんNGNG
>>872
できない。
0875デフォルトの名無しさんNGNG
>>872
PhoneSystemでふたの状況が調べられるので、
閉じてたら処理を軽くするとかならできる
0876デフォルトの名無しさんNGNG
赤外線通信について質問です。

iアプリ内のデータをPCにテキストファイルとしてファイル転送したいと考えています。
こういうことって可能なのでしょうか?
0877デフォルトの名無しさんNGNG
>>876
PC側でObexが認識できれば普通にストリームで転送可能
0878デフォルトの名無しさんNGNG
ゲームのFPS管理で
・Timerを使う
・ShortTimerを使う
・System.currentTimeMillis()とsleepを使う
上のうちどれが一番正確にできるのでしょうか?
また上記以外に精度の良い方法がありましたら教えて下さい
0879デフォルトの名無しさんNGNG
>>873

>てーか、jguideforDoJa3_0_opt_040709.pdfが普通に保存できないぞ(゚Д゚)ゴルァ!
>IrvineでURL直叩きで落としたけど。

普通に保存できるけど?
ブラウザでPDF開いたら保存のアイコンクリックすれば?
0880デフォルトの名無しさんNGNG
>>879
「文書を保存できません。この処理は許可されていません」って出る。
0881デフォルトの名無しさんNGNG
FPS?(◎_◎) ン?
0882デフォルトの名無しさんNGNG
>>877
PC側は認識してると思います。

携帯側で具体的にどうやるのかがわかりません。
$strの中の文字列を送りたいだけなのですが、
ストリームに$strをwriteするだけではダメなんですよね。

サンプルソースとかご存じの方いませんか?
0883デフォルトの名無しさんNGNG
>>878
どれを使っても、結局端末のタイマ精度次第だからなぁ・・・
ちなみに、漏れはSystem#currentTimeMillis()と空ループでやってる。
sleepの精度もやっぱりアテになんないし。
0884デフォルトの名無しさんNGNG
>>881
frame per second←これだろう
first person shooting

漏れも>>883と一緒で、System.currentTimeMillis()と空ループでやってる
時間解像度が荒い機種があるから、これが一番確実かと
0885879NGNG
>>880

俺は普通に保存で来てるので、ドコモサイトの問題ではなさそうだね。
それ以上は申し訳ないが、分からない。
0886873NGNG
というかまあ、もうダウンロードできてるので
どうでもいいっちゃいいんだけど。
0887デフォルトの名無しさんNGNG
>>883>>884
レスどうも
System#currentTimeMillis()と空ループを検討してみます
0888デフォルトの名無しさんNGNG
>>878
はじめTimer使ってて、
精度が悪いのでcurrentTimeMillis+空ループに変更したんだけど、
電池に悪そうなんで今後はcurrentTimemillis+sleepにしようかと思ってる。

空ループとsleepだと電池消費量はどっちのほうが大きいんでしょうか?
大して変わりないんだったら、お手軽な空ループ使うんですがね・・・
0889デフォルトの名無しさんNGNG
>>882
携帯同士でやる時と一緒
0890デフォルトの名無しさんNGNG
sleepの方が消費電力は低いと思われ

確かN504は時刻やタイマーは100msが最小単位だったよね?
そういう機種だとThread.sleep(40);ってやっても100msスリープしちゃうとかありそう
試したわけじゃないし、空ループなら大丈夫なのかどうかも判らんが
0891デフォルトの名無しさんNGNG
iアプリ作るの初めてなのですけど、
現在JDKの1.42とDoJaの3.5をインストールしてあります。
この環境で504を対象としたiアプリを作れるのでしょうか?
ADF設定でProfileVerをDoja-2.0にすれば大丈夫なのでしょうか?
マニュアルにこの項目はエミュレータでは使用されないと書いてあり
いまいちよくわからないのですが。
コンパイルオプションとしてDoJa2.0用にコンパイルしてくれる
と言う事でしょうか?
0892デフォルトの名無しさんNGNG
>>890
100msスリープする。
だがN504はたしかShortTimerの解像度は10msという謎機種。
ほんとにNはブツブツ

>>891
別に気にしないでつくれる。
Doja2.0に含まれない命令を使っていると動かないだけ。
(たしかDL時に不正なアプリとか警告がでてDLできない)

でもまぁ、初めて作るとなると、どこからどこまでが2.0命令で、
どこからが3.0命令か判断つかないと思うから、2.0用エミュで作るのをお勧めする。
0893デフォルトの名無しさんNGNG
>>891
2.0までのクラスやメソッドだけを使えば問題ない。1つでも2.0より後のを使うとアウトだが。
ProfileVerについては、2.0未満の端末でダウンロードできないようにするただの保険。

ちなみにこっちのスレもよろ。

【初心者歓迎】iアプリ相談室
http://pc5.2ch.net/test/read.cgi/tech/1089530578/
0894891NGNG
>>892
>>893
丁寧なレスありがとうございます。
0895デフォルトの名無しさんNGNG
韓国で貴社アプリをリリースしたいとかなんとか、そういう変なメールが来ますた。
どうせまた皆のところにも来てるのかな。
0896デフォルトの名無しさんNGNG
>>896
ウチには中国から来た。
0897デフォルトの名無しさんNGNG
なんか、あからさまにギガアプリとかアプリゲットあたりから適当に爆撃してますみたいな
文面のメール多いよな。
あれで釣れるやついるんだろうか。
0898888NGNG
返答どうも

505専用のアプリはsleep、全機種対応のアプリは空ループ
今後はこんな感じで使い分けてみることにします
0899デフォルトの名無しさんNGNG
ノウハウが無い会社と仕事するといろいろ面倒臭いよ
スクラッチパッドの大きさも画面の大きさも違うの知らないし
端末の仕様なんて公開されているのに調べてなかったり。
0900デフォルトの名無しさんNGNG
ノウハウない、っていうか、iアプリ知らないのに仕様決めて、変更不可という会社はクズだな。
0901デフォルトの名無しさんNGNG
Canvasから直接テキスト入力枠ってどうやって表示すんの?
入力された文字の取得方法と合わせてご教授を。
0902デフォルトの名無しさんNGNG
>>901
> Canvasから直接テキスト入力枠ってどうやって表示すんの?
drawRect
drawString

> 入力された文字の取得方法と合わせてご教授を。
imeOnあたり
0903デフォルトの名無しさんNGNG
スクラッチパッド内のバイトの塊を画像データとして扱うには
readしたデータをImageに丸投げすればいいのでしょうか?
リソースからの画像の表示やスクラッチパッドとのやり取りは知っています。
スクラッチパッドからの画像の表示がわかっていません。
readするといってもバイト単位だし、そんな大きいデータを
どこに貯めておけばよいのやら。Imageにバイト単位で追加していく?
それとも自前で画像ビューア機能を実装する・・・・わけないですよね。
0904デフォルトの名無しさんNGNG
>>903
もちょっとImageのしくみを勉強してみてください。
0905デフォルトの名無しさんNGNG
>>903
SPの100バイト目から画像データが格納されている場合の例
MediaImage mi = MediaManager.getImage( "scratchpad:///0;pos=100" );
0906デフォルトの名無しさんNGNG
>>888
P端末だと電池の持ちが全然違う
(sleepすると本当に待ち受け時と同じくらいまで消費電力が落ちる)
のでsleepにしてほしい。
0907デフォルトの名無しさんNGNG
>>901
とりあえず枠っぽいものを描いておいて、SELECTが押されたら
即座にPannel画面に切り替える。
Canvasから直接は無理。

>>903
とりあえず初心者サイト行きなさい。画像の読み込みは基本中の基本。
バイト配列からImageを作成することもできるが、たしかDoja3.0から。

>>906
ヽ(`Д´)ノそういう気遣いしてももらえる額一緒なんだYO
0908907NGNG
あー、3.5以降から、Canvasから直に入力画面飛べたかも。
ちょっと今調べる時間ないんで、他の誰か知ってる人よろ。
0909デフォルトの名無しさんNGNG
>>903

こっちへどうぞ
http://pc5.2ch.net/test/read.cgi/tech/1089530578/l50
0910903NGNG
>>904
わかったつもりになってましたが実は仕組みがわかってなかったようです。
>>905
ありがとうございます参考にいたします。
>>907
DoJaのバージョンによっても違う扱い方があるのですね。
バイト配列をImageにブチ込むというのは自分的にはとても理解しやすいです。
あとはヘッダフッタをどうするのか・・・って画像のフォーマットも調べなきゃ。

お導きいただきありがとうございました。
0911デフォルトの名無しさんNGNG
>>908
3.0以降で対応してる。
だけど、全画面がまっさらな入力画面になるので、「テキスト入力枠」を
用意したいのであればPanelを他に用意する必要がある。
0912デフォルトの名無しさんNGNG
>>911
まっさらでもよいです。
実装方法をご教授くださいませ。
0913デフォルトの名無しさんNGNG
あー。それともうひとつ。
カメラで撮影した画像をImageStoreで保存する場合に
SDカード直は無理?
P900iだと「メニュー」>「マルチメディア」>「イメージ」>
「iモード」ってところに保存されるんだけど・・・。
0914デフォルトの名無しさんNGNG
>>912
Canvas#imeOn()

public void imeOn(String text,
int displayMode,
int inputMode)

>>913
ネイティヴのファイル保存機能で保存できない場所は無理
0915デフォルトの名無しさんNGNG
>914
すげー簡単なとこにあったとは(^-^;
確認不足でした。
助かりました。ありがとうございます。
0916902NGNG
即レスしてやったのにさぁ・・・
0917デフォルトの名無しさんNGNG
質問の仕方が分からない初心者と同じで>>902は回答の仕方が分かってない。
0918902NGNG
>>917
懇切丁寧なレスがほしければ、「初心者歓迎」の方へ。
0919デフォルトの名無しさんNGNG
どっちもどっち
0920デフォルトの名無しさんNGNG
答える側は、答えれる範囲で答えればいいと思うのだが。
>>902は内容的には適切なレスだし。
0921デフォルトの名無しさんNGNG
次はきっと processIMEEvent の質問が来るに違いない・・・
0922デフォルトの名無しさんNGNG
APIリファレンスをコピペすれば済むんだろどうせ
0923デフォルトの名無しさんNGNG
>>858
じゃないと、やり方ばれたら勝手サイトのアプリで
端末内の電話帳のデータとかぶっこぬけるだろ?

つかDX作るならこういうのはドコモに直接聞くのがいいと思われ。
教えてやりたくてもDX絡みはNDAで書けないことも多いし。
0924923NGNG
何も言うな。吊ってくる。
0925デフォルトの名無しさんNGNG
いつでも最初の画面に戻れる仕様で
そこには大きめのタイトル画像がある。
これは滅多に使われない画像だが
いつでも表示できる様に最初にロードしてそのまま。
それが仕様の変更でその画像が不要になった。
それでその画像を削除してビルドし直したら
その途端にアプリ全体の処理速度がかなりアップしたのだが
そういうものなの?
0926デフォルトの名無しさんNGNG
使ってなくても画像をロードしてあるだけで重くなる、
ということなら納得だが、そんなわけはない、
ということならバグを探さにゃならんよトホホ
0927デフォルトの名無しさんNGNG
>>925-926
ロードしてるなら、
javaヒープや機種によっては内部ワークを少なからず消費してるはずだから
ありえるんじゃないのかなぁ。
ヒープのGCの頻度や一回の重さも変わるような気がするから。
0928デフォルトの名無しさんNGNG
最近の画面サイズに合わせた画像は、リソース負担でかいから、ありうる話。
0929デフォルトの名無しさんNGNG
>>927
>>928
情報ありがとうございます。
可能性としてあり得る話しだ
とのことで少しホッとしました。
SH900iが特に顕著に変化したようです。
もし大きな画像を使うなら
使わない時は破棄しておいて
使う時にその都度ロードした方が
よさげですね。
でもそれはそれでロード時間がかかるか。
うん、その時はその時考えますw
ありがとうございました。
0930デフォルトの名無しさんNGNG
>>927
キャッシュのヒット率も下がるだろうしな。
0931デフォルトの名無しさんNGNG
>>929
ロード時間に目を瞑れるようだったらそうしたほうがいいかもね。
やたらロードしまくりだったらリソース不足で落ちるかもしれんし、
それよか確実に動いてくれるほうがうれしいな。

D505で画像用の内部ワークが尽きて落ちたときは正直マイッタ。
結局画像サイズをちっちゃくして逃げ切ったけど、
あまりこんなことで悩みたくないよなぁ…
0932デフォルトの名無しさんNGNG
>>923
といってもAPIは全部公開されてるからな(^^;
あれを見たらぶっこ抜けないことは明らか。
というか、ぶっこ抜く方法見付けた奴は神になれるなw
0933デフォルトの名無しさんNGNG
>あれを見たらぶっこ抜けないことは明らか。
XStringの中身がわからないってこと?
0934デフォルトの名無しさんNGNG
>>933
XStringの中身をiアプリが知ることは出来ないって意味で言ったけど。。
0935デフォルトの名無しさんNGNG
DXと言えどもユーザーのデータはぶっこ抜けないんだよ

一度XStringを描画したらそのGraphicsからは一切ピクセルが読めなくなるとか
比較が出来ないとか
あらゆる手が封じられてる感じだから、もし穴を見つけた香具師は神なんだよ。多分
0936デフォルトの名無しさんNGNG
ITmedia エンタープライズ:特集:第2回 Eclipseで始めるiアプリ――環境構築編 (1/7)
http://www.itmedia.co.jp/enterprise/articles/0407/15/news027.html

だそうDEATH
0937デフォルトの名無しさんNGNG
iアプリでブラウザ作りたいんだけど
タグの処理方法の書かれてるよい資料かサイト
しりませんか?
0938デフォルトの名無しさんNGNG
>>937
それはiアプリスレで聞く内容ではない。
0939デフォルトの名無しさんNGNG
知らんやつにはきいとらん
0940デフォルトの名無しさんNGNG
(つД`)親切で教えたのに。Web系に行きなさい
0941デフォルトの名無しさんNGNG
俺が悪かった。
カリカリしてたもんでな。
すまん。Web系にいってくる。
0942デフォルトの名無しさんNGNG
>>937
iアプリでは無理、という結果になるに150ぬるぽ
0943デフォルトの名無しさんNGNG
package com.nttdocomo.system;

import com.nttdocomo.lang.*;
import com.nttdocomo.ui.IApplication;

public class Test extends IApplication
{
public static void Method()
{
try
{
XString x = SystemPrivateXString.createXString();
SystemPrivateXString.saveXStringValue( x , "a" );
String s = SystemPrivateXString.loadXStringValue( x );
System.out.println( x.toString() );
System.out.println( s );
}
catch( Exception e )
{
System.out.println( e.getMessage() );
}
}

public void start()
{

Test.Method();
}
}
エミュ上でなら動くんだがな
0944デフォルトの名無しさんNGNG
>>942
150ガッ
0945デフォルトの名無しさんNGNG
>>943
そりゃsystemパッケージにクラス挿入したら何でもできるわな…
0946デフォルトの名無しさんNGNG
>[DoJa-3.0]
>端末によっては、ImageEncoder クラスで画像の形式として "J3dTexture" を
>指定することで、 イメージをテクスチャのデータにエンコードすることができます。

↑これって、どの機種で可能かテストしたことある香具師いる?
可能であればインチキ光学迷彩が実装できるな・・・
0947デフォルトの名無しさんNGNG
初歩的質問スマソ。

P505iで作ったアプリを、D506iに移植しようと思ったら、D506iがgraphics2クラスを
サポートしていないことに初めて気が付きました。
このような場合、どうやってアプローチすればよいのでしょう?
やっぱ低レベル3DAPI使うしかないのかな……
0948デフォルトの名無しさんNGNG
>>947
あぁ、そうだったけ?
だとしたら低レベル3DAPIとやらを使うしかないのでは?
0949デフォルトの名無しさんNGNG
>>947
そんなことは無いはずだが…。
0950デフォルトの名無しさんNGNG
Graphics2で半透明が使いたいんでしょ
機種によっては使えないよ
でも凝った処理をしないなら半透明ポリゴンで何とかなると思われ
やったこと無いけど

ただ、低レベル3DAPI(C3D〜クラス)ってD以外使えるのか?
Graphics3Dを使った方が安心だと思うが‥
0951デフォルトの名無しさんNGNG
ああ、Graphics2か。Graphics3Dと勘違いしてた。
Graphics2は使えない機種があるね。
0952947NGNG
使いたいのは半透明と左右反転だけです。
これってGraphics3Dでいけるんでしょうか?
3Dのプログラミング経験は皆無なので、API仕様見てもさぱーり……

ちなみに、Dは高レベル3DAPIでも、ハードウェアレンダしてくれるのでしょうか?
0953デフォルトの名無しさんNGNG
setTransparency()
0954デフォルトの名無しさんNGNG
>>953
3Dはモデルデータつくるのが大変だよな。
データさえ作っちゃえば、そういうメソッド呼べばいいので簡単なんだけど…。
0955デフォルトの名無しさんNGNG
そこでドット絵ですよ
0956デフォルトの名無しさんNGNG
左右反転はGraphics#setFlipModeで可能
半透明はGraphics3Dで使えるけど加算、減算、50%ブレンドの三通りだけ
あと、DoJa3.0以降ならモデルを前もって作っておかなくても使えるぞ
http://www.saturn.dti.ne.jp/~npaka/sorami/4/index.html
とか見てくれ
0957デフォルトの名無しさんNGNG
PrimitiveArrayって、どれくらい実用的なの?
0958デフォルトの名無しさんNGNG
>>957
900iシリーズなら、まぁ使える。
D<<(実用最低ライン)<N≦P<F<<SH
だと思ってくれ。

50X系ではゲームとして実用的な見栄えと速度を出すのは大変だと思う。
最速と言われているPでも厳しい。
0959デフォルトの名無しさんNGNG
N900iとP900iって、端末のソフトだけでなくJava VMの挙動も同じものと考えてええのん?

P900i系+N900i系 28%
900i系(DoJa-3.5) 41%
505i系(DoJa-3.0) 26%

うちのサイトこんな感じなんでP900iに機種変してこようかと。
0960デフォルトの名無しさんNGNG
>>958
へー。じゃあ結構使われてるのね。
しかし、SHってがんばってるなあ。
0961デフォルトの名無しさんNGNG
>>959
まったく同じではないけど、結構似てる。
メモリ管理や描画まわりの癖とかは共通してる感じ。

Graphics2の対応状況とか、細かいところでは多少違うね。
0962デフォルトの名無しさんNGNG
>>960
1機種だけダントツで速いってのも結構困る状況なんだよねー。
SHをターゲットにして作れれば楽なんだけど、そうも言ってられん。

シェアの高いN/Pが3Dの性能イマイチ(その代わりImage系は速い)
なんで、2Dものには使わないほうが無難かも。
ポイントスプライトはサイズがでかくなると誤差丸めの影響で
ポリゴン分割面が見えちゃうし。
0963デフォルトの名無しさんNGNG
DOJA3.5エミュレータでコードリーダ起動で
getParameterを使って読み込もうとしていますが、
パラメータがどうしてもNULLになってしまいます。
起動まではOKです。
CMD:まではちゃんと読み込んでいるみたいです。

コードはこうなってます
public class sample2 extends IApplication {
public void start() {
String msg;
String a = IApplication.getCurrentApp().getParameter("xxxxx");
System.out.println(a);
if(null != a) {
msg = a;
} else {
System.out.println("パラメータがNULLです");
msg = "ASCII";
}
.............
どなたか同様の問題にあったことはありませんか?

0964デフォルトの名無しさんNGNG
>>963
jamは?
0965963NGNG
jamはこんな感じです

AllowPushBy = Code:command
LastModified = Fri, 23 Jul 2004 18:19:04
AppClass = sample2
AppName = sample2
PackageURL = sample2.jar
AppSize = 598

ちなみにコードリーダのデータは
LAPL:ADFURL:http\://xxx.yyy.zzz/sample2.jam;CMD:command;PARAM:xxxxx,value1;PARAM:name2,value2;;
としています
0966デフォルトの名無しさんNGNG
AppParamに指定したデータが取れるんじゃないのか?
0967デフォルトの名無しさんNGNG
>>699
それを取るメソッドはgetArgs。
getParameterの話してるんだからずれてはいないと思う。
ただ、コードから起動する時にどういうパラメーターにすればいいかは知らん。
0968963NGNG
いろいろありがとうございます
ドコモもデフォルトでインストすると
\iDKDoJa3.5\lib\multimediaにsample1.datを用意していて
明らかにコードリーダのデータなのですが
sample1.javaはなくてその辺が微妙な気がします
まさかエミュレータで動作確認してないとは思いませんが
getArgsでAppParamからデータを取得は出来てます
なお、赤外線のデータ渡しも同様にgetParameterを使うようです
0969デフォルトの名無しさんNGNG
質問です。
0970デフォルトの名無しさんNGNG
質問です
0971デフォルトの名無しさんNGNG
答えです

答えです
0972デフォルトの名無しさんNGNG
>>967
スマソ勘違い。

getArgsの時は「パラメータ名=値」の形式だけど
getParameterの時は「パラメータ名:値」の形式でいいのかな
0973963NGNG
DojaマニュアルやDOCOMOのサイトでも
PARAM:Valueとなっていて
実際PARAM:Value以外の形式では「不正なフォーマットです」
となってRejectされてしまいますね
0974デフォルトの名無しさんNGNG
>>973
エミュレータの環境設定とかは問題ない?
どこかやり忘れてるってのがありがちなんだけど。
0975デフォルトの名無しさんNGNG
無償Java対応携帯電話の貸し出しサービス
http://ac-admin.appget.com/service.htm

アプリ★ゲットからこんなん来たけどどうよ?
俺は大阪モンなので無縁な話ですが(涙)。
0976963NGNG
974までのみなさん色々ありがとうございました
自己レスです

結論から行くと実機でOKでした

外国サイトに似たようなBBSと似たような質問があって
(おそらくアメリカ)
そこにエミュレータでは動作不可で実機OKのようなことが書いてあったので
ではやってみようとなって 難なく動作しました
今後の開発でパケ代がその都度かかるのではちょっと困りますが
なんとかエミュで動くようにならないかな?
とは継続して考えています
他のエミュで動いたよとか情報があれば今後ともよろしくお願いしますmm
0977デフォルトの名無しさんNGNG
アプリ★ゲットの審査って時間かかるの?
作者登録が終了したあとアプリ登録して
随分音沙汰が無いのだが再登録した方がいいのかな
0978デフォルトの名無しさんNGNG
>>977
2〜3日の時もあるけど、7営業日は見といた方がいいよ。
0979ゆうNGNG
emufordoja3_5_foma_109のセットアップが出来ない
んですが、どうすればいいですか?
その前のはインストールできていると思います。
0980デフォルトの名無しさんNGNG
iモードJavaプログラミング FOMA対応版
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4503-5.html
こんなん出てたのか
高くて買うの躊躇したがかなり欲しかった
4200円ナリ
0981デフォルトの名無しさんNGNG
たけー
0982デフォルトの名無しさんNGNG
503iの時に何冊も出ていたのが一気に出なくなったこと考えると、
どの本も売れなかったんだろうなあ…
0983デフォルトの名無しさんNGNG
DoJaにドラスティックな変更点がなかったからだよ
0984デフォルトの名無しさんNGNG
ドラスティック
0985デフォルトの名無しさんNGNG
そろそろオライリーからガツンと1発すげーの出ないかな>iアプリ本
密かに待っているんだけど
0986デフォルトの名無しさんNGNG
>>985
一冊出てるからもう出ないだろ
0987デフォルトの名無しさんNGNG
APIや起動形式が増えてるだけで、本質的には変化がないからね。
開発手順は全く変わってないし。
爆発的に広まってもないし。
一時はゲームボーイも駆逐されるんじゃないの?みたいな憶測あったけど。
0988デフォルトの名無しさんNGNG
ここ数年は解説書バブルだったみたいだから。
iアプリの本なんてハードル低くて誰でも書けそうだし、それで共食い・共倒れになったと見た。
0989デフォルトの名無しさんNGNG
>>988
っていうか、DoCoMoの解説書が懇切丁寧なので、わざわざ他から本だす意義がないんだよね。
最初に出てた雨後のタケノコは、DoCoMoの解説書を書き下しただけというか、そのものだった。
0990デフォルトの名無しさんNGNG
>>989
まあ、その程度しか情報なかっただろうしな…。
0991デフォルトの名無しさんNGNG
次スレにょ。

http://pc5.2ch.net/test/read.cgi/tech/1065535118/

じゃなくて

iモード携帯電話用Java(iアプリ) Part 6
http://pc5.2ch.net/test/read.cgi/tech/1091286071/
0992デフォルトの名無しさんNGNG
>>991
http://pc5.2ch.net/test/read.cgi/tech/1065535118/307

なんにせよ、乙
0993デフォルトの名無しさんNGNG
>>989
ドコモの解説書なんて売ってるの?
0994デフォルトの名無しさんNGNG
>>993
ドコモの公式サイトから無料でダウンロード
0995デフォルトの名無しさんNGNG
995
0996デフォルトの名無しさんNGNG
996
0997デフォルトの名無しさんNGNG
997
0998デフォルトの名無しさんNGNG
998
0999デフォルトの名無しさんNGNG
998
1000デフォルトの名無しさんNGNG
999
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。