iモード携帯電話用Java(iアプリ) Part11
1 :
デフォルトの名無しさん :
2006/03/08(水) 14:49:42
>1 乙。
6 :
デフォルトの名無しさん :2006/03/09(木) 03:04:30
_
ア´,ヘ ゙ヘ 悪の組織に只今参上! …サブリミットエスカレーション!
ノ〈(r'ノハ))〉 + ∧_∧
〃 リ゚ ヮ゚ノ( + Σ(´Д` ;) →
>>1 (((⊂iフ采iiつ━┫∽∽∽∽∽\∽ ∽\∽ +
)' ) <jYハ + + ∽\∽ ∽\∽∽∽。
しヽ,) (___ (__) ∽゚ +
_
ア´,ヘ ゙ヘ + 正義の勝利です。 '∴・
+ ノ〈(r'ノハ))〉 + ∴:';'
〃 リ゚ ヮ゚ノ( :;::;.,.::;.:;.:
(((⊂iフ采iっ) ( )
)' ) <jYハ + ∧_∧ | | |
<(_j' + (,。Д ゚ ') (_(__)
'^"~''~;''
乙カリー
携帯ブラウザの戻るを使えなくさせるのってどうやんの?
10 :
デフォルトの名無しさん :2006/03/12(日) 17:18:57
P900iにおいて、imeOnの機能が正しくいかない気がするのですが、 他にも試した人はいますか?
今まで普通に起動できてたんだけど、急に message = Uncaught exceptin happened throwable〜 というエラーが出ました。 原因は何と考えられますか?
どこか変えたか環境が変わったんじゃね? でなけりゃハードディスク壊れかけてるとか
13 :
デフォルトの名無しさん :2006/03/12(日) 17:47:28
>>10 これですが、一応エラーは直ったんですが、
void inputMessega() {
imeOn(text, TextBox.DISPLAY_ANY, TextBox.KANA);
name[index] = text;
}
public void processIMEEvent(int type, String text) {
this.text = text;
}
この場合、実機だとnameには入力した文字がいかないのですが
できれば理由を教えてください(´・ω・`)
>>13 むしろそれでうまく行くほうがおかしい
実はエミュレータの動作は少しおかしくて
imeOnはドキュメントに従えば「ブロックしないメソッド」なのだけど
エミュレータはブロックしちゃうんだよね
ちなみに実機はブロックしない
だからimeOnはThread使ってラッピングして
確実にブロックしないようにしているよ
15 :
デフォルトの名無しさん :2006/03/12(日) 18:45:23
>>14 なるほど(`・ω・´)
つまり、スレッドを使ってるから
先にprocessIMEEventメソッドが実行されるより
this.text = text; がさきに実行されるというわけですね?
16 :
15 :2006/03/12(日) 18:55:55
>>14 >>15 違うや、IMEが実行されている間もその処理も実行しているということですか?
俺は逆に、必ずブロッキングするようにimeOnの次にループ仕込んでる。 imeの裏で動いていて欲しいときなんて(今のところ)無いし。
18 :
デフォルトの名無しさん :2006/03/13(月) 18:32:59
3キャリアに対応できるアプリを一つの JARで作るのって簡単ではないのか? nttdocomoというパッケージを意図的に使わないようにして 作ればできそうに見えるのだが・・
ドコモ機種をM1000のみに限定すればできんじゃね。
>>18 つ【com.nttdocomo.ui.IApplication】
表形式にデータを表示したいのだがどーやるの?
>>18 一つのJarは無理。一つのソースでというのはどこの企業でもやってるが。
そういやお前等、900以降の機械とかで、 企画側に画像何枚読めますか? って聞かれたらどんな風に答えてる? この前聞かれたんで、ちょっと気になった。 一応公式資料のネイティブデータヒープ÷4byteの画素数くらいは保障するけど、 機種によって違うからあんまり当てにはならないって言っておいたけど、 明確な基準が無いのってやり辛い(´・ω・`)
画像を全部オンメモリで保持しなきゃいけないアプリは大変ですな…
>>25 240*240を30枚程度は全機種読めるはずだが
505なら240*240を7枚超えるとヤバイ。当然同時に持つ場合だけね。入れ替えはok。 900はちょっとわからんなぁ・・・。505をまだ外してないから。
D505は7枚も入らないぞ
Dは放置
>>25 『機種によりますが1枚から100万枚の間です』
って答えてるよ(`・ω・´)
>>29 Dでも7はギリギリいかない?
個人的には面積を出すツールを作って7枚までは
ギリギリ大丈夫だと計測してるんだが・・・。
表示したい場所はサブディスプレイなのですが、 画像ファイルを結合して1枚のイメージとして扱うことは可能でしょうか? または、サブディスプレイの表示領域を細かく分けて複数のイメージを同時に表示させることは可能でしょうか?
>画像ファイルを結合して1枚のイメージとして扱うことは可能でしょうか? 可能 >サブディスプレイの表示領域を細かく分けて複数のイメージを同時に表示させることは可能でしょうか? 可能 Graphics#drawImage()を理解して、自分の考えどおり好きなように描画してくれ。
>>34 はメインディスプレイのつもりで書いてないか?
サブディスプレイなら、
>>33 の質問1つめはOK。(これはメインディスプレイへ描画するときでも同じこと)
質問2つめはNG。(座標指定なしでImageを描画するから)
じゃないかな。
質問!! 意図的にgcしたい場合なんだけど、 Runtime.getRuntime().gc(); を調べたら System.gc();が一般的です。って書いてあった。 これって、どっち使ってもいいって事?
>>36 >これって、どっち使ってもいいって事?
最後の最後でどうしてそういう発想になるんだよw
System.gc()が一般的って書いてあるんだから素直にSystem.gc()使えよ。
>>36 サンクス。
どっちでもいい、じゃなく、どっちでも使えるか、で聞いてみた。
どっちでも使えるなら、気兼ねなくSystem.gc()使う事にする。
なんでRuntime(ryなんぞあるのか気になってた。
System.gc() の呼び出しの動作は、実際には次の呼び出しと同じです。 Runtime.getRuntime().gc()
40 :
33 :2006/03/16(木) 23:45:10
>>34 Graphics#drawImage()のjavadocをもっと読んでみます。ありがとうございました。
>>35 サブディスプレイは一枚表示だけなのですね。大変参考になりました。
TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
マルチ帰れ
43 :
デフォルトの名無しさん :2006/03/20(月) 11:37:49
せっかくの電話なんで、音声入力に対応したアプリを作りたいのですが そういうAPIって無いですよね・・・。 APIはファームウェアにあるようなので、これを書き換えでもしない限り、こういうのは不可能でしょうか? 変則的な方法でも、変態な方法でもかまわないので、方法としてあるならば教えてください。
ケータイアプリは原則として用意されたAPIの範囲で作るもの。 その範囲を越えたものを作ろうと思うなら、 ケータイアプリの大きな特徴である、サーバとの通信機能が利用できないか考える。 サーバ側で処理するということ。 それができれば、そういうアプリが作れるということだし、 できなければ、そういうアプリは作れないということ。簡単な判断だろ?
そもそも音声入力情報を一切受け取れないので不可能。
それが自力で調べられないなら企画にしろプログラマにしろ、 荷物まとめて実家に帰ったらいいんじゃないかな?('-'*)
47 :
43 :2006/03/20(月) 16:14:43
>>44 データの処理が出来ないんじゃなくて
ハードウェアを制御してデータの入力が出来ないので、サーバー側で処理しても意味がないような・・・。
>>46 自力で調べた結果、ファームウェアを書き換えるか
DoCoMoに申請して、ネイティブアプリを作らせて貰う(これも結局ファーム)
の2つしかないですねぇ・・・。
どちらも現実的じゃないので、諦めます。
Docomoのはあんまり危険になりそうなことは させてもらえないようになってる。 音声録音できるなら、ユーザに気づかれないように音声録音して 気づかれないように通信してデータ送れればアプリ使って 盗聴できるようになるしねw
煽るつもりで書くんじゃないので荒れないで欲しいけど、
>>43 はちょっと奇妙だと感じた。
発想がソフトウェア開発者の立場じゃないっぽい。
ファームウェアを書き換えるとか
DoCoMoに申請してネイティブアプリを作らせて貰うとか
アプリを作る上でソフトウェア開発者はそんなこと考えないと思うので。
もし端末開発者やDoCoMoの仕様策定部署の人なら、質問するまでもなく自分で分かるし。
そして
>>47 では
>>44 の回答に対して
>ハードウェアを制御してデータの入力が出来ないので、サーバー側で処理しても意味がないような・・・。
と言ってるが、自分で分かってるなら、そもそも何で
>>43 の質問をしてんの?ってことになるし、
挙句に
>どちらも現実的じゃないので
と、じゃぁ
>>43 の質問の時点でファームウェア云々とかなぜ書いたの?って感じだし。
なんか不思議。俺達、何者かに試されてんのか?w
>>49 営業とかSEとか、そういう立場の人なんじゃない?
なんかの業務用システムの設計をしてると見た。
>>49 自分の知識が全てだと思うと痛い目にあうよ。
自分が無理だと知ってるが、もしかすると他に対応策があるかもしれないって事でしょ。
全てを自分の知識内で完結してしまうと、絶対に成長出来ない。
ちなみに、相手の業種を何となくで予想しようとしてるが
それも自分の知識の型の中で無理やり考えてるから、理解出来ないだけかと
例えば、趣味ってのもあるし、大学で何か作れって言われたのかも知れないわけで・・・
ただの興味ってのもありうる。
52 :
49 :2006/03/20(月) 22:37:23
>>51 あなたの書いてることって1行目からいきなりピントがずれてますね。
>>49 の書き込みに対してなぜ
>>51 のような書き込みが返ってくるのか分かりません。
「痛い目にあうよ。」とか言われても意味不明ですし。
加えて言うと、
>ちなみに、相手の業種を何となくで予想しようとしてるが
>それも自分の知識の型の中で無理やり考えてるから、理解出来ないだけかと
43氏の業種を特定しようだなどと、全然そんな気ないですし、
無理矢理考えてみてもいません。
>>49 に挙げた3つの立場(51氏が業種(?)と言っているもの)は
パッと思い付いて引合いに出しただけなので。
43氏の書き込みを何かネタ的に考えて楽しむのはちょっと面白かったですが
(43氏を囃し立てるつもりはないです)、
51氏のような何か煽りた気な書き込みが即座に飛んでくるのもまた
面白いもんですね。スレが荒れて欲しくはないですが。
まぁ、パケット定額であることも考えたら、音声チャットなんぞ作られたらたまらんわけでマイクは使わせてもらえないのだ
53が良い事言った!
>>52 >面白いもんですね。スレが荒れて欲しくはないですが。
どう見てもその気満々です。どうもありがとうございました。
>>53 DoJaの企画を考え出された頃にSkypeのようなものが普及するのは分かってたのか?
それならDoCoMoは天才だなw
> DoJaの企画を考え出された頃にSkypeのようなものが普及するのは分かってたのか? あの当時無かったカメラ機能さえ取り込んだんだから 「考え出された頃」とかいうのはまあハズレだよなあ。 ま、Java で PCM をリアルタイムにエンコードして いちいち HttpConnection で送信、 逆に HttpConnection で受信してリアルタイムにデコードして 再生、なんてのは今の機体じゃまだ無理だよなあ。 メモリーもきついし。 ハードウェアのコーデックが使えたとしても、良くて音声メールか。 コーデックも機種毎にあわせられるし。
>>56 逆側 (HttpConnection で PCM - 一応adpcmで半分にはなってるけど - を途切れなく鳴らす) は
ごく簡単にできるから、連続した音声入力 をサポートしてくれれば端末側はすぐにできると思う。
現状の問題点は通信方式やネットワーク側。ディレイが大きいし昇りの帯域が狭い。
58 :
sage :2006/03/21(火) 11:47:23
NM850iGにはファイルシステムにアクセスできるFileConnectionが実装されているよう。 でもJ2MEのそれとは違いjp.co.access.conections.FileConnectionってクラス。 JV-Lite2のオリジナルっぽい。 FileConnectionにどんなメソッドがあるか調べたいんだけど、どうしたらいいものか? Dojaではリフレクションとか使えないしな・・・。
ヒント:あきらめる
ゲーム中の状況を逐次サーバへ転送するアプリを作ってます。 メインスレッドでゲーム、サブスレッドでは1秒間隔でサーバへデータを転送してます。 このサブスレッドが con.connect() を行った瞬間、メインスレッドが一瞬硬直するので 困ってます。 ガベージコレクタ周りがあやしいとおもい、メインスレッドを極度にシンプルにして やってみたのですが残念ながら解決せず、原因は別にあるようです。 これは仕様なのでしょうか? 以前、DoJa3.5で作ったときは こんなこと起こらなかった気がするので、 とりあえずDoJa3.5で挑戦してみますが、本質的な解決方法ご存知の方いらしたら、 ご教授いただけると助かります・・・。 [環境]DoJa 4.1 [実機]SH902i [通信手段]post
>>60 続報、同じプログラムを SH900iで動かしたら 大丈夫でした。
SH902i独特の問題の可能性が微妙に浮上 orz
ヒント:cpuは1個
>>60 >メインスレッドでゲーム、サブスレッドでは1秒間隔でサーバへデータを転送してます。
お前は二度とアプリ作るな。
では、ゲーム中の状況を逐次サーバへ転送するアプリを作らなければならないとき、
>>63 ならどうやる?
1秒間隔ではなく、必要な時に送る。 無駄なサーバー負荷になって迷惑。
や、その必要な間隔が一秒ってことじゃないの?
つまりMMOのようなネトゲは無理というわけだ。 つか、パケホ使ってないとあっという間に数万円行きそうだなw でも、そういうアプリが増えたら負荷減少のためにDocomoが制限かけそう
>>60 話ずれた。通信間隔は今回はどうでもいい
API実行したときに、全スレッドがブロックするのは端末の依存だと思うよ
別スレで実行したImageの作成も、端末によっては他のスレッドが停止することもあるし
別にマルチスレッドは並行進行はするが、ブロッキングしないことを保障する
ためのもんじゃないしな
>>64 1秒間隔でサーバーと同期をとるのが必須なアプリを、携帯電話アプリとして企画した段階で正気じゃない。
生身で空をとばにゃならんとき、どうする?って聞かれても、生身で飛ぶな。そんな状況になるなとしか言えん。
>>70 503とかのアプリを作るんでなければ、今なら3.5あたりからのリファレンスでOK
むしろ4.1とかでもいいかもしれない。
んで、参照する資料はそこのURLの
iアプリコンテンツ開発ガイド for DoJa-4.x 詳細編
って奴で、
4.4 マルチメディアデータの使用
あたりを読んでみるといいかも。
72 :
60 :2006/03/21(火) 21:26:26
>>62-69 色々ご意見ありがとうございました。
試行錯誤した結果結局現状はダメです。
調査の結果、
・FOMA900iシリーズはネットワーク用とアプリ用でCPUが2個ある
・902iはマルチタスクCPUということで1チップ
ということのようです。
ココのアドバイスも個体差問題という感じだったので、
仕様という事であきらめました。ゲーム設計のほうでイライラしないように
調節してみます。この問題ばかりやってらんないし・・。
あ、そうそう、作っているのはお察しのとおりMMOです。
> ・FOMA900iシリーズはネットワーク用とアプリ用でCPUが2個ある > ・902iはマルチタスクCPUということで1チップ ・「アプリ用」って書いてる。 ・「マルチタスク」はちょっと話がずれてる。 まあ、片付いたみたいだし。がんばれ。 暇ができたら、易しいCPUの本とかOSの本とか読んだらいいよ。
そもそもCPU2つ乗ってるのってSH900だけじゃなかったっけ?
どちらにしても
>>68 のブロッキング云々のトコが
アプリじゃどうしようも無いんだろうけど。
しかし携帯ゲーやってるといかにゲーム業界人が無能かがわかるな(´・ω・`) 何が携帯にできるのか調べたり理解したりする能力が無いのと、 仕様変更を繰り返しながらじゃないと完成させることができない計画性の無さ。 505あたりじゃ容量的に仕様変更で作り直しもありうるし。 どうしてゲーム会社が利益出せないのかわかるよ。
ワナビーが何か言ってます。
ほんとうはゲーム会社に行きたかった人なんだよ。 そっとしといてやれ。
NソフトのGCの問題は902では解決していますか?
80 :
デフォルトの名無しさん :2006/03/22(水) 17:33:59
F503i世代のADPCMに対応した機種から対応したいのですが CDの楽曲、約2分半の曲を、iアプリで鳴らしたいのです。 どんなに音質を落としてもかまいません。 可能でしょうか? iメロディーの形式しか鳴らせないと思うので、ADPCMに仕込むしか無いとは思うのですが・・・。
N900シリーズって、MediaImage#useでメモリーエラーになると catch(Error e) でキャッチできない気がするのですが、同様の現象起こってる方いらっしゃいませんか? catch(Throwable t) ですら無視されてそのままアプリがαエラーになります。
mp3で2MBになるデータを10KBまで圧縮します。 さて、どうなるでしょうか?
>>80 10k*Nごとに分割。
1ブロック再生中に、次のブロックをダウンロード
ネットワークの状態が悪くなれば、もちろん音は切れる。
それでもかまわないなら、可能。
音質は、携帯の機種依存だ。
iメロディーのADPCMはあくまで、音色データで
それに音階をつけて演奏する為のもので、音楽そのものを入れるものではないのだが・・・。
可能かと問われれば可能だ。
ADPCMの、最低の 8Khz、4bit、モノラルでも 4KB/秒だ。 最悪な再生環境を我慢できるなら不可能と言うわけではないが、もはやこれは再生環境とは言えない。
いっとくけど10k丸々使えるわけじゃねぇぞ? アプリのファイルサイズは勿論だが 随時ダウンロードしながら再生だったら、今再生中のブロックと、ダウンロード中のブロックが無いとダメだし 音切れなくすなら、更にバッファブロックが欲しいところだが・・・。 んな事やってたら、無理だろうなw
初心者な質問でゴメン。 例えば以下の感じで連鎖するクラスがあったとして、 class hoge { public hoge () {}; public hoge next; } hoge a = new hoge(); hoge b = new hoge(); hoge c = new hoge(); a.next = b; b.next = c; c.next = a; こんな感じで1回転させた上で〜 a=null; b=null; c=null; 初期化してみますと。 この状態でgc呼んで、ちゃんとメモリ開放されますか( ゜д゜)ノ? されるよね? されるよね??
けいたいのじーしーはけいたいのきぶんがいいときによばれます。
>>86 そういう設計にする時点でどうかと思うが、いちおう解放はされる。
コンパクションされるかどうかは実機しだい。特にN/Pは糞
89 :
86 :2006/03/22(水) 22:26:29
>>87 ,88
レスありがと。
一回転することは滅多に無いと思うんですが、
サーバ側のデータの都合長いリストになりそうで。
86がOKなら、長いリストの先頭のみ参照切れば、
全部開放されるだろうと思った次第です。
安心しますた(´・ω・`)
>>81 Out Of Memory(short of frame buffer).のこと?
あれだけ例外のクラス名がでないのはなんでだろう?
プログラム初めてなんですけど、iアプリ作成にも使いやすいエディタでお勧めってありませんか? Eclipseが結構重たくて・・・・ ビルドとかは普通にDojaでしようと思ってるので、シンプルなエディタを探してるんですけど・・・
メモ帳
Eclipseが重い? 会社で派遣社員用のPCがなくて、 Pentium2-233(だったかな?)を使っててもらったことあった。 それでもEclipse上での作業には支障はきたしていなかったようだが、それ以下のスペック? どんなスペックでやってるの?
>>93 >それでもEclipse上での作業には支障はきたしていなかったようだが
いや、本人の本心は、尋常ではなかったと思われw
>>91 もうVisualStudioでいいんじゃね?。ただになってるし
ペギー、禿丸、テラパッド。 まぁそのへんじゃない?初めてなら寧ろメモ帳を奨めるけど。 Eclipseは重いっつーか結構メモリ食うな。
>>95 VSって、Java対応してたっけ?
入力支援とか色分けとか、簡単なデバッグとか出来ないなら、統合開発環境として使えない気が・・・
単なるエディタとして使うなら、さくらエディタを俺は推すかなぁ・・・
>>98 Eclipseが重くて嫌で代替テキストエディタ探してるんだから、
VS+Javaに統合環境の機能を期待するな、と言いたいw
またEclipseが重いならVSでも重いかもしれないが。
ちなみに色訳はレジストリとUSERTYPE.DATにキーワードと拡張子追加すりゃjavaでも可能
入力支援は無理だけど
>>98 連投スマン
あとVSをテキストエディタとして使うとしても、プロジェクト管理と
複数のソースに跨る一括置換や一括検索機能はそのまま使える、
並のテキストエディタよりはマシだと思う
オレは一時期この環境を構築にビルド用makefileをjavacにして使っていた
meadow
102 :
デフォルトの名無しさん :2006/03/25(土) 23:34:32
たしかにEclipseが重かったら Meadowでも使ってればいいのに
つーかみんなはEclipseなの?
Eclipse 使ってる。 ケアレスミスはできるだけ減らしたいし。
105 :
デフォルトの名無しさん :2006/03/26(日) 00:33:36
antで充分。
俺Eclipse。慣れると馬鹿になりそうなくらい楽に作れる。 VisualStudioでC++を開発するよりも至れり尽くせりな気がする。 xyzzyをサブエディタに使ってるけど、殆ど文章用だなあ。
俺もEclipse。 WebもEclipse。 SWTもEclipse。
みんなEclipseか。すげーなぁ。 プリプロセッサとかついてる? 純正JAVAじゃ容量食いすぎて仕事に使えないんだけど…。
EclipseとPDF資料を開けるとHDDが騒がしくなる… 起動が糞遅いのはなんとかならないかな
みんなじゃないぞ、Eclipse使ってるって言わないと プロの技術者っぽく無くて、「技術ねー奴は引っ込んでろよpgr」 って言われて肩身の狭い思いをしそうだから 秀丸とプリプロセッサ使って#ifdefだの#defineだの入った Java?ソースを書いてるって言わないだけだヽ(`Д´)ノ ゲーム屋のクズ企画屋は調整とかいいながらガンガン仕様変えるから、 100kになってもある程度余裕残しておかないとどうしようも無くなるし。
Eclipseでのプリプロセッサの入れ方が分かりません><
>>110 もし#ifdefと#defineのためだけにプリプロセッサ使ってる
んだったら、「技術ねー」っていわれてもしかたねーよ。
>>111 プロジェクトのプロパティ。でもcppなんかを前提にすると
当然Javaエディタでまともに編集できなくなるから、気をつけること。
>>112 結果として勘違い君しか書き込めなくなるから下手に煽るなw
プリプロ関係は話がループするからな。
includeと定数defineだけつかえりゃいいです。
はいはいループループ。
エディットするのは元ソースなんだし cppが吐いたソースは気にしないから問題ない
マジかよ(;´Д`) 解決法ある?
メモリをいっぱいにしない。
n900は対象外って書く
>>110 xyzzyやemacsで書いてる人のほうがすごく見えるのは気のせいか?
メモ帳のほうがすごい
126 :
デフォルトの名無しさん :2006/03/28(火) 01:03:58
まぁ企画の規模と自分の持ってるリソースによるだろ。 場合によっちゃコピペだけとかw
>>107 > SWTもEclipse。
他に選択肢があるんかw
128 :
デフォルトの名無しさん :2006/03/28(火) 17:38:56
初心者です
3行目のconnectで止まってしまうのだが誰か助けて
http = (HttpConnection)Connector.open(
"
http://localhost/Test/bin/images/title.gif ", Connector.READ);
http.setRequestMethod(HttpConnection.GET);
http.connect();
contentLength = (int)http.getLength();
129 :
128 :2006/03/28(火) 17:40:50
ちなみにtitle.gifは C:\iDKDoJa4.0\apps\Test\bin\images\title.gif に置いてあります。
>>129 画像をresってフォルダに放り込んでみ
F900って、特に何もしなくても、次のrepaint処理までに40〜70o秒ほどかかるんですが、 そういうものなんですか?
132 :
128 :2006/03/28(火) 18:06:22
>>132 せめて、「エラーメッセージは何が出てるのか」くらいは
自力で調べる努力はした方がいいぞ・・・してないならする癖をつける。
してるならこう言うエラーでと書くべき。
次にヒントだしてあげとくから考えてみればいい。
以下開発ガイドより。つか読んどけ。
---------------------------------------------------------------------
HttpConnectionに渡すURLには、次の制約があります。
? IPアドレスはシンボリックでなければなりません("www.nttdocomo.co.jp"など)。
HttpConnectionでは、数値IPアドレス("127.0.0.1"など)は使用できません。
? HttpConnectionに渡すURLのプロトコル、ホスト名、ポートは、iアプリの
ダウンロード元となったURL(ADFのPackageUR Lキーでの指定)と同じでなければなりません。
134 :
128 :2006/03/28(火) 18:17:34
135 :
133 :2006/03/28(火) 18:32:23
>>134 偉そうに言ってしまって反省中、あんまり自信もないしな。
でも開発ガイドは重要なので一度はやる部分に
関係する部分を読んでおくといいよ。
133で言ってるエラーの出力の仕方は判る?
try〜catchで拾うのはわかるよね?
後ね、何がしたくてそう言うプログラムを書いたのかを
言ってくれるとアドバイスのしようもあると思う。
んでローカルにアクセスって出来たかなぁ・・HTTPで。
とりあえず俺が作る時にリソースではなくネットに
アクセスすることが前提なら実際にネット上にデータを
おいてエミュからアクセスするようにしてるからね・・・。
ここで良くエミュのネット設定をし忘れてミスったりするがw
>>128 当たり前のことでかえって忘れてるかもしれないが、
webサーバを立ち上げないと通信しようがないよ。
エミュレータの 設定−ネットワーク設定 の ADFのURL
もlocalhostのディレクトリ構成に合わせて設定する。
今初心者スレって無いんだっけ?
138 :
136 :2006/03/28(火) 18:47:23
というか128さんはちょっと勘違いしてるっぽいな。 サーバ上の画像ファイルを通信して取得したいなら webサーバを立ち上げて(localhost)、ダウンロード元となる ディレクトリに画像ファイル(title.gif)を置く。 C:\iDKDoJa4.0\apps\Test\bin\images\title.gif に置くのは間違い。 通信ではなくリソースに含めた画像を取得するなら 画像は C:\iDKDoJa4.0\apps\Test\res\title.gif に置く。 そしてもちろん、取得するときの記述は http = (HttpConnection)Connector.open(〜) ではない。 リソースから画像を取得する場合の記述は開発ガイドや APIリファレンスにソースが出てるからよく読んで。
139 :
131 :2006/03/28(火) 18:54:46
えと・・・スルーされてますが、 drawLineやdrawString系の命令を無くしたら処理速度が倍近くになりました。 イメージ描画よりも苦手な処理なのですかねぇ。
>>139 >イメージ描画よりも苦手な処理なのですかねぇ。
そのとおり。
drawLineはともかく、drawStringはアホみたいに重い。
透過させなくてもいいものであれば、いちどImageに書いてそれをdrawImage
するといいですよ。
141 :
131 :2006/03/28(火) 19:06:02
>>140 なるほど、そういう手段もあるのですか。
参考になります、ありがとうです。
質問です。 どうやら、コンストラクタが呼び出されていないみたいなんです。 初期設定をコンストラクタで済ませようと思ったのですが・・・。 下のようなサンプルでもコンストラクタが機能していないことが分かりました。 どうしたらいいでしょうか。 それとも、私に問題がありますか? どなたかお答えいただけませんでしょうか。 import com.nttdocomo.ui.*; public class ibomb extends IApplication { public void start(){ SampleCanvas c=new SampleCanvas(); Display.setCurrent(c); } } class SampleCanvas extends Canvas{ public int flag=0; public void SampleCanvas(){ flag=99; System.out.println("コンストラクタ通過"); } public void paint(Graphics g){ if(flag==0) System.out.println("おかしい"); if(flag==99) System.out.println("成功"); } }
>>142 たぶんタイプミスでただのメソッドになってるんでしょう。
>>143 これって、public void SampleCanvas()はただのメソッドではないのでは?
何処にタイプミスが・・・?
何度も確かめたので、それは無いと思うんですが。
145 :
60 :2006/03/28(火) 21:51:46
>>128 connect()は接続が完了して、データを受信しきる、もしくはタイムアウトするまで返らないようです。
タイムアウトさせるかどうかは、openメソッドの最後に,trueだかfalseだかで指定できたハズ。
接続できないところへ繋ごうとしていて、APIが必死に繋ごうとしている時間を
止まったと解釈して、アプリを終了してはいませんか?
また、jamファイルのURLと同じサーバにする、もしくはトラステッドアプリにしないとダメです。
(この場合はすぐにエラーで返った気もする・・)
追伸、 webサーバをlisten状態にする場合、127.0.0.1と 192.168.1.10 等は別物として扱われます。 かりに192.168.1.10で待機させた場合、ネットワークからはWebにアクセスできても、 127.0.0.1ではつながらないと言ったことになります。(localhost=127.0.0.1)。 そういったほうの問題で失敗していないだろうか?
むーん、日本語が不自由ですがアホなので許してください・・
>142 public SampleCanvas(){ }
void ミスは俺もたまにやるw
152 :
142 :2006/03/28(火) 22:15:27
voidが付いてたら駄目なんですか・・・。 javaはほとんど初めてなんで、Cの感覚で書いてたので盲点でした。 本当にありがとうございました。
153 :
128 :2006/03/29(水) 10:37:16
>>135 >>136 >>138 >>145 >>147 助かりました。無事動いたようです。
初歩的ですが、Webサーバを動かしてませんでした。
LANでつないだマシンでApacheを動かしてその中にイメージを置き
C:\WINDOWS\system32\drivers\etc\hostsでアドレスを設定して
エミュレータの「設定−ネットワーク設定」のADFのURLを
イメージを置いたフォルダにしたところ動作しました。
質問です。 (10×10+5)×110=11550個の整数データがアプリで必要です。 これをすべてアプリに入れても、 プログラムの大きさ的には問題ないと思うのですが メモリ的には問題はありませんか? 505i以降を対象にしようと考えています。 なお、現在はほとんどメモリは使っておりません。
>>154 ソースコード内に配列で書くと問題になる。
バイナリにしてresに入れて、Connectorで読み出すようにしたほうが無難なんだけど
ただ505だとjarサイズ制限でやはり厳しいのではなかろうか。
整数がintかbyteかによっても違ってくるけど、
となるとHTTPダウンロードくらいかな。
質問させてください。 Phone.getProperty(Phone.USER_ID)が返す、 FOMAカードの個体識別情報を表す文字列は、 どのような文字が使われる可能性があるか、 ご存じの方はいらっしゃいませんでしょうか? 自分なりに調べた結果「20桁の英数字」である事は分かりましたが、 自分の端末、及び友人の端末では「19桁の数字+"f"」としか 返ってこないのでイマイチ確証が持てずにいます。 アルファベットはどこからどの範囲が使われるのか、 また、小文字のみなのか大文字小文字両方なのかが知りたいです。
>>154 たかだか40kバイトくらいで落ちないでほしいとは思う。
158 :
154 :2006/03/30(木) 22:43:03
整数はbyteでことが足ります。 これなら、11kbなんですが、これでもやはりつらいですか?
>>154 メモリメモリメモリじゃなくて、
ヒープとSPとアプリサイズに分けて考える。
まずJavaはbyteでもint型で定義されるから
ヒープは45KB消費される。
505のヒープは最低で1500KB程度。
少ないかどうかは自分で考えろ。
アプリサイズはzip圧縮されるのでわからんが、
30KBしかないので普通に考えりゃSPに追い出すべき。
SPに関しては他と相談で合計200KBまで。
バイナリで普通にデータパケットすれば11KBなんだろうが、
文字列のカンマ区切りしたら数倍になるだろうな。
メモリを殆ど使ってないとか言ってるけど、
それがわかってるなら何がわからなくて質問してるのかを聞きたい。
超アホな質問で申し訳ないが。 eclipseって使ったほうがいいの? doja3.5使ってるからeclipse2.xしか動作保障されてないんだが。 で、ざっと見たらeclipse2.x手に入らないもんだから。 もしeclipse使うべきなら、doja4.0にしようかとも思ってるんだけど。 今はテキストエディタ使ってるんだけども。 ぜんぜんプログラムに関係ない事で申し訳ない(´・ェ・`)
>>161 別にすれ違いでは無いのでわ。
Eclipse 2.1に対しても、 DoJa3.5のeclipseプラグインは追加可能。
3.1でもDoja3.5のプラグイン使用可能。
あと、2.1が手に入らないってこと無いはずだが。。
>>158 Javaのバイトコードを追うとわかるんだけど
byte[] array = new byte[] { 0x10, 0x11, ... };
という配列の初期化は、内部的に
byte[] array = new byte[10];
array[0] = 0x10;
array[1] = 0x11;
:
:
こう展開されるから気をつけろ。
>>158 byte型でいいならJar圧縮してSPに入れる方法がお勧め。
データ本体の容量(JavaVMの内部表現ではなく)は圧縮なしで約12kB。圧縮したら10分の1くらいになるから(ヘッダの容量を考えて)多めに見積もっても3kB。
>>161 プラグイン無いと出来ないのはEclipse上からのコンパイルとデバッグのみ。
無くてもエディタ上でエラーチェックしてくれるのでバグは減らせるから、
とりあえず使ってみれば。
3.1用のプラグインはコンパイル方法も調べれば出てくるし、
3.1使って困るって事も特に無いと思う。
使うべきかどうかは兎も角、使えれば便利ではあるよ。
166 :
154 :2006/03/31(金) 11:44:45
SPから、読み込む形にすればいいのですね。 ありがとうございました。 これを参考にデータ格納をやってみたいと思います。
167 :
154 :2006/03/31(金) 11:52:24
とおもったのですが。 よくよく考えれば、いったん、スクラッチパッドに入れないといけないんですよね。 ということは、リソースから読み込んだほうがいいのでは?
>>167 リソースに突っ込んでもアプリ本体のサイズに問題なければ、リソースの
方が楽だね。
ただ、SPから読む(SPになければサーバから落として書き込む)仕組みは
汎用的に使うものだから、一度作っておいたほうがいいかも。
どちらにせよ、読み込むデータは別のツールで吐き出しておく必要がある。
仕事で作ってる奴だとリソース部分ってのはアプリ容量減るから 頭が自動的に使うことを拒否するんだろw
>>169 そうでもない。
たとえばプログレスバーとかメーカーロゴとか、SPにダウンロード
するよりも前にちょっとした絵を表示させたいときに使うこともあるし、
SP容量はいっぱいだけどアプリ容量はまだ空いてる、なんてことも
たまにある。
>>169 仕様変更が怖いから、
出せるものは出しとくって判断してるのは否定しないがな〜
iアプリばっか作ってると、Windows環境に移った時に
メモリ節約考える自分を見つけて鬱になれるな。
何だよ、メモリほぼ無限にディスク4.7GBって。
無理にメソッド名を短くしたりメンバを直接参照したりnewするのに一瞬ためらったり
173 :
154 :2006/03/31(金) 18:58:23
では、リソースから読み込むように考えます。 (ダウンロードは避けたいので) どうもありがとうございました。
174 :
161 :2006/03/31(金) 19:13:36
>>162 >>165 こんな質問「使ってからきけボケェ!」位言われるかと覚悟したんだけど。
めちゃ親切(゚Д゚;)
本当にありがとう!
ではとりあえず使ってみます!
SPの読み書きの速度ってどんなものなんでしょうか? メインメモリ並の扱いをしても問題ないのでしょうか?
だめ。そんなに速くない。 でも死ぬほど遅くはない。
178 :
154 :2006/03/32(土) 00:51:58
下のように組んでみたのですがうまくいきません。(具体的には何も表示されません。) 何が悪いのでしょうか。 import com.nttdocomo.ui.*; import java.io.*; import javax.microedition.io.*; public class filetest extends IApplication { public void start(){ ResCanvas c=new ResCanvas(); Display.setCurrent(c); } }
179 :
154 :2006/03/32(土) 00:52:44
class ResCanvas extends Canvas { public void paint(Graphics g){ //読み込んだデータを格納する為の配列 byte[] ldByte = new byte[50]; //InputStreamクラスの参照を宣言 InputStream in = null; try{ //接続 in = Connector.openInputStream("resourse:///test.txt"); //データの読み込み for(int j=0;j<=ldByte.length-1;j++){ ldByte[j]=(byte)in.read(); } //接続の解除 in.close(); in = null; }catch(Exception e){} //文字に変換して表示 System.out.println(new String(ldByte)); } }
>>179 Canvas#paint()が再描画の度に呼ばれるってこと分かってる?
お宅は再描画の度に毎回JARリソースから読み込みますか。
あと、画面の描画はSystem.out.printlnではなくて、Graphics#drawStringだ。
とりあえずAPIリファレンス読め。
181 :
154 :2006/03/32(土) 01:21:42
>>180 いや、これはテストですので・・・。
とりあえずで作成したものです。
もちろん、paintに入れてはいけないのはわかっているのですが。
テストで、System.out.printlnを使用したのは
別に、携帯の画面に書かなくてもいいかとおもったからです。
それでも、System.out.printlnが機能していませんし
このプログラムがなぜ動かないのかが理解できなかったので
こちらで質問いたしました。
>>154 ×resourse
○resource
だから理解してないならエラー処理に手を抜くなと(ry
183 :
154 :2006/03/32(土) 01:44:59
>>182 すみません。
うまくいきました。
つづりミスなんて考えもしなかったので・・。
エラー処理手を抜いてしまったのは確かにいけませんでしたね。
反省します。
iアプリでcgiって動く?
無理 iアプリには標準入力の概念が無いから。ついでにHTTPサーバ機能も無いけどな
鯖において通信するんならできる
>185 スマヌ じゃあiアプリで田代砲は?
作れるだろうが保証はできない、いろいろな意味で
確かにな たぶんレンタル無料鯖とかだったらID削除の危機w
アプリ作っててエラーで「識別子がありません」 とか出るんだがどういう意味だ?
識別子が無いって事だろ
識別子って何すか?
そんなエラーぽいの初めてみるな というか何が出してるかぐらい書けないなら回答は期待するなって 俺としては「ウィルスにでも犯されてんじゃね」ぐらいしか言えんw
>>192 identifierの和訳。
ようするに名前だ。
変数名とかクラス名とか。
つーか、JAVAのエラーだからスレ違い
情報の小出しをする奴はスルー
怪しいところを張ればまともな回答があるかもしれない
情報の小出しっていうか 適切な情報を出せる人って、そもそも原因特定の糸口がほぼつかめてる人かと そういう人こそ、ぶっちゃけ質問なんてせずに自力で調べるべきだと思うんだが・・・。出来るはずだし。
199 :
デフォルトの名無しさん :2006/04/03(月) 09:59:42
iアプリ用のポリゴン作りたいんだけど、 どんなソフト使えばいいでしょうか
retroguardの最新版v2.2.0を落として動かしてみたんですが、 v2.0.5と同じようによびだすと、出力されるファイル(out.jar)として MANIFEST.MFが入っているだけのほとんど空っぽのファイルが出力されます。 似たようなトラブルに遭った方、いますか?
>>201 retroguard使用時のログはどうなっていますか?
自己解決しました。v2.2.0では.options Trimがデフォルトになっており、ここが v2.0.5と動作が異なるようです。 とりあえず解決方法としては、script.rgsとして .option Applet .option Application .option Serializable .option RMI .option RuntimeAnnotations .option MapClassString .option Repackage .option Generic というふうに、.options Trimの行を消したものを置いておくと、今までどおりに動作するようです。 (あわてて書いているので何か取りちがえているかも…)
204 :
デフォルトの名無しさん :2006/04/04(火) 09:01:02
すみません、質問です。 今、iアプリダウンロード用HTMLを作成しているのですが、 リファレンスの通りに作成するとHTML画面にリンクのような 形で「ダウンロード開始」などのイベント用テキストが表示 されますが、それをボタンにて表示したいと思います。 どのように定義すればよいのでしょうか・・・
>>204 ボタンの画像を用意して、
<OBJECT declare id="test"
data="test.jam" type="application/x-jam">
</OBJECT>
<A ijam="#test" href="notapplicable.html"><img border=0 src="test.gif"></A>
とかでできるんじゃないでしょーか。
206 :
デフォルトの名無しさん :2006/04/04(火) 10:34:41
>>205 さんありがとうございます!
しかし、画像ではなく普通のボタン表示をしたいのですが
どのようにすればよいのでしょうか・・・・
Web制作板へどうぞ
普通のボタンっていったいなんのことだったのだろう…
フォームのsubmitボタンのことなんじゃない? できるのかどーか知らんけど。
前スレで「レジストリの設定に失敗しました」というのがありましたが 自分も同じ現象だったのでいろいろ試してみたところログオン先を NT4サーバーのドメインの管理者からローカルの管理者に 切り替えたらエラーがでなくなりました。
211 :
デフォルトの名無しさん :2006/04/06(木) 23:11:26
>>211 iアプリの基本。
processEvent内に無限ループ作っちゃダメ。
PanelのkeyReleasedで無限ループ呼んでるのが悪い。
それとCanvasとPanel毎回newしないとダメなの?
Canvasのexe走りっぱなしのようだけど。
213 :
デフォルトの名無しさん :2006/04/07(金) 00:39:30
new使わないでするやり方がわかりません…ORZ できれば具体的なやり方を教えて下さい。
>>213 CanvasとPanelはCorPのstaticなメンバにして
start()かコンストラクタで1回だけnewする。
あとはDisplay.setCurrent()でCorPのメンバを指定すればおk
尚、Panelの方は破棄する事が出来ないから、
レイアウトを変えたい場合はnewで作り直すと吉。
N系はPanelが正しく解放されずメモリー食いつづけるから 毎回newしてると即あぼーんだぞ
216 :
デフォルトの名無しさん :2006/04/07(金) 01:27:40
最初にやろうとしたんですが、 static mainCanvas canvas=new mainCanvas(); と書いてもエラーになってしまいました。 オブジェクト変数をstaticにするのってどうするんですか??
だからコンストラクタかstart内でnewしろと
Javaの基本からやり直し
javaをネットで調べなおしたらちゃんと載ってました。 メッチャ馬鹿みたいな質問してたんですね スマソ
DoJa 4.1+マスコットカプセルで作ってるんですが、 アプリ圧縮がどうもうまくいかんとです。 JavaBlender > Transform関連を記述するとダメポ jarg > 圧縮完了するものの、実機で動かん。 まだ原因特定まで突っ込んで調べていないのですが、 DoJa 4.1+マスコットカプセルで圧縮がうまく行ってる方いらっしゃいますか?
>>220 とりあえずできました。8時間も悩んでたのか・・・。
結局、javaBlender諦め、jargでマスコットカプセル周りもうまく行きました。
圧縮の仕方に問題があったような・・?まだ特定できてないんですが、動いた報告です。
44k > 37k です。
222 :
デフォルトの名無しさん :2006/04/10(月) 01:24:05
プログラミングしたこと無い人間が電卓みたいなアプリを作ってみたくて 参考にソースがほしいんだけど そういうのを公開してる場所ってある? シューティングとかそういうのは見かけるんだけど…
>222 検索サイトgoogleの使い方は知ってる? "iアプリ" 初めて プログラム と入れて検索。
>>223 ごめんなさい
”初めて”じゃなく”電卓”にしたらそれらしいのが見つかりました。
225 :
200 :2006/04/10(月) 14:09:06
フリーのソフトで作ったデータを MascotCapsuleで使えるようにする方法はありますか
フリーのソフトを作った奴に聞いてくれよ(´д`)
227 :
デフォルトの名無しさん :2006/04/10(月) 14:23:38
228 :
227 :2006/04/10(月) 18:20:10
圧縮で悩んでいた奴だが、 結局1〜2割減くらいで落ち着いている。 常用している人もそのくらい?
>>229 変数名に長い名前を使っているほど、減少率が高い。
他色々あるが、これが一番でかいと思う
>>230 どうもそんな感じだね。
今まで変数名を意識して短縮してたんだけど、そのあたりは気にしなくなった。
これだけでもうれしいかも。
ハンガリー記法を遠慮なく使えるしな。 JAVAはハンガリー記法なんて使わない!ってアンチハンガリー派がいるが、class継承なりで役割分担をきちっとできる純粋JAVAと違って、アプリ系ではまだ必須だ。
233 :
デフォルトの名無しさん :2006/04/11(火) 01:30:00
>>232 javaじゃなくて、C言語でもwindows以外の世界ではあの見苦しいハンガリアン記法
は使わない。
あの汚い書き方はwin3.1までの、ロングポインタだのショートポインタだの
混在していた為間違わないようにするための苦肉の策。
まあ、個人で書くコードは好きにすれば良いが、あれを広めようとしたりすると
能力疑われる(他の世界を全然知らないと思われる)から気をつけた方がよいよ。
>>232 アプリでも使う理由がどこにもねーよ。
まあ、JAVAとか大文字で書いてる時点で能力の低さは知れる。
>>234 大文字小文字で能力を計ってる時点で底が知れる
まさにアンチ
ハンガリー記法なんてしらなかったぜ! ループのカウンタとかに「int i;」を何故か使用してたのはここから来てるんだな。 独学で勉強してた時からサンプルが総てiだったから自然と自分も使うようになってたな。 ま、知らなくても個人でやる分にはまったくこまらない知識だな。
>>237 詳しく。
俺はIteratorの頭文字のiだと思ってたんだが。
Integerじゃなかtt(ry
240 :
デフォルトの名無しさん :2006/04/11(火) 12:15:22
>>237 違うよ。あれはfortranの頃の名残り。
fortranは変数名の最初の文字がI〜Nだと整数という決まりがある。
それでループカウンタにはIを使うという習慣があった、それが残った。
>>240 その FORTRAN の仕様は、
数式を書くときに配列の添字には i,j,k,l,m,n を使うという
数学の伝統からきたものだけどな。
242 :
237 :2006/04/11(火) 13:41:58
ほう、「ハンガリー記法」でググって最初に出てきたページで iとかの説明もあったけどあれは別の話か。まぁ勘違いだったな。 大分スレの趣旨とはずれてきてるから俺はこれで消える。 マメ知識として結構勉強になったよ。
243 :
デフォルトの名無しさん :2006/04/12(水) 23:01:08
すみません、質問です。今iアプリでパネルに MediaImage mi = MediaManager.getImage("resource:///login.jpeg"); という背景画像を貼り付け、 その上にログインボタンの画像を貼り付けたいと思っています。 しかし、login.jpegの定義のみだときちんとエミュレータに表示 されるのですが、ボタン画像を定義すると com.nttdocomo.ui.UIException: Media image is not usable が発生します。 しかも、パネルを継承したクラスにて画像の位置を指定することは 可能なのでしょうか。。。
>>232 この板にもハンガリアン記法スレがあったが、
なぜハンガリアン記法が駄目なのかを延々語り継ぐスレになった挙句、
いつのまにかDAT落ちしている(つーか今紹介しようとして気づいた)。まあそういうことだ。
また、Javaによく似た言語であるC#では、ハンガリアン記法は「禁止」されている。
それもハンガリアン記法を発明し普及させてきた当のMSによってだ。
アンチハンガリー派とか何年前の話よ。既に最大の支持者が裏切ってるのに。
そんなわけで、少なくともJavaでハンガリアン記法を使うのは
どう見てもコーダーとしての資質を問われます。本当にありがとうございました。
スレ違いですまんな。
>>244 ハンガリアンスレは、たんなるアンチの溜まり場だったよ。
ところでJAVAやC#は「抽象化ができるから、ハンガリアンが必要ない」んだが、
抽象化なんぞに容量さけない携帯JAVAで、なんでハンガリアン否定すんの?
JAVA言語=ハンガリアン使わない わけじゃないぜ?
ハァ?ハンガリアンはいまや屑で糞でみんな使いませんw 使ってると能無しですから
なんでおまいらはいつも極端な万能主義者ばっかりなんだ? 何かの方法論をいつも使うか、いつも使わないか二択しかない。 そんなもん場合ごとに使い分けろ。 今時、木の枝をこすって火をおこすやつは居ないが、やり方を知ってれば 必要なときには使える。そんだけの話。 で、携帯JAVAの現状ではハンガリアン表記は使い道がないこともない。 おれは使わんけどな。
うそ!? ハンガリアン記法にそってない引継ぎプログラム(携帯Java)なんて地獄だぜ…。 純正Javaで組まれてる、よっぽど小規模アプリならともかく。 カツカツのゲームになると、マクロやファイルincludeをバリバリ使ってるから、変数定義位置にIDEの機能でジャンプするのも難しいしな。 ハンガリアンが必要ない条件下なら、それは楽だし恵まれてるなぁ。(そりゃ、楽にするために抽象化という概念が導入されたわけだから) しかし、ここからはハンガリアン自体の話になるが 強く否定するアホアンチほど、抽象化がろくにできてないプログラム組むんだよな…。 クラス使っただけで抽象化したつもりになって、型が変わったら誤動作すんの。 お前それ、型関連性が強いんだからハンガリアンさぼるなよと(´・ω・`)
そりゃ今後ずっとメンテ込みで引き継ぐなら、何で書いてたって大変だろうけど、 新機種対応程度の引継ぎなら、機種依存ポイントさえ理解してたら ロジックの中身なんて弄らんから殆ど理解は不要
最近は売り切りより、オンラインでメンテ必須で、追加要素ありが主流だからなぁ…。 昔なら確かに249的で良かったんだけど。
移植の時に追加機能とかゲーヲタ業界は好きだからなw PS2の某SLGの続編で追加機能部分にバグがあったりすると どこも一緒なんだなーって思う。
>>243 すっごいスルーされてるけども・・・やってる事自体は少ないのだから
その部分を抜粋したソースださないとちょっとわからないと思うぞ。
スルーされてるのはソース貼るまでもなく原因がバレバレだからなじゃいか? >com.nttdocomo.ui.UIException: Media image is not usable が発生します。 じゃぁuse()してないのだろう。 >パネルを継承したクラスにて画像の位置を指定することは 可能なのでしょうか 可能ではない。レイアウトやデザインを自由に制御したいならCanvasで。
>>243 >パネルを継承したクラスにて画像の位置を指定することは 可能なのでしょうか
やろうと思えばできるぞ。
setLayoutManager(null)して、画像セットしたImageLabelをsetLocationしてやれば。
そうすると全てのコンポーネントをsetLocationしなきゃならんから面倒だけどな。
255 :
デフォルトの名無しさん :2006/04/15(土) 13:50:47
FOMA 901iシリーズに対応したJava仕様「DoJa 4.0」を公開した。って記述してあるニュースサイト を見たのですが。 P901iTVも最新だけど901だから 4.0対応だと思っていいのでしょうか。
256 :
255 :2006/04/15(土) 13:54:48
257 :
デフォルトの名無しさん :2006/04/16(日) 22:48:29
現在PanelクラスでImageButtonを使って ボタンの画像を貼り付けたのですが、 フォーカスが当たった時に違うImageを使って 表示させたいと思っております。 (青いボタンがフォーカスが当たったときに 赤いボタンになるイメージです) しかし、通常の画像を使用したボタンなら 作れるのですが、フォーカスが当たったときに 他の画像を使用するやりかたがわかりません。 分かる方いらっしゃったらよろしくお願いします。
>>257 フォーカスが移動したことを知る方法はない。
PanelとComponentListenerのAPIリファレンス読んでみて。
もともとPanelは見た目に凝ったことをやろうとするクラスではない。
そういうのはCanvasでやる。
しかし、とことんPanelの使い道ってないよな。 505より前に、IEMがPanelからしか起動できないから、仕方なく使ってたくらいだ。
261 :
デフォルトの名無しさん :2006/04/17(月) 00:32:19
Eclipse3.1+Doja4.0でアプリを開発中なんだけど resフォルダの中身がビルドイメージの中に 入ってくれないんだけどなんか設定とかいるの? それともEclipse3.0+Doja4.0ならいけるとか?
初心者で申し訳ないんですが、透過ってのはどこで設定できるんですか。サンプルの画像は 白の部分は透けるんですが、自作の画像と差し換えると白まで表示されるんです。
>>261 入る筈。なんか不具合でてるんだと思うよ。
>>262 画像作る時に設定するものなので画像作ったソフトによる。
よってアプリは関係ない。
>>262 アプリで抜き色カラーパレット指定できなかったっけ?
266 :
261 :2006/04/17(月) 23:13:03
やっぱ入らねぇ・・・・・orz マシン変えてもEclipse入れなおしてもできんわ。 ちゃんとインポートでいれてんだけどな・・・・・ Dojaを4.1のに変えてまた明日やってみるか・・・・・・
267 :
261 :2006/04/17(月) 23:41:57
スマン、今できた。
Dojaを4.1のにしたらできたよ。
オレの持ってる機種が901なんで4.0のを使おうとしたんだけど
コレがダメだったみたいだな。
これでやっと開発に戻れるぜぃ。
>>263 サンクスね
今Felicaのアプリ作ってるのですがFelicaツールバーを組み込んだIEってのはどうすればできるのでしょうか?
269 :
261 :2006/04/18(火) 21:38:26
家のPCではいけるんだけど 会社のPCではやっぱ入らねぇ・・・・orz EclipseのバージョンもDojaのバージョンもそろえてるのに なんでこんな違いがでるんだか・・・・・・・ NortonAntiVirusが原因かと思てオフにしてやってみてもできんかった・・・orz
270 :
デフォルトの名無しさん :2006/04/19(水) 08:29:29
質問があります。 AudioPresenterのsetAttributeを使って音量調整しているのですが、 音量を変えても波形データに適応されていないような…。 MIDIはちゃんと音量変わってるんですが。 なにか原因って考えられますでしょうか? ちなみに2音とも同ポートで再生しています。 機種はSH505iです。
271 :
262 :2006/04/19(水) 18:46:52
>>264 そうなんですか。ウインドウズのペイント使ってるんですが、ヘルプをみてやってみた
んですが、うまく透過してくれません。変形の背景色を不透明にするのチェックを外して
その後塗りつぶしで右クリックでできると書いてあるのですができません。どこか間違っ
てるでしょうか。もしくはいいペイントソフトがあれば教えて下さい。
272 :
デフォルトの名無しさん :2006/04/19(水) 18:59:11
IrfanView使ったらどうだ。
273 :
262 :2006/04/19(水) 21:52:09
>>272 インストールして見ましたが、高機能すぎていまいち使い方が分かりません。
ペイントの透過の仕方を教えてもらえないでしょうか
ソフトウェア板でどうぞ
>>271 =262
ウインドウズのペイントの透明/不透明について勘違いしてるよ。
あれは透過gifを作ったりするための機能ではない。
ペイント上に別の画像をコピペするときに、その貼り付ける画像に対して
現在の背景色と同じ色を透過させるかさせないかということ。
"透過gif" ツール
といったキーワードでググって適当なツール使うといい。
パレットの特定の色を透明色に置き換えるツールとか、そういうやつ。
276 :
262 :2006/04/20(木) 01:23:43
>>275 完全に勘違いしてました。いろいろ調べてやっとできました!ありがとございます。
最近iアプリ作り始めて、画像表示したり移動したりスクラッチパッドの使い方とか 一通りできるようになってきたんだけど・・・・ふとヒープメモリのフリーエリア表示させてみたら カウントダウンするようにどんどん減り続けるんだけど・・。 で、0にもどるとまた最大値にもどってカウントダウン始める、なんじゃこりゃと思って あれこれ処理を削っていって、最後にはヒープメモリ表示とそれに必要な変数表示だけ にしたんだけど、それでも同じで減り続ける、環境はDoja4.1+Eclipce3.1。 なぜこうなるのかどなたか教えてくださいorz、エミュってそれともこういうもの?。
ヒープメモリ表示のために無駄なStringインスタンスを作り続けてる気がす
System.gc()
>>277 おれはそう言うものだと思っている。文字表示もそうだけど何かしらやってるだろうしな。
ただ0にはなるまい?それ以前に内部でgc()呼び出されてると思うが。
で、画像の読み込み・解放のやり方が適当だった場合機種によってはメモリの
断片化が進みメモリが足りなくなってきて落ちる事もある。
あと自動でgc()呼び出してるのに頼ってると解放に時間がかかって酷い処理落ちになったりもする。
質問なんですが、F900iTでiアプリからBlueToothを使った通信はどのAPIを使うんでしょうか?
というか、そもそもBlueToothは使えない?
赤外線については↓ここやDocomoのAPI資料にも載ってたんですが・・・
http://hs.or.tp/doja/
スレのレベルが落ちてきたな。
お前の書き込みが一番レベルが低い
>>281 汚ねぇソース…て思ったら管理者まだ学生か。
286 :
277 :2006/04/21(金) 07:53:22
>279 とりあえずこれをメインルーチンの最後に突っ込んだら適当な数値で止まったよ、ありがとう。 >280 エミュの場合ですが、ためしに簡単な文字表示するだけのプログラムにメモリ表示つっこんでも やっぱり0までカウントダウンずーっと進んで0になったらまた最大値に戻り、また0にを 繰り返すんで、これはもう仕方ない現象なのかなと思いました、そもそもなんで0になってるはず なのにシステムエラーにならないのかも謎。 ちなみに実機ではある程度まで減り続けて(0になることはない)また回復して を繰り返してました、下が0になるかならないかの違いですが、でも>279を入れたらエミュと 同じようにある程度のとこでメモリ消費は止まりました。 JAVA自体扱うのも初めてなんですが、Cやアセンブラのように変数やメモリ確保などで 消費した分だけ減り、そこで止まるんだとイメージしてたのですが、JAVAの場合オブジェクトとして 確保した変数をループ内部で使っていると(もちろんループの中で確保はしていない)、そのオブジェクト がメモリ内部でどんどん複製されて、際限なく減るのかなと思ってしまったのですが、そもそもJAVAV って適当なとこでメモリの開放を自動で行なうはずなんですよね?。 System.gc()入れないと、どんなに簡単なプログラムに入れてもカウントダウン>また戻る現象は変わらない のは謎のままなのかな、これ入れなくても消費したメモリ分だけのところで「止まる」というイメージ 通りにはならないのはちょっと気味悪いな。
メモリ無くなったら勝手にgc()相当をやるからだろ。 Java勉強した方が良いよ。微妙にCと違うから。
メモリ管理に関してはまったく違う
微妙にって。。。凄いな。。。
>>286 gc()は勝手に呼ばれるがあてにしてると、処理落ちだけでなくメモリが足らなくなって落ちる事もある。
作っているアプリにもよるが停止してもいい瞬間、例えば画面切り替え時やセーブ中〜とか
の合間には自分でgc呼ぶと良い。
メモリの解放も基本は自動で行ってくれるがこれもあてにならないので
解放されて欲しい領域がある場合はnullを入れておく事をお勧めする。
機種によってはメモリの断片化を解消しないものもあるのでデカイ画像を扱う
アプリなどでは読む順番・解放する順番も結構大事とか聞く。
どっかの公式アプリですら「一部の機種では長時間遊んでると落ちる事があります」
みたいな事かいてあったのも記憶にあったようなww
たしか天外魔境
作ろうiモードコンテンツのサイトがリニューアルされている気がする
すいません、Imageの部分描画について確認したいことがあります。 部分描画の手法で、Graphics#drawImage()で部分的に描画する以外の方法があれば知りたいのですが、 例えば、あるImageオブジェクトから、その特定部分をImageオブジェクトとして抽出することは可能ですか?
今API読み直してたんスけど、Image#createImage()に、getGraphics().drawImage()で大元のImageを部分描画したImageを渡せばできるかな? ちょっと試してみます。
↑一応可能でした、こんな感じ。 Image img = Image#createImage( x1,y1 ); img#getGraphics()#drawImage( mediaImg#getImage(), x2,y2, x3,y3, x1,y1 ); これで安定して動けば、アプリ容量に少し余裕できる・・・
一応というか、それで良いよ。
297 :
277 :2006/04/22(土) 15:14:01
>295 うへえええええええええorz。 こんな考え方あるんだ・・・・・、内側のmediaImg.getImage()からの返り値がこうだから、これに渡して・・・ って外側に解釈していくとわけわかんなくなるけど、img.getGraphics()が返す値がGraphics型だから変わりに そのまんま置き換わっていると考えて左から右に解釈していけばなるほど納得・・・・・、こういう合わせ技 できると結構違ってくるんだろうな・・・・。 これが関数とかじゃなくてオブジェクトって考え方なんだろうけど慣れるまで大変だな・・・、勉強になりました。
弱点としては、透明色が効かなくなる。 わかってると思うけど、一応。
>>297 ヲイヲイ、C++でも普通に使うだろーがw
つーか構造体に関数ポインタもたせりゃCでもできるぞ。
301 :
デフォルトの名無しさん :2006/04/23(日) 14:40:49
はじめまして、Java質問スレから誘導されました。 Java 2 SDK Standard Edition v1.3.0_02 と iαppliTool for DoJa-3.5(FOMA)を使ってjava を作りました。 java.lang.RuntimeExceptionと java.lang.NullPointerExceptionエラーがでます なにをどうすればいいのかわかりません。エミュで動かそうとするとこのエラーがでますが どうしたら動かせますでしょうか どなたかわかる方、よろしくお願いします
302 :
301 :2006/04/23(日) 14:58:47
java.io.IOException: Nosuch resource とjava.lang.NullPointerException このエラーが今でています 環境設定のミスですか?
>>301 ソース見てないから予想で答えるけど、
例えば画像ファイルをresフォルダに入れるの忘れてビルドしてて
その画像を読み込もうとしたら java.io.IOException: Nosuch resource は出る。
読み込めなかったImageオブジェクトを操作すれば
java.lang.NullPointerException は出る。
補足。 java.io.IOException: Nosuch resource は「そんなリソースないよ」というエラー(普通に訳せ)。 リソースファイル(画像や音声などのファイル)がresフォルダにないか、 あっても、ソース内でファイル名を間違えて書いているか。そういったところが原因。
305 :
301 :2006/04/23(日) 15:49:08
>>303-304 ありがとうございます
今見てみます。
画像は確かにビルドしてからつっこみました。しかも中のファイル名も見てみます。
ありがとうございます。かなり助かりました。
306 :
301 :2006/04/23(日) 16:04:04
やはり画像のファイル名も合っています。 がjava.lang.RuntimeExceptionと java.lang.NullPointerExceptionのエラーがでます
>>306 ソース晒さないと原因は特定できないって
>>305 ビルドしてから画像つっこんだんじゃ、
jarに入んないんじゃないの?
漠然と例外の名前だけ書いて解決できるわけねーだろ
>>306 「合っているのにエラーが出る」じゃなくて、
「何か間違えたからエラーが出た」と、考え方を変えましょう。
お前ら、優しすぎてオラ涙が出てきただ…
優しい連中だぜ(´ω`) 俺なんて302が書かれる前に301読んだのにな( ゚д゚ )
DoJa4.1のAPI何気なく読んでたら、MediaImageクラスに [DoJa-4.1 (902i) 以降] このメディアイメージがベクターグラフィックスである場合は null が返ります。 こんな記述がいっぱい入ってたんだが、 いつのまにDoJaはベクターグラフィックスが扱えるようになったんだ? なったとしたら、何形式を扱えるんだ? ちなみに、適当に.swfをつっこんでみたら「対応してない形式だ」と怒られ
315 :
お :2006/04/24(月) 09:02:27
Panelでswfに対応予定らしい
316 :
301 :2006/04/24(月) 12:12:51
皆さんありがとうございます。
>>308 さんのであってました出来ました
初心者に優しいこんなスレを久々に見ました
皆さんホントにありがとうございます
かなり初心者なのでまたわからなくなったら来てみます
もう二度と来ないといいな。 でも分からなくなったらまた来い。
>>316 べ、別にあんたに優しくしたつもりなんて無いんだからね。
邪魔だったから早くどっかに行ってほしかっただけなんだから。
困ったらまた来る?ばっかじゃないの?
すみません、C3DMath#powを使おうかと思っているのですが、 作ろうiモード〜のサイトの技術資料のページの対応表に C3DMathの記述が見当たりません。 恐らくは高レベル3Dグラフィックスか低レベル3Dグラフィックスだと思うのですが、 どれに該当するんでしょうか? それとも別のページに対応表があるのかな・・?
320 :
319 :2006/04/24(月) 14:31:23
・・・低レベル3Dの方か。 殆ど対応してないしヽ(;´д`)ノ しゃーない、作るか。_| ̄|○ 誰か既存ソースの置き場知ってたら教えてもらえると助かります。
321 :
デフォルトの名無しさん :2006/04/24(月) 23:12:22
powで既存ソースが必要って(;´Д`)
324 :
デフォルトの名無しさん :2006/04/25(火) 11:48:54
ウィルコムのZERO3でiアプリ開発できる?デバックとかコンパイルとか出来る? モバイル環境で開発したいんですが良い方法ないですかね? やっぱOSはXPとかじゃないとデバックとか出来ないんですか?
それはこのスレじゃなくてPC初心者スレとかで聞いた方がいいぞ
そのまえにgoogle先生に聞いた方が良いぞ。
3gp形式の音声ファイルをCanvas上で再生することはできますか?
328 :
デフォルトの名無しさん :2006/04/25(火) 15:35:18
WINCEのOSでもIアプリ開発できる?
とりあえずsageを覚えてから来い あと聞く前に一度調べて来い
iアプリってマルチスレッド環境らしいけど なんかrunしたら制御が返ってこねぇよ。 みんなの環境だとちゃんとマルチスレッドで動くの? ゲーム用にキーリピートイベントを発生させるクラスを 作ったんで試してみようと思ったんだけど、 このままじゃ無駄になりそうだ・・・・・orz
>>330 run()するって、、
run()に実装書いてstart()するんだけどw
333 :
330 :2006/04/26(水) 21:20:29
( ゚д゚ ) _(__つ/ ̄ ̄ ̄/_ \/ / ( ゚д゚) _(__つ/ ̄ ̄ ̄/_ \/ / ( ゚д゚ ) _(__つ/ ̄ ̄ ̄/_ \/ / || || ( / ⌒ヽ | | | ∪ / ノ | || ∪∪ : -====-
打ち込んでRUN
eclipseでコンパイル後に自動でクラス圧縮掛けたいのだけど、 ant以外の選択肢ってある?
質問ですorz Doja3.5環境でプログラム作成してるのですが、一回の通信でダウンロードできる通信量は150kbの はずですよね?、なぜか50kb近辺で実機だと継続動作できない障害が〜ってエラーが出てしまいます。 エミュでは問題ありません、実機はP700シリーズ、データを読むときはファイルサイズを取得してその 大きさのバッファを確保させてそこに読み込ませてます、150kbと表記はあっても一気にってのは できないんでしょうか?、分割読み込みさせないとダメ?。
>>337 Doja3.5だと、一回の通信で100KBが上限だったと思う。
700だとDoja4.0LEなわけで、もしかしたら20KB上限かもしれん。
いずれにせよ、データは細かく分割した方がいいよ。
Java始めてまだ1週間くらいの初心者なんですが、 iアプリでバイブレーションの強さや早さなどは設定できますか? 調べてみたんですけどONOFFしか見つかりませんでした…
340 :
デフォルトの名無しさん :2006/04/30(日) 02:30:58
>>339 速さは自前on/offで。
強さはない。もしかしたら強く感じるようなパターンがあるのかもしれんがw
>>337 150kBであっているが、どこで例外が出ているか確認したか?
343 :
339 :2006/04/30(日) 10:28:02
344 :
sage :2006/04/30(日) 19:13:50
端末のLEDランプを光らすことってできますか? また、どのClassでしょうか?
346 :
334 :2006/05/01(月) 09:54:04
com.nttdocomo.opt.ui.PhoneSystem2 このClassの90X・70Xシリーズの最新型番の対応表などの 仕様書ってどこかにありますか? docomoにはみあたらずでorz
347 :
デフォルトの名無しさん :2006/05/01(月) 09:54:29
1
348 :
337 :2006/05/01(月) 18:50:10
>338 分割するとうまくいきました、現状分割するほうがいいみたいです、ありがとう。 >342 プログラム自体は変更させずに40kbのファイルだと問題なくて、70kbになると通信を開始 だか通信中だかのあたりでエラーになってしまうので、ファイルサイズの問題なのかなぁと、 実機は友人の手元にあるのでトレース情報とかまでは見れてません、まさか16bit=65535byte までしか一回で通信できないとかあるのかな・・・、別の問題なんだろうか、とりあえず分割で 回避しておこうと思います。
サーバ側は?
>>348 read()は必ずしも一度にファイル終端まで読み込むとは限らない。
1回のread()で済まそうとしてるのが原因ではないかと思うんだが。
while()で回しながらバッファに読み込んでいく方法はやってみた?
ファイルを分割する必要が無くなるし、試してみる価値はあると思う。
少なくともDocomo機種は、全部read1回読みでOKだよ
>>351 Content-Lengthが取れないケースが有るから
Docomoであろうがなかろうが1回じゃ問題あると思う。
>>353 Content-Length返さないサーバ(CGI)はダメよ、なんてことが書いてあった気がするな。
機種依存がある携帯はダメよと言っても通じないのが世間様。
スイマセン、 iアプリでQRを読むプログラムを作ろうと思っているのですが、 iアプリでCodeReade機能を呼び出して、それに撮影した画像を渡して、その画像に写っているQRを読み取る事は出来ないのでしょうか? 呼び出してみたのですが、どうしてもQRをカメラから読み取ろうとして画像を渡すことが出来ません。 こうしておけば他人に見られたくない情報をQRにして、画像で持ち歩けると思ったのですが。 やはりコレは無理なのでしょうか?
>>356 QRコードに生でデータ書くの?
それだと結局リーダ持ってる人には見られると思うけど
暗号化していれてアプリで復号するとしてもQRコードで
保存しておく意味はまったくないよね
>>353-355 アプリが接続できるのは自鯖だけ(トラステッド除く)なのだから、
きちんとContent-Length返すようにしておけよw
古い端末はContent-Lengthを返さないと、そもそも読めなくなるしな。
359 :
デフォルトの名無しさん :2006/05/03(水) 00:21:02
>>359 少し見てみたが、Cameraと同様にCodeReaderもネイティブアプリを呼ぶ形だと思う
"iアプリからのコード読み取り"の表現がまずいのかもしれんが、
"iアプリにバーコードデータの文字列を渡すことも・・"の部分で、
getStringやgetResultTypeで結果を参照できることが言いたいんだとおも
アプリに変化もリザルト見れば変えることは簡単だろ
361 :
デフォルトの名無しさん :2006/05/03(水) 18:22:52
バージョンアップメソッドについて質問です・・・・ 今、start()内にてバージョンアップメソッドを 定義しているのですが、なぜかバージョンアップが 完了したにも関わらず何度も何度も「バージョンアップ しますか?」というダイアログが出力されます・・・ バージョンアップの無限ループといった感じです。 何でこんな風になるのでしょうか・・・ 知っている方がいらっしゃったら教えてほしいです。。。
362 :
デフォルトの名無しさん :2006/05/03(水) 18:52:02
>>361 バージョンアップが必要か否かの処理が対応してないから
ただlaunchだけしてれば、そんな動きしてしまう
363 :
デフォルトの名無しさん :2006/05/03(水) 20:02:50
>>362 さんへ・・・
どのように制御すればよいのでしょうか。。。
364 :
デフォルトの名無しさん :2006/05/03(水) 23:39:41
365 :
362 :2006/05/04(木) 00:18:44
>>363 漏れは移動機側のSPとHTTP使って鯖と比較をしてる
366 :
デフォルトの名無しさん :2006/05/04(木) 00:44:54
>バージョンアップの無限ループ ダイアログの[いいえ]選択時の処理もできてないんじゃね?
367 :
デフォルトの名無しさん :2006/05/04(木) 00:52:51
おまえらフルブラウザ作れよ
368 :
デフォルトの名無しさん :2006/05/04(木) 00:54:13
>>366 バージョンアップ確認のダイアログは、ネイティブで出しているはずで
Yes/Noの選択結果もJavaには通知されない仕様だったとおも
>>367 どのへんからがフルになるのかがわからん
>>368 アプリに制御が返ってくるのは『いいえ』を選んだときのみだすよ。
『はい』ならアプリは終了
test
372 :
デフォルトの名無しさん :2006/05/10(水) 20:51:42
FOMA900以降用アプリ作ってみてるんだけど、 通信中にTASKキーを押してメニュー表示させるとエラーが帰ってくるんだけど、 これって全機種共通仕様なの?
>>372 「エラーが帰ってくる」とは?
どんな例外が出るか、とか、どのAPIの戻り値がエラーになる、とか、
エスパー以外にもわかる情報を書け。莫迦。
>>372 VMが一時停止するから接続も中断する。
376 :
デフォルトの名無しさん :2006/05/11(木) 00:00:53
resume();
初歩的なものかもしれませんが質問です。 スクラッチパッドからの読み込みでUIExceptionのgetStatus()が0のエラーが発生しています。 UIExceptionでステータスが0のものはSTATUS_FIRSTとUNDEFINEDの2つがありますが、 これらはどういう意味のステータスなのでしょうか? エラーステータス未定義のエラーとか、ナンジャラホイです。
エスパーきぼんぬですか
>>377 スクラッチパッドの読み込みでUIExceptionって、、どのメソッドででてるの?
まずどのメソッドで例外が発生してるのかつきとめろ。話はそれからだ。
質問があります、例えばアプリからブックマークの登録などしようとすると、システムのダイアログが出て ブックマークに登録するかの確認が出ますが、そのダイアログに答えてアプリに処理が戻って来てから getKeypadState()で値を得るとぐちゃぐちゃというか、ダイアログ出てるときのキー入力のゴミを含めて 値を返してるようなんですが、何か回避策はありませんか?。 しかし、妙なことに自分で任意にダイアログ出して確認を得た後に、システムのダイアログが出てきて アプリに戻る時は正常な値が返ってきます・・・・、プログラム自体はいじらずに自分でダイアログ表示を する所をコメントアウトしたりしてるだけなので、どうもシステムが出すダイアログが出ると何か副作用でも あるのかなと・・・・。 自分でダイアログ>システムダイアログ>getKeypadState() は正常 システムダイアログだけ>getKeypadState()は異常 となります、何か回避策ありましたらよろしくお願いします。
>>380 ダイアログが出るような処理の後は、getKeypadState()で
全てのキーが放された状態になるまで待つ。
382 :
380 :2006/05/14(日) 15:27:22
>381 ありがとう、できました、処理の後ってのはダイアログが出た「後」じゃなくて ダイアログが出る前の処理の「後」って事だったんですね。 確かにダイアログ表示前にキーが開放されるの待ったらうまくいきました、どうもです。
質問です。 スクラッチパッドに画像を保存/読込する方法なのですが 以下の読み込み部分でなぜかエラーが発生しています。 エミュレータでは正常に動作するのですが、実機でuse()を行うとNO_RESOURCESの例外が吐かれます。 パッドへの保存は正常に行われているのですが・・・ MediaImage mi; mi = MediaManager.getImage("scratchpad:///1;pos=0"); mi.use();
>>383 保存できてないからNO_RESOURCES出てるんじゃない?
スクラッチパッドのサイズ指定して無いとかどうよ?
scratchpad:///0;pos=0
>>385 >>386 サイズや場所の指定、0じゃなくて1なのも分かってるので問題ありません。
>>384 エミュでは保存されてました。
とすると実機だとスクラッチパッドに保存されていないこと問題ということですか。
ありがとうございます。
実機の機種は?
>>387 スクラッチパッドに書き込む時、
OutputStream#write(byte[])だと
サイズと端末によっては変なデータが書き込まれたことがある。
不具合なのか仕様なのか俺の使い方が悪いのかわからんけど。
OutputStream#write(int)の方使ってみてくださいな。
>>388 N902iです
>>389 byte[]でもintでも、実機でエラー発生しました。
どこが悪いのか・・・
いっそのこと、ソース載せます。
//----- write -------------------------
String url = IApplication.getCurrentApp().getSourceURL()+name;
HttpConnection http = (HttpConnection)( Connector.open(url, Connector.READ, true) );
http.setRequestMethod( HttpConnection.GET );
http.connect();
InputStream in = http.openInputStream();
OutputStream out = Connector.openOutputStream( "scratchpad:///1;pos=0" );
byte[] data = new byte[128];
while( (length=in.read(data)) != -1 ) {
out.write(data,0,length);
}
//----- read --------------------------
MediaImage mi = MediaManager.getImage( "scratchpad:///1+;pos=0" );
mi.use();
outを一度closeしてみるとかどうよ?('-'*)
>>390 MediaImage mi = MediaManager.getImage( "scratchpad:///1+;pos=0" );
この+はコピペミスなの?
394 :
383 :2006/05/15(月) 19:04:47
>>391 どのタイミングでclose()するのですか?
一応データ読み書き終わったらHttp、In、Out全部close()していますが。
>>392 P901iでも同じ現象が起きてるので、機種依存問題ではないと思います
>>393 書き込みミスです。ソースにはそこに変数が入ってたので、その消し忘れ。
俺の経験から言って こういう場合は大抵イージーミスだから、 ソース削ってどこがまずいか調べるか、 関数をゼロから書き直してみると動く予感。
ADFの設定はちゃんとしてる?
397 :
デフォルトの名無しさん :2006/05/15(月) 19:42:00
まずはwriteした後ScratchPadの内容吐き出す等して Write/Readのどちらか切り分けだろ つか、例外を覚えることの方が先のような気もするが。
>>394 >書き込みミスです。ソースにはそこに変数が入ってたので、その消し忘れ。
まさかこんな風に?
MediaImage mi = MediaManager.getImage( "scratchpad:///1+offet;pos=0" );
スレ違い気味ですが、教えていただけると幸いです。 皆さんはJavaを勉強するにあたり、どのような本を読みましたか? お勧めの本などがありましたらご教授いただきたいです。 とりあえずiアプリゲーム開発テキストブックは買ったのですが、 肝心のJavaはどうしたものか、と思いまして。
最初からCをある程度かじってたから 本は一冊も買わないでネットで済ました
>>390 while( (length=in.read(data)) != -1 ) {
out.write(data,0,length);
}
ここがおかしいじゃんか。
whileで繰り返し読み込みが発生しても
常にバッファの先頭へ書き出してるじゃん。
ソースを読み違えた。>401は無視してくれ。
>>390 getImageする前に、とりあえずOutputStreamをclose()しておけって
>>390 確認1.
"scratchpad:///1;pos=0" としているが、
ADFにはスクラッチパッド0と1のサイズをきちんと記述しているよな?
確認2.
>while( (length=in.read(data)) != -1 ) {
実機で、ここでちゃんとdataに値が入ってる?
確認3.
クローズはout、inの後にhttpにしてるよな?httpは最後だぞ。
try-catchで括っていればちゃんと例外発生で落ちると思うけど。
ストリームの閉じ忘れがどっかにある、に一票。 実機だと、機種によっては5つぐらいまでしかストリーム開けないのがあったはず。
>>390 はせっかくソース晒してくれたけど
スレに書き込むからって半端に省略しない方がいいな。
close()やtry{}catch{}をまさか本当に記述してないわけじゃないだろ?
いいから20行くらいでズバッとコピペしてみろって。
じゃなきゃ、ずばっと削ってその上で 再現できるコードを書くくらいまでやってほしい。
>406ではお言葉に甘えて、読み書き部のソース丸ごと・・・ //-- read method ---- public void imageSave(int offset, String name) { HttpConnectionhttp; InputStreamin; OutputStreamout; byte[]data; intlength; try { String url = IApplication.getCurrentApp().getSourceURL()+name; http = (HttpConnection)( Connector.open(url,Connector.READ,true) ); http.setRequestMethod(HttpConnection.GET); http.connect(); in = http.openInputStream(); out = Connector.openOutputStream("scratchpad:///"+offset+";pos=0"); data = new byte[128]; while ((length=in.read(data)) != -1 ) { out.write(data); } out.close(); in.close(); http.close(); System.gc(); } catch (IOException e){ } } // imageSave()
>>408 を、paintメソッド内で起動時に数回呼び出しています。
//--- paint method -----
public void paint(Graphics g) {
g.setColor( Graphics.getColorOfRGB(0xFF,0xFF,0xFF) );
g.fillRect( 0,0, getWidth(),getHeight() );
if( !once ) {
once = true;
if( !isDataExist() ){
imageSave( 1, "SET1.jpg");
imageSave( 2, "SET2.jpg");
imageSave( 3, "SET3.jpg");
imageSave( 4, "SET4.jpg");
}
MediaImage mi;
try {
mi = MediaManager.getImage("scratchpad:///1;pos=0");
mi.use(); // ここでエラー
} catch(UIException e) { }
} // if(once)
} // paint()
paint(゚∀゚)
>>410 描画時に読み込みたいのでpaint()内に処理を埋め込んではいますが、
別途に初期化メソッド作ってコンストラクタ等で呼び出しても同じエラーが出ます。
>>408 まず、finally{}で、確実にストリームとコネクタを閉じること。
次に、paintメソッド内で描画以外の処理を呼ばないこと。
(そもそも、paintは使わないほうがいい)
>while ((length=in.read(data)) != -1 ) { >out.write(data); >} out.write(data,0,length); じゃないとまずい。 lengthは必ず128または-1が返るとは限らない。 100とか返ってくるときもある。
>>408-409 >>410 >>412 で指摘されているが、paint()内から通信処理を呼ぶのは論外。
paint()に時間がかかる通信処理を含めてはダメ。
これはiアプリ的に常識レベルの話で、開発ガイドにもpaint()は1秒程度で抜けろと書いてある。
(余談だが、コンストラクタで通信処理を呼ぶのも当然ダメ)
paint()はソース内でrepaint()で明示的に描画要求したとき以外にも
システムから暗に呼ばれている。
例えばCanvasを新規に表示、または切り替えた直後とか。
そのときに通信処理が実行されてしまうようではダメダコリャー
>>412 でpaint()使うなって言ってるのはこの辺の事情も含めてのことだろう。
(同期処理として描画したいってのが主な理由だろうが)
>(余談だが、コンストラクタで通信処理を呼ぶのも当然ダメ) こりゃ蛇足だった。 当然ダメ、ってこともないな。でもあまりやらないだろうけど。
> mi.use(); // ここでエラー ここで何が原因で例外起こしてるか自分で調べろ paintの処理が重いと…の話だが、 言ってること正しいが争点違うだろ
>>408 ADFのスクラッチパッドのサイズ指定の記述を教えて。
xxxxx.jadファイルの
SPsize =
の行をどう書いてる?
つーかみんなは InputStream#read(byte[]) とか OutputStream#write(byte[])とか使えてる? 何度かN系の端末で先頭の1バイトしか書かれなかった事が有った (エミュや他の機種では動く)ので、 InputStream#read(int) と OutputStream#write(int) しか使わないようにしてるんだけど。
419 :
418 :2006/05/16(火) 14:24:10
ミス。 × InputStream#read(int) ○ int InputStream#read()
>>418 InputStream#read(byte[]) は問題なし。
OutputStream#write(byte[])は使わないで
OutputStream#write(byte[] b, int off, int len)を使えば問題なし。
>>418 漏れはread write ともに (byte[], int, int) しか使ってないなぁ
>>421 漏れも。
おかしな挙動したこともないし。
1バイトしか書かれなかったら1が帰ってくるんでそ?
>>412-415 ありがとうございます
getGraphics()で書き直してみました。が、未だに上手くいってない状況です。
>>416 まだNO_RESOURCESエラーであるとしか分かりません iliorz
>>417 SPsize = 30000,30000,30000,30000
画像ファイルより数KB多めに書いてます。
現在、実機側でスクラッチパッドの中身を確認してます。
>>423 SPsizeについて書き間違いです。
0は他のクラスで、1〜4を画像格納場所として使っています。
SPsize = 2000,30000,30000,30000
↑ 0, 1, 2, 3 ひとつ足りなぁ〜い
>>423 >getGraphics()で書き直してみました。が、未だに上手くいってない状況です。
それで書き直すのはいいとして、描画関数の中で通信処理を行うことがそもそも
気持ち悪いとは思わないの?
>imageSave( 4, "SET4.jpg"); の時に >out = Connector.openOutputStream("scratchpad:///"+offset+";pos=0"); で例外発生、catch節でクローズ処理してないからHttpConnection とInputStreamが 閉じられないでNGってわけだぁね。 何だ命令通りに動いてるじゃん
計算は展開させて方が実行速度は速くなるのでしょうか? gra.drawString("test", 210+5, 90 + 14 + 1 * 13); と gra.drawString("test", 215, 117); では後者の方が早いのでしょうか?
>>426 まぁまぁ。最初のうちはよくある話だよ。
他にもprocessEvent()内に通信やスクラッチパッド操作を書いちゃうとか。
何本か作っていけばわかるようになるって。
>>428 その程度の計算コストは無視していいんじゃないかな。
アセンブラで1クロックのしのぎを削ってるわけじゃないし。
計算しないって・・・。 逆コンパイルしてみればわかる。 定数畳み込み。
上でダイアログの話出てたけど、自分で意図してこれからダイアログがでますって いう処理になら対策のしようもあるとは思うんだけど、ユーザーが不意に通話終了ボタンとか 押して出るダイアログの処理というか検出はどうしたらいいのかな?。 通話終了ボタン押して「アプリ終了しますか」ダイアログ出ると音楽が途切れてしまうのを なんとかしたい、自分でダイアログ出ると分かっている分には曲が途切れたとこからダイアログ 閉じたら止まったとこから再開はできるんだけど、通話終了キーが押された時にはあきらめて曲の 最初からまた鳴らすようにするしかない?、内臓アプリなんかだとちゃんと途中から 再生が始まってるみたいだから何か方法あるとは思うんだけど・・・・、かといって電源キーの mediaActionであれこれやってみてるんだけど、stop検出してplayで最初から再生する しか方法ないんですかね?。
433 :
432 :2006/05/17(水) 00:28:03
うわ文章切れてたorz 思うんだけど、かといって電源キーの (誤 思うんだけど、かといって電源キーを検出する方法なさそうだし (正
試したことないからわからないけど suspend呼ばれたりしない? 呼ばれるならサスレジのとこで対応できそうだが…
435 :
434 :2006/05/17(水) 00:42:40
漏れおかしなこといってるわ 吊ってくる…
>>430 >まぁまぁ。最初のうちはよくある話だよ。
「最初のうち」かどうかの問題じゃなくて、センスの問題。
>他にもprocessEvent()内に通信やスクラッチパッド操作を書いちゃうとか。
こっちはともかく。
さすが最初からセンスが身に付いてた>436は格が違うね
センスとか初めによくやるとかじゃなくて、マニュアル読まなかったのが問題。
質問です 今回、初めて公式サイト用にiアプリの配信手配したのですが アプリのダウソはできてもアプリ内の通信処理で セキュリティエラーが発生して困っています。 同じアプリのURLだけを変更したものを勝手サイトで試すと 問題なく通信できます。 通信先はjam/jarと同じところにある画像ファイルです。 公式サイト内からの配信でjamの記述や接続URLの内容等で 気をつける点はありますか?
URLを作る時は IApplication.getCurrentApp().getSourceURL() の相対で記述するといい
>>440 レスありがとうございます
AppParamからURLを渡しているのですが
getSourceURLで取得した値と違いが出るということでしょうか。
>>439 公式アプリ作るくらいのレベルなのなら例外を拾って調べるくらいはしなよ。
公式だろうが普通のリソース取得の部分はなんら特別な事は無い。
パッと思いつくのは
1:URLの記述間違い
2:URLが長すぎる
3:置いているサーバーの設定がおかしい
とりあえず携帯で例外吐き出して中見てみなさい
>>442 レスありがとうございます
仰るとおりです。
勝手な都合ですが、アプリの差し替えが数日後になりそうなので
getSourceURLの値を確認することが今すぐできません。
不安なので事前にできる範囲で調査していました。
勿論、例外は表示しています。
SecurityExceptionで接続URLは意図したものになっています。
勝手サイトでは問題ないが公式だとダメ、という感じなので
何か特別な設定が必要なのかと思ってしまいました。
とりあえずサーバー側の設定に問題がある可能性が高い
という方向でユーザに話してみます。
セキュリティ例外で「サーバに問題がある」なんて話したら 今後永久に信頼を失う恐れがあるので、 うまくごまかして話さないと・・・
オチ予想 URLがIPアドレス
446 :
デフォルトの名無しさん :2006/05/17(水) 21:34:42
AppParamを渡してる→Jarと異なるURLへアクセスと期待
447 :
439 :2006/05/17(水) 21:51:05
まだ解決していないのですが どうやらサーバーに古いアプリが残っていて アップロードしても何故か更新されない状態のようです。 ドコモのサーバーはキャッシュされることはないらしく(本当?) アップロードしても更新されないなんてことはないらしいのですが 他のサイトで試すと成功したらしいので 私的には他の原因が思いつきません。 とりあえず私に責任がなかったようで助かりました。 完璧にスレよごしました レスくれたかた、ごみんなさい
448 :
デフォルトの名無しさん :2006/05/17(水) 22:45:02
アップロードしてもサーバー側が更新されない? アップロードしてもjarのみ差し替えで、移動機側ではアップデートできない? 後者ならテラハズカシス
449 :
439 :2006/05/17(水) 22:54:48
>>445 >>446 >>448 そんな、そこまで初心者扱いされるとは・・・
くだらない質問したので仕方ないか(苦笑
このスレを2年前から全部読んでるので
だいたい質問に出そうな間違いは抑えてますよ
450 :
デフォルトの名無しさん :2006/05/17(水) 23:05:03
>>449 質問の内容がそれだけ程度が低いわけだ罠w
トラステッドならURLではじく仕様もあったような気がしたが
もまいさんの質問じゃ分からんよ
>>450 まったくもって、そのとおりです(笑
ありえない問題が発生して少々取り乱してしまいました
おはずかしい
いつものようにロムにまわります
あー、そうだ、これ言うと誰だか特定されるかもしれんが、 普通のアプリをバージョンアップしてトラステッドにすることできないってさ。
個人的には
>>447 に書いてある話の顛末が知りたい。
454 :
デフォルトの名無しさん :2006/05/19(金) 00:08:50
DojaでArrayList使えないの?
>454 使えない。開発ガイドを「Collection クラス」で検索してみ。
456 :
454 :2006/05/19(金) 07:35:44
>>455 ありがとうございます。
いま電車なので確認できないのですが、
後程調べてみたいと思います。
>>453 おそらく、ミラーリングを使ったサーバーUPDATEシステムなサーバーだったんじゃねーかな?
Aサーバーのフォルダの中身を、Bサーバーのフォルダに定期的に上書きするタイプ。
仕事で一回相手したことある。
んで439はBサーバーに直接UPしてたと。
458 :
デフォルトの名無しさん :2006/05/19(金) 20:47:40
趣味でiアプリを書き始めてる日曜プログラマです。 ゲーム内部のロジックを考えるのは楽しくてはかどっているのですが、 ふと、スタート画面が無いことに気づきましたorz スタートメニューって皆さんどのように実装されてますか? スタート・コンティニュー・設定・終了の4機能を持たせたいと考えているのですが…
>>458 タイトル画面で決定ボタンを押すと、メニューが開くようにしてる。
>>458 こうした方がいいっていう答えはないから
>>459 の他にも
スタート・コンティニュー・設定・終了を文字なり画像なりで
タイトル画面に表示して方向キー+選択キーで決定させるとか。
スタート・コンティニューを方向キー+選択キーで決定させて、
設定・終了をソフトキーに割り当てる、とか。
方向キーだけでなく数字キーでも選択できるようにするとか。
タイトル画面の絵に合わせて何でも自由にどうぞってなもんだよ。
461 :
デフォルトの名無しさん :2006/05/19(金) 21:17:15
>>459 なるほど。参考にさせていただきます。
>>460 複数の手法の紹介をありがとうございます。
>スタート・コンティニュー・設定・終了を文字なり画像なりで
>タイトル画面に表示して方向キー+選択キーで決定させるとか。
このあたりのサンプルコードとかどこかに無いでしょうか。
462 :
デフォルトの名無しさん :2006/05/19(金) 23:03:32
Eclipse3.1.1とj2sdk1.5の環境なのですが、Stringオブジェクトにsplitメソッドがありません。。。 splitメソッドは無くなったのでしょうか?
>>462 DoJa 1.0 のころからずっと無かったと思うけど
>>463 そうだったんですかorz
文字列の分割とかどうしてますか?
どうしても必要なら、indexOf と substring でやります。
>>465 やはりそうなりますか。。。
速度が犠牲にならないか心配ですが、とりあえず実装してみてから考えてみます。
ありがとうございました。
なんか、CLDCもDoJaも知りません、ガイドも読んでません、で いきなりソース書き始めました、って感じがありありと… これからiアプリ組もうとしてる人は、ただ漠然と 「iアプリはJavaで組むんだ、へぇ」とか思うんじゃなくてさ、 「ケータイアプリを組むにはJavaのサブセット(部分集合)を扱うんだ」 「じゃぁどんな機能制限があるのか」 「逆に、モバイル向けにどんな拡張があるのか」 とか、開発環境の前提となるような最低限知っておくべきことを押さえてから ソース書き始めた方がいいよ。 知識として全部理解してから始めろってことじゃなくて、 どういう開発環境のもとで作業するのかを知っておかないと困るってこと。
468 :
デフォルトの名無しさん :2006/05/20(土) 09:55:38
このプログラムは、P902iを始動しますが、IDKDOJA4.1エミュレータで失敗しま す。 なぜですか? UseStorage=extはADFに書かれています。 StorageDevice sd = StorageDevice.getInstance("/ext0"); AccessToken at = DoJaStorageService.getAccessToken(DoJaAccessToken.ACCESS_UIM, DoJaStorageService.SHARE_APPLICATION); try { card = sd.getFolder(at); SDBindingEncryptionAttribute sdb = new SDBindingEncryptionAttribute(); sdb.setEncryption(true); FileAttribute attr[] = new FileAttribute[1]; attr[0] = sdb; File f; try { f = card.getFile("storage"); } catch (FileNotAccessibleException ex) { f = card.createFile("storage", attr); } data = f.open(File.MODE_READ_WRITE); } catch (EOFException e) { e.printStackTrace(); }
なぜでしょう?
>>466 splitはJava1.4から。iアプリは1.3相当。
splitは正規表現を使うのでsubstring+indexOfの方が速い。
>458 「失敗する」じゃわからない。もっと具体的に。 try-catchしてるくらいだからどの行が原因かくらいは自力で突き止められると思うが。
>470 1行目、説明を間違えてるよ。 iアプリはJ2SEのAPIを丸ごと使えるわけではなくて CLDCというコンフィギュレーション(制限、条件、くらいの意味)のもとで使う。 で、CLDCのAPIリファレンスを見ると、Stringクラスにsplit()という メソッドは含まれていない(これがつまり制限された部分)。 だからsplit()は使えないということ。 DoJa4.0未満はCDLC-1.0、DoJa4.0以降はCLDC-1.1が適用される。
>>461 >>スタート・コンティニュー・設定・終了を文字なり画像なりで
>>タイトル画面に表示して方向キー+選択キーで決定させるとか。
>このあたりのサンプルコードとかどこかに無いでしょうか。
そんぐらい、サンプルコードなんかいらんだろ…
474 :
432 :2006/05/20(土) 18:08:58
遅レス >434 サスペンドで使えました、電源キーのは1で戻ってくるんですね、ありがとうございます
Webページからiアプリを起動させるにはどうしたら良いですか? あ、開発者じゃ無いです。自分用のホームを作成しようかと思ったのですが。 それと誰かjiglet作って下さい(><)
ウィズ風RPG作りたいんですけど、iアプリ用のプログラム乗ってるサイトありましたら教えてください。 (探してるけど見つかりません;;)
>>477 その時点でお前には無理だと思うよ。
いやマジで
>>477 誰かに全部作ってもらって、アイテムとかモンスターの名前だけ
自分の好きなように書き換えなさい。
お前にできるのは、そのぐらいが限界だよ。
>>477 ウィズ風RPGのiアプリ用のプログラム乗ってるサイトを探してるんだとしたら
そんな規模のサンプルが都合よく見つかるわけないだろ。なめてんのか。
最終目標がウィズ風RPG作ることで、それはそれとして
初めてiアプリに挑戦しようとしているのでサンプルが載ってるサイトを探してる
というなら、サンプル探すのもいいが前段階としてプログラミング解説の本を読んだり
開発ガイドを理解できるようになることが先。地道に頑張るしか。
で、何かしらのiアプリのサンプルが載ってるサイトを見つけられない
というなら、それは検索の仕方が分かってないってこと。
プログラミングの勉強初めて1週間ちょいで欠落してるものがたくさんあるみたいなんですよね。 例えば、 シューティングゲームにチュートリアルを入れる方法で、 (勉強した中で) ・ダイアログ ・キーパッドステイト ・シーン を使うとして、どやってくみこむのか。 シーンの変数ってなんでどういう風につけたらいいのかとか。 今の目標がウィズだから、ウィズのがあればはやいかなと思ったんですよ(´・ω・`)
あったとしても君じゃ読めないでしょ 手、抜く前に勉強しなさい
483 :
デフォルトの名無しさん :2006/05/21(日) 22:57:18
初めてiアプリを作ろうと思います。 Doja3.0 左ソフトキーが押されたら、小さなパネルが出てきて、そこでオプション設定が出来るような感じにしたいのですが、 そのパネルの描画方法が解りません。。 左のソフトキーが押されたら、パネルを描画する関数を実行するという流れまではつかんだのですが、 まずその基礎となる小さなパネル(120*100ぐらいのを左下にちょこんと)はどうやればよいのでしょうか?
自分で書けば? ハナクソヲクラエ(・3・)ノ===・
>>483 プログラム組んでるなら最低限APIリファレンスを確認してよ。
Graphicsクラスのメソッドを見ればそんな質問出ない。
drawImage()で画像を描いたり、
drawRect(),fillRectを駆使してそれらしく描いたり、
そんな方法がすぐに思い付くでしょ。
>>483 まあ、パネルってのがPanelのことであれば、
そんなことできないから低レベルでがんばれってことになるな。
488 :
483 :2006/05/21(日) 23:40:50
Cambasクラスで書いてみます。 Graphicsで書くとすごく重くなる気がするので。。
プギャーって書かれたいのか? やってから言え
ここは初心者スレなのか。初心者スレなのか 考える気がないならなんとかツクールでも使っててくださいよ
向上心のある奴には教えたい。 向上心の無い奴には教えたくない。 わかるだろ? まずは「iアプリ 初心者」でぐぐれば出るようなサイトくらい目を通して欲しい。
493 :
デフォルトの名無しさん :2006/05/22(月) 17:33:34
フレーム速度について質問させてください。 スレッドの最初に count1 = System.currentTimeMillis(); 最後に count2 = System.currentTimeMillis() - count1; if(count2 <= 50){ try{ Thread.sleep( 50 - count2 ); } catch ( Exception e ) {} } として、端末ごとの速度の違いをなくそうとしているのですが、 どうしても速い端末は速く、遅い端末は遅くなってしまいます。 待ち時間はかわらないはずなのに。 どうしてでしょうか?
Thread.sleepは精度が低いから
495 :
493 :2006/05/22(月) 18:22:13
>>494 そうですか、納得しました。
できるだけ近づけるということで進めようと思います。
ありがとうございました。
>>493 そもそも、1フレームあたりの処理に50ms以上かかってるなら、遅い端末は
どうあがいても遅いままだよ。
あと、Thread#sleep() は使わずに、空ループをぶん回して待った方がいい。
電池とか気にスンナ(どうせバックライトに比べれば大したことない)
さらに言うと、System#currentTimeMillisの分解能も機種によって違うので、
そのへんもなんか考えて。
497 :
デフォルトの名無しさん :2006/05/22(月) 21:28:07
>>496 > あと、Thread#sleep() は使わずに、空ループをぶん回して待った方がいい。
これ初めて知った。常識なの?
そういうやり方もあるってだけでしょ。 数ミリ秒が致命的な影響出るゲームとかならやるべきってだけで。 Thread#sleep()使ったって機種依存しないメインループ作れるよ。 493は精度の問題がクリティカルに出るメインループってだけのお話。
499 :
デフォルトの名無しさん :2006/05/22(月) 21:59:20
そうなのか。そういうフレームワークが苦手だorz
>>496 空ループぶん回しても、コンテクストスイッチが発生することって保証されてるんだっけ?
スリープ入れないとキー入力こぼさない?
MediaImageのImageオブジェクトを複製して別のオブジェクトにしたい。
>>293-295 のやり方ではcreateImageした時に背景色が透明色ではないので
透過GIFが無効になってしまう。
getRGBPixelsでコンストラクタにint[]を渡すコードも書いてみたけど
UnsupportedOperationExceptionが出てしまって使えない。
(MediaImage.getImage().getGraphics()でコケてるっぽい)
clone()があればすぐ済みそうな話なんだけど、どうしたら良い?
>>502 透過gifのImageオブジェクトを透過を生かしたまま複製する方法はない。
透過gifのImageオブジェクトを複製して別のオブジェクトにする必要性を見直す。
>>502 複製もできないし、getGraphicsして描画したりもできないので
安心して他の手段を考えてください。
空ループ方法はVMがメモリを整理する時間すら奪うから注意がある。 一定処理でループできるようになるが強制的に内部でGC呼ばれると恐ろしく止まる機種がある。 あくまでなる機種があるってことでならない機種もある。
506 :
502 :2006/05/23(火) 11:42:55
Phone.call() って、色々悪用できそうで怖くね?
>>506 どうしても1つ作りたいなら
MediaManager#getImage()からやり直しだね。
510 :
509 :2006/05/24(水) 00:31:17
すまん。 1つ→2つ
511 :
502 :2006/05/24(水) 06:58:51
>>509 やりたかったのは、ベースとなる透過GIFに対して、
プログラム側で加工した状態(フォント描画等)で、
数種類のImageオブジェクトを持っておきたかったんだよね。
そういう意味で504の回答は痛恨の一撃だったなぁ。
>>511 メモリ上に透過させたい画像の無圧縮GIFファイルを一度構築して、そこからMediaImage化してみるとか
>>511 透過イメージは、それ専用のオプションAPIがある。
だが、サポートしている端末はまったくと言ってよいほど無い。
502がやりたいことは、現状不可能と考えていい。
512のアイデアは「パレットチェンジ」程度ならいいが、まともに画像を描きかえる(文字を重ねるなど)をするなら
GIFファイル化のアルゴリズムだけでアプリの容量をばっちり食う。
お勧めできない。
>>511 よくアプリにある透過ウインドウみたいな奴?
createImageで、透過色まっさらのImageを作れるだけでいいんだ。 それだけでいいから、標準APIに組み入れてくれないかねー。
int配列をImage化する機能があるのだから、自前で 1ドットずつ処理していけばいいんじゃね?
517の続き もちろんスピードが要求されない場面での使い方だけど。 あと、int配列とImageの変換まわり、エミュレータがむちゃくちゃ遅いんだよな。 240*240の画像をint配列にして、Imageに戻して描画。 ってだけで30秒くらい固まる。 いつ直してくれるんだ。
>>518 30秒も固まらんだろうwエミュは。
俺の環境ではエミュではさほど落ちないぞ。
ただ実機では実用に耐えれない速度だがな。
やりかた次第だろうか?
901以降ならこれで出来ないの? g.setColor(g.getColorOfRGB(rr,gg,bb,alpha)); g.fillRect(x,y,w,h);
>>520 おぉ。リファレンスを読む限りだと行けそうな気がするな。
透過が出来る。
背景が透明なキャンパスを作れない事が問題なんだけど。
>>519 いや、真逆。
エミュだと30秒固まる。
実機だと、505iでもFPS8くらいは出る(リアルタイムアクションには無理だが)
>>526 「透過の色で上書きする」んじゃなくて
「指定した色を指定したアルファ値でブレンドする」だけなので
白のキャンパスの上にアルファ0の色でfillRectしたら白い色のまま。
>>525 む、それはそっちの方が羨ましいな・・・。作り方の違いなんだろうか。
2Dのアプリでスポットライトみたいな演出(円を動かして内部の色を明るく変更する)
を作ったんだがあまりに実機で遅すぎて廃止した・・・。エミュじゃ早かったんだが。
>>520 >>526 524・527の答えが正解。
イメージを作成した段階で白で埋め尽くされている以上
アルファ値使おうが透明にはならない。
透明なイメージを作成できるだけでかなり違うんだがなぁ・・・なんでないのやら。
>>528 俺も自作拡大縮小回転ライブラリ作ったこと有るけど、
Athlon2500+のマシンで処理速度は 902系>エミュ>900 て感じだったよ。
30秒も固まることはなかったので作り方の問題のヨカン
>>529 作り方もなにも、Canvasから
getRGBPixels
して
setRGBPixels
するだけなんだが…。何も変更を加えなければ通算2行の動作プログラム。
エミュだとばっちりフリーズ状態。はて…。
今試した。おお。早くなってる。
いつのまにかDOCOMO直したのかな。505の頃のエミュでやってみた。
早い。
orz俺の以前の環境がおかしかったようだ(当時だってPen4 1.6GHzとかだったんだが…)
getRGBPixelsが激遅ナンデショ
AudioPresenterクラスで、setAttribute(SET_VOLUME,vol)って感じで 音量を変更させようと思ったのですが、何故か辺変更できない音があります。 N900i→音量変更できた。 F900i→MIDI系変更できた。ボイス系変更できない。 ボイス系の音ファイルの音量が変更できないのは、端末の依存によるものでしょうか? それとも、プログラムの問題?もしくは音ファイルの問題? いまチャンネルが2つでやっているんですが、チャンネルを入れ替えてもダメでした。 setAttrしてからplayさせてもダメでした。 いろんな状況を試したのですがうまくいかないので、知ってる人はアドバイスください。
>>533 端末の仕様
最近のはだいたいMIDI系もボイス系も変更できるけどね
流れに乗り遅れたんだけど、空ループについて質問! スレッドA:ひたすら処理 スレッドB:数ms〜数sec指定で的確に動作 こんな場合、スレッドBでの待合にも、空ループが一般的? (スレッドB処理時以外)可能な限りスレッドAに動作してもらいたくて、 sleep使ってたんだが(´・ω・`) 空ループが無駄にCPUを占有したりしないのかな? それを防ごうとスレッドAのプライオリティを上げると、 スレッドBの動作が遅れたりしそうな予感。
割り込まれたり多少遅れても平気なように作るのが一般的じゃないかと。 思うに、どーせズレるものはズレるからスレッドAのみにすりゃいい気がする。 スレッドBは毎回構築&削除でいかが?
537 :
533 :2006/05/25(木) 21:25:30
>>534 900でもそんな仕様あるのかぁ・・・。ほんと中途半端だな実装。。。
いまテストしてみたら、同じファイルをF701iで再生したらちゃんと音量変更できた。
>>534 の言う通りファイルが原因じゃなかった。
ところで、こんな端末依存どこにも書いてないんだけど一般的?
それともがんばれば別の方法で回避できる問題なの?
538 :
デフォルトの名無しさん :2006/05/25(木) 21:45:41
質問です。 "#bimg.gif"というファイルをサーバーにアップして プログラムでイメージを表示しようとしたところ、サーバーからエラーが返されました。 次に"bimg.gif"という名前に変えて実行したところ普通に表示されました。 htmlなどはハイフン、アンダーバー、半角英数以外は使えないことは知っていますが "#"は使えない文字なのでしょうか、またプログラムからアクセスもできないのでしょうか?
>>538 >htmlなどはハイフン、アンダーバー、半角英数以外は使えないことは知っていますが
# はハイフンでもアンダーバーでも半角英数でもない。
というか # は URL として特別の意味があるよ。
失礼します。 フルブラウザを作ってみようと思っているのですが、 フルブラウザの作り方を解説しているサイトなどはありませんでしょうか? ぐぐるさんで「フルブラウザ」調べても評価やレビューのサイトばかりで、作り方に触れているサイトが無かったので。
541 :
デフォルトの名無しさん :2006/05/25(木) 21:59:22
542 :
535 :2006/05/25(木) 22:18:18
>>536 ありがとう!
まさか処理の提案までもらえるとは思ってなかった
ので、状況の説明をサボってました。ごめんなさい。
あつかましいですが、以下の条件を追加させてください。
@スレッドAの処理はできるだけ動作して欲しい
AスレッドBの処理は、動作タイミングを守るという
一点において、スレッドAよりも重要
B特に重要なのは、数msの動作タイミングではなく、
数secの動作タイミングでの処理
つまり、Aには終始動作してて欲しいけど、Bのタイミングを
守った動作のほうが重要なんです。
そんな訳で、スレッドBは削除できない。
(というより、1スレッドで条件を満たす処理が思い
つつかない私のスキル不足のせいですが。。。)
535に上記条件を加えた場合でも、やっぱり空ループが
デフォでしょうか?
>>542 珍しくマジレスするが、スレッドBでは:
Sleep( 目的の時刻 - 現在の時刻 - 20);
while (目的の時刻 > 現在の時刻)
; // 空ループ
目的の処理
とする。20のトコは調整して。
544 :
535 :2006/05/25(木) 23:02:33
>>543 めちゃくちゃありがとう!
まさに理想の処理だよ。
しかしまぁあっさりと。。。脱帽です。
自分の思考がsleepか空ループの2択に
なってたことに反省。
文字列が数値に変換可能かを調べたい場合、 Integer.parseInt() を NumberFormatException でキャッチするしか方法なし? 例外使うより軽い処理はないものでしょうか。
>>535 空ループする側はyieldで積極的に別スレにCPUパワーを渡してあげないと
別スレ側がかなり遅くなっちまうぞ。気をつけろ
>>546 一番軽いのはそれだと思う。
あとは0〜9-以外が含まれてるか文字列チェック
GPSについて調べているのですが、 どうやらiアプリDXでないとできないようで、 あまり資料がありません。 どこかに、位置情報取得ができるようなサンプルとかないものでしょうか?
iアプリはじめたばっかりなのですが、 定期的にWebからデータを取得して表示させようとしてます。 Timerをつかって、定期的に読むようにしてたのですが 上のほうを読むと processEvent で通信などするべきではない とかかれてたのですが、では、定期的な通信など行う場合は どういうイベントで行うのがベターなのでしょうか?
>>550 イベントハンドラじゃなくて別スレッドで行うのが良いよ。
552 :
550 :2006/05/26(金) 18:31:56
なるほど、スレッドですか。 調べてみます。 ありがとうございました。
>>549 APIリファレンス見れば、ある程度想像できると思うが。
全然難しくないよ。
ちょいと欲しいiアプリが無いので、JAVAの知識もあることだし作っちまおうと 先ほど思い立った輩ですが、 Dojaは下位互換性はあるのでしょうか。 当方505iですがどうせならDoja4.1でやろうかなぁと。 問題無しですか?
配慮されてはいるけど、細かいところでは互換性がないところもあるよ。
556 :
554 :2006/05/28(日) 02:21:11
>>555 なんか叩かれるかなぁってちょっとビクビクしてたので安心しましたw
細かいところくらいなら問題あったときに修正することにして、4.1で行きます。
ありがとうございました!
リアルタイムにキー入力を監視しつつ、キー入力があれば入力結果を変数に代入して、 次のキー入力が発生するまでまたキー入力監視状態で処理を止めていたいのだけど、 実現するには何か良い手段ありますでしょうか?
560 :
デフォルトの名無しさん :2006/05/28(日) 18:24:38
Eclipse 3.1.2でDojaプロジェクトを作成するにはどうしたらよいのでしょうか。
一応プラグインは組み込まれているようなのですが、プロジェクトの新規作成から
Dojaプロジェクトなどは出てこず、
ウィンドウ -> 設定
でもDojaに関する設定項目はなく、プラグイン開発のターゲットプラットフォームに
プラグインが表示されるのが確認される程度です。
仕方なく、そこからcom.nttdocomo.eclipseでワーキングセットを作成し「Doja」となづけ
このワーキングセットからJAVAプロジェクトを作成すればエラーチェック等は正常に行われるようになりました。
しかし、メソッド名の補完などは行われず使いにくく実行もできません。
どなたかご教授願えませんでしょうか。
こんな感じです↓
http://www.uploda.org/uporg402774.jpg
561 :
六尺兄貴 :2006/05/28(日) 19:12:37
まずDojaプロジェクトが出てこないことにはどうしようもないよ。 \pluginsフォルダ内には、ちゃんと「com.nttdocomo.eclipse_x.x.x」フォルダはある?
562 :
六尺兄貴 :2006/05/28(日) 19:19:32
失礼。上に「com.nttdocomo.eclipseワーキングセットを作成」とか書いてるから、 ちゃんと所定の場所にフォルダはあるんだろうなぁ・・・ バージョンの違いでちゃんとインストールされてないのではなかろうか・・・ Dojaのバージョンは4.0以降ですか?
563 :
560 :2006/05/28(日) 19:27:49
564 :
560 :2006/05/28(日) 19:30:47
>>562 ありがとうございます。
Dojaのバージョンは4.1を使いました。
ごめん、俺にはさっぱりわからなす。 正常にインストールすると、新規作成ウィザードダイアログの「Java」のツリー内に 「Doja-4.1プロジェクト」ってのが見えるはず。見逃してるかもしれないから、 一応確認しといて。 あとはもう一回Dojaのインストーラを起動して、再インストールするしかないかも。
時々Eclipseがどうとかいう質問が出るな。 過去ログ探せばあれこれ書いてあるんじゃね? 俺はテキストエディタしか使って無いからわからんが(´・ω・`)
俺はeclipseごとクリーンインストールしちゃう。 なんとなく、eclipseは本体とプラグインのバージョン間依存が激しい気がする。
568 :
sage :2006/05/29(月) 10:47:31
俺はDoJaだけ削除してインストールしなおすと 出てきたが?
569 :
560 :2006/05/29(月) 23:45:12
>>560 実は同じような状況で悩んでます。
Eclipse 3.1.2 + Doja-4.1 + java1.4で(1.5だとビルドが失敗するので sun.tool.javac.mainを使えばビルドできるけど・・・)
プロジェクトの新規作成から Dojaプロジェクトは表示され、
実行していくとスケルトンな様なものはできます。
それのビルドまではできるのですが、デバッグができません。
processEventなどにブレークポイントを張って、ボタンを押してもとまりません。
それ以前に、エミュレータの携帯端末は起動するのですが、
プロジェクトを実行していません。
ためしに、作ってみたiAppを携帯のほうに入れてみたところ
問題なく動作しました。
どうすれば、デバッグができるようになるのでしょう?
あと、560さんは「入れな直したところ正常に動作」といわれてますが
どういう風に入れなおされたのでしょうか?
571 :
570 :2006/05/30(火) 17:25:22
何とか自己解決です。 Eclipse 3.1.1 + Doja-4.1 + java1.4 ですべて再インストールを行ったら、うまく行くようになりました。 問題なくデバッグも行えます。
572 :
デフォルトの名無しさん :2006/05/30(火) 17:38:02
質問です GPSについて興味があったので、調べてたのですが まず、Doja-4.0 API iappli Development Kit ユーザーズガイドをみて dojaをインストールしたのですが、 Eclipseから設定のところに位置情報編集の項目や トラステッドの設定のところにも同様なものが記述されているのですが、 私がインストールしたものにはそのような項目がありません。 また、開発者ガイドには com.nttdocomo.device.locationパッケージを利用するように書かれているのですが deviceのしたにlocation自体が存在しませんでした。 これは、通常NTT Docomoから配布されているDojaではないDojaが必要なのでしょうか?
>>572 DoJa単体でサンプルアプリ作ってビルド通れば、
Eclipseの設定の問題ジャマイカ
GPSもEclipseも使ったことないから明言できない。。。
574 :
572 :2006/05/31(水) 10:48:41
>>573 DoJa単体でできないんです。
普通に DoJaインストールすると
com.nttdocomo.device.locationパッケージは入らないみたいで。
オプションAPIってどうやれば使えるのかなと。
com.nttdocomo.device.location は、DoJa3.0にあります。 3.0 入れてやってみてください。 ちなみに、3.0は Eclipse 2.1 java1.3 なので、全部入れなおしてからやったほうがいいです。
576 :
572 :2006/05/31(水) 19:40:09
>>575 DoJa3.0入れなおしてみるとできました。
しかし、3.0ではできるのに4.1ではだめとは・・・。
4.1にオプションAPIって追加できないんでしょうか?
>>576 実機はどうなん?
過去互換は考えてると思うのだが…
>>576 開発ガイド for DoJa-4x 詳細編に、GPS(location)に関する記述はない。
DoJa-4.x各機種オプションAPI・拡張API実装状況(第3.0版)のpdfを見ると
GPS(location)のオプションAPIを実装してる端末はない。
EMU欄に(P)とあるが、これは50x用エミュレータであれば実装されているということ。
結局DoJa-4.xでGPSを制御する方法は実機、EMUともどもないということ。
579 :
デフォルトの名無しさん :2006/06/01(木) 04:45:30
誰か902シリーズ以降専用で作ってやれw
言い方が気に食わないから たとえ1k出すと言われても作る気しね
どういう動作するのか見たいけど、exe を実行するのは怖い。。。
ホントだexeが入ってる((((;゚Д゚)))) ・902専用 ・毎回起動時に通信 ・何故かアプリサイズ100K+スクラッチパッド400K という条件でなら作ってもいい(゚∀゚)
>579 スレ違い。 ここはアプリ作成を依頼するスレではないし、 そもそもフラッシュは対象外。 携帯コンテンツ板へでも行け。
585 :
579 :2006/06/01(木) 14:45:40
>>584 すみませんでした。やっぱり自分で作ることにします。
ちなみにフラッシュはそのフラッシュではなくて
フラッシュ暗算という暗算ゲームみたいなものの1分野です。
586 :
572 :2006/06/01(木) 14:48:24
>>577 トラステッドの契約まだ結んでないので、実機では試してないのです。
>>578 実装状況みるとたしかにDoJa4.xじゃ無理そうですね。残念
Doja-4.0 API iappli Development Kit
をみると、P.98のトラステッド動作設定に位置座標APIの許可とか
P208のプロジェクトの作成のところで
「DoJa-4.0GPS プロジェクトを作成します。」とか書かれてるんですよね。
なんとかすれば、4.0でも開発できるのかと期待してしまいました。
通常にDoJa4.0いれれば、こういったのはないんですが。
まぁトラステッドIDの設定のところも10桁とか記述ミス多いのでその類かもですが。
とりあえず、DoJa3.0でいろいろやってみます。
ありがとうございました。
587 :
デフォルトの名無しさん :2006/06/02(金) 09:06:45
某所とマルチになって恐縮ですが質問です。 現在、Doja3.0以上の機種で動くアプリを制作中なのですが、 N902iで動作させると、アプリ実行中に動きが一瞬止まってしまうことがあります。 画像や音声のロードなど、時間のかかる処理はそこではやっていません。 N505iやN900i、他の902系などで動作させた際には、このような現象は確認されませんでした。 細かく調べてみたところ、描画(drawImage())に時間がかかることがあるようです。 1枚の画像を描画するのに数百ミリ秒もかかる場合があります。 同フレームでその前後に描画している画像や、前後のフレームでの同じ画像の描画は、特に時間がかからずに描画されています。 毎回アプリを実行するたびに、描画に時間のかかる画像やそのフレームも変わっています。 どのような原因が考えられるでしょうか? ちなみにSystem.gc()の処理を加えても変化はありませんでした。
>587 >細かく〜変わっています。 その様子はやっぱりGCが発動してるんじゃないかね。 >ちなみにSystem.gc()の処理を加えても変化はありませんでした。 System.gc()はソース内に書いたところのタイミングで即実行されるわけではない ことは知ってるよね。大抵、実際にメモリが足りなくなってきたときに発動する。 描画処理はメモリを食うから、それでそのタイミングでGCが発動してる、と思われる。 例えば↓このように文字列の連結を乱発してないか見直したりしてはどうか。 for(int i = 0; i < 100; i++) g.drawString("Name" + i, 0, 0);
589 :
588 :2006/06/02(金) 10:30:42
自分にツッコミ。 >System.gc()は〜と思われる。 合ってるのか間違ってるのか微妙な説明だな。 GCが発動する切っ掛けや具体的な処理内容は実装依存だ。
返答ありがとうございます。 試しにほとんどの描画処理を抜いた状態で実行してみましたが、 状況は何も変わりませんでした。 文字列の連結も、少なくともこの現象が発生する周辺ではやっていません。 その周辺でやっている、主な処理を記述してみます。 ・画像の通常描画処理(10〜20枚程度) ・画像の拡縮描画処理(0〜2枚) ・擬似乱数取得(数フレームごとに1〜10回) ・キー状態の取得と判定(各数字キー、方向キー、SELECTキー、ソフトキー) ・フラグを判定してシーンの切り替え
現象が発生する最小限のソースうp
592 :
デフォルトの名無しさん :2006/06/02(金) 18:07:52
エミュだと実行できるのに実機では途中でエラーがでるのですが、 考えられる原因はないでしょうか。
>>590 GCが発動するときってメモリ消費が蓄積された結果、発動するわけだから
その現象が発生する周辺だけが問題となるわけじゃないよ。
>・画像の通常描画処理(10〜20枚程度)
MediaImage、Imageをdisposeしてないとか。
>・画像の拡縮描画処理(0〜2枚)
自前の拡縮処理だったらピクセルデータを配列に格納してると思うけど、
配列を毎回newしてるとそれも結構影響あるんじゃないかな。
画像の大きさにもよるけど。
594 :
587 :2006/06/02(金) 19:05:19
>>591 ソースのアップは都合上できません。
使用しているライブラリ(?)の作成者に許可を貰わないといけませんので。
申し訳ないです。
>>593 解放はキッチリやっています。
解放うんぬん以前に同時にたくさんの画像を読み込みすぎ、というのならあるかもしれませんが、
505系でも問題なく動くので、その線も薄いかと思います。
あと、拡縮描画は、Graphics#drawScaledImage()を用いています。
この処理をコメントアウトして実行しても、同様に動きが止まったので、
これが直接の原因というわけではなさそうです。
>GCが発動するときってメモリ消費が蓄積された結果、発動するわけだから
>その現象が発生する周辺だけが問題となるわけじゃないよ。
アドバイスありがとうございます。
この線も含めて、引き続き調べていこうと思います。
何回System.gc()呼ぼうともギリギリまでメモリが圧迫されるまで
メモリ回収しないって端末、過去になかったっけ?
>>587 の端末もそんなんだったりして。
半透明処理について教えてください。 エミュレータでも実機でもそうなのですが、 graphicsクラスのdrawString(String str, int x, int y) だけ setRenderMode(int operator, int srcRatio, int dstRatio)の設定がききません。 これは仕様なんでしょうか? 文字列描画だけ半透明の対象にならないと、きいたことがないので、知ってる人いましたら教えてください。
>>596 聞いたことないも何も、公式資料読んでないでしょ、君。
setRenderModeが適用されるメソッドは、機種依存。
F900iなんて、drawImageは半透明にできるのに、fillRectが半透明にならないんだぞ?
drawStringが半透明になる機種なんて、一つもなかったはず。
598 :
596 :2006/06/02(金) 22:55:13
>>597 機種依存なのは知ってますけどエミュでもできなかったもので・・。
半透明はImage以外は使えないってことですか?
そうなると画面フェードさせるのに黒か白のImageを用意しないとまずいですね。
こんどはdrawScaledImageで拡大させたImageが半透明きくのか不安になってきました。。
>>598 >半透明はImage以外は使えないってことですか?
答えはNOだ。setRenderModeによる半透明は、事実上全く使い物にならない。
どうしてもフェードさせたければ、MascotCapsuleを使うがよい。
>>599 それもちげえ。
機種依存はあるものの、D900を除けばそれなりの速度は出る。
問題はNとPが、なんとImageの半透明に対応していないということ。
まぁsetRGBPixelsとか使って自作するのが吉。
うちは起動時にsetRenderModeの働きを調査させ、対応していない部分は自作に切り替わるようにしてる。
601 :
596 :2006/06/02(金) 23:35:14
>>599 >>600 まとめると
文字列の半透明は無理
D900=半透明処理はOK。・・が重くて使えない
NP900=半透明処理がNG。
F900=半透明の実装が中途半端。Fillは(多分lineとかも)無理。
get/setPixelは実装は簡単ですけどいかにも速度が出なさそうですね。
この場合だと画面フェードはあきらめて、オブジェクトの描画のみで
半透明を使っていく方向が良さそうな雰囲気。。。。
>>600 >機種依存はあるものの
これが嫌なんだよね…
>>601 NP900はfillの半透明だったらできたはず。
Imageはできない。
900を切り捨てればい(ry
キー入力を3秒だけ待つ、入力があれば変数に入力値を格納って実装、どうすればいいですかね
ラベルの値を取得したいんだけど、どうしたらいいでしょうか com.nttdocomo.ui.Label にsetTextメソッドはあるのだがgetTextメソッドがない(´・ω・`)
606 :
デフォルトの名無しさん :2006/06/04(日) 12:15:02
ageスマソ
>>605 com.nttdocomo.uiは全体的にsetがあってもgetが無いので
呼び出し側で管理する必要があるかと思います。
608 :
605 :2006/06/04(日) 13:03:53
>>604 3秒間だけキー入力をチェックして、入力があればb変数に入力値を代入すればいい。
611 :
604 :2006/06/04(日) 13:38:11
b変数→変数 だ。
613 :
605 :2006/06/04(日) 17:32:55
無事iアプリが完成しまして、PC上のエミュレータでは普通に動いたのですが
実機(N504iS)でダウンロードしようとすると「ソフトに誤りがあります」と表示されて
ダウンロードできませんでした。
色々とググってみて、自分なりにチェックポイントを見てみたのですが、何が悪いかわかりません
■チェックポイント
・jamのAppSizeは正しいか
・jamをSJISで転送
・jamの必須項目(LastModified、AppClass、AppName、PackageURL、AppSize)を埋めたか
・jarはバイナリで転送
もしかしてiDKDoJa4.1で開発したのがマズかったのでしょうか。。
(N504iSではDoJa2.0まで対応)
ここに配置していますのでエロい方検証していただけませんでしょうか
http://larkmilds.com/slot/jugller/i_appli/
615 :
605 :2006/06/04(日) 17:54:07
ご指摘の通り、浮動小数点を使っていますorz ちょっと試行錯誤してきますね ありがとうございました
616 :
614 :2006/06/04(日) 18:14:19
>>615 当たって良かった。
自分はそれを探し出すのに4日間…
617 :
605 :2006/06/04(日) 18:19:44
>>616 無事ダウンロードして実行できました
自分にとって神
浮動小数点?
浮動小数点
浮動小数点はDoja4.0のMIDP2.0以降だっけか?
CLDC1.1だと普通にMath.sqrtとか使えちゃうしな DoCoMoもDoJaのダウンロードページを素人とか馬鹿向けに 何とかした方がいいと思う
CLDC 1.1 API の日本語版はどこかでダウンロードできるだろうか
624 :
587 :2006/06/05(月) 18:27:12
どうも、>587です。 結論から言うと、まだ解決していません。 ですが、ある程度の進展はありました。 アプリ中、シーンAとシーンBがあるとして、 シーンBが、問題のアプリが一瞬停止してしまうシーン、 シーンAが、その前のシーンです。 (1)シーンAで「SELECTキー」または「5キー」を押す。 (2)シーンAで50フレーム経過する。 のいずれかでシーンAからBへ移行します。 問題の停止現象が起きてしまうのは、(1)でシーンを移行させたときのみのようです。 シーンAで、画像の読み込みが行われる前にシーンBに移行したのかとも思いましたが、 必要画像はそのシーンの最初に全部読み込むことになっているので、それもありませんでした。 試しに、シーンAからBへの移行を50フレーム経過のみにしてみました。 そうすると、キーを押しても(シーンの移行は発生しませんが)停止現象が起こることはなくなりました。 さらに試しに、25フレーム経過でシーンが移行するようにしてみました。 すると、キーを押さなくても停止現象が発生するようになってしまいました。 以上のことから、 「シーンAからシーンBへの移行時に、シーンAにおいてある程度の時間が経っていないと、 シーンBで停止現象が発生する。」 という結論に至りました。 事象の発生する条件は解りましたが、肝心の原因と解決法が解っていません。 (「50フレームで移行」のみにすればいいのですが、仕様がそれを許してくれそうにありません。) 他にも同じような処理を行っている個所があるのに何故ここだけなのか、 何故N902iでしか確認できないのか、というのも謎です。
N902iはある程度のタイミングでSystem.gc呼ばないと 1000msぐらい処理が戻ってこないときがある。 それまでのNだとそんなことないんだけどねぇ。 #呼びすぎは知らん。試してない。 単純ループでサイズの違う画像を何種か ひたすらMediaImage.useしてImage表示する プログラムでテストすればわかるはず。 F&Dの方がもっと止まるけどね…
iαppli Development Kit for DoJa-4.1 を使っています。 アプリを作っているのですが、先輩からこれを使えと言われ いくつかの class ファイルをいただきました。 どこのフォルダに置いても、シンボルを解決できないと 言われてしまいます。どうしたらいいのか教えてください。 お願いします。
シンボルを解決すれば良いと思うよ
もう忘れちゃったけど、DoJa4.1のエミュだったら プロジェクトか設定のとこに「iアプリライブラリ」 とか言う項目があったはず、後はドキュメント読めば分かるよ
>>627 フツーに import しているだけなのですが
解決できないようです。
>>628 もらったのが、class だけなので・・・
って、classだけでも大丈夫なのかな?
調べてみます。
>>629 ははは、まー、そうなんですが
それも含めて教育の一環だそうで・・・orz
631 :
468 :2006/06/07(水) 18:14:23
>>630 とりあえず今週中ネットとか資料で調べて
駄目なら先輩に聞くのがいいね(´・ω・`)
つーか、俺も使ったこと無いwww
>>630 先輩の言う勉強ってのは仕組みや動きとかを調べろってことでは?
決して2ちゃんで答えをもらって解決することを求めてるとは思えん。
たぶん簡単な間違いだよ。もう一度他のクラスを利用すると言うことの基本を見直してみてはいかがか?
>>630 ググってもなかなかヒットしなかったもので
ここしかないと思って質問してみました。
>>633 ありがとうございます。先輩みたいです。
兎に角もうちょい調べてみます。
うまく行ったら報告させていただきます。
ありがとね、みんな。
635 :
デフォルトの名無しさん :2006/06/07(水) 22:12:54
javaをかじったことない状態でiアプリ作成の勉強しても、無駄? javaを基本から勉強するか、iアプリを作りながらjavaを勉強するか迷ってるんだが…
>>635 無駄とは言わないが、癖があるよ>doja
一通りjavaに触れてからの方が良いと思う。
おれは逆だ DoJaのほうがJavaを勉強するのに良いっておもう
まぁ、CLDCはシンプルだしな。
でも初心者に固定小数点は厳しい気が。1.1ならば良いけども。 ってプログラミング経験が別にありゃ関係ないか。
既出ですっごく下らない質問かと思うのですが、 「Linuxでiアプリの開発」って可能でしょうか? Win/LinuxのEclipse使っています(Winでは動きます) ググってもどうもそれらしき物が見付かりませんでした どうかよろしく
>>640 開発はできるんじゃね?DoJaライブラリをクラスパスに通すだけだし。
エミュが走るかどうかは知らん。
642 :
640 :2006/06/08(木) 00:33:29
Linux用のエミュって昔あったような 最近聞かないです。 確かにエミュ動かないと面倒ですよね
>>639 すべてのアプリが小数点数を必要とする訳でもないだろう
>>640 前にちょっと試しただけだけど開発ツール使うのは無理だと思う。
wineにJDKを入れられれば(またはLinux上のJDKが使う方法があれば)可能かもだけど。
俺はコーディングはLinux上のEclipseでやってビルドとかはVMware上でやってる。
645 :
635 :2006/06/08(木) 01:16:23
いろいろありがとです。 プログラムはCをそこそこ勉強しました。 ちょっとdojaから触れてみたいと思います
>>645 Dojaは4.0から浮動小数も使えるよ
俺もまだ勉強中の身だけどgngr
浮動小数点扱えると何か良いことあるの?
なんで小数点数にこだわってんの?w
携帯のjavaは最低限の機能しかつんでないから勉強には良いとは思う。 ただ実機で確実な動作をさせるのが目的であれば完全に難易度が上がるとも思うw
>>650 携帯に慣れると、まともなプログラムが組めなくなるという側面もある(笑)
>>651 ああ、それはわかるかもw
特にオブジェクト指向を意識した作りはあまり出来ないな、容量の問題で。
できるだけ新人に携帯アプリはやらせたくないよなw
ウィルコム向けのアプリを作りたいなのだけど、エミュってあります? SUNの提供しているものだけですかね?
iアプリを作成中なのですが、クリアキーの取得が上手くいきません。 キー判定メソッド内で if((1 << Display.KEY_CLEAR & getKeypadState()) != 0){ g.drawString("? ", 10, 0); return -1; } としてあっても拾ってくれないのです。。。 むしろ「0」キーを拾う始末orz 環境はEclipse3.0+doja4.1です。 皆さんはどのようにして特殊キーの取得をしていますか? アドバイスいただけないでしょうか…
>>656 とにかく何にしてもAPIリファレンスをよく読んで。
Display.KEY_CLEARの定義値は0x20だからgetKeypadState(1)とするのが正解。
またDisplay.KEY_CLEARはあくまでオプションだということも忘れずに。
APIリファレンスでgetKeypadState()を調べよ。
>むしろ「0」キーを拾う始末
0x20=32、1を32ビットシフトしたらint型(getKeypadState()の戻り値)を越えて0。
0(すなわちDisplay.KEY_0)とgetKeypadState()の論理積をとってることになる。
>g.drawString("? ", 10, 0);
これだと文字は画面外に表示されるぞ。yはベースラインの座標。
APIリファレンスでdrawString()を調べよ。
if (((1 << Display.KEY_CLEAR) & getKeypadState(1)) != 0){
g.drawString("? ", 10, 50); //50は例として。フォントの高さより大きければよい。
return -1;
}
658 :
656 :2006/06/10(土) 12:40:35
>>657 丁寧なレスありがとうございました。
getKeypadState(1)ってそういうことだったのですね。。。
リファレンス読んでないのバレバレですね(汗)
しっかり読み込んでおきますm(_ _)m
>g.drawString("? ", 10, 0);
これはもうお恥ずかしい限りですorz
初歩的な質問で申し訳ないのですが、気になってしまってしょうがないので教えていただけないでしょうか。 スクラッチパッド利用時のサンプルコードで、よく下記のようなコードを見かけます。 この場合、利用するスクラッチパッド領域はアプリごとに固有なものなのでしょうか? 例えば他のアプリを侵食するようなことはないのでしょうか? try{ int data=0; DataInputStream ds = Connector.openDataInputStream("scratchpad:///0;pos=0"); data = ds.readInt(); ds.close(); } catch(java.io.IOException i){ System.out.Println(i.toString()); }
>>659 固有です。公式資料くらい検索しましょう。
661 :
659 :2006/06/11(日) 22:45:13
>>660 リファレンス読んでいたのですが、見過ごしていたみたいです。
ありがとうございました。
最初の頃の機種にそんなバグがあった気がする
スレ違い臭いけど報告先週出たNとDの902is。 今まで以上に気になる点があったんで一応w Nは音量がおかしい。今までの機種で通常mld再生音量100%で鳴らして 平気だったものを100%で鳴らすと音が割れるくらいの大音量で鳴る。 音量調節のないアプリは注意が必要くさい。 Dはアプリ動作中に無駄にボタンを大量に押すと理由が判らないが 処理落ちがかなり酷くなる。もともと動作の重いソフトなら判りやすい。 一応processEvent内で重い事をしていないのを付け加えておく。
今その報告来ても対応してる暇無いな(´・ω・`)
>>664 ま、気になったんでwここ職人とか多いしw
あれからDの処理落ちをもうちょっと調べてみたがハード的な仕様くさいかなぁ。
自作アプリだけでなくプリインストされてるアプリも関係ないキーを連打する事で
明らかに処理速度が落ちることを確認。内部でなにやっとるんだろうか・・・。
無論、関係のあるキーでも連打する事で処理おちるから連打系の操作がある
アプリには超きつい仕様くさい。
Nは仕様っていうより内臓スピーカーが酷すぎる感じだったけどw
Dは前もキー入力激しくすると処理落ちする機械があったな。 Nは単純に端末の音量設定がでかすぎるのかもしれん。
Dの差はスピードセレクター搭載での調整なんかな? であればシステム側で弊害有りの最小限対応も考えられなくもないね JAVA以外含む全アプリにイベント回り直させるのは面倒だろうし つーか、あれ回すとPRESSのみでRELEASEは上がってこないで桶?
668 :
デフォルトの名無しさん :2006/06/13(火) 14:36:38
スレッドの進行速度を、端末依存しないよにうにしたいのですが、 Thread.sleepを使っても、どうしても高スペックの端末の方が 速くなってしまいます。 何か良い方法ありますでしょうか。 ちなみに、落ち物パズルを作っているので、速度の差がはっきりしてしまうと まずいと思うのですよね。
あれ、D900って Content-Type 指定して通信しないと通信失敗する? con = (HttpConnection)Connector.open(url, Connector.READ, false); con.setRequestMethod(HttpConnection.GET); con.connect(); これだけなんだが動かん(´・ω・`)
>>668 メインループの描画以外の部分をスキップした分余計に回すか、
処理側で時間を計測して移動量を割り出す
671 :
デフォルトの名無しさん :2006/06/13(火) 15:07:56
誘導されたのでこちらで質問させてください。 iアプリで自局(自分の電話番号)を 取得しようと調べているのですがみつかりません。 これって取得可能なのでしょうか? com.nttdocomo.system や phonebookあたりが 怪しいと思ったのですが見つけきれませんでした。
>>672 そんなのあったら恐くてアプリ使えない罠
>>672 >>2 の公式サイト行って
iアプリコンテンツ開発ガイド for DoJa-4.x 詳細編読め
あとFAQのとこでトラステッドiアプリについて調べて来い(゚∀゚)
調べてみました。 自分の電話番号も電話帳経由で取得するということでしょうか。 com.nttdocomo.system.PhoneBook の public XString[] getPhoneNumbers() index 指定しないで(引数無しで)呼び出せば自局の 電話番号かえってくということなのかな? 僕みたいなへたれにはもう少し詳しく説明かかれてないと、 理解できませんでした。タブンこれでいいですよね?
>>675 へたれなら、急がずじっくり書類に目を通せよ・・・・。
ぶっちゃけると・・・個人レベルではトラステッドiアプリを動作させる事は不可能。
公式サイトに登録されてるIPにのみ許可されている機能だ。あきらめれ。
677 :
668 :2006/06/13(火) 21:24:17
>>670 ありがとうございます。
参考になりました。
678 :
669 :2006/06/14(水) 11:25:09
気になって調べてみたら、俺の作ったアプリの通信全部失敗するっぽい(´・ω・`) 例外をトレースしてみたところ以下のような感じに… GETを指定:例外のルートに入っているはずなのに何も出力されず POSTを指定:java.lang.IllegalArgumentException: Illegal request method for mode 1 Content-Type に"application/octet-stream" を指定 (ダウンロードしようとしてるのは独自形式のdatファイル) :com.nttdocomo.io.ConnectionException: Illegal header で、経験者にお聞きしたいのですが ・D900iで上記は仕様通りか否か ・MIMEの問題? ・他でエラーが出てるんでねーの? ・むしろ俺のD900iがおかしい どの辺疑えば良いでしょうか(´д`) ちなみに全アプリ、他の端末では正常に動いております。
D900iなんて端末はこの世に存在しません。忘れなさい。 ところで、サーバ側で Content-Length をちゃんと付けてる?
680 :
669 :2006/06/14(水) 11:41:06
>>679 Content-Lenthは見てないな…調べてみます。
今過去アプリ一通り動かしてみたら、
どうもappStartからwhileループしているアプリのみ失敗しているっぽい感触が。
timer使ったメインループのアプリだと動いてます。
これが原因だったら修正でっかいなぁ・・・
スピードセレクターの設定をOFFにしても動くアプリがあるんだけどさ、 スピードセレクターってアプリ側からどうやって感知してるの? 偉い人、教えてください。
>>669 > con = (HttpConnection)Connector.open(url, Connector.READ, false);
HTTPではtrueにしろとガイドに書いてある。
これが原因じゃないかもしれないけど、
少なくともガイドに明記されていることには従うべき。
683 :
669 :2006/06/14(水) 15:57:30
>>682 申し訳ない、そこテスト中のをコピッたのでコピペミス。
通常trueにしてます。
どちらにしてもNGなのでこれが原因では無いらしい。
それとContent-Lengthはサーバ側からちゃんと取得できてました。
現在簡単なサンプルでタイマーを使ったメインループと、
appMainのメインループで検証中。。。
684 :
669 :2006/06/14(水) 16:00:20
appMainとかappStartって手前でつけた関数名だった(´д`) IApplication#start のことでつ
685 :
669 :2006/06/14(水) 16:12:24
荒らして申し訳ない。原因ほぼ特定できた。 フォントの問題っぽい。 通信できてるアプリはtinyフォントしか使っていなく、 NGなのはsmallフォントを使用してる。 もうちょい調べてみます
686 :
669 :2006/06/14(水) 16:31:30
ダメだったところ。 Graphics2 g2 = (Graphics2) getGraphics(); 初回起動に限り通信が先に始まってしまうのが勘違いの元だったようで… ご迷惑をおかけしました_| ̄|○
687 :
デフォルトの名無しさん :2006/06/14(水) 16:48:32
現行の機種(505〜900i〜901iくらい)に対応出来るアプリを作るには Dojaの何番をDLすればよいの?
3.0以前だけどそれ以上でも非サポートAPIを使用しなければ問題無し。
>>688 すばやい解答ありがとう
早速DLしてきまつ
>プロジェクト Hello_iApp に、必要なライブラリー 'C:\iDKDoJa4.1\lib\profile\DoJa-4.1\classes.zip' がありません。 >プロジェクト Hello_iApp に、必要なライブラリー 'C:\iDKDoJa4.1\lib\profile\DoJa-4.1\doja_classes.zip' がありません。 こんなエラーが出たんだけども、DojaってD:にインストしちゃだめだった?
↑解決しました、すいません
Doja4.1のエミュ起動させっぱなしにしとくと 滅茶苦茶PCが重くなったりしない?
iアプリの開発についてドコモに問い合わせたいのですが、 「作ろうiモードコンテンツ」のサイトを見ても それらしいメールアドレスが見当りません。 問合せ先、問い合わせ方について、 ご存知の方がおられましたら教えていただけないでしょうか。
106
>>698 4.0はメモリ使用量ががんがん増えたことがあった
4.1は落ちることがあった
確かに4.0以降のエミュは出来が悪い。 今でも3.5が手放せないなw
Canvasで無限ループ回しながらゲーム画面描画しているんですけど while(true)の中でprocessEvent()が呼ばれないことってありますか?
>>701 質問の情報が少なすぎ。
何がどうなったからそう考えたのか判らん限りアドバイスなんて無理
ちゃんと作ってるならループとか関係なく割り込みはちゃんと発生する。
失礼、メイン処理にwhile(true)使って書いていたんですが メイン処理中にwhile(true)の記述があるとprocessEvent()が呼び出されないという現象が 空の無限ループでも呼び出されない状況です 他のテストアプリだとprocessEvent()が正常に呼び出されるので IApplicationクラスの処理が問題だと思うのですが・・・ 原因探してみます
>>703 お前さんの問題。
必ず何処かで processEvent を止めてる。
そういえば IApplication クラスの中で処理なんて 入門以外やってないなあ。
>>703 IApplication.start()の中で無限ループに突入してないか?
Thread作ってその中でループまわしたほうが、機種依存の問題含めて回避しやすいぞ
708 :
デフォルトの名無しさん :2006/06/16(金) 11:32:32
質問ですこのやろー アプリの赤外線て何メートル飛ばせるのだ? 携帯同士をくっつけないと使えないのか? おせーて
携帯のマニュアル嫁(゚∀゚)
710 :
デフォルトの名無しさん :2006/06/16(金) 11:38:18
>>709 書いてあんのかよ 機種により違うんじゃね?
最低何メートルとぶかおせーろ
最低は電池が切れてる時の0mですw
712 :
デフォルトの名無しさん :2006/06/16(金) 11:49:12
そうだね、ウンコおいしいね
713 :
デフォルトの名無しさん :2006/06/16(金) 11:50:08
>>711 正解
解決しました
ありがとう 2ちゃんの愉快な仲間たち
>>704 ありがとうございます。どうやらそうらしいです。
ループの種類を問わず、ループの中に入ると processEvent が止まってしまうので。
>>707 無限ループ使ってるのはCanvasの中だけです。
IApplication#start() → MenuPanel → Canvas
と切り替えているのですが、この辺が原因かな・・・未だに分かってない。
別Threadを作ってその中に無限ループというのが、いまいちよく理解できてません。○| ̄|_
CanvasにRunnableを実装して、Canvasに切り替える時に new Thread() するのでしょうか?
>>714 Canvasのどのメソッドに無限ループ作ってんだよ
普通は明示的に指定しない限り、Threadは1つしか存在して無いんだよ
その1つのThreadでprocessEventも呼び出されている
# メーカーや機種によっては違うのもあったけど
だからそのThreadで無限ループに入っちゃうと
processEventは送られなくなることがあるんだわ
>>714 MenuPanel → Canvas のトコで
IApplication#start を呼んでるに100ガルガ
前にもそんなネタあったな・・・
えっ。 iアプリって、スレッド1つしかなくても、processEvent() は割り込みで処理されるの? ということは、場合によっては何か描画中でも強制的にキャンセルされたりするわけ?
>>715 無限ループのメソッドは描画と計算をまとめたメソッドに書いてます。paint()とは別のに。
一応CanvasにRunnable実装して、CanvasでprocessEvent()呼び出されるの確認しました。
でも他のCanvasクラスが複数使う予定なので、それぞれにThread使うと容量増えそうですね・・・
まだ改良が必要かな。
色々とありがとうございました。m(_ _)m
>>718 そりゃそうだ。
だからキー押下に対する反応はメインの無限ループで行ない、processEventでは「キーが押されたよ」というフラグ変数を書き換えるのみにしなければならない。
>>719 絶対processEvent系のもので無限ループやってる。
IApplication#start()で無限ループやっていれば、processEventもちゃんと呼ばれる。
721 :
デフォルトの名無しさん :2006/06/18(日) 22:47:41
質問 複数人&何通も送れるメーラー作りたいんだが ソースどっかにないかね? 送れるだけのソースでもイィんだが
通報しますた
httpしかしゃべれないんだから無理だろ
>>721 iアプリでは無理。間接的に言えばCGIでやれ。
そしてそれはiアプリの分野じゃないから他へいきなさい。
CGIの起動なら携帯のブラウザでいいわけだから。
俺俺詐欺の業者に優しすぎだよおまいら
726 :
デフォルトの名無しさん :2006/06/19(月) 13:10:21
CGIじゃ意味ないんだな 電話帳起動してチャット感覚にメーラー作りたいのよ やっぱ無理な話?
無理かもと思った時はサーバを使う。 iアプリの基本だな。
728 :
デフォルトの名無しさん :2006/06/19(月) 14:14:24
かなり長旅になりそす ありがとう やってみますよ
729 :
デフォルトの名無しさん :2006/06/19(月) 17:02:54
スクラッチパッドのデータ分割を、 100, 500, 30000, 180000, 70000, 30000, 20000 と、いうようにして、データを格納するように作ったのですが、 180000 と、指定したパーティションに格納したデータが読み取れなくて困っています エラーは、com.nttdocomo.ui.UIException で、 getStatus() で参照すると、NO_RESOURCES が返ってきます。 180kの領域には、現在、70kほどの データを2つ格納して使用しているのですが、 どうやら、先頭バイトから書き込んだほうのデータが読み取れなくなってしまうようです データは、画像データを連結させたものです データを参照するアドレスも、SPサイズの制限を越えていないかも、確認しましたが、すべて正しい数値でした もともと、別々のパーティションにわけていたのを1つにまとめた途端に起きるようになってしまったので、 何か、アプリ制限項目に触れているのだと思うのですが、リファレンスを読んでみても原因がわかりません 150kまでの、通信制限が適用されているのか、とも思って150k以下に変えてみたりもしたのですが、直りませんでした どなたか、原因に心あたりがある方がいましたら、教えていただけませんか? 使用している環境は、Doja 4.1 J2SE 1.4.2_12 です。
>>729 詳しいことはしらんが「NO_RESOURCES」返ってるんだろ?
まんまメモリーの使いすぎなんじゃね?リソースの確保の失敗だろう?
一度に使える量には限度があるぞ?
UNSUPPORTED_FORMATならファイルに異常があるんだろうけど。
732 :
729 :2006/06/19(月) 18:02:57
>>730 >>731 いえ、エミュレータでの起動でエラーが出てます
空きメモリは常に追えるような状態にしてあり、容量は十分確保されているはずなのですが。。。
ためしに、ヒープの設定を16000とかにして動かしてみたんですが、直りませんでした
>>729 だったらバイナリエディタでxxxx3.srcファイル見てみりゃわかるでしょ
作られてなければjamの問題。
734 :
デフォルトの名無しさん :2006/06/21(水) 23:00:55
eclipse3.1.2とdoja3.5、jdk1.4.2で開発してんるんだけど、 どうしてもADF設定のAppSizeが「0」になってしまってエミュが起動しません。 回避策は無いものでしょうか?
doja3.5で範囲の決まっている乱数を生成するときってどうしてる? doja4.1だと Random rnd = new Random(); int tmp = 0; tmp = rnd.nextInt(100); で出来るよね?
>>734 プロジェクトのプロパティでコンパイラのバージョンを1.3に
>>735 Math.abs(rand.nextInt())%100
厳密な値にはならないけど、 /** * 0〜n-1までの乱数を返す * @param n 期待する乱数の最大値+1 * @return 生成された乱数 */ private static int random(int n) { return (rnd.nextInt() & Integer.MAX_VALUE) % n; } /** * min〜max-1までの乱数を返す * ただし max > min であること。 * * @param min 期待する乱数の最小値 * @param max 期待する乱数の最大値+1 * @return 生成された乱数 */ private static int random(int min, int max) { return random(max-min)+min; } みたいにするのはどうだろうか。
738 :
734 :2006/06/22(木) 07:38:53
>>736 ありがとうございます。
仰る設定で無事に起動しました。
>>739 それ、精度悪すぎる。
0〜15億の値が欲しい時にそれやると、0〜6億のほうが、6億〜15億より2倍も出やすくなるぞ
>>739 アンカーはちゃんとつけようぜ。
自分好みの乱数にしたかったら自作しろってことだな。
0〜15億の乱数って一体どんな局面で必要なんですか('д')?
理解するのに3分かかった俺はオバカ 必要なら、Integer.MAX_VALUE - (Integer.MAX_VALUE % n) 以上の値が出たら 振りなおしとかしなければならんのか。 携帯Javaでどの程度出番があるのかはわからんが。
iアプリのゲームを作っているのですが、スクラッチパッドから画像を読み込むのがうまくいきません。
下のコードは2つの画像(image.gif、image2.gif)をダウンロードしてスクラッチパッドに書き込んだ後、
スクラッチパッドから画像取得してそれを画面に描画するというものですが、データ1(image.gif)読み込み時にエラーが出るらしく
それを通知するエラーダイアログが出て終了してしまいます。
どうすればいいのでしょうか?
http://newsstation.info/up/img/ns10375.txt
httpCon.getLength() があやしい。
745 :
743 :2006/06/23(金) 17:14:05
2つ目の画像のバイトサイズをsizeに入れてました。 指摘されたところを修正したら直りました。ありがとうございます。
サンプルのソースコードを公開しているサイトでお勧めのサイトってありませんか? 特に知りたいのはメニュー関係とphpを使ったDB連携あたりなのですが。
>746 メニュー関係… そんな抽象的なサンプルはない。 パネルなのかキャンバスなのか、文字なのか画像なのか、数字選択なのか方向キー+セレクトキーなのか。 UIの設計なんて十人十色。自分の好きにやれ。 phpを使ったDB連携… これはiアプリと関係ない。 強いて言えばhttp通信のやり方を調べればいい。 あんたが探してんのはサンプルじゃなくて自分の都合にあった答えばかりだな。
>>742 Math.abs(rand.nextLong())%n
これでいいじゃん
実際0〜15億の乱数が必要な機会があるとは思えないけどw
清々しいまでの力技解決吹いたw まったくもってごもっともだ。 iアプリJavaでrandom#nextLong()って使えたのにビビった。
>>586 さん、その後はいかがですか?
Doja-3.0入れてみたらGPSアプリも作れそうな感じですが、
トラステッド契約しなければ、SA700iSなどでGPSを動かせないのでしょうか?
751 :
デフォルトの名無しさん :2006/06/24(土) 21:58:06
>>751 すまんな、iもVもBREWも開発をしているが、
俺自身はアプリの動かない携帯使ってるんだ(´・ω・`)
Eclipseでiアプリ作成を始めた初心者ですが、実行しようとしたら 「AppSize(=0)<1 なので NG です」ってエラーがでました・・・んでぐぐったら 解決法が見つかって(コンパイラー準拠レベルを1.3にする)無事起動できたんですが 皆さんこの設定でやってるんですかね・・・?
皆さんその設定でやっています。 安心しれ。
>>752 586じゃないけど、SA700でGPS使ってる。
トラステッドじゃないと動かんよ。
iエリアと同じ感じでhtml側でGPS起動させれば一般でも使えると思われ。
>>756 ブラウザから起動ならGPSが使えるで桶?
あってるなら903楽しみだ
ブラウザでならauで出来るのは知ってるけど ドコモだと一回一回操作が必要だったんじゃないかな
D900iでGraphics.FLIP_ROTATEは使用可能でしょうか? FLIP_ROTATEは基本APIに移行しているはずなので、実装していると思うのですが 「 iアプリコンテンツ開発ガイド for DoJa-3.5 各機種オプションAPI・拡張API実装状況 」 を読むと、Graphics2.FLIP_ROTATEがD900iでサポートされていないようです。 Doja2.0と互換性を維持するために実行できないようにしているのも変な気もしますし、 ちょっと、心配になりました。 実機が手元に無いためテストできないので困っています。
761 :
デフォルトの名無しさん :2006/07/03(月) 16:24:36
糞D900iの仕様ぽいの発見した。 DataInputStreamのインスタンスを生成するときに コンストラクタにInputStreamを放り込めなかったりするぽい。 誰か、同じ症状出た人、いる? ダイヤモンド氏ね。
携帯アプリ作る時はなるべく コンストラクタに重い処理は置かないのが基本(´・ω・`)
ダイアモンド市ねで1000目指すスレとか立てたら、それなりに書き込む奴がいそうな気がしないでもない。 D902とか人気機種らしいけど、アプリ的に相変わらずDはガンのままなの?
D902は性能いいよ。 何故なら902からはOSが統合されたから、D特有の妙な重さがなくなったからね。 それよかN市んでほしかっ"た"でなら1000目指せるかもしれん。 液晶サイズが一人だけ違かったり、時間解像度がいつまでも100msだったり…
>時間解像度がいつまでも100msだったり マジカ! Nの中の人は脳沸いてるのと違うか。
糞携帯をいくつか挙げろって言われたら個人的には D900がぶっちぎりで、次いでN504、N、P900だな。
D900iは 900D に改名するべきだな。
N504 はヤバかったなあ。 遅いわ遅いわメモリ無いわで以下省略。
770 :
デフォルトの名無しさん :2006/07/04(火) 07:16:49
時給1000円でJava教えてくれるヒトを募集します 場所 所沢(池袋・高田馬場から直通) よろしくおねがいします i−want−to−study−java@hotmail.co.jp (メールまたはMSNメッセでご連絡ください)
こりゃまたすごい釣りだ
しかも何故Javaの死亡遊戯塔iアプリスレに。
あえて釣られてみるがプログラミングは人から教わるより 自分でとりあえずなんでも組んでみるほうが100倍早く身につくよ。 それが無理っていうならプログラマに向いてない。
774 :
デフォルトの名無しさん :2006/07/04(火) 11:31:36
高田馬場ってゲイの集まるところでしょ
ゲイは新宿2丁目じゃね? 高田馬場は朝鮮人とか中国人だった気がする。
携帯エミュで開発しています。 javadocにMailAgent.getLastIncoming()メソッドで 最新未読メールがMailクラスで取得できると書いてあるんですが、 受信フォルダにあるメールをMailクラスで取得するにはどうするのでしょうか?
セキュリティや個人情報に関することはトラステッドiアプリじゃないとできない。
779 :
デフォルトの名無しさん :2006/07/04(火) 23:31:32
エミュレーターならDXモードが使えるってのに 糞知識で話す馬鹿がいるな
エミュレータではメールの受信も送信もできないけどね。
↑メール送受信のエミュレート出来たんじゃない? めんどくさいからドキュメント読み返さないけど
782 :
777 :2006/07/05(水) 00:33:43
>>778 設定でトラステッド用のクラスは扱えます。
受信フォルダにアクセスするメソッドはわかりませんか?
よく知ってそうな
>>779 が教えてくれるんじゃない?
784 :
デフォルトの名無しさん :2006/07/05(水) 10:04:27
>>770 1対1なのか、複数の生徒を教えるのか ソレが問題だ
誤情報を流す上に質問に回答できなくて情けなさ過ぎるから困らない
おまいら何の話をしてるんだ。 時に受信Boxなんてアクセスできたっけか? MailAgentに関連機能が無い以上不可能だと思うが。
>>786 うん。MailAgentで受信Boxにはアクセスできないよ。
>>788 そうだね。
getLastIncoming()で、受信BOXの最新未読メールは取得できるけど。
790 :
デフォルトの名無しさん :2006/07/08(土) 22:47:58
どなたかオススメのピンボールゲーム教えてください できれば落としきりで
超遅レスなんだけれど
>>720 >絶対processEvent系のもので無限ループやってる。
>IApplication#start()で無限ループやっていれば、processEventもちゃんと呼ばれる。
IApplication#start()で無限ループやって、Canvas#paint()をIApplication#start()から呼ぶってこと?
素で分からん
>>793 お前はprocessEventからCanvas#paint()をどうやって呼んでいるんだ?
わり、思考が飛んだ IApplicationの方で無限ループ回してもCanvasには影響しないよな キー処理や再描画のタイミングはどう計ってるのかなと
いくらでも作りようがあるのだけれど・・・ 俺はキー処理はprocessEventとgetKeypadStateの両方をマージしてメインループで処理、 再描画もメインループの中で直接paintを呼んでる。
>>796 感謝
IApplication#start()の無限ループからそういうことしていいのか分からんかったもんで
すげーアフォなこと聞くけど、 iアプリの基本的な作り方って、ロジックは全部 IApplucation#start() で無限ループ作って処理して、 イベントハンドラは各拡張クラスの Canvas#processEvent() でフラグ立てるのが定石? すると、Canvas#paint() が描画するときは、 フラグは全部IApplicationクラスにあって、それをみながら自分が描画すべき画面を書くと。 いや、むしろ Canvas クラスを2個作ったりしてはいけないのか? アプリとしては、IApplication と、Canvas クラスの拡張クラスが1つづつが理想型? う〜ん、いまいち定石が見えない。。。
CanvasにRunnableをimplementsしてrun()にメインループを入れてIApplication#startでthread.start() するのはイレギュラー?
>>798 >>799 何が基本で何がイレギュラーかはさておき、俺は
>>799 の方法でやってる。
Canvas拡張クラスじゃないとイベント関係がややこしいし。
>すると、Canvas#paint() が描画するときは、
>フラグは全部IApplicationクラスにあって、それをみながら自分が描画すべき画面を書く
変数は全部Canvas側に持たせる。
あと、Canvas#paint()は使わない(Canvas#repaint()が暗に呼ばれることがあるので)。
初期化時にgetGraphics()で取得したGraphicsオブジェクトを保持しておいて、ループ内で
描画処理もやっちゃう。
>アプリとしては、IApplication と、Canvas クラスの拡張クラスが1つづつが理想型?
その通り。
それだとソフトバンクの移植が面倒ジャマイカ?
>>801 >Canvas#paint()は使わない(Canvas#repaint()が暗に呼ばれることがあるので)。
>初期化時にgetGraphics()で取得したGraphicsオブジェクトを保持しておいて、ループ内で
>描画処理もやっちゃう。
この辺の事か。
あ、俺は>800じゃないけど、作りは>800と同じかな。
ソフトバンクはsetCurrentでpaintコールされないんだっけか。
あんまり気にしなかったけどメインループの描画関数を
repaint()に変えるだけですんなり動いたけど、どーなんだろ。
RunnableをimplementsしたCanvasを2つ作るくらいなら、関数化して1つにまとめちゃった方がいいのね
1つで足りるわけだが
Graphics3DでWizardryのようなダンジョンを作成したのですが、 処理が重く、軽量化も捗らないので意見を聞かせて下さい。 現在考えているのは、 ・1回の前進、及び回転に6回描画を行う (滑らかにできる程よいですが、大体こんなもんだろうと思ってます) として、下記処理を行っています。 ・Primitive1個のサイズ;180x180 テクスチャのサイズ;60x60 @1壁につき、Primitive1個として、画面上に見える平均10枚を描画。 各Primitiveは1度だけgetVertexArray()で位置を指定。 APrimitive1個で壁1枚描画する度にgetVertexArray()で位置変更して 画面上に見える平均10枚を描画。 いずれも前進はTransformのlookAt()、回転はrotate()で視点を変更しています。 携帯はP901、SH901で試しました。 ソースを書くと長いのでかなり要約してますが、 何かお気づきの点があればレス頂ければと思います。
>>805 ・getVertexArrayには、1回ごとに設定するのではなく、全部の壁を1度に設定して
まとめて描画するようには出来ない?
・描画するときは、手前側の壁から描画するのがセオリー。奥の隠れる箇所の処理が省かれるから
・901の3Dは速くないから、全画面描画のようなのをやるのは辞めといた方がいいと思う。特にSH
>>805 基本的に、Primitiveはまとめて描画しないと遅い。
1枚を10回描画するんじゃなくて、10枚を1回描画するほうが圧倒的に速い。
あとは描画するPrimitiveの数を減らす工夫だね。
完全に画面外に出てるものはそもそも描画しないようにしましょう。
そもそも2Dにした方が速い('з')
809 :
798 :2006/07/14(金) 13:39:15
メイン画面、タイトル画面、オプション画面 とかの画面を、 3つのCanvasクラスを使って書くのはもしかして主流ではない?
ない
811 :
798 :2006/07/14(金) 14:25:33
やっぱりそうなのか。。。 どうやってコードの可読性をあげるの? むしろ、慣れればなんてこたーないってやつ?
KIAI
可読性上げたいならイベント管理のクラスを別に設けるべきでは? Canvasを継承する必然性が理解できない。
>>813 容量の制限が厳しい以上、クラスの数を最小限に抑えるべきだ、という圧力は
常に感じる。
815 :
デフォルトの名無しさん :2006/07/14(金) 14:50:34
Display.setCurrentすると一瞬真っ白になってカコワルイからCanvasは1つ それにいくつもCanvasを作るとメモリの無駄だし、OOP的にもおかしいと思うけど。あくまで描画するためのクラスなんだから。
>>816 Display.setCurrentした直後に発生するpaintを処理すれば
真っ白にならなかったような。
818 :
798 :2006/07/14(金) 18:18:08
>>813 >>816 なるほど。目から鱗。
イベントハンドリングしたいだけならそれ専用のインターフェイスを作って継承しろってことか。
わざわざCanvasを継承する意味は全くないね。
さらに、
>>814 の言うことももっともで、クラスや関数を増やすとアプリサイズがぁぁ。ってのは俺も理解はしているつもり。
でもそれでも、可読性が下がるってのは俺みたいなアフォプログラマだとバグの温床になるので避けたいジレンマ。
携帯やるならN504で鍛えるべきだよなw
はいはいそうですね
NECちょっと来いで1000目指すスレとか立てていいですか。
N504もN900もそのうち忘れ去られる存在だし
メトロノームを作ってるんですけど、テンポを速くするとかなり苦し いみたいです。なんか良い方法はないでしょうか。少なくとも80ms、 できれば50ms間隔くらいで音が鳴らせれば最高なんですが。。 どうもAudioPresenterは短い時間でplay、stopをするのは苦手なようですね。 現在のソースはこんな感じです。トリッキーなことも特にやってないっす。 // 変数 MediaSound ms; AudioPresenter audio[]; int current; // 再生するポート int port; // ポート数 int time; // 間隔(ms) // コンストラクタ audio = new AudioPresenter[port]; for(current=0;current<port;current++) { audio[current] = AudioPresenter.getAudioPresenter(current); audio[current].setSound(ms); } // 音を鳴らすスレッド Thread.sleep(time); audio[current].play(); current++; if(current >= port) current = 0;
824 :
805 :2006/07/15(土) 08:27:05
>>806 >>807 レスありがとうございます。
壁描画については
PrimitiveをrenderObject3D()で壁枚数分描画した後、
一回flushBuffer()していますが、
まとめて描画とはこの事とは違いますでしょうか?
描画方法@で実行する場合はPrimitiveをGroup化していますが、
Groupをまとめて描画するメソッドは見当たらなかったので・・・
後、メインキャンバスに全画面描画してましたので、
createImage()した120x120に対して描画を行い、
メインキャンバスでdrawImage()するようにしましたが
特に速度は変わりませんでした。
全画面描画の捕らえ方が間違ってたら教えて下さい。。
壁描画は見えない所は描画していませんが、
まだ削れる所がないか見直してみます・・・。
3D描画してない時はどれくらい速度出てるん?(´・ω・`) 実は根本的に遅いとかいうことは無い?
壁描画はどっちでやっているか、ということだよ。 俺や807が言ってる一般的に速いというのは上のほう。 三角形を3枚書くとき(細かいパラメータ類はや正確な添え字は省略するよ) new Primitive( PRIMITIVE_TRIANGLES , 0 , 3 ); vb = getVertexArray(); vb[ 0 ... ] = 1枚目の座標を設定 vb[ 1 ... ] = 2枚目の座標を設定 vb[ 2 ... ] = 3枚目の座標を設定 renderObject3D( primitive , mat ); flushBuffer(); とやってるか new Primitive( PRIMITIVE_TRIANGLES , 0 , 1 ); for( i = 1 ; i <= 3 ; i++ ){ vb = getVertexArray; vb[ 0 ... ] = i枚目の座標を設定 renderObject3D( primitive , mat ); } flushBuffer(); とやってるか。 つまり上の方法のrenderObject3Dを実行する回数を減らせば速くなるんじゃないの、という事。 そういや壁等の状態で描画したいPrimitive数を変えたいときってメソッドで指定できたっけ? まあなんだ、とにかく俺はマスコットカプセルのヘボ仕様に嫌気がさして使うの止めたけどさww
行列とか三角関数とかすっかり忘れちまったぜ('A`)
マスコットカプセル、あれが正式採用だって絶対おかしいよね。 普通にJava3DでもOpenGL ESでも積みなおして欲しいくらいだ。
829 :
デフォルトの名無しさん :2006/07/16(日) 00:19:36
Vectorって使える?
>>823 どうでもいいことかもしれないけど
50ms間隔で鳴るメトロノームってテンポ1200じゃまいか
拍子によっても違うんじゃないの?
832 :
823 :2006/07/16(日) 01:00:08
ちなみに50msは4分音符を300とした16分音符です。 それくらいあると色々嬉しいのです。そのくらい細かい支えの上で演奏して こそ良いリズムが出るとか云々。 ちなみに、今日考えてみたところ、テンポを指定したら、1分間分のデータ をメモリ上にmld形式みたいな感じで作成して、それをロードしたりできると いいなぁ・・・とか思いました。Javaは初心者なもんで、メモリをいじるのを どんくらい柔軟にできるか分からんけど、やってみようかなぁ、と。 できそうかどうか分かる方いらっしゃいましたらアドバイスお願いできます か?メモリ上に配置されたデータをMediaSoundが読み込めるかどうかetc
失礼、
>>830 は4/4拍子の例です
拍子云々は置いておいて
実用性を考えると、せいぜい200msくらいで十分とおもたよ。
個人の要望だろうから、いらんお世話でしょうけど
ちなみに50ms間隔の音ってピピピピの「ピ」が1秒間に20回鳴るんだよ 正直誰も聴き取れないと思う ちなみにmldのテンポ部分をプログラムで変更すれば再生可能。 ただし音声ファイルは使えないから携帯のプリセット音を使う必要がある wavじゃなくてmidiってことね
835 :
823 :2006/07/16(日) 01:15:20
ちなみに俺の持ってるメトロノームはテンポ250の16分まで刻めるんで、 6,70msってとこでしょうか。ただ、細かく刻むと、1拍目と2拍目の音色が 変わってしまうなど、色々不都合があるもんで、自作にいたったわけです。
836 :
823 :2006/07/16(日) 01:25:15
>>834 ミュージシャンは割りとそのくらいは聴き取りますって言うか、
きいてる限り、3〜5ms精度を基準として演奏しますよ。それに作ってみれ
ばわかると思いますが、ズレに関しては10msもずれたら素人にもばれますし。
実は昨日DoJaインストールしたばっかで、まだあまり調べてなかっただけな
んですが、mldってのはmidiとwavを足したようなものなんですね。まぁ結局
自分が使えればいいし、携帯のプリセットでも問題ないっすw ありがとう><
3〜5ms精度 それはスイング感のことであって、メトロノームに求める値ではないと思たよ。 これ以上スレ違いなので、去ります。
838 :
823 :2006/07/16(日) 01:55:13
ま、単音で聴き取るという意味での3〜5msです、とりあえずメトロは50msあ れば十分ですね。それはおいといて。 >mldのテンポ部分をプログラムで変更 この方針でやってみようかと思います。mldの仕様に関しては、色々ネットに あるようなので、まずはどうやっていじるかを検討しようかな。JAVAって使い やすいようにデータを管理されてるから、実体がどこにあるか分からんですね ・・・。
839 :
823 :2006/07/16(日) 02:02:33
あ、バイト配列を指定してのGetSoundってあったんだ。。なんだ、簡単じゃんか。 503iの仕様書読んでたよ・・・orz つーわけで、俺も去ります。
>>468 みたいなことやってるんだけど
エミュ(4.1)のStorageDevice#getFolderがIOException吐くんだわ。
で、エミュのDevGuide.pdfやbin\doja.exeの中をみると
lib/storagedevice/ext0/SVC0000あたりにディレクトリを作らないとダメそうなんだけど
いろいろ名前を変えてもうまく行かないんだわ。
何か知ってる人いない?
>>823 MLDのテンポは最高250までだったと思うし、分解能も四分音符の
48分解能で指定したと思うから、50msならOKだと思うが
あまり細かい時間だと難しいやもしれぬ
>>828 確かにクソだ。
採用した奴は、ワイロ貰ってそう。採用理由がわからん。
3Dなんて表示できれば何でも良いよ(・3・) と思う俺二次ヲタ。 採用当時は権利関係とかで一番安くてリスク低かったんじゃね?
3D機能には拘らないけど 脳の容量が小さいだけで二次ヲタとか自称するのに語られるトコをみると 気の毒に思えてくる
3Dさっぱりわからん
>>844 某キャリアの公式資料とか見ても、結局アプリの大半はゲームだから
仕方ないだろう(・3・)
3Dは納期とコストとクオリティーの問題で割りにあわねぇんだよ。
ただ表示するだけなのに、3Dはちょっと・・・とか言い出す奴も多いしな。
んで、クソ3Dゲーの企画書が二次ヲタの俺に回ってくるわけだ(・3・)
こだわらずに出すだけならmicro3Dでいいよw
847 :
流れ者 :2006/07/16(日) 20:00:43
使用してないFOMAの携帯がありましたら1000円〜3000円で売ってください。 売ってくださる方がいましたらアド入れといたんで連絡下さい。
848 :
805 :2006/07/16(日) 22:04:07
>>825 >>826 本当に申し訳ありません。
自分は
>>805 で書いた描画方法@の処理で
Primitiveのコンストラクタ生成時に
Primitive[] p = new Primitive[壁枚数]
と宣言した配列に対して、壁枚数分の
new Primitive( PRIMITIVE_TRIANGLES , 0 , 1 );
としていた為に描画方法@とAとで描画速度が
変わっていない事が発覚しました・・・。
new Primitive( PRIMITIVE_TRIANGLES , 0 , 壁枚数 );
として描画してみると格段に早くなりました。
描画処理は幾度となく見直しましたが、
コンストラクタ生成部分に目がいかなかったのは
恥ずかしい限りです。
移動部分の描画処理に関しては大幅な修正になりますが、
これで作成が進みそうです。
本当にありがとうございました。
849 :
840 :2006/07/16(日) 22:47:14
う〜ん やはり実機だと動くのにエミュで動かない…なんじゃこりゃ(苦笑
メトロノームはやめとけ。 プログラミング歴・ピアノ歴25年の俺様があらゆるテクニックを駆使しても 実用に耐える安定再生はできなかった。mld使っても駄目。 Java&DoJaはこれだから困る。
1拍子ごとに鳴らすんじゃなくて、あらかじめいろんな種類の拍子の、1小節分の長さのmld or MIDIを用意するのはどう? 某ループ機能つき着メロアプリは入力された値からMIDIを生成するのだが、そんな感じで作ればできそうだけど。
確かにそれならいけそうだな。 基本的にプログラムもハードも立ち上がり部分が遅いから、 そこさえ乗り切っちゃえば期待通りのはずなんだよね。
853 :
823 :2006/07/17(月) 16:10:22
851さんの方法に近い方法でやろうとおもいます。 リズムマシンみたいに、何小節目の何拍目の裏を自由に消したりできる 仕様にするので、リソースをあらかじめ用意すると足りないって事で、 リズムパターンを指定されたら、mld形式のバイト列を作成して、 それを読み込む事にしようと思います。 テンポをかえる毎に、バイト列を毎回作り変える必要があるので、 その辺がどのくらい高速にできるかは、やってみないとわからないかな。 MFi(mld)についての詳しい仕様ってDocomoから出てたりはしないんですか ね。個人のページは見つかるんですが、ちょっと古いみたい。
非公開。 いいかげん公開しろ糞ドキュモ。
着メロ業者の陰毛です
856 :
デフォルトの名無しさん :2006/07/17(月) 20:50:34
時給1000円でJava教えてくださるかたを募集します 場所 所沢(池袋・高田馬場から直通) よろしくおねがいします i−want−to−study−java@hotmail.co.jp 教える対象は超初心者です。 専門学校などでJavaを勉強されていて夏休みだけ教えたいという方も歓迎です
監禁されてSPAMメール送信の手伝いさせられそうだな
>>851 >某ループ機能つき着メロアプリ
kwsk
iMusia
860 :
デフォルトの名無しさん :2006/07/19(水) 01:54:14
リソースにテキストファイルを入れたとき、 そのテキストの文字列はどうやって取得すればよいでしょうか? DataInputStream in = Connector.openDataInputStream("resource:///BankingDemo/txt/test.txt"); ↑の後、どうやればいいか分からず詰まってしまいました。 よろしくお願いします。
>>860 APIリファレンスのDataInputStreamの説明は読んだか?
>>860 DataInputStreamは、DojaのAPIじゃなくてCLDCのAPIリファレンスマニュアルに載ってるから、
そいつを参考にするとわかるよ。
>>860 リソースにデータ入れるなんてそんなもったいないことしたことないけど、
スクラッチパッドと同じようにbyte[]で読んでStringにすればいいでそ
864 :
860 :2006/07/20(木) 01:04:54
>>861-863 返答ありがとうございます。
DataInputStreamの方ではあらかじめリソース内の文字列の
大きさが分からないのでreadFully(byte[] b) ができず、
ByteArrayInputStreamにつっこみながら入力を読み取っていく、
ということでよいでしょうか?
>>864 DataOutputStream#writeUTFで書き込んだ文字列(修正UTF-8)なら、
そのままDataInputStream#readUTFで読めばひとつずつ取れる。
普通にメモ帳とかで書いたテキストファイルなら、
InputStreamReaderで一文字ずつ読んでいく。
で、なんかの区切り文字で分け分けする。
ひっかかってるのは、↑部分であってる?
実機では動作するのですが、 Doja3.5のエミュレータでOutOfMemoryErrorが出て困っています。 エミュレータで使用するメモリサイズの指定とかは出来ないのでしょうか?
868 :
866 :2006/07/20(木) 12:02:54
>>867 OutOfMemoryErrorが出るのでメモリ不足なのでは?
>>868 とりあえずエミュにメモリ設定はないと思うぞ。
で、エミュだけでるってのは正直おかしい、逆ならありえるが・・・。
よっぽど弱いPCつかっているか、アプリ同時に立ち上げすぎか・・・。
でも普通ありえないしな・・。
>>866 公式ドキュメントに指定方法が載っています。
エミュのメモリ設定ってデフォで5Mくらいじゃなかったっけ?
3.5は6MB
64bitマシンで動くアプリの登場か。 すげーの作ってるんだろうな、きっと。
874 :
デフォルトの名無しさん :2006/07/20(木) 23:37:19
皆様、こんにちは。質問させてください。 Eclipse2.1.3 + DoJa_0.0.1プラグインという環境でiアプリ作成をしてるのですが "resource:///test.txt"でリソースを指定してもそのファイルを見ていないようなのです(同じコード内容でエミュレータからの起動は確認済み)。 フォルダ構成としましては、 eclipse\workspace\プロジェクト名 下にresフォルダを作成してその中にリソースファイルを置いているのですが、 なにか参照設定のようなものが必要なのでしょうか? どなたか教えていただければ幸いです。
875 :
823 :2006/07/21(金) 01:24:28
どうも、ようやく実用スピードで動くようになりました♪ UIはまだ作ってなくソースコードを直接いじってテンポ設定なんで、 公開レベルではないですが、普通に20〜30msまで安定して動作可能な メトロノームができそうです^^ ・・・そこまでは使わないと思いますが。 みなさま、ありがとうございましたm(_ _)m
(;´Д`)いや、是非公開してくれよ
いやです^^
1拍で「あっ…」1小節で「いやん…」と喋るメトロノームきぼんぬ
1拍で「ごしゅじん…」1小節で「さま〜ん…」と喋るメトロノームきぼんぬ
16拍子限定ですがよろしいですか?
いつからここは「こんなメトロノームはいやだ」スレになっちまいやがりましたか?
883 :
823 :2006/07/23(日) 01:48:37
忙しくてUI作ってる暇が無いや。明日の夜にでも頑張ります。
てか、公開するよーなもんでもないっすよ。
byte data = new byte[400];
data[0] = 0x〜〜みたいにしてるだけですわ。
>>878 >>880 今度、彼女の声でも録音しておきますw
「ごしゅじん…」で止まるとメイドガイを思い出すな。
期待age
既出なら本当に済みません。 もともとVB、ASP、PHPで仕事をしておりまして、 今度携帯アプリの話が出始めていることから勉強しようと思い、 NetBeansIDE 5.0にてJavaを一通りデスクトップPCで勉強しました。 次にと思い、iアプリに挑戦しようと思ったのですが、 NetBeans用のモジュールが見つかりません。 ネットの掲示板(控えるのを忘れて閉じてしまったのですが・・)では Doja4.1の拡張モジュールを入れて開発をやってます的な記事も見たのですが 昨日から探し続け、過去ログも一通り見たつもりですが分からなかったです。 NetBeansの日本語ページにも有りませんでした。 なにか情報をお持ちの方、宜しくお願いいたします。
確実に好きなタイミングでgcを行う方法ってないのでしょうか?
System.gc呼べ。
889 :
887 :2006/07/23(日) 11:22:46
呼んでも、すぐにgcされないよね?
勿論実装依存なんでなんとも言えんが、iアプリに限ってなら、されると思ってほとんど問題ないんじゃないかね。 gcを裏で回す様な端末の存在は寡聞にして知らない。 問題になるのは、gc自体の性能が劣悪で、断片化が起こったりする端末があることで。 なんで疑問に思ったの?
>>886 Eclipse使ってればphpもJavaもこれ一本だったのに・・・
回答になってないけど、IDK使っとけと。
VB.NET
うのみとばし、やっと解読できた。 色々改造してみよう
>>890 > 問題になるのは、gc自体の性能が劣悪で、断片化が起こったりする端末があることで。
ガベージコレクションとメモリコンパクションは別物です
なら何を求めると
gcのタイミングに何も期待するな、とあれほど言っただろ。from SJC-P
俺のターン! N903を攻撃表示!
N903の特殊効果、GPSの精度に難有りを発動!!
フッ‥甘い! トラップカード「Dの呪縛」発動! これで貴様の処理速度は最低でも100msかかるぜ!!
900 :
デフォルトの名無しさん :2006/07/24(月) 00:36:28
音楽を切れ目なくループして再生したい場合はどうしたらいいですか?
音楽を切れ目なくループして再生してください
カメラの画像って自動取得できないの?
あんな過激なシーンや、こんなウホッなシーンで勝手にカメラ撮られたら恥ずかしいでしょ?萎えるし。
iアプリからメールの件名や本文を書いて送信って出来るんでしょうか 出来るなら勉強始めようと思うんですが・・・
一般人には無理。
サーバーサイドスクリプトを組み合わせれば可能 iModeメールは無理
>>906 ラジャ 撤退します
って、とりあえずテキストボックスに入れた値を加算してラベルに表示って程度は作れたのですが、その程度じゃダメ?
>>907 サーバーサイドスクリプトってCGIとかのことですか。
だったらCGIだけで処理したほうが手っ取り早いか。
>>908 技術云々じゃなくて企業じゃないとダメ。
CGI経由なら可能だけど迷惑メール対策されると届かない可能性有りなのと、
ご存知の通り全部formにしたほうが早い。
>>910 >CGI経由なら可能だけど迷惑メール対策されると届かない可能性有りなのと、
このあたり、form にするのもiアプリからCGI経由でmailするのも全く変らんと思うが・・・
DSブラウザ買って思ったんだけど、Wi-Fi通信できる素敵なiアプリとか作れ ないかなぁ。まぁ普通に無理か。
IrDAなら
携帯のスロットはSDIOに対応してないんだった。
LAN - PC - 赤外線アダプタ - 携帯 じゃないところが泣ける
917 :
デフォルトの名無しさん :2006/07/25(火) 15:10:21
落ちものパズルのような、 多くの画像を同時に描画しなければならないものって どのように描画の高速化を図れば良いでしょうか。 低スペックの端末だと、どうしても処理速度が遅くなってしまいます。
>>917 普通に差分描画してダメなら対象外とするとか動く部分を減らすとかじゃね?
919 :
917 :2006/07/25(火) 15:36:30
>>918 一応最低限描画すべきものだけしか再描画をかけていのですが、
すべての要素を全て再描画しなければならない時などの対処のしようが
ちょっとわからないもので。
マジレスすると諦めろ
921 :
917 :2006/07/25(火) 16:07:43
>>920 やはり諦めですか。
少しでも軽くなるように努めて、それで良しとするようにします。
ありがとうございました。
lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll llllllllllllllllllllllllll/ ̄ ̄ヽlllllllllllllllllllllllllllllllllllllllllll lllllllllllllllllllll / ヽllllllllllllllllllllllllllllllllllllll iiiiiiiiiiiiiiiiiiiiii 試 そ あ .iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii iiiiiiiiiiiiiiiiiiiii| 合 こ き |iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii ;;;;;;;;;;;;;;;;;;;;;| 終 で ら |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;| 了 め |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;:;:;:;:;:;:;:;:;:;:;| だ .た |:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;: ;:;:;:;:;:;:;:;:;:;:;| よ ら |:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;: :.:.:.:.:.:.:.:.:.:.:ヽ、 /.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.: :. :. :. :. :. :. :. :. ‐‐--‐‐':. :. :. :. :. :. :. :. :. :. :. :. : : : : : : : : : : : : : : : : : : : : : : : : ,.‐- 、 : : : : 廴ミノ ///¨' 、 y':;:;:;:/⌒i! J:;:;:;:;};:;:/;}, ;il||||li' t`'---‐';:;:;:l ,.r'"''、,┘ 7;:;:;:;:;:;:;:;「 ノ4 (⌒i .}:;:;:;:;:;:;;/ /..,__彡{, | `i:;:;:;:;:;} ( .ミi!} l、 .」:;:;:丿 クュ二二`Lっ) `==='
>>919 最初からゲームのフレームレートを落とすってのも手。
20fpsで作ってるなら10fpsにするとかね。
あとはゲーム設計そのもののを作る時から差分描画が
出来る事を前提の仕様で作れるように心がけるのも重要。
プログラム的に負荷がかかるようなルーチンになってないかも重要。
waitのかけ方や音の再生部分やgcのかけているタイミングとか。
小さい事も積み重なれば重いからね。
924 :
917 :2006/07/26(水) 16:16:17
>>917 描画範囲外に全てのアイテムをあらかじめ描いておいて
必要なときに必要なものを転送するとキャッシュみたく速くなります
描画命令の発行数が露骨に足引っ張るもんね。 一括描画は必須。 しかし、考えてみれば携帯Java走ってる端末って、どいつもこいつも フレームバッファ完備のフルグラフィック機なんだよな。 ちっこい図体で本当よくやる。
ネットから画像用のjarファイルを読み込もうと思うのですが、 一度に読み込めるjarファイルの容量に制限とかってありますか?
一度に持ってこれるサイズに制限がある。 Doja3.0で20KBとか。 なので、ファイルを適当なサイズでぶった切っておいて、順次読み込んで メモリに持つなりスクラッチパッドに書き込んじゃうなりしてから展開することになる。
>>928 やっぱり制限あるんですね、ありがとうございます。
スルーされてるけど>925ってマジ? こんな機能聞いた覚えが無いんだが…
>>930 D機種だけだな。
D機種は「new Imageしても即座に作成されず、実際に(drwaImageやgetPixelsなどで)そのImageが必要になった時、初めてImageを生成する」
という癖がある。
>>930 屯クス
VBか何かの冗談かと思ったよ(゜▽゜;)
D機種といえば、D901iとisでほかの端末よりもあきらかに速度が出ずに困ってます。 1フレにかかる時間は16msくらいで、それは他の端末も同じくらいなんですが、 なぜか、速度が遅い。さらにキーレスポンスも悪い。 なんででしょうか?
>>933 ちょっとは読み返せw
1フレームにかかる速度が16msで他と一緒。
なのに遅いって何が遅いんだよ・・・・フレーム速度が遅いというなら
フレームレートの計測が間違ってるんじゃないのか?
あとキーレスポンスが悪いのはDの伝統。
レスポンスというより仕様が違うんだよな。
今回のでは連打するとシステムに負荷がかかり
見るからに速度が落ちる。
Dの中の人には、その辺のフィードバックは行ってないのかなあ。 いつまで経っても劣等生のまんまじゃん、それも特級の。 新機種だろうと何だろうとDってだけでやだよもう。
D機種は・・・って話が出てるけど 901i以降はFも中身一緒じゃないの?
パンダゲームを作るので忙しい
Java、Doja何も知らないんだけどアプリ作成のための良い本ありますか? Java基礎から学んだ方が良い? 最初からiアプリ作成の本はきついですか? スレ違いすいません。
npaka でぐぐれ
Javaの勉強がしたいのか、 iアプリさえ作れればどーでもいいのか。 それが問題('д')
iアプリの場合なんでもかんでも一つの関数に入れまくりだからなぁ Javaの勉強になるとは思えない
>>938 プログラム自体の理解度による。
つまりは他の言語でそれなりに
プログラミングした経験があるかないか次第。
まったく無い場合はiアプリの本を買っても
恐らくわからない。JAVAの勉強が先。
経験があるならまずは開発関係の資料に目を通してみる。
いきなり理解は出来ないだろうけど一通り目を通したら
ネットでサンプルコードを探す。そのコードを解読してみて
判らなかったら初めて本を買えば良い。そこまでやれば
自分にどの本が合うのかある程度わかるはず。
みなさん親切にありがとうございます。 iアプリが作れればいいのですがプログラミングは何もした事無いのでJavaの本から買ってみます。 どの本が良いかは探してみます。 後気が向いたらお勧めを教えてください。向かなければスルーで
すいませんiMonaでしたのでリンクに飛んでませんでした。 ありがとうございます。
iアプリツールに付属してくる「カーレース」ゲームは、 メソッドどころか、細かくクラス分けしてあるんだよな。
docomo で動くように作れば auとかでも動く?
ちょっと変えれば動く。 そのままじゃ無理。
>>947 昔のサンプル「テトリス」も同じような感じだった。
Java初心者には難解な。
大概ちょっとじゃすまねぇな。 表示系と保存周りはかなり変えないと。
BREWを期待してなければまだ救われるが……。
スレッド一切立てないで、尚且つnewも殆ど使わないで、 Vectorもアレやコレも論外・・・にしてもムズイなw
まるでJigletだなw
Javaの極北だからなあ。 いっそC++使えた方が楽かも知らんと思わないでもないでもない。
Write Once, Run Anywhere っていうキャッチコピーで 一度書けばどんな環境でも動作する汎用性がJavaの売りだったのに、 携帯会社ごとに、微妙にパッケージが変わってしまうともうなんか…。 携帯のボタンや機能なんて限られてるんだから、 本当にその機種特有の仕様をいじる場合のみ、独自パッケージを用意すればいいのに。
>>956 同一キャリアならほぼWrite Onceが実現できてるだろ。
これは一昔前なら考えられないことだぞ。
だなあ。 っつってもまあ、その半分はコード書く奴の努力の成果なわけだけど。 結局みんな最大公約数戦略とってるもんなあ。 どうにもならないで個別対応ってのも少なくはないし。
>>950 サンプルの手とリスは難解以前に
まともに動作しない機種があってワロタ
古い機種だとメモリ不足になるよ クラスやメソッドが多すぎると動かないらしいから 結局一つのメソッドにずらずら書くケースが多い
クラスが多いと異常に遅くなる機種なんてのもあったなあ。 いや、本当にクラスのせいなのかはわからないんだけど、 何も知らないで定数類の読み込み&取り出しを別クラスにまとめといたら 時々気味が悪いほど遅くなるようになっちまった。 これを1クラスにまとめた瞬間普通に動くようになって、首をひねったことがあるんだ。 クラス名の解決とかにそれなりのコストがかかるのはわかるのだけれど、 目に見えて(数秒とか)固まってしまってたのは…。 記憶があいまいなんだけど、N505あたりだったかなあ。 確認した限りでは、その機種に限った問題だったと思う。
個人で作ってる場合、 気軽に多機種で検証できないからなぁ。 企業アプリではそういうのを全部専門部署で検証したりするんだろか。 俺の場合は、自分用の資格試験問題集をアプリで作るくらいだからいいけど。 公開したら著作権法違反になっちまうよなぁ…。
問題集の著作権の持ち主にお伺い立てるしかないよなあ。 むしろ買ってくれって売り込んでみるのはどうよ。
企業アプリではそういうのを全部専門部署で検証したりします
>>963 出版社とかにメール送ればいいのかな。
最初は、自分だけが便利に使える問題集でいいって思ってたんだけど、
少しずつ機能加えてくうちに、ドコモの公式ページに登録されてるのよりも
俺の作ったやつのほうが全然使いやすいじゃんとか思ってきて。
別に金とかいらないから、みんなにも使ってもらえたらなぁって思うようになった。
市販の色んな資格試験問題集をまるまる写したものばっかだけど、かなりの量たまってんだよね。
ちょっと中身替えたくらいじゃ著作権法にひっかかるだろうし…。
無償でいいから見栄えがよくなくても使ってもらいたい って考えていたらデザインに労力を割くのはどうなのかね
>>967 普通の企業の心理からするとたとえ無料でエンドユーザが使いやすくても
見栄えが悪ければ社のイメージの悪化にも繋がるからコンテンツは提供したくないの。
相手が「見た目はちょっと修正すれば大丈夫」と判断できればOKかもしれないけど
そういう風に考えることのできる人が出てくることはマズ無いと思ってかからなきゃ。
見せたものをまんまリリースするわけじゃないんだから…
965ではないが目的と手段に齟齬が出るから 966は底から無意味
本とかのデータを利用するんなら無料というわけには行かないだろ 金取るならそれなりにってなるかもな
見栄えは大事
973 :
デフォルトの名無しさん :2006/07/29(土) 23:29:44
DoJa-4.1の開発キットをダウンロードしたのですが、 APIのソースはどこにあるのでしょうか? 4.0のときはxxx-src.zipとかいうファイルで同梱されていました。
975 :
デフォルトの名無しさん :2006/07/30(日) 00:51:40
>>974 え?ど、どれですか?
マニュアルとJavadocしか見当たらないのですが。
あ、APIじゃなくてAPIのソースのほうか。ゴメ間違えたよ。
持ち込みで正面から企画持って行くときは見栄えが重要。 なんらかのコネでちょっと裏から接触できるなら敷居はさがるけど それでも結構気にされる。人が食いついて来ないんだ。 # まぁそれでも普通、萌絵は無しだと思うが。
萌え絵なんか出したらPGからイラストレータに飛ばされる。
> 萌え絵なんか出したらPGからイラストレータに飛ばされる。 それはPGから見たらある意味で出世、もしくは脱出なんじゃなかろか。
981 :
デフォルトの名無しさん :2006/07/31(月) 14:39:41
ちょっと質問です。 最初のstart()のなかで Display.setCurrent(new MyCanvas()); とCanvas指定して final class MyCanvas extends Canvas implements Runnable { 見たいなのはありですか? 時間がかかる処理があるので Canvasのなかで別スレッドつくって その値を画面表示させたいので、こういう風にしたのですが。 作法的に悪いんでしょうか? あと、そのスレッド(run)から thread.sleep(1000); みたいに、wait入れたいのですが、 threadからstaticメソッドsleepにはstaticにアクセスしてくださいといわれるのですが これはどうしたらいいのでしょう?
>作法的に悪いんでしょうか? 別に >これはどうしたらいいのでしょう? Thread.sleep(100);
>>981 メインスレッドはそのままでサブスレッドを作りゃいいと思う。
new Thread() {
public void run() {
// 時間のかかる処理
}
}.start();
この記述だとアプリサイズがかなり大きくなるので
別の工夫が必要だとは思うけど、
スレッドを立てたいがためだけにわざわざMyCanvasクラスを作って、
その上メインスレッドがあちこちに動くような構造よりかは100倍マシかと。
985 :
981 :2006/07/31(月) 18:42:39
レスありがとうございます。
>Thread.sleep(100);
static ってこういう意味だったんですね。
うまくいきました、ありがとうございました。
>>984 重い処理の結果を画面表示したいので、
Canvasからスレッドを作ったわけでした。
そしたら、そのまま変数を共用できますので。
Cみたいにグローバル変数みたいなのが使えればいいのですが、
Javaの場合異なるクラスでのデータのやり取りの仕方がわからなくて。
986 :
デフォルトの名無しさん :2006/07/31(月) 21:03:10
iアプリ作ったんですけどサーバーを借りないとダウンロード出来ないんでしょうか? AN HTTPD使えるのかなと思ってぐぐってみたんですけど どうやらうまくないみたいで
>>986 yahooとかのフリースペースでも良いし、自前でapache立てても出来たよ。
>AN HTTPD使えるのかなと思ってぐぐってみたんですけど
>どうやらうまくないみたいで
とりあえずjamの設定を見直せ。
>>987 レスありがとうございます
AN HTTPD使えるなら借りなくてもいいし自分で立てなくてもいいと思ったんですけどね
もうちょっと悩んできます
AnHTTPDはバグが多いからやめとけ
>>988 IPでのアクセスは無理。ドメイン名が必要だから。
991 :
975 :2006/08/01(火) 00:00:12
>>977 デバッグとか、Javadocの代わりとか。
>>990 DHCPでもグローバルIP割り当てられてるならDynamic
使えばいいよ。
994 :
デフォルトの名無しさん :2006/08/01(火) 15:08:47
iアプリはpng使える?
無理
埋めよか
生め
産め
梅
1000ならJアプリと富樫が次世代iアプリ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。