2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:04/12/12 18:36:57
NTT DoCoMoのiモード携帯電話用Javaに関する話題を扱うスレッドです。

DoCoMo以外は下記スレへ。

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

過去スレ
Part 1 http://piza2.2ch.net/tech/kako/975/975428633.html
Part 2 http://pc3.2ch.net/tech/kako/1000/10007/1000723476.html
Part 3 http://pc2.2ch.net/test/read.cgi/tech/1040898596/
Part 4 http://pc5.2ch.net/test/read.cgi/tech/1067139509/
Part 5 http://pc5.2ch.net/test/read.cgi/tech/1084246226/
Part 6 http://pc5.2ch.net/test/read.cgi/tech/1091286071/


2 :デフォルトの名無しさん:04/12/12 18:41:50
■ 開発環境

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

■ 機種依存情報

ん・ぱか工房(iアプリ機種依存情報)
http://www.saturn.dti.ne.jp/~npaka/
NTT DoCoMo - アプリケーション作成上の注意点
http://www.nttdocomo.co.jp/p_s/imode/java/caution.html
Overflow! さかきけいのページ(504iまでの機種依存情報つきAPIリファレンスあり)
http://godwood.allnet.ne.jp/vioret/

■ アプリを省サイズ化するツール(ObfuscatorまたはOptimizer)

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


3 :デフォルトの名無しさん:04/12/12 18:43:39
■ 主なアプリ配布サイト

ギガアプリ
http://g-appli.net/
アプリ★ゲット
http://appget.com/
ゲームチャンネルi
http://appli.channel.or.jp/pc/i/

■ 携帯関連ニュース

ITmedia:モバイル
http://www.itmedia.co.jp/mobile/
ケータイ Watch
http://k-tai.impress.co.jp/
Nekomaru What's New
http://snget.hp.infoseek.co.jp/news/news_index.htm

■ 関連板

携帯アプリ板
http://news6.2ch.net/appli/
携帯・PHS板
http://etc.2ch.net/phs/


4 :デフォルトの名無しさん:04/12/12 19:19:53
iアプリ特有ではなくJava一般に関する質問はこちらへ
【初心者】Java質問・相談スレ58【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1102420209/

5 :デフォルトの名無しさん:04/12/12 20:01:35
新スレ乙カレー

6 :デフォルトの名無しさん:04/12/12 21:53:45
>>1
乙カレイドスター

7 :デフォルトの名無しさん:04/12/13 01:13:27
早速なんですがPanel型クラスで
public void keyPressed(Panel p, int param) {
if (param == Display.KEY_LEFT) {
         中身
}
}
が作動しないんですが、
これはフォーカスか何かが関係しているのでしょうか?

8 :デフォルトの名無しさん:04/12/13 01:21:50
>>7
keyPressedってKeyListenerだっけ?
KeyListenerは、フォーカス移動とかに使われるキーを押しても呼ばれないよ。
それらのイベントはフォーカスマネージャーとかに消費されちゃうから。
だから、実質的にKeyListenerで捕捉できるキーイベントって数字キーくらいじゃないかなあ。

9 :デフォルトの名無しさん:04/12/13 01:45:00
>>8
ありがとうございました。
だから数字キーでは動いたわけなんですね。
ではフォーカス移動の方で代用してみます。

10 :デフォルトの名無しさん:04/12/13 23:06:05
前スレ埋まってないよ〜

11 :デフォルトの名無しさん:04/12/14 10:07:04
埋めたら落ちちゃうでしょ!
土日またいであげないと、土日プログラマの人が最終ログとれないじゃないか。

12 :デフォルトの名無しさん:04/12/14 22:12:56
http://m-pe.tv/u/page.php?uid=WORDLIFE&id=14

13 :デフォルトの名無しさん:04/12/15 23:40:55
>>12
エラー!
------------------------------------
ページがありません

氏ね

14 :デフォルトの名無しさん:04/12/16 02:10:37
過去ログ、公式PDF読みあさったけど解らないんでおしえてください。
Doja-3.5プロファイルで組んでいる時にjarの容量が32kを越えたとたん
実機でエラーになります。
トレースではmessage = Maximum byte code length (32KB) exceeded
となるんで、容量制限みたいな物に引っ掛かってるんだと思われるんですが
jarを100k使いたい場合にはjam等に特別な表記がいりますか?
もしくは解決法ご存じの方ご教授願います

15 :デフォルトの名無しさん:04/12/16 02:57:01
>>14
ひとつのメソッドの中で大量の配列を確保したらそんなエラーが出たような記憶が。
ごめん、うろ覚え。
もし心当りがあったら、複数のメソッドに分けるなりして減らしてみ。


16 :デフォルトの名無しさん:04/12/16 02:59:37
>>14
dat落ちした初心者スレで昔見たような‥

jarのファイルサイズは関係ないし、エミュでもエラーになると思うが、
・巨大なメソッドがある →分割汁
・巨大な配列を初期化している →バイナリファイルにしてリソースへ

よく知らんけど、起動時のベリファイにサイズ制限があるっぽい

17 :14:04/12/16 03:32:45
なるほど、これはJarには関係無いのですね。
エミュでもエラーになります
(ALERT: Maximum byte code length (32kB) exceeded)

たしかに巨大なメソッドがあるし、配列もそこそこ大量にあります。
さっそく分割できるとこを探して分割したりしてみます。

助かりました。有り難うございます。

18 :デフォルトの名無しさん:04/12/16 03:44:29
> Maximum byte code length (32KB) exceeded
まあ、「バイトコードの最大長(32KB)超えてまんで」とハッキリ言ってるわけだが。

19 :14:04/12/16 04:45:38
エラーの意味をてっきりJAR30kb制限と勘違いしてたようです。
1つのメソッドで32k越えるとそういう風になるみたいです。
メソッド分割したら、あっけなく動きました。
アドバイス感謝です!

20 :デフォルトの名無しさん:04/12/16 10:27:05
iアプリに限らず着声の質問になってしまうかもしれませんが
音声ファイル(wav)をアプリで再生することについての質問です。

PsmPlayerでwavファイルをmldに変換しようとすると
変換時に機種名を指定するようになっています。
ってことは、機種別に専用のmldファイルを用意する必要があるということでしょうか?

何が言いたいのかというと
機種をN用と指定して変換した音声ファイル(MLD)が他の機種で再生されないのです。
できれば全機種用のMLDを用意したくないので
なにか抜け道があればいいのですが。

だらだら長文スマソ

21 :デフォルトの名無しさん:04/12/16 10:58:39
>>20
ありません。機種毎のMLDを用意しないといけないのは糞仕様です。
同系列の端末は互換性あるけどね。

22 :20:04/12/16 11:16:09
>>21
速攻レス、本当サンクスです!
iアプリはクソ仕様だらけの世界ですなw

はぁーっ↓、対応しなきゃならんかいorz...

23 :デフォルトの名無しさん:04/12/16 11:48:21
同系列だと互換性があるだぁ!?
甘い、甘すぎる。

SH505i と SH505iS は互換性が無い!

24 :20:04/12/16 12:02:49
>>23
それはSH用に用意した音声ファイル(MLD)が
片方では鳴るけど片方では鳴らないということでしょうか?
もしそうだとしたら、なにか対策とかあるのでしょうか


25 :20:04/12/16 12:20:16
諦めて、音声ファイル(wav)を機種別に用意するべく
PsmPlayerでMLDに変換していたら、なんと
DとかP用だけ音が割れる音声が出てきたよorz
DとP用にwavから作りなおす必要あるのか
知らなかったです


26 :25:04/12/16 12:26:08
スマソ、いさみ足でした
別の変換ツールつかったらうまくいった
単にPsmPlayerの変換処理とwavの相性が悪かっただけみたい


27 :デフォルトの名無しさん:04/12/16 13:03:41
別のMLD用意しる。
Wev2Mldとかならきちんと分けて吐いてくれるぞ。

28 :27:04/12/16 13:04:05
>>24

29 :デフォルトの名無しさん:04/12/16 14:29:08
505以降(90x含む)のゲームをちょっと前に作ったので今確認してみたら、
音声データ10種類用意してたよ・・・

こういうところの共通化は、ずっとされないんだろうね
今後3D音声とかまでやらされた日には・・・orz

30 :29:04/12/16 14:33:58
3D音声は先走った妄想だな・・・

31 :20:04/12/16 15:02:58
wav2mldのページ見ていて愕然としました

P900iってP505i(S) P506 とは同じじゃないんですね。
むしろP504iと同じとは...謎だ

SO505iとSO505iSもちがう

901シリーズとかどうなっちゃうんだよ〜(TT)

32 :デフォルトの名無しさん:04/12/16 16:03:23
DoCoMoは機種ごとに音源チップがまちまち。
PCM音声(実際はADPCMみたいだけど)は、音源チップごとに形式が
違うから互換性がないんですよ。

33 :デフォルトの名無しさん:04/12/16 16:49:40
>>30
おいおい…。Doja4.0は3D音源対応だろうが。

34 :29:04/12/16 17:30:01
>>33
wavから3Dのmldって出来るの?
そういう意味での3D音声って発言だったから、
先走りかなって・・・
ってか、そろそろちゃんと調べておくかな

どっちにしろ、前機種のmldさえちゃんとなってくれれば、
問題ないんだけどね・・・

35 :20:04/12/16 21:45:04
>>32
なるほど!そういうことですか。
確かに調べてみると
P900iとP504iは同じだけど
→ROHM製PCM音源(44.1kHz)

P505iだけなぜかSO,SH,Dとおなじらしい。
→FUETREK製PCM音源(48kHz)

P505iで48kHzに対応させたけど
やっぱり48kHzはまだイランってことで
900iで44.1kHzに戻したのかな??



36 :デフォルトの名無しさん:04/12/16 22:45:01
ttp://www.hundredsoft.jp/wav2mld/ より
     1. N210i, N211i, N503i
     2. N504i, N251i
     3. N505i(iS), N900i
     4. SH251i
     5. SH505i
     6. SH252i, SH505iS, SH900i, SH506iC
     7. SO504i, premini
     8. SO505i
     9. SO505iS, SO506iC
    10. P211i, P504i, P251i, P900i
    11. P505i(iS), P252i(iS), P506iC
    12. D211i, D504i, D251i
    13. D505i(iS), D252i, D506i
    14. F211i, F503i
    15. F504i, F251i
    16. F505i(GPS), F900i, F506i

ひょえ〜
こんなに種類があるんだ
マンドクセ

37 :デフォルトの名無しさん:04/12/16 23:37:23
こんだけあると、アプリの配布方法で悩む。

System.getPropertyして機種名を調べて、対応するMLDを
サーバからダウンロードしようと思ったのですが、新機種が
出るたびにソースを変更する必要があるので、なんか気が
ひけます。でも機種別にjarとjamを用意するのも、これだけ
たくさんあると、こっちの方法も気がひけますね。

皆さんはどうしてますか?


38 :デフォルトの名無しさん:04/12/17 00:02:24
>>37
MLDを吐くCGIでなんとかなりそうだけど。

移動機からサーバに機種名を教えて、サーバ内で機種名に該当するMLD
を探し、移動機に返してあげる。

39 :デフォルトの名無しさん:04/12/17 00:04:34
>>37
snd1_d505i.mld
snd1_n900i.mld
・・・
という風に機種名をつけたファイルをファイルをサーバにアップ。

んでプログラム側は
String s = "snd1_" + System.getProperty("microedition.platform").toLowerCase() + ".mld";
とすれば取ってくるべきサウンドデータ名ができる。
あとはそれを通信で取ってこればjarもjamも変えずにサウンドデータだけUPするだけで
いいから楽チン。
実際は複数のMLDをバイナリ結合するとか、もうちょっと凝ったやり方してるけど
概要はこんな感じでやってるよ。


40 :デフォルトの名無しさん:04/12/17 00:26:01
レスありがとうございます

>>38
なるほど、cgi使って振り分ける方法もありますね
いいかもしんない。

>>39
これ、ナイスアイディアって思いました。


参考にさせていただきます


41 :デフォルトの名無しさん:04/12/17 03:15:03
今、N系の携帯でリスナーを用いないでサウンドを再生中、
「com.nttdocomo.ui.UIException: Can't set media sound while playing」
という例外が発生して困ってます。

一応、再生中と setSound が重ならないように、setSound 前に stop を
行うようにしてます。

google で検索してみると、D505 系ではシステム負荷状態でサウンド操作を
連続して行おうとすると発生する、と書いてました。
ttp://www.nttdocomo.co.jp/p_s/imode/java/pdf/d505is_iappli_notes_1.pdf


で、質問なんですが…
1.この例外って、N系でも問題は同じなんでしょうか?
  それとも、別の要因で、このメッセージが出ているんでしょうか?
2.D系と同じ場合は、連続させないようにしてやれば良いんですが、
  もし違う場合はどうすれば防げますか?

どうか、よろしくお願いします。

42 :デフォルトの名無しさん:04/12/17 04:01:21
音がらみの部分は、例外がスローされるものとしてプログラムを書くと安心
漏れはこうやった
・例外が出なくなるまでひたすらループ(BGMとか)
 「N504i(S) iアプリ作成に関する注意事項」を参照汁
 ttp://www.nttdocomo.co.jp/p_s/imode/make/java/index.html
・音が抜けても気にしない(効果音とか)

43 :デフォルトの名無しさん:04/12/17 04:50:54
>42
うお、すげー参考になった!
そうか、504のPDFね。だから、505のPDFには載ってなかったのね(泣)。
つうか、「例外はエラー処理してアプリ終了」、つう概念で固まってたんで目から鱗です。

どうもありがとう〜。


44 :42:04/12/17 12:40:14
質問です。
このスレと少し関係ないかもしれませんが、iアプリからネットのページを見るようにしたいのですがやり方がわかりません。
今、ランキング機能のiアプリを作って得点を送信するところまでは作ったのですがそのランキングにiアプリ起動中から直接飛ぶ方法がわからない状態です。

わかる方いましたら、どうか教えてください。

45 :デフォルトの名無しさん:04/12/17 12:47:12
>>41
素直にリスナーを使って、AudioPresenter.AUDIO_COMPLETEのイベント通知を
待つのがいいんじゃないだろうか。

46 :デフォルトの名無しさん:04/12/17 13:38:49
>>44
APIリファレンスに載ってるんだけど読んでる?
IApplication#launch(int target, String[] args)
targetにLAUNCH_BROWSER、argsにurlを指定汁


47 :デフォルトの名無しさん:04/12/17 13:50:21
>>44
IApplication.launch()でwebブラウザに飛んでくか、
アプリからhttp connection開いてページ読込みすればいいんじゃ内科

48 :44:04/12/17 14:23:23
>>46,47
ご回答ありがとうございます。APIリファレンスは読んでませんでした。
そして、リファレンスを読んでlaunchのところを見てみましたが、String[] argsのところがよくわかりません。
質問ばかりで申し訳ないです、argsにurlを指定の仕方あたりを詳しく教えてください。



49 :44:04/12/17 14:30:24
java.lang.SecurityException: UseBrowser key not found in ADF
なので、どうやらADFの設定がだめらしいです。難しい・・・・

50 :デフォルトの名無しさん:04/12/17 14:59:16
>>49
launchは使用しているかどうかをADF(jamファイルのことね)に
宣言してやらないとエラーになる。
jamを開いて「UseBrowser = launch」を追加するべし。

51 :44:04/12/17 15:12:33
>>50
ありがとうございます!!何とかちゃんと走りました。
ちなみに、エミュレーターで「サイトに接続しますか?」にyesってするとブラウザを開いてページを表示するのではなく終わるのは正しく動いているって事でしょうか?
自分docomoじゃないので、携帯使ってテストできないもので。

52 :デフォルトの名無しさん:04/12/17 16:42:03
正しい。
携帯でもブラウザ開くとアプリは終わる。

53 :デフォルトの名無しさん:04/12/17 16:47:18
>>44
いいからとっととAPIリファレンスとコンテンツ開発ガイドを読め。
他人に質問していいのはそれからだ。

54 :デフォルトの名無しさん:04/12/17 16:57:13
>>51
ランチが正常に起動した場合はアプリはそこで終了。
余談だが注意すべきところもある。

エミュで出てくるように必ず選択肢が出てくるのだが
操作については機種依存。エミュのようにソフトキーの場合もあれば
ダイアログで上下+セレクトキーで選んでたりする。
よってユーザーが接続を拒否した場合の動作を意識して作る必要がある。
拒否された場合はレジュームが発生した後呼び出したところから復帰らしい。
のでキー情報をどのように扱ってるかによってはちゃんと処理入れないと
再びランチ呼び出したりすることがある。
戻ってくるときはキー情報はクリアしておくのが妥当かも。

55 :44:04/12/17 19:36:47
アドバイスありがとうございます。
結構いい感じになってきました。

56 :44:04/12/19 03:23:33
http://asamizodai.hp.infoseek.co.jp/hira_wall/wall.html

できました!自分的にはある程度納得の中身になりました〜

57 :デフォルトの名無しさん:04/12/20 14:17:14
すいません、確認なんですが
TransparentImageはPanelでは動作しませんか?
(※エミュレータ上の話で、機種依存という意味ではないです)

Canvasでは動作Panelでは動作しませんでした。
いろいろ探してみたんですが”動作しません”と書いてある記述がみあたらんのです


58 :デフォルトの名無しさん:04/12/20 17:53:07
>>57
APIリファレンスに
>端末によってサポートされていない場合があります。未サポートの場合、メソッドが呼び出された時点でUnsupportedOperationExceptionを発生します。

って書いてあるから、そのまんまではないかと思われ。
エミュレータでは動作不可でも、実機では動くのかもしれない。

それと透明色があるってことは、何かの画像に上書きするような
使い方をするんだろうから思うから、単体でPanelに貼るのは「?」って気がする。

59 :44:04/12/20 17:56:34
エミュレーターでは動いていたのですがso505iやF504iなどで起動すると「αエラーが発生しました」となるようなのです。
また、他の機種では動いたりもします。

原因が全くわかりません。
何かわかる方がいましたら教えてください。

60 :44:04/12/20 18:11:35
一応ソースの方も乗せておきます。

ttp://asamizodai.hp.infoseek.co.jp/Hira.java

どうか、アドバイスよろしくお願いします。


61 :デフォルトの名無しさん:04/12/20 18:54:46
>>59-60
launch(...)は例外をスローするはずだけど(↓の資料)

http://www.interq.or.jp/pink/ribbon/doja-api/3_5/default/com/nttdocomo/ui/IApplication.html#launch(int,%20java.lang.String[])
http://www.interq.or.jp/pink/ribbon/doja-api/3_5/default/com/nttdocomo/ui/IApplication.html#LAUNCH_BROWSER

コードみるとキャッチしてないみたいよ。
まず例外をキャッチしてみて、何の例外がスローしているか
調べてみては?

62 :44:04/12/20 19:09:58
う〜ん・・・例外とかその辺詳しくわからないんです。
どうにかなりませんか?

63 :デフォルトの名無しさん:04/12/20 19:17:56
>>62
例外処理が分からんとなると、先に進めませぬ。
薄い本でいいので(Googleで探すんでもいいけど)、
お勉強してくださいな。

64 :44:04/12/21 00:29:54
ん〜、どんどんソース削ったのですが前まで動いていたのすらもエラー出るようになってしまいました・・・。
ADFの設定でエラーが出たりしているような気もします。

頭がこんがらがってきました・・・・。

65 :デフォルトの名無しさん:04/12/21 00:38:42
選択肢は2つ
1:もっと勉強する>>53
2:あきらめる

つーか、これだけ簡単に情報が手に入る時代なのになんで自力で調べないかね?
アプリの作り方を覚える気が無いとしか思えないよ

66 :デフォルトの名無しさん:04/12/21 12:28:43
とりあえずソースを読んでみたが、あまりにもひどい。
一から勉強し直したほうがいいって。

67 :デフォルトの名無しさん:04/12/21 13:50:49
他人のソースを見てプログラムの書き方も勉強した方がいいよ
moji[]の初期化とか、スコアの判定とか、書いてて変だと思わなかった?
インデントしてないのも謎。見づらいでしょ?

68 :デフォルトの名無しさん:04/12/21 14:24:45
ざっとソースみてみたのだが・・・やっぱり他人のソースを理解するのは
かなり厳しいな・・・。だがそれ以前に気になったのも多数あるけど。

気になった点
1:getWidth()とかgetHeight()が異常に多い。
  最初にWy,Wxでゲットしてる意味がなさすぎ。
2:getKeypadState()の使う場所がおかしい気がする。
  キープレスイベントで取得した時にも使った方がレスポンスが良くなる。
  流れの中の一瞬だけとる今の形だとスリープ中とか押しても反応ない。
  携帯は速度遅いので結構読み取り出来ない操作がでてくるかと。
3:当たり判定と注釈されてる下すぐのテキスト軍はまとめた方が良いかと。
  数値も文字列も配列で初期化すべきかと。でかすぎる。
String moji[] = {"あ","い","う","え",〜〜};とか上の配列も初期化すると楽かと。
4:paintの中で総ての処理を入れてるのお勧めできない。
5:文字を良く使ってるが起動時にフォントのサイズを一定にしておくべき。
  フォントを作ってそのサイズをつかって文字を計算して描画すれば綺麗に。
6:使ってるエディターの問題かもしれないけどifとかwhileの{}の階層が
  判りにくいと思うぞ。

69 :44:04/12/21 14:53:47
なるほど、勉強になります。
全くそういった事を考えずに動けばいいや的な考えで書いておりました。

結局、動かないわけですが・・・・。
他人のソースなどを見て勉強したいと思います。

70 :デフォルトの名無しさん:04/12/21 15:18:39
>>69
まぁソースなんてものは自分しか見ないなら何でもいいのだがね。
でもあの書き方だと自分も理解しづらいかとおもうぞ。バグ取りに苦労する。
さて、せっかくソース出たのでコンパイルしてエミュ上で動作させてみた。

これって動作機種・・・504とか505とか指定してないけど
どれでも動くようにしてるんだなとは思う・・・のだが、これはまずいぞ。
画面サイズは機種によって全然統一されてないので移動速度の計算が
機種によって差がでる。ランキングしてるならここらは統一しないとな。
ゲームオーバー時に表示される文字も機種によってばらばらで
画面からはみ出てると思う。特に504は。
起動時のネームエントリーは戻る事ができず不便。
ゲーム自体は悪くは無いが・・・ゲーム開始時から絶対に回避不能の
シーンがランダムゆえ出るのだが・・・多少サイズ制限すべきかと。

質問の不具合はまだわかんね。

71 :44:04/12/21 15:38:04
>>70
やっていただいてありがとうございます。
対応機種は一応505をベースとしていて、504でもできない事はないくらいの気持ちで作りました。
難易度はまだランキング対応でない頃「理不尽に死ぬのがまたいい」という感想をいただき直しませんでした。
しかしご指摘の通りランキング対応になった今、直すべきかもしれません。

僕自身がdocomoでない上にアプリのついていない携帯なので実機でのテストなのができないもので・・・。

72 :デフォルトの名無しさん:04/12/21 16:39:03
>>44
何度も書き込みしてあれだが・・・機種によって動く動かないってのを考慮してみると
おそらくダウンロードしたユーザーがそのアプリに対してネットワーク接続を許可してない
可能性が高いかと。で、接続許可してないのにブラウザ呼び出してエラー発生。
キャッチの記述が無いのでそのまま携帯がエラー停止を行う。って感じかもな。
エラーでると言ってる連中にソフトの設定を調べてもらえば。
こっちでやるにはパケ代がもったいなry

73 :デフォルトの名無しさん:04/12/21 16:44:47
>>68
>2:getKeypadState()の使う場所がおかしい気がする。
>キープレスイベントで取得した時にも使った方がレスポンスが良くなる。

キープレスイベントを待つ形で実装するとレスポンス悪くない?
以前はそうやってたんだけど、ループ内で毎回getKeypadState()を呼ぶ方が
キーレスポンスがいい。


74 :デフォルトの名無しさん:04/12/21 16:47:38
>>44
ところで、>>53>>65>>66のような辛口のアドバイスについてはどう考えている?
都合の悪いものは無視、というスタンスだとそのうち誰も相手してくれなくなるよ。

75 :デフォルトの名無しさん:04/12/21 16:52:12
>>72
すまん・・これ関係ないwwwww
実験したら正常に接続される場合、アプリは既に終了してるから関係なかったw

76 :44:04/12/21 16:57:13
>>72
so系列を使っている人に取り合ってみます。

>>74
いえいえ、しっかりとアドバイスとして受け止めますし、こちらが教えてもらう側なので辛口とも思いません。


77 :デフォルトの名無しさん:04/12/21 17:02:56
>>73
アプリ内容で変えてはいるけど、基本的にキープレスイベントを使用しない場合は
動作の速度に関わらず使わないとレスポンス悪いと思ってるんだけど・・。

内容1:アプリが押された瞬間しか必要としない場合
変数2個用意。仮に変数K1、K2とし初期化しておく。
キープレスイベントの中では呼び出されたらK2 |= getKeypadState();を実行
処理のループの先頭でK1にK2をコピー、K2をクリアする。実際の処理はK1を参照。

内容2:長押しとかも必要な場合
上の処理に、K1にコピーした後K1 |= getKeypadState();をして現在の状態も付加する。

内容3:離された瞬間も必要な場合
K3を用意してK1にコピーする前にK3 = K1; でバックアップをしておく。

多少内容違えど大体上の感じでやってるけどなぁ・・・。
毎回1回だけのgetKeypadState()だと特に昔の遅い機種では拾えない事が多かったのだ。

78 :デフォルトの名無しさん:04/12/21 18:04:14
>>77

こんなのは?
int key;
int lastkey = getKeypadState();
while( (key=getKeypadState()) == getKeypadState() ) Thread.yield();

メニュー画面とかそういう、「キーが押されない限り画面は変化しない」みたいな局面とか
「任意キーで次へ進む」みたいな処理に意外と使えるので重宝してる。

79 :デフォルトの名無しさん :04/12/22 03:38:53
900iで終了ボタンを押してアプリの終了確認の「いいえ」を選択したあとに
キー情報をクリアしたいのですが、どうすればできるのでしょうか?

現在、「いいえ」を選択した後、アプリに戻った時にキー情報がそのまま判定されてしまい
次の処理に行ってしまうのでこれを回避したいのですが…

80 :デフォルトの名無しさん:04/12/22 09:19:58
RESUMEメッセージの中で、キーバッファをクリアするようにすればいい。
自前のキーバッファ持ってない? それは知らん。君の設計ミスだ。

81 :デフォルトの名無しさん:04/12/22 10:53:24
>>78
ぬう・・・ちと理解できんです。
もしや・・・whileの比較の所の右の値はlastkeyの間違い?とか思ったけど。
その文だと永久ループに突入しそうなんだけど・・。

>>79
終了ボタンを押してってのはシステムのダイアログを出した後話だよね?
80でも同じこと言ってるけど持っているキーの情報をレジュームで消す方法と
レジュームの中で永久ループを作り延々とキーを取得、その情報が「何も押されていない」状況
になればループを抜けるようにすればバッファもってなくても対処にはなるんじゃないかな?

82 :デフォルトの名無しさん:04/12/22 11:18:03
そういう場合はgetKeypadState()じゃなくてprocessEventでKEY_PRESSED_EVENTを取って使え

83 :78:04/12/22 19:35:24
>>81
グハッ
仰るとおり。スマソ


84 :デフォルトの名無しさん:04/12/22 21:50:32
Macで無料で開発できないの〜?

85 :デフォルトの名無しさん:04/12/23 04:33:01
901で128khzとかのAAC再生できるようになりましたけど
iアプリからも再生できるんでしょうか?
それとも他に高音質なフォーマットに対応してますでしょうか?

あとjigチャンネルって内部どうなってるか分かるかたおりますでしょうか?

どうかよろしくお願いします


86 :デフォルトの名無しさん:04/12/23 07:56:08
>>84
メーカーに問い詰めろ

87 :デフォルトの名無しさん:04/12/23 12:48:52
4.0から浮動小数点サポートらしいけど
計算スピードはどうよ?

88 :デフォルトの名無しさん:04/12/23 14:24:17
3D APIに使うみたいだからそれなりのパフォーマンスはあるのではなかろうか。
常識的に考えれば。(しかしiアプリは常識が通用しない世界)

89 :79:04/12/23 21:44:12
RESUMEでキーバッファをクリアするで対処できました
機種によってキーを判定するタイミングが違うので

RESUME内で何も押されていない状態まで
無限ループで待つ方がいいみたいです

90 :デフォルトの名無しさん:04/12/24 00:36:08
>>85
AACファイルは動かせないとオモ。
保存する領域がiアプリの動かせる領域と異なってるんじゃないの?
もし、動かせたら電話帳データとかその他データをいじることもできるはず。


91 :デフォルトの名無しさん:04/12/24 07:07:12
JavaBlenderのコマンドラインからバッチ処理したいんだけど使い方わかる人教えてくれー。
とりあえずパラメータは↓
blender [cwd] [-strong|-normal] [jam file] [class file(s)]
sname [cwd] [jam file] [class file(s)]
smap [cwd] [class file(s)]
みたいなんだけど、あんまりうまくいかず・・・。
どなたか動作してるバッチか、パラメータの詳細晒してくださいませ。

教えてエロイ人!!

92 :デフォルトの名無しさん:04/12/24 08:45:47
そこに書いてある通りだろ‥

>[cwd] はクラスファイルが置かれているディレクトリを指定します。
>[class file(s)] は [cwd] からの相対パス名で指定します。
> [-strong|-normal] は圧縮率の調節に使います。
>これらのツールを使うとクラスファイルは削除され、新しいクラスファイルが [cwd] で
>指定したディレクトリに生成されます。
>この三つツールはプラットフォームの種類ごとに別々のツールが用意されています。
> 404i, 405i などのアプリを処理するには専用のツールを使う必要があります。

93 :デフォルトの名無しさん:04/12/24 21:45:39
404i、405i

94 :デフォルトの名無しさん:04/12/25 03:00:07
ニューロポインタは便利。
押しっぱなしで高速スクロールできるし。

95 :デフォルトの名無しさん:04/12/27 11:49:28
Doja3.5で、GETで"xxx.bin"というファイルをダウンロードするアプリなんですが、
アプリ起動直後の通信では問題ないんですが、起動してしばらく動かした後の通信で
ConnectionExceptionが起きてしまいます。
なぜかSH900iとF900iだけで発生して、ConnectionException#getStatus()の
値を見るとSYSTEM_ABORTかTIMEOUTになるようです。
手元に実機がないので詳しく調べることもできずに困ってます。
どなたか同じような症状になったことありますか?


96 :デフォルトの名無しさん:04/12/27 12:10:35
>>95 ちゃんとconnectionのclose()してる?

97 :95:04/12/27 13:04:58
close()はしています。
起動直後の通信でも4個のファイルをダウンロードしにいって
成功しているので、通信処理の実装は大丈夫だと思うんですよね。
問題の通信の時もまったく同じ処理を行っています。
アプリをしばらく動かしたあとに発生するという事で、ヒープの
問題か、その他機種依存の問題かなと踏んでるんですが・・・。


98 :デフォルトの名無しさん:04/12/27 13:49:54
>>97
> 成功しているので、通信処理の実装は大丈夫だと思うんですよね。

わかんねぇぞ。該当コードをさらしてみ。
ちなみに自分のとこではSHとFの実機で
数十回以上HTTP通信するアプリ動かしているけど
まったく問題でてないよ。

99 :デフォルトの名無しさん:04/12/27 14:27:53
N900やP900なら納得がいくがw

100 :95:04/12/27 14:32:27
こんな感じです。エラー発生時、fileDownload()がConnectionExceptionを投げてきます。

public int fileDownload(String url, int pos) throws Exception {
byte[] data = httpGet(url);
OutputStream out = Connector.openOutputStream("scratchpad:///0;pos=" + pos);
out.write(data);
out.flush();
out.close();
int ret = data.length;
data = null;
System.gc();
return ret;
}


101 :95:04/12/27 14:32:51
public byte[] httpGet(String url) throws Exception {
byte[] data = null;
HttpConnection conn = null;
InputStream in = null;
try {
conn = (HttpConnection)Connector.open(url, Connector.READ, true);
conn.setRequestMethod(HttpConnection.GET);
conn.connect();
in = conn.openInputStream();
data = new byte[(int)conn.getLength()];
in.read(data);
} finally {
try {
if (in != null) in.close();
if (conn != null) conn.close();
} catch (IOException ioe) {}
}
return data;
}


102 :95:04/12/27 14:34:04
続き
public byte[] httpGet(String url) throws Exception {
byte[] data = null;
HttpConnection conn = null;
InputStream in = null;
try {
conn = (HttpConnection)Connector.open(url, Connector.READ, true);
conn.setRequestMethod(HttpConnection.GET);
conn.connect();
in = conn.openInputStream();
data = new byte[(int)conn.getLength()];
in.read(data);
} finally {
try {
if (in != null) in.close();
if (conn != null) conn.close();
} catch (IOException ioe) {}
}
return data;
}


103 :95:04/12/27 14:35:44
げ、2連投してしまった。102は無視してください。


104 :デフォルトの名無しさん:04/12/27 15:19:51
>>95

>>100で conn.getLength() が0を返す場合も考慮して組んでみて。
具体的には>>100の byte[] data = httpGet(url); の次に
if (data.length == 0){ エラー処理 }
を入れるなど。エラーが出るときは多分ここで引っかかるんじゃないかな。
(予想だ。外れたらごめん。)

サーバとの通信でデータを受信する場合にconn.getLength()の戻り値に関して
過去ログで何度か出てきてる。非ゼロなら一度にバッファをとるが、
ゼロだった場合は1バイトずつ読み込んでいく処理を実装する。という話。

105 :95:04/12/27 15:33:57
>>104
ふむふむ。試してみます。


106 :デフォルトの名無しさん:04/12/27 18:52:33
>>88
パッケージ com.nttdocomo.ui.util3d の説明
3D グラフィックスや 3D サウンドで使用するユーティリティクラスを定義します。

各種の float 型(浮動小数型)の演算は、システム内部にて整数演算に変換されて行われます。従って演算結果には誤差が出る可能性がありますが、通常の float 型による演算に比べて、高速に結果を得ることを期待できます。

ってことだから3Dと浮動小数点の性能はあまり関係ないっぽい。
まぁ、3.5までのGraphics3Dが固定小数点でやってたから互換性を
考えたらここで浮動でやるわけにもいかんのだろう

107 :デフォルトの名無しさん:04/12/28 11:13:13
>値を見るとSYSTEM_ABORTかTIMEOUTになるようです。

単に通信状態が悪いだけじゃないの?

108 :95:04/12/28 13:07:45
>非ゼロなら一度にバッファをとるが、ゼロだった場合は1バイトずつ読み込んでいく処理を実装する。という話。

これを試していますが今のところまだ解決していません。

>107
それがP900iやSH901等だと一度もエラーにならないんですよ。


109 :デフォルトの名無しさん:04/12/28 13:13:15
私が書いているソースと全く変わらないといっていい。
だが私はSH900やF900で問題が起きたという報告をされたことがない。

すごく単純な(認めたくない)ケアレスミスだと思う。
例えばURLが間違っているとか。

110 :デフォルトの名無しさん:04/12/28 18:55:10
>>106
それ、さらっととんでもないことが書いてあるような気がするんだけど。

バイトコードでfloat型使おうが、勝手に固定小数に変換して演算しますってこと?
CLDC 1.1ってこういうの許してるワケ?
そういやJ2SEも浮動小数「演算」はデフォルトでIEEE準拠じゃないけど、
こんなデタラメな精度低下を招く実装は正直ありえんと思うんだが。
浮動小数は使えませんってのと同義じゃん。(double型は大丈夫とか?)

SH901iあたりもう手元にある人、どうよ? ていうか何かの間違いであって欲しい。

111 :デフォルトの名無しさん:04/12/28 20:10:14
>>110
あくまでutil3dパッケージにあるクラスの演算内での話だと
思うけど。
たとえばVector3D#add( float x , float y , float z )とか。
普通に
float a = 0.1 , b = 1.0;
a += b;
とかやったらちゃんと浮動小数点数で計算されるんじゃね?
実際に試したわけじゃないからわかんないけど・・・

112 :デフォルトの名無しさん:04/12/28 21:40:11
自宅のPCでhttpd起動して、そこからiアプリをダウンロードさせたいと思っています。
http://www.st.rim.or.jp/~nakata/

しかしダウンロードページは表示でき、iアプリをダウンロードできているようなのですが
ダウンロード後に「ソフトに誤りがあります」と出てiアプリの実行ができません。
同じiアプリをプロバイダのホームページスペースにアップロードした場合は
正常に実行できています。
(jarファイルとjamファイルのMIMEタイプは「application/octet-stream」に設定しています

何か他に注意すべき点があるのでしょうか。


113 :デフォルトの名無しさん:04/12/28 23:08:20
ADFがおかしいとか。

114 :112:04/12/28 23:49:31
同じADFで、プロバイダのホームページスペースにアップロードした時は
問題ないのでADFの問題ではないかと思うのですが。

115 :デフォルトの名無しさん:04/12/29 00:29:50
>>114
PackageURLをFDQNで書いてるとか?

116 :112:04/12/29 02:05:43
パッケージURLはファイル名ですので問題ないと思います。
ちょっとお手上げ状態です。

117 :デフォルトの名無しさん:04/12/29 07:33:38
JARのContent-typeが変とか

118 :デフォルトの名無しさん:04/12/29 07:39:27
jar application/java-archive
jam application/x-jam
にしてみたら?

119 :デフォルトの名無しさん:04/12/29 08:49:00
>>110>>111 の認識が正しいと思われ。
float 演算は使えるよ。ただ恐ろしく遅い予感がする。

120 :デフォルトの名無しさん:04/12/29 09:02:23
>>114
単純に。
FTPでUPするとき、バイトとバイナリをきちんとしてあげてるか?

121 :デフォルトの名無しさん:04/12/29 09:31:04
>>119
Vector3Dにわざわざこんな本来当たり前の必要のないこと書いてるあたりからも、
それで正しいのかな。

> 設定された float 値は、なんらかの演算が行われるまでの間、 その内容は
> まったく変わらずに保持されます。 具体的には、例えば setX(float) メソッド
> によって値 x を設定した直後に、 getX() メソッドによって取得した値 a を比
> 較するとします。 そのとき、 x==a は常に真です。

いずれにしても相当ひねくれた実装っぽいね。
FastMathだけとかならまだ理解できなくもないが……。

122 :デフォルトの名無しさん:04/12/29 13:05:57
TransparentImageは何故getGraphics出来ませんか?
セキュリティ関係ですか?
デフォでsetTransparentEnabledがfalseなのは何のためですか?
ドキュモさん透明色を高速に扱えるAPIを提供してください。

123 :デフォルトの名無しさん:04/12/29 15:48:06
>>122
スレ違い。

124 :112:04/12/29 17:23:02
>>118
ダメでした。

>>120
ftpでアップロードする方は問題ないのです。
ローカルのディスクにあるファイルを
httpdで直に公開する場合に問題が出てます。


125 :デフォルトの名無しさん:04/12/29 17:57:26
webサーバを変えてみれ

126 :デフォルトの名無しさん:04/12/29 18:19:34
URL晒せ。まさかネタじゃないだろうな。

127 :デフォルトの名無しさん:04/12/29 20:57:03
>112
web サーバの違いで、テキストファイルの改行コードがかわっちゃってた時があったがな。
アプリがそのテキストファイルをダウンロードして処理するときの話な。
jam はその辺、シビアかも。

あとはどのあたりで失敗するのかねえ?
jam のダウンロードさえできないのか、
jar のダウンロードができないのか。
jar ならどのあたりでダウンロードできないのか。

案外、jar の content-type とか。
指定しろってどっか書いてたっけ?

あとは、DoJa の SDK のサンプルでも試してみれ。


128 :デフォルトの名無しさん:04/12/29 22:35:56
QRコードの読み取りでユーザーがキャンセルした場合の動作を指定したいのですが
どうやったらいいのでしょうか?
現状では何度キャンセルしてもQRコードの読み取り機能が立ち上がってしまい
QRコードを認識するまでアプリに戻れません。
ソースは以下のような感じです。
try {
 cam.read();
} catch (Exception e) {
}
str3=cam.getString();

129 :デフォルトの名無しさん:04/12/30 00:10:45
anchorButtonの使い方ですけど、anchorButtonを押して違うパネルに移る処理ですが

public void componentAction(Component source, int type, int param)
{
if(source == anchorSelect1)
{
Display.setCurrent(MainPanel);
}
}

これだと動かないのですがどうすればいいんでしょうか?
anchorButtonの使い方についての記載があるページがあまりないのでいまいち使い方がわかりません

130 :デフォルトの名無しさん:04/12/30 00:24:13
>>129
「動かない」にはいろんなレベルがあると思うのだが、
「componentActionが呼ばれない」っていう解釈でいいんでせうか。

componentActionを実装したクラスを「リスナー」にしまちたか?

131 :デフォルトの名無しさん:04/12/30 01:54:01
>>130
してまちた すいません

コンポーネントリスナーをセットするの忘れてました
これだとエラー吐いてくれないんですね またひとつ勉強になりました

132 :デフォルトの名無しさん:04/12/30 03:27:58
先輩方教えてください。


Timer timer= new Timer();
timer.setListener(this);
timer.setRepeat(true);
timer.setTime(1000);
timer.start();

こんな感じでTimerを使った時最初はいいのですが、
しばらくアプリを実行してるとそのうちtimer.setTime(1000);が
無視されてる様な気がします。
そのせいで、時間が経つとキーイベントが拾えなくなるのですが
何か解決法はあるのでしょうか?

用途としては1秒間に1回、変数の中身を入れ替えたいだけなのですが。
如何なものでしょうか?


133 :デフォルトの名無しさん:04/12/30 08:25:30
>>128
InterruptedOperationExceptionをキャッチ

134 :デフォルトの名無しさん:04/12/30 11:21:20
>>133
ありがとうございました。
APIリファレンスをよく見たら書いてありましたね。
以後気をつけます。申し訳ない。

135 :133:04/12/30 13:09:01
俺iアプリ(というかJAVA)初めて1ヵ月の工房だけど、このスレは本当に役に立つよ。
実機でためしたら、なるほど何度も立ち上がる。

136 :デフォルトの名無しさん:04/12/30 16:23:22
工房かどうかなんかどうでもいいけど…自己解決こそがスキルアップに繋がるってことを忘れないようにね

137 :132:04/12/30 16:56:12
自己解決したんでご報告
P依存かもしれませんがstart()メソッドをエラーの出ない範囲で
再度呼び出すと(つまりエラー規定外で)setTimeの値が半減する模様
あくまで半減ってのは体感レベルですが。
結論として.stop()を一切使わないでブン回す仕様にしました。
既出だったらすません


138 :デフォルトの名無しさん:04/12/30 17:33:10
よくわからんな
try {
 cam.read();
} catch (Exception e) {
}
InterruptedOperationExceptionはExceptionが親なんだろ?
catchしてるじゃん

何度も立ち上がるってのもわからん
機種によっては変な動作をするのか、何度も立ち上がるようにプログラムを書いてるんじゃないの?

コードリーダーなのにcam(カメラ?)ってインスタンス名も謎

139 :デフォルトの名無しさん:04/12/30 23:18:49
Panel1とPanel2があり、まずPanel1のlabel1でstr[0]の文字列を表示し、その後ソフトキー1を押してPanel2に移る
Panel2でソフトキー1を押したらPanel1でstr配列の次の文字列を表示させる・・(以下ループ)
というものを作りたいんですけど、以下のようなコードですとラベルが変わりません どのようにすればいいのでしょうか?

String str[] = {"abc", "def", "ghi", "jkl",・・・・};
int i = 0;

class Panel1 extends Panel implements SoftKeyListener{

 Label label1;

 Panel1{
   label1 = new Label(str[i]);
   add(label1);
 }

 public void softKeyReleased(Panel p, int key)
 {
 if(key == Display.KEY_SELECT) Display.setCurrent(Panel2);
 }
}

class Panel2 extends Panel implements SoftKeyListener{

 〜

 public void softKeyReleased(Panel p, int key)
 {
 i++; // カウンタをインクリメントし、配列の次の要素を表示する
 if(key == Display.KEY_SELECT) Display.setCurrent(Panel1);
 }

140 :デフォルトの名無しさん:04/12/31 00:31:09
>>139
label1を初期化するコードはあっても、
更新するコードが見当たらないようでふ。

Panel2のsoftKeyReleased内で、iをインクリメントしたあとに

label1.setText( str[i] ) ←メソッド名うろ覚え

としなければならないのでわ?

141 :デフォルトの名無しさん:04/12/31 01:49:55
 public void softKeyReleased(Panel p, int key)
 {
 if(key == Display.KEY_SELECT) Display.setCurrent(Panel2);
 i++;
 label1.setText( str[i] )
 }
}

とやったらできました ありがとうございました

142 :デフォルトの名無しさん:04/12/31 15:01:35
Panelで配置したものを消す方法ってありますか?

143 :デフォルトの名無しさん:04/12/31 16:10:03
Panelで文字を表示させてある状態から、決定キーが押されたらその上に別の文字列を表示させることはできますか。
出来る場合はヒントをいただけますか。

144 :デフォルトの名無しさん:04/12/31 16:39:17
>>142
ムリ。
コンポーネントを非表示にすることならできるが、
配置済みのスペースは埋まらない。

145 :デフォルトの名無しさん:04/12/31 19:51:52
Panel1で問題を出して、Panel2でラベルで正解か不正解の表示と解説をするクイズプログラムを作りたいんですが
以下のコードですと1問目はいいのですが2問目ではPanel2の表示がうまくいきません どのようにすればいいのでしょうか?

http://uploader.zive.net/file/2853.txt

146 :デフォルトの名無しさん:04/12/31 20:07:29
>>145
これってiアプリにする意味あるの?
HTMLで作った方がいい気がするけど。

147 :145:04/12/31 20:49:28
>>146
それは承知の上です iアプリの勉強のために作ってみたいので

148 :デフォルトの名無しさん:04/12/31 20:58:09
Panel2.labe2.setText(kaisetu[i]);
みたいなのが要るんじゃないの?


149 :145:05/01/01 02:18:25
>>148
回答ありがとうございます。
ですが、どこに入れればいいのかがわかりません。
下のように入れると(Panel1のソフトキーリリース)当然「シンボルを解決できません」とエラーが出ます。
下のコードですと、どこに書けばいいのでしょうか?

http://uploader.zive.net/file/2930.txt

150 :デフォルトの名無しさん:05/01/01 13:05:07
じゃあワカンネ
Javaの勉強してからiアプリ作ったほうがいいよ

151 :デフォルトの名無しさん:05/01/01 14:31:02
label2が外から見えないんじゃないの?
とにかくJava言語の基礎をちゃんと勉強しろ

152 :デフォルトの名無しさん:05/01/01 15:20:40
Javaの勉強とかJavaの基礎とか言われても多分ピンとこないだろうから
もう少し具体的に言うと、オブジェクト指向とはどういうものか、
そのプログラミング(設計)の仕方とかをまず身に付けろってこと。>145
iアプリを作りながら覚える前に、本とか解説サイトを見て勉強。急がば回れだよ。

153 : 【だん吉】 【108円】 :05/01/01 20:53:21
あけおめ
去年はいろいろ参考になりますた。
今年もよろしくおながいします。

154 :デフォルトの名無しさん:05/01/02 11:43:15
オブジェクト指向がどうしても理解できません。

クラス、インスタンス、オブジェクト、コンストラクタ、オーバーライド、アクセス制限は分かりましたが、

class Test {
はクラスですよね。
string hoge = "ほげほげ";
もクラス…と本にあるんですが、"class"宣言してないのになぜクラス…?

インスタンス化したクラスをオブジェクト変数で扱い…
継承…

はさっぱりわかりません。みなさんは、どうやってオブジェクト指向を覚えましたか?

155 :デフォルトの名無しさん:05/01/02 12:50:06
>>154
スレ違い

156 :デフォルトの名無しさん:05/01/02 14:00:26
>クラス、インスタンス、オブジェクト、コンストラクタ、オーバーライド、アクセス制限は分かりましたが

本当に分かってんの?

157 :デフォルトの名無しさん:05/01/02 15:22:44
言われて、それが何か分かるという程度です。
やはりスレ違いみたいなんで、もう少し自分でなんとかしてみます

158 :デフォルトの名無しさん:05/01/02 16:32:00
質問です。
アドベンチャーゲーム形式の選択肢部分にリストボックスを使ってみようと思うのですが、
リストボックスの位置や大きさを指定する場合はどのようにすればいいのでしょうか?


159 :デフォルトの名無しさん:05/01/02 17:51:54
>>158
まずAPIマニュアルを読んでみて、それでも分からなかったら
「どこ」が分からないのかを再質問してくださいな。

160 :デフォルトの名無しさん:05/01/03 18:44:38
>>158
細かい位置指定は出来ないよ
詳しい事はPanel、Component、LayoutManagerあたりを熟読してくれ
(見るのはListBoxじゃなくて、その親やそれに関連したクラス)

161 :デフォルトの名無しさん:05/01/04 07:54:37
AffineTrans#setRotateV()って誰か使ったことある?
DoJa-3.5の公式エミュレータがRuntimeExceptionで落ちる。

Vector3D v = new Vector3D(0, 0, 0);
AffineTrans at = new AffineTrans();
at.setRotateV(v, 2048);

エミュレータは未実装?

162 :デフォルトの名無しさん:05/01/04 10:02:49
公式からdllはインスコした?

163 :デフォルトの名無しさん:05/01/04 10:26:48
おお、DoJa-3.5でも3.0用のDLLを使うのか。
4.0のDLLはないみたいだから、3.5から
内蔵になったのかと思った。わかりにくいよ!

164 :デフォルトの名無しさん:05/01/06 04:42:23
お薦めのFOMA教えて。

165 :デフォルトの名無しさん:05/01/06 06:09:38
質問が漠然としすぎ。

166 :デフォルトの名無しさん:05/01/06 09:27:16
>>164
D900i

167 :デフォルトの名無しさん:05/01/06 09:53:20
>>164
N2002i

168 :デフォルトの名無しさん:05/01/06 12:34:10
なんかもうね、ウ○コします。

169 :猫先生:05/01/07 19:01:59
>class Test {はクラスですよね。

そそクラスの宣言ですよん

string hoge = "ほげほげ";
Stringクラス型のhogeと言う文字列を宣言ねインスタンス(クラスの型は最初は大文字よ)

なおStringクラスは特殊なにょよ!上は短縮した記述ね
実際は…
String hoge=new String("ほげほげ");

って感じなの!わかるヽ(゜∇゜)
ちなみに右辺は初期化と同時に引き数も代入しちゃったわん(コンストラクタ)

今日のま・と・め☆
オブジェクトの生成
クラス型 変数名=new クラス型;
ヽ(゜∇゜)ノ

170 :デフォルトの名無しさん:05/01/07 20:18:07
…このスレにその講義はいらんだろ…

171 :デフォルトの名無しさん:05/01/07 21:44:27
Integer.parseInt()で数字とアルファベットは任意の進数に変換できるようですが
日本語文字列を強制的に数値に変換する方法はありませんか?

172 :デフォルトの名無しさん:05/01/07 22:32:14
1桁ずつ。

String src="数字に変換したい文字";
int res=0; // 返したい値

for (int i = 0; i < src.length; i++) {
if ((src.charAt(i)).equals("1")) {
 res = 1;
} else if ((src.charAt(i)).eqals("2")) {
res = 2;
} else
 略
} else if ((src.charAt(i).eqals("9")) {
 res = 3;
} else {
 System.out.println("死ね");
break;
}

res *= 10;
}

これで動いたらいいかもな。
デバッグしてないけど。
ま、意図くらい汲んでくれ。

つか、簡単なやり方知らねーし。
Integer.parseInt() に、元2バイト数字入れたらどうなる?


173 :172:05/01/07 22:32:57
なんで 3 代入してんだか。
適当に治せ。

174 :デフォルトの名無しさん:05/01/07 22:48:30
>>169 >>171
スレ違いだ。こっち行け>>4

175 :172:05/01/07 23:45:31
あー。全然だめだった。忘れてくれ orz
ついでにスレ違い反応すまん。

176 :171:05/01/08 01:00:10
>>171
スレ違いだがちょっとやってみたよ。これでどう?

public int foo(String s) {
for (int i = 0; i <= 9; i++) {
s = s.replace((char)('0' + i), (char)('0' + i));
}
return Integer.parseInt(s);
}

>>172
>Integer.parseInt() に、元2バイト数字入れたらどうなる?

NumberFormatExceptionを吐くと思われ。


177 :176:05/01/08 01:01:22
名前ミスったw俺は171じゃないYO


178 :デフォルトの名無しさん:05/01/08 01:02:45
>>171
全角数字をintに変換したいのか?
そんなメソッドは無いから自作汁

179 :デフォルトの名無しさん:05/01/08 01:07:47
え?
Javaは全角数字も数字として扱ってくれると思うよ。Unicodeだから。
全角英字もtoLowerとかで全角小文字に変換してくれたりするしねえ。
例えば、
public class Hoge {
public static void main(String[] args) {
int i = Integer.parseInt("123");
System.out.println(i);
}
}
実行すると、ちゃんと「123」って表示されるよ。
ひょっとしてCLDCだとまた違う??

180 :デフォルトの名無しさん:05/01/08 01:07:53
文字列から文字をひと文字ずつ取り出して、
全角だったら半角に変換するってだけの処理なのでわ。


181 :デフォルトの名無しさん:05/01/08 01:20:05
>>179
実際試してみたよ。確かに>>176の言うように
CLDCだとNumberFormatExceptionになる。


182 :デフォルトの名無しさん:05/01/08 02:06:05
>>179
お、確かにJ2SEだと出来るね
知らんかった

183 :デフォルトの名無しさん:05/01/08 13:49:11
すいません。初歩的な質問をさせてください。
Doja3.0を使っています。以下のソースで例外が発生するのですが、何ででしょうか。

public void start()
{
HttpConnectionhc = null;
InputStreamis = null;
Strings;

try {
hc = (HttpConnection) Connector.open(getSourceURL()+"hello.txt", Connector.READ, true);
hc.setRequestMethod(HttpConnection.GET);;
hc.connect();
・・・
でhc.connect()部分でcom.nttdocomo.io.ConnectionException
という例外をはきます。

このケースで考えられるのはどういう状態でしょうか。
PackageURL=http://..../hoge.jar,UseNetwork=http,SPsize=5120,を設定しています。
またトラステッド動作設定で通信を許可するURL=*にして、
ネットワーク設定のADFのURLをhttp://.../hoge.jam
にしています。

184 :デフォルトの名無しさん:05/01/08 14:05:49
>>183
System.out.println("URL=" + getSourceURL() + "hello.txt");
で表示してみ。

185 :デフォルトの名無しさん:05/01/08 14:18:56
>>184
いわれたとおりに表示させてみたのですが、
URLはどうやらあってるみたいです。ブラウザで確認してみました。
Dojaの設定がおかしいのでしょうか。
携帯上でも動きませんでしたが^^;
(携帯上ではPackageURLをhoge.jarに変えてやりました。)


186 :デフォルトの名無しさん:05/01/08 16:11:11
getStatus()汁
>クラス ConnectionException
>通信例外を定義します。 com.nttdocomo.io, com.nttdocomo.net の入出力処理において
>例外が発生したことを示すために使用します。
>例外の詳細は getStatusメソッドで得ることができます。

187 :デフォルトの名無しさん:05/01/08 18:28:47
>>185
ここに書いてみ。まさかIPでアドレス指定とかしてないよね?

188 :179:05/01/08 19:19:41
>>185
getMessage()の内容も見たいな。

>>181
そうか。CLDCじゃ出来ないのか。知らんかった。勉強になった。

189 :185:05/01/09 01:41:28
getStatus()を読んだら10番でした。
  HTTP_ERROR
  HTTP サーバがエラーを返したことを表します (=10)。
これはサーバが悪いのでしょうか??txtのファイルの属性は755です。
http://f48.aaa.livedoor.jp/~yasuf/docomo/
に一応ソースを用意しました。ご教授くださいませm(_ _)m
ちなみにhello.txtはここのサーバのを使ってます。

---------
しかもいつの間にかエラーが変わってしまいました・・・。
以下が実行結果です。

--
プロジェクト docomo を読込み中です
プロジェクト docomo を読込みました
ビルド開始
C:\iDKDoJa3.0\apps\docomo\bin\docomo.jar を作成しました
C:\iDKDoJa3.0\apps\docomo\bin\docomo.jam を更新しました
ビルド終了
URL=http://f48.aaa.livedoor.jp/~yasuf/docomo/hello.txt
ここから
10 //getStatus()
null //e.getMessage()
java.lang.NegativeArraySizeException //System.out.println(e)
--



190 :デフォルトの名無しさん:05/01/09 03:09:33
>>189
URL=http://f48.aaa.livedoor.jp/~yasuf/docomo/hello.txt
バナー広告のせい?
他の鯖にするか、ローカルPCにApache入れて実験するとか

あと、closeの所はfinally使った方がすっきり書けるヨ

191 :デフォルトの名無しさん:05/01/09 09:47:24
試しにスクラッチパッドを最大にしてみるとか…

192 :デフォルトの名無しさん:05/01/09 11:27:58
ちょっとiアプリ作ってみたくなって環境つくってたんですが、doja.exe を立ち上げて
サンプルのtetrisをビルドすると

javac: ターゲットリリース 1.1 がデフォルトのソースリリース 1.5 と競合しています。
javacの実行に失敗しました

と出てしまうんですが、jdk1.5がインストールしてるのが悪いんでしょうか?
初歩的な質問で申し訳ないですが、回避方法あったら教えてください。

iDKDoja3.0 と jdk1.3.1 と jdk1.5 をインストールしてます。

よろしくお願いします。



193 :189:05/01/09 13:16:52
>>190さん
広告なしの他サーバにしたら動きました。

皆様ありがとうございました。m(_ _)m

194 :デフォルトの名無しさん:05/01/09 15:55:10
>>192
初めて聞いたエラーだから間違ってるかもしれないけど、
Windowsの環境変数は正しくセットした?
一応DoJaはJAVA1.3.3対応で、他では変なエラーが出るらしい

195 :デフォルトの名無しさん:05/01/09 17:08:59
参考になるかも
ttp://oshiete1.goo.ne.jp/kotaeru.php3?q=880580
解決してないけどw

196 :デフォルトの名無しさん:05/01/09 17:17:35
>>192
1.3 -> 1.4 -> 1.5 でそれぞれ言語仕様が変更になってる。
1.4のときはjavacのデフォルトでは新しい仕様が無効になってるから
問題ないが1.5では有効になっている。が、この状態では-target 1.1
を使って古い仕様のclassファイルを生成できない。だから怒られる。

とりあえず環境変数PATHつかって1.3のjavacが使えるように設定だね。

197 :192:05/01/09 17:49:15
環境変数 JDK_PATH に、 JDK1.3.1 をインストールしたパスを設定したらいけました!

みなさんアドバイスありがとうございました〜。




198 :デフォルトの名無しさん:05/01/09 20:58:54
アプリでイメージフォルダ内にある画像を読み込む際
Webからダウンロードした画像はD900iとN900iは読み込めるけど
SH900i,F900i,P900iは読み込むことが出来ません。

何か解決法はないですか?

なお、再配布不可識別子は画像ファイルに設定していません。

199 :デフォルトの名無しさん:05/01/09 21:41:07
>>198
ケータイを機種変更する。


200 :デフォルトの名無しさん:05/01/10 00:20:57
>>199
私1人が利用するアプリだったらそれでも問題無いですが、
一般公開用に作成しているモノですので…

201 :198:05/01/10 00:23:10
>>199
私1人が利用するアプリでしたら問題有りませんが、
一般公開用に作成しているモノですので…

202 :デフォルトの名無しさん:05/01/10 03:18:44
読み込むことが出来ません
の後に、〜という例外がスローされます、という文が無い
最後までちゃんと書け

203 :デフォルトの名無しさん:05/01/10 10:18:05
>>171
解決したか?これでどう?

public static int MultiByte2Int(String str) {
  return "0123456789".indexOf(str);
}

204 :デフォルトの名無しさん:05/01/10 11:43:01
>>203
それだと1桁の数字しか変換できないのではw


205 :デフォルトの名無しさん:05/01/10 19:58:21
>>204
1桁ずつやりゃいいじゃん。"0123456789ABCDEF"なら16進数にも対応できる。

206 :デフォルトの名無しさん:05/01/11 00:03:00
二万五千円とかはどうやればいいですか?

207 :デフォルトの名無しさん:05/01/11 01:06:02
>>189
getStatusがHTTP_ERRORなら
web サーバがエラーを返してるってことだ。
例外キャッチしてから、HTTPConnectionのレスポンスコード確認してみるといいよ。

208 :デフォルトの名無しさん:05/01/11 01:13:27
>>206
本気で質問しているのかわからないが、
1文字1文字分解して、if文のカタマリで場合分けしてくださいな。

やっぱり解析できなかったら「数値がおかしいので再入力してちょ」と
ユーザに再入力を促す。

209 :デフォルトの名無しさん:05/01/11 02:07:56
iアプリでGifアニメーションを表示させたいのですが、
低レベルAPIでGifアニメーションを表示させることは可能でしょうか?

どなたか教えていただけると嬉しいです。

210 :デフォルトの名無しさん:05/01/11 03:01:59
>>203-206>>208
>>174

211 :デフォルトの名無しさん:05/01/11 15:16:31
プロジェクトを読み込もうとすると、コンソールに
java.lang.reflect.InvocationTargetException
と出て、読み込めないんですが、何か設定が間違っているんでしょうか。
新規プロジェクトならコンパイルも起動もできるんですけれども。
WinXP、iAppli Development Kit for DoJa 3.5です。

212 :デフォルトの名無しさん:05/01/11 22:08:07
とりあえず、ごっごるした結果は?

213 :デフォルトの名無しさん:05/01/12 19:38:53
もう、100回ぐらい質問があったかも知れんが、DoJaのiDKシミュレーターって、
PCの赤外線ポート使えるの?(IrOBEXね)
作ったアプリを携帯にダウンロードしたら対抗機にPUT出来るのに、
iDKのシミュレーターで動かすと「接続相手が見つかりません」。

libobex_irda.dllはリネームしたし、誰か救いの手をぷりーず。


214 :デフォルトの名無しさん:05/01/12 19:57:17
>>213
エラーの内容をそのまんま信じると、接続相手がいないなので、
赤外線ポートが向き合ってないとか、サーバとクライアントの起動順序
を間違えているとか(サーバが最初よ)。

215 :デフォルトの名無しさん:05/01/12 21:00:44
>>213
どうでもいいけどエミュレータでつよ

216 :デフォルトの名無しさん:05/01/12 21:24:10
PCによるけど、大体は繋がる。NECの98年製PCでは画像の受信が出来た。PlamもほぼOKらしい。

217 :213:05/01/12 22:07:28
>>215
すまんげさんくすこ

>>214
いやぁ相手はPCのワイヤレスリンクなんだわ。
だから起動順序も何も無さそう。
ワイヤレスリンクは反応してるから(LAPレイヤね。TTP辺りかも知らんが)ポートは向き合ってるな。

書き忘れたが、IrSTICKをUSBにぶっさしてる。LinkEvoのドングル。
エミュレーターから叩けるのか、これ。
エミュレーターでIrOBEXのPUT出来た奴居る?

因みに開発環境はEclipse2.1.3関係ないだろうけど。

218 :デフォルトの名無しさん:05/01/12 22:08:33
DoJaエミュの赤外線って、DoJaエミュをふたつ起動して通信するんじゃなかった?
つまりは本当の赤外線通信はできない。
最新版のエミュだと違うのか?

219 :213:05/01/12 22:17:16
>>218
まじか。
試験ツールだから手抜きで作るつもりだったのが、
試験ツールを作るために、試験対象機のエミュレータまで
作る必要があるって事か。

OBEX持ってるならIrにバッファ渡すだけだろー。それぐらいやってくれーDoJaー。

明日の俺は間違いなく死んだ。


死の宣告をさんくすこ>218


220 :デフォルトの名無しさん:05/01/12 22:32:50
>213
エミュレータの 2.22 の DevGuide 2.22 の p127 によると確かに
『TCP/IP もしくは赤外線を用いて OBEX 通信することができます』
とあるが、同梱の Releasenote 2.22 では制限事項に
『赤外線による OBEX 通信は、
 〜 「i αppli Development Kit for DoJa-3.5」と移動機間での赤外線による OBEX 通信はできません』
とある。
さらに、
『なお、「i αppli Development Kit for DoJa-3.5」同士の赤外線による OBEX 通信は可能です』
とある。

意味ねえ。


221 :213:05/01/13 00:38:34
>>220

日本中でそれに引っかかった奴は1000人は居るね。

222 :デフォルトの名無しさん:05/01/13 20:45:20
携帯内蔵のスピーカーで可聴領域外の音を再生することは可能ですか?

223 :デフォルトの名無しさん:05/01/13 20:56:34
なぜ聞こえない音を再生させたいか気になる訳だが。

224 :デフォルトの名無しさん:05/01/13 21:58:27
パソコンでも再生できないのにどうやって鳴らそうとだろう。

225 :224:05/01/13 21:58:55
すまん。忘れてくれ。

226 :デフォルトの名無しさん:05/01/13 22:15:34
>>222
おそらく無理。
スピーカー自体には再生する能力があるかもしれんが、
iアプリのプログラムから直接スピーカーを駆動する方法はナシ

227 :デフォルトの名無しさん:05/01/14 02:04:08
今までDoja3.0で2Dアプリのゲームを作ってきたのですが、90xシリーズなどのように
携帯も発達してきたようなので、この度3Dに手を出そうと思っています。
どこか良いサンプルなどのあるサイトは無いでしょうか?

228 :デフォルトの名無しさん:05/01/14 09:13:23
初歩的な質問かと思いますがよろしければ教えてください。
パネル上にテキストボックスのコンポーネントを追加して、起動中にそのテキストボックス
に入力した文字を変数に入れて別のクラスで表示させたいのですがどうしたらよいでしょうか?
ボタンなどと同様にcomponentActionで制御できないものでしょうか?


229 :デフォルトの名無しさん:05/01/14 14:23:19
既出だったらすまんのだが、以下の症状に心当たりのある人っている?

D900iでImageStore経由で取得したInputStreamオブジェクトで取得する画像
データがサイズ0となっている。
nullにはなっていないので、何かを返しているとは思うのだが、画像データが
取り込めない状態。

他の端末では問題なく動いているんだけど・・・


230 :デフォルトの名無しさん:05/01/14 14:25:07
>>228

えっとそのテキストボックスオブジェクトにさえアクセスできれば、どこからでも
制御できるので、その別のクラスからアクセスできるようにしてあげれば大丈夫。

俺はいつもパネル部品はpublic staticで作ってるので、クラス名経由でアクセス
してるよ。

231 :229:05/01/14 14:53:08
自己解決してるのだが、どうもD900iのJVMはInputStreamのmarkメソッドを
サポートしていないらしい・・・
これでデータ長をプログラム内で0と判定していたようだ。

232 :デフォルトの名無しさん:05/01/14 15:27:11
スクラッチパッドに保存したGifデータを読み込むメソッドを使ったのですが、
動作確認実機SH900iでは動くのですが、N900iではエラーが出るのです、
もしN系開発してる人いたらよろしくです。

/**
* 画像をスクラッチパッドよりロードする。
* 引数spnoにスクラッチ番号、indexは読込開始位置。
*/
Image loadImage(int spno,int index){
MediaImage mdi = null;
Image image=null;
try{
mdi = MediaManager.getImage("scratchpad:///"+spno+";pos="+index);
mdi.use();
image=mdi.getImage();
}catch(Exception e){
System.out.println("画像呼び出しエラーloadImage()");
image=Image.createImage(300,480);
}finally{
return image;
}
}

もしもネットからダウンロードしたデータがスクラッチパッドに保存していないのであっても、
返すImageオブジェクトを用意したのですが、「java.lang.NullPointerException 画像呼び出しエラーloadImage()
」で止まってしまうようです。
Image.createImage()の使い方も間違ってるのでしょうか…

233 :232:05/01/14 15:28:20
↑すんません、うまく入れ子なってませんね;

234 :デフォルトの名無しさん:05/01/14 15:38:17
>>231
CLDCのInputStreamのリファレンス見るとmark/resetは「何もしない」のが正常とのこと

235 :デフォルトの名無しさん:05/01/14 15:43:01
>>232
300x480が大きいとかいう話じゃない?

236 :デフォルトの名無しさん:05/01/14 16:17:42
ういす。

iαppli Development Kitで開発してるんだけど、
エミュレータ−上でちゃんと動作するモジュールが
実機上で「ソフトに継続動作できない障害が発生しました」となって
起動直後に落ちるんだが、これについて情報無い?
無いでしょうか。
有ったらいいな。



237 :236:05/01/14 16:33:50
エラー原因調べたらどうもconnector.openに有るっぽい。
機種はN900i

誰かここの過去ログpart5の132のレスをコピペしてくれ〜。
どうやらそれが俺の望んだ回答らしい。頼む。


238 :デフォルトの名無しさん:05/01/14 16:41:06
>>232
N900iでは、Imageオブジェクトのサイズは横縦320ドットまでだ。

GIFデータがもしその制限を越えているなら、
mdi.use(); の時点で、例外が発生し、
そしてcatch節が実行され、
そこの、createImage(300,480) で再度例外が発生。

そしてとまってしまう。


239 :227:05/01/14 16:41:09
自分のも頼みます。検索しても504シリーズとかしか出ないつд`)

240 :デフォルトの名無しさん:05/01/14 16:52:08
>>239
いや、基本的に504シリーズとおんなじだから(;´Д`)

>>237
ttp://makimo.to/2ch/pc5_tech/1084/1084246226.html
ほい。
132からリンクされてる115は私の書き込みだw


241 :227:05/01/14 17:05:38
スマンソン、3Dは504時代から大して進化してないのねん…

242 :236:05/01/14 17:11:39
>>240
すごいありがとうを君に。

でも、原因違ったよ……。
ボクのあぷり、起動で落ちてるから……。

243 :デフォルトの名無しさん:05/01/14 17:15:19
実機テストで、ADFのトレスモードをONにすると例外の詳細が表示される>N900i

244 :デフォルトの名無しさん:05/01/14 17:54:43
>>234
ImageStore経由で取得したInputStreamとあるから
InputStreamのmark/resetは関係ないだろ。
(そもそもInputStreamはabstract)

245 :236:05/01/14 17:59:51
>>243
進んだよ!

AnchorButtonを継承してたよ。final classなのに!
恥ずかしい…。とても恥ずかしい…。
何故エミュレータ−で動いてるのか謎だ。


246 :232:05/01/14 21:22:25
>235・238
うお、そうなのか。ありがとうー。
スクラッチパッドナンバー1つに対して1つの画像(1つのGIF)っぽかったから、一つの画像ファイルにまとめちゃった;
でも、スクラッチパッドの呼び出し引数に
scratchpad:///"+スクラッチパッドNO+";pos="+開始位置"
の後に、読み込む量みたいなのもあったような・・・

247 :デフォルトの名無しさん:05/01/15 00:23:50
> の後に、読み込む量みたいなのもあったような・・・

あるよ
付けないとN,P900iはメモリ不足になりやすい
開発ガイド嫁

248 :デフォルトの名無しさん:05/01/15 00:57:24
APIリファレンスにも、
CLDCにも、なかった
ButtunかLabelの色を変える方法を教えてください!

249 :前スレの人@多分881:05/01/15 01:02:05
です。

250 :デフォルトの名無しさん:05/01/15 01:20:46
>>248
クラス com.nttdocomo.ui.Component から継承したメソッド
をよく読め

251 :前スレの人@多分881:05/01/15 01:51:34
>>250
詠んで寝ます。
続きは明日やろうっと (= ̄∇ ̄=)

252 :デフォルトの名無しさん:05/01/15 02:09:48
携帯からIDとパスワードを入力して
合っていたら動作するアプリを作りたいんですけど
どんな感じで攻めてったらいいでしょうか?


253 :デフォルトの名無しさん:05/01/15 02:37:47
>>252
spにID+pass書き込んだら?
id+passが書き込まれてなかったら、入力Panelでも出すとかな。


254 :デフォルトの名無しさん:05/01/15 03:24:37
>>253
説明不足でしたごめんなさい
サーバーと連携を取ってサーバー上で会員制のログインシステムをつくってるんですけど
それを携帯からもログインできるようにしたいんです。

POSTを使ってできるみたいなんですが
具体的にどうすればいいのかが見当つかなくて

255 :デフォルトの名無しさん:05/01/15 07:19:46
サーバーにIDとpass送って、サーバーからOK/NG返せばいいじゃん。

256 :デフォルトの名無しさん:05/01/15 07:21:28
ブラウザでやるのとほとんど一緒
iアプリの本とCGIの本読んで勉強汁

257 :デフォルトの名無しさん:05/01/16 01:55:01
InputStreamにPOST内容をぶちこんで
Outputから嫁ばいいんじゃないんのか?

258 :デフォルトの名無しさん:05/01/16 13:59:00
WEBからtextファイルを読み込んで携帯で表示しようとしてるんですけど
文字化けしてしまいます。読み込んだファイルの内容を配列pに格納して

byte[] strResult = p.getBytes("SJIS");

をしてもエラーで動いてくれないんですけど間違ってるでしょうか?

259 :デフォルトの名無しさん:05/01/16 14:16:21
何したいのかワカランが、これでいいんじゃないの?

String(byte[] bytes)
プラットフォームのデフォルトの文字エンコーディングを使って、
指定されたバイト配列を変換することによって新しい String を構築します。

260 :デフォルトの名無しさん:05/01/16 14:38:10
>>259
byte[] p = new byte[(int)httpconnection.getLength()];
で定義した配列に
inputstream.read(p);
で読み込んでるのをテキストボックスに表示してるんですけど
文字化けしてしまうのでどうしたらいいのかわからないんです。
読み込んでるのはテキストファイルです。

261 :227:05/01/16 15:58:21
まことに申し訳ないのだが、3Dアプリ制作の良いサンプルのあるサイトを教えてくれないかい?

262 :初期不良:05/01/16 15:58:50
InputStreamReader 通せば化けないです

263 :デフォルトの名無しさん:05/01/16 16:05:42
>>262
すいませんけど、具体的なやりかたを教えてもらえないでしょうか

264 :デフォルトの名無しさん:05/01/16 16:37:27
>>261
素直に本買った方がいいと思うけど。

265 :初期不良:05/01/16 18:14:16
>>263
InputStreamReader の使い方なんてぐぐればすぐ見つかるだろう。


266 :デフォルトの名無しさん:05/01/16 21:14:31
スクラッチパッドにデータ保存してる時に、
ナウローディングの%を表示したいです。
でもどうすれば良いか解りません(;´Д`)
今は読み込み中の文字表示しかしてないです。

267 :デフォルトの名無しさん:05/01/16 21:38:04
おそらくfor文使っているだろうから、そのループの最後にdrawString(drawRect)する。
%表示なら割り算する。

268 :デフォルトの名無しさん:05/01/17 10:27:41
>>266
過去ログあされば出てくるよ。根気よく探してみれ。

269 :デフォルトの名無しさん:05/01/17 12:18:34
505では正常にダウンロードできるアプリが900シリーズだと
ダウンロードできない症状に遭遇したひといますでしょうか?
ダウンロード時ADFを検査するときにADFが間違っているとでて
はねられてしまうような感じです。

270 :デフォルトの名無しさん:05/01/17 12:36:05
ADFが間違ってるんでしょ
TargetDevice を調べなさい

271 :デフォルトの名無しさん:05/01/17 13:05:44
TargeDeviceなど機種を制限するような情報は書いていないんです。

LastModified = Wed, 25 Aug 2004 17:11:12
SPsize = 500
AppClass = xxx
UseBrowser = launch
AppTrace = on
AppName = xxx
PackageURL = xxx.jar
AppSize = 18954

こんなかんじで特別変わったことはしてません。
とくにプリミティブな3Dをつかったときに起こるような気がします。
でも505シリーズでは普通にダウンロードできます。

272 :デフォルトの名無しさん:05/01/17 13:20:23
じゃ携帯電話の故障だな

273 :デフォルトの名無しさん:05/01/17 13:34:19
>>269
全機種で調べた?

274 :269:05/01/17 14:09:03
>>273
N900iとP900iはダメ
D900i,SH900iはOK
のようです。

275 :デフォルトの名無しさん:05/01/17 14:14:29
>>274
もしかして、またアレか
SPsize=409600


276 :デフォルトの名無しさん:05/01/17 14:18:07
AppName = xxx
怪しいのはここくらいしか無い
文字コードが変とか、変な文字入れてるとか、長すぎるとか

277 :デフォルトの名無しさん:05/01/17 15:00:11
>>276
そうだな。
とりあえずASCIIだけにして試してみるのがいいかも

278 :273:05/01/17 15:02:19
>>276
もしかしたらそうかも
3DゲームなんでAppNameが「3D○○○○○」(○の所は日本語、全て全角で全体で7文字)
ADFはiappli tool kit 3.0で普通に設定したものです。

とりあえず名前変えてためしてみます。

279 :デフォルトの名無しさん:05/01/17 15:18:00


280 :デフォルトの名無しさん:05/01/17 16:12:25
質問なんですが、iアプリのネイティブアプリケーション連携で
iアプリからiアプリを起動したいのですが、どうやればいいのでしょうか?

それとAPIリファレンスを見てApplicationStoreクラスというのがありましたが、それはランチャー起動用と
書いていましたが、これはトラステッドiアプリ用、ということでしょうか?


参考サイトかヒントでもよいのでご教授よろしくお願いいたします。

281 :デフォルトの名無しさん:05/01/17 16:28:35
>>280
IApplication.launch(int target,String[] args)

282 :280:05/01/17 16:34:39
>281
ありがとうございました!
よくよく見たらAPIリファレンスのApplicationStoreクラスのところに
launchへのリンクがありました…。
もう少し注意深く見るようにします。

283 :デフォルトの名無しさん:05/01/17 17:07:37
開発ガイドの詳細編読めよ
サンプルコード付きで全部出てるから

284 :280:05/01/17 19:40:31 ,
>283
>開発ガイドの詳細編
はい、目を通しておきます!

285 :デフォルトの名無しさん:05/01/17 23:13:27
こんばんは。
えっと、iapplitool使ってアプリ作ってるんですけど
wav2mld使って作ったmldが鳴らないんです。
midiから作ったmldは鳴るんですけど。
何か注意点とかあります?
あと、ドコモの携帯を持ってないので実機確認はできないです。

286 :285:05/01/17 23:18:58
あ、wav2mldに付いてたmfi2voiceでは鳴ってます。
どなたかお助けください。

287 :デフォルトの名無しさん:05/01/18 00:22:00
エミュ上では鳴らない。というか鳴らせない。

288 :デフォルトの名無しさん:05/01/18 04:18:35
着信時のような無限ループ再生ってできないんでしょうか。
鳴りおわり検出してからではセットアップ小節のぶんどうしても無音になるし、
キューポイントとか全く使えないし。

そのくらいの動作はAPIでできるだろうとたかをくくっていたら見つからなくて
ちょっと焦っている。


289 :デフォルトの名無しさん:05/01/18 06:23:42
セットアップ小節無くせば?

ループはメタイベントでやるらしいよ
詳しい事は知らんし、多分仕様は一般には非公開だと思うから諦めろ

ttp://pc5.2ch.net/test/read.cgi/dtm/1042485105/531
>ループさせる時はメタイベント使ったりもしるんだけど、SMAFの場合START
>とENDしか使えんからなあ。まあ、気にしなくて無問題。
>ちなみにドコモ系だとQ=00〜とかL00=〜とか入れたりしてます。

290 :デフォルトの名無しさん:05/01/18 10:32:56
普通はセットアップ小節のないメロディを作って使用する
漏れはAUDIO_COMPLETEイベントが出たらまたplay()する

291 :デフォルトの名無しさん:05/01/18 11:19:36
俺も>>290と同様にやってる。特に気にならない。
少し止まってる気もするが音楽と同期する処理でもない限り平気、気にならない。
んなとこ気にしてたら他のとこも気になって先に進めないし。

あと、JAR自体にMLDを入れてるならMLDの容量限界(10kbだっけ?)まで
内部で複製して長くしておくってのも手。JAR内部なら圧縮でほとんど容量増えないし
スクラッチにZIP圧縮して読み込ますよりも早いし手軽だ。

292 :デフォルトの名無しさん:05/01/18 11:52:50
質問失礼します。
録音ってできるのでしょうか?
録音=携帯端末(iアプリ上)での人間の声の録音です。
機種依存が無い事が前提条件ですが、可能でしょうか?


293 :デフォルトの名無しさん:05/01/18 11:57:38
>>292
APIリファレンス10000回読め。

294 :デフォルトの名無しさん:05/01/18 13:16:26
>>293
292じゃ無いけど、リアルタイムに音声を処理する能力は無いのな。
ある一定の周波数だけに感応するアプリとか作れないのな。


295 :デフォルトの名無しさん:05/01/18 13:20:09
エミュレータ同士のIr通信が出来ねぇ。
サブマシンでやってみると出来る。
機種依存か?赤外線ポート持ってるPCだと本物のポート叩くから動かないのか?
なんじゃこりゃ。



296 :デフォルトの名無しさん:05/01/18 13:50:11
>>295
>>218-220

297 :デフォルトの名無しさん:05/01/18 14:10:54
>>296
>>295はそれができないって言ってるんじゃないの
本物のポートたたいてるかどうか実機で見てみたら?

298 :デフォルトの名無しさん:05/01/18 15:11:26
× IR付きPC上でエミュレータ二つ起動して通信
○ IR無しサブマシン上でエミュレータ二つ起動して通信
○ 携帯二台にダウンして通信

デバイス使用不可にしても、irmon切ってもだめだ。
わけわかめ〜。
わけわかめ〜。


299 :デフォルトの名無しさん:05/01/18 15:48:26
なんだろうな
ポート650が既に他で使われてるとか?

300 :デフォルトの名無しさん:05/01/18 16:32:19
たまにスクロールバーがついてるアプリを見かけるんですけど、あれってどうやってつけるんですか?

301 :デフォルトの名無しさん:05/01/18 16:41:12
根性で

302 :デフォルトの名無しさん:05/01/18 16:49:07
コンジョだ、コンジョー

303 :デフォルトの名無しさん:05/01/18 17:00:14
>>299
650使うのか。知らんかった。
まあ、netstatでも650は別に使われてないな。
わかんね。降参。

304 :デフォルトの名無しさん:05/01/18 20:14:27
>>292
いまのところ録音はない。

>>300
自前でスクロールバーを実装したのでわ?

305 :デフォルトの名無しさん:05/01/18 23:28:32
>>301-302>>304
よくわかりました 自力でつけてみます


306 :デフォルトの名無しさん:05/01/19 00:33:32
>>287
さんくす。
やっぱ実機ないと開発きついね。

307 :デフォルトの名無しさん:05/01/19 02:12:03
substring()みたいに文字列から一部を切り出すメソッドってありますか?

308 :デフォルトの名無しさん:05/01/19 02:53:00
>>307 なぜString.substring()を使わない?

309 :デフォルトの名無しさん:05/01/19 03:56:37
SH901iCの音声データってSH900iと互換ないのでしょうか(3Dサウンドだから??)
アプリで鳴らそうとしているのですがSH901iCで鳴らんと報告を受けました。
何か知っていたら教えてくださいませ。


310 :デフォルトの名無しさん:05/01/19 10:00:14
>>309
互換性はないので、SH901iC用にコンバートしてやる必要がある。

311 :デフォルトの名無しさん:05/01/19 10:10:49
>>310
レス、サンクスです。
wav2mldってまだ対応してないですよね?
SH901iCへの変換ができる変換ソフトで
オススメなものがあれば教えてください
質問連発スマソ

312 :bus:05/01/19 19:41:53
stringで取得した文字をchar配列に変換するやり方がわかりません
わかる方がいれば教えてください

313 :デフォルトの名無しさん:05/01/19 19:45:51
>>312
String s = "...some string...";
char[] chars = new char[s.length()];
s.getChars(0, s.length(), chars, 0);

314 :デフォルトの名無しさん:05/01/20 16:08:24
TextBoxで取得した文字を配列に格納するやり方を教えてくださいませ
お願いします

315 :デフォルトの名無しさん:05/01/20 16:18:24
>>314
TextBox.getText()してから>>313

316 :bus:05/01/21 17:33:39
>>313
返信ありがとうございます、やったとおりにやったらできました。
おかげさまで助かりました

317 :デフォルトの名無しさん:05/01/21 19:11:16
TextBoxの入力モードを数字とアルファベットのみに制限したいのですが
どうしたら良いのか教えてください。

318 :デフォルトの名無しさん:05/01/21 19:29:12
>>317
setInputMode()でよいのでわ?
http://www.ep.u-tokai.ac.jp/~nakazato/API/504i/base/jguide504_apiref020517/javadoc/com/nttdocomo/ui/TextBox.html#setInputMode(int)

ただ「数字だけ」「アルファベットだけ」はできるけど、
「数字とアルファベットだけ」は無理っぽい。

319 :デフォルトの名無しさん:05/01/21 21:45:22
機種を識別する関数とかありませんか?

320 :デフォルトの名無しさん:05/01/21 23:26:02
iアプリコンテンツ開発ガイド for DoJa-4.0 詳細編を読みやがれ。
つか、ぐぐればでてくる。

321 :デフォルトの名無しさん:05/01/22 00:19:23
>>318
すいません、誤解を招く書き方でした。

例えば、setInputModeで初期入力モードをTextBox.ALPHAに設定しても
入力中にユーザーが入力モードを変えてしまえば漢字なども入力
できてしまいますよね。それを制限したいのです。
こういうことはできないんでしょうか。

322 :デフォルトの名無しさん:05/01/22 00:34:12
>>321
方法ナシ。

323 :デフォルトの名無しさん:05/01/22 00:39:43
>>321
注意書きとか添えるぐらいでいいんでねぇ。

324 :デフォルトの名無しさん:05/01/22 00:54:05
>>320
あんがと!おかげさまでわかりましたけどいっぱいあるのね・・・orz

325 :デフォルトの名無しさん:05/01/22 09:18:01
Doja3.5のエミュレータで動くアプリがDoja-4.0のエミュレータだとうまく動作しません。
具体的にはキーが効かなかったり、動きが遅かったりします。
ですが、全てのアプリで動きがおかしいのではなく、特定のアプリでだけ起こります。
このような症状になられた方いませんか?

326 :デフォルトの名無しさん:05/01/22 10:12:36
iアプリでポリモーフィズム使ってる人いる?
容量とか処理速度とか問題にならない?

iアプリを外注したらif文だらけのコードがあがってきたんだが、
これって普通?

327 :デフォルトの名無しさん:05/01/22 10:27:32
>>322
>>323
そうですか・・・。ありがとうございます。

328 :デフォルトの名無しさん:05/01/22 12:14:46
>>326
classファイル1つにつき数百バイトのオーバーヘッドがでるから、サイズの点で不利。

if〜else if〜else ifってするよりもif〜if〜if〜って書いたほうがバイトコードは小さくなるから、
elseが付いていないなら良い仕事だと思っていいよ。付いていた場合は並。

329 :デフォルトの名無しさん:05/01/22 14:35:06
一件初期化してない変数を使ってたり、forループを逆方向に回してたらプロですかね。
嫌な世界だ。

330 :デフォルトの名無しさん:05/01/22 16:46:58
>>326
Javaからかけ離れた実装にすると容量を節約できるのと、
クラスライブラリがお世辞にもOOを考えて作られていなかった、
という事情からか、iアプリのコードにはヘンなものが多いです。

容量を重視しないなら、Javaっぽく書いた方がいいと思うけどね。

331 :デフォルトの名無しさん:05/01/23 01:50:49
>>330
昔と最近で、クラスライブラリ設計方針が変わってきたような気がする。

332 :デフォルトの名無しさん:05/01/24 01:01:01
canvasで文字出力がきれいにできません。
表示するx座標を文字幅分進めたいけれど、任意のcharが1バイト文字か2バイト文字か調べるのはどうすればいいですか?
java.lang.Character.UnicodeBlock.of()が使えないから手詰まりになってしまいました。
出力は折り返し部分を省くと

char[] content;
//contentにspから文字を入れる
for(int i = 0; i < content.length;i++){
//折り返し処理をする
g.drawChars(content, x, y, i, 1);
x += hoge <---文字の幅を入れたい
}
といったコードになります。Font#stringWidth()ってのが使えそうなのですが、いかんせん引数がString…
スマートな解決方法ありませんか?


333 :デフォルトの名無しさん:05/01/24 02:13:58
携帯からWEBのテキストファイルに文字列を書き込むアプリを作ってるんですが
文字列が改行部分までしか書き込まれません
old_fileにStringの文字列が格納されていて、

hc = (HttpConnection)Connector.open(s_URL + "k_up.cgi",Connector.READ_WRITE);
os = hc.openOutputStream();
osr = new OutputStreamWriter(os);
osr.write(old_file);

でcgiにアクセスして

read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'};
open(FILE,">$filename");
print FILE $buffer

で書き出しているんですがどうすれば改行以降の文章も書き込まれるでしょうか?

334 :デフォルトの名無しさん:05/01/24 02:51:50
>>332
半角全角は気にせず、このどっちかを使って処理する
int getLineBreak(java.lang.String str, int off, int len, int width)
指定した文字列の改行位置を取得します。
int stringWidth(java.lang.String str)
指定した文字列の幅を取得します。

>>333
old_fileの中身は正しいのか?
よく知らんが、perlがバイナリモードじゃなくてテキストモードになってるとか

335 :332:05/01/24 04:24:47
>>334
ありがとうございます。実現できました。
以下駄コード

char c = content[i];
if (x + f.stringWidth(String.valueOf(c)) > Display.getWidth()) {//改行処理
x = 0;
y += f.getHeight() + 2;
}
g.drawChars(content, x, y, i, 1);
x += f.stringWidth(String.valueOf(c));

336 :デフォルトの名無しさん:05/01/24 05:01:58
>>333
perlって、直にprintしたら改行までしか出力されないんじゃなかった?
openしてから、
while(<ファイルハンドル>){print;}

337 :デフォルトの名無しさん:05/01/24 11:08:37
>>334
perlのバイナリモードは改行コードの変換するかどうかだけで、
行単位で出力されるということには関係ない。

>>336
スカラー変数に改行がいくつ入ってても全部出力される。
ふつうはそんなふうなコーディングか、
入力セパレータを解除して一気に読み込むかどっちかかな。

338 :bus:05/01/25 17:43:27
String s = "...some string...";
char[] chars = new char[s.length()];
s.getChars(0, s.length(), chars, 0);
このやり方でStringの文字をChar配列に変換したのですが、日本語で実行
するとjava.lang.ArrayIndexOutOFBoundsExceptionてゆうエラーがでてうまく行きません、
このやり方では、日本語は使えないのでしょうか?

339 :デフォルトの名無しさん:05/01/25 17:49:26
>>338
スレ違いの質問。

340 :デフォルトの名無しさん:05/01/25 19:17:33
>>338
【初心者】Java質問・相談スレッド60【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1105691367/

341 :デフォルトの名無しさん:05/01/26 01:23:57
>>334,336,337
ありがとうございました
なんか結局エミュでは出来なかったのに
実機では改行以降も書き込んでくれました

エミュと実機ではそんなに違うものなんでしょうか
ってか、CGIの問題だと思ってたのに・・・謎です

342 :デフォルトの名無しさん:05/01/26 03:03:43
>>341
そんな実装依存なコードで平気なのか!?
気持ち悪くない?

343 :デフォルトの名無しさん:05/01/26 03:26:55
ヒープメモリの使用量ってプログラム本体が大きくなっても関係ないよね?

344 :デフォルトの名無しさん:05/01/26 11:34:42
drawStringでグラフィック文字表示する方法って無いのかな?
もしくは、ほかの方法で表示することは可能?

345 :デフォルトの名無しさん:05/01/26 13:28:14
>>344
グラフィック文字ってなに?

346 :デフォルトの名無しさん:05/01/26 13:36:54
グラフィック文字ってなによ

347 :デフォルトの名無しさん:05/01/26 13:42:56
直訳すれば絵文字だよなぁ

348 :デフォルトの名無しさん:05/01/26 15:39:18
絵文字の表示方法は開発者ガイドに書いてあったけどなぁ

349 :デフォルトの名無しさん:05/01/26 15:48:35
TextBoxの中身を取得する事が美味く出来ません

play1 = new TextBox("", 4, 1, TextBox.NUMBER);
add(play1);

こういう風にPanelにのっけたTextBoxを
componentActionの中で
System.out.println(play1.getXText());
で出して確認したいのですが、出来ません、nullが帰ってきます
そして入力が終わったらTextBoxの中身は演算にだけつかって
中身を消したいので
play1.setText("");
としているのですが、これをするとprintlnが無限にnullを返してきます。。。

350 :デフォルトの名無しさん:05/01/26 16:16:42
>>344
これ参考にしな
http://saru.or.tp/hp/doja/doja_api_drawemoticon.htm

351 :デフォルトの名無しさん:05/01/26 17:35:45
>>349
APIリファレンス嫁
TextBoxに入っているのがXStringではなくStringだったら
getXText()はnullを返すように決まっている

352 :デフォルトの名無しさん:05/01/26 18:02:07
解決しましたありがとうございます。。。。

X...X....が。。。。。

353 :デフォルトの名無しさん:05/01/26 20:23:58
>>350
ずいぶん面倒なやり方が紹介されてるな。

g.drawString("\uE704", 0, 60);
とかの方が楽だと思う。

354 :質問です!:05/01/26 20:38:15
こんにちは!

携帯用のJAVAアプリでボイスチャットを作成することって
原理上可能なことでしょうか?もし、そうなったら電話使わず
アプリを通してパケホとかで声のデータでやりとりできますよね?
せめて電話みたいなリアルタイムに近い快適さまでいかなくても、
5秒に1回ほど更新してサーバーに相手から来ている声のデータ拾いにいって
再生してってかんじで、トランシーバーみたいなかんじで
声のデーターのやりとりをサーバー経由で出来ないものでしょうか?
そういうアプリって作れます?

355 :デフォルトの名無しさん:05/01/26 21:46:15
>>353
外字をインスコして直接絵文字を書くのが一番楽で間違いも無いよ

>>354
無理&マルチはキエロ

356 :デフォルトの名無しさん:05/01/27 00:50:53
エミュのテキストボックスで改行ってできますか?

357 :デフォルトの名無しさん:05/01/27 01:19:43
自分でやれ

358 :デフォルトの名無しさん:05/01/28 00:46:01
フリップ開閉APIって、2つ折り携帯電話じゃない場合、使えないのですか?

359 :デフォルトの名無しさん:05/01/28 00:47:53
フリップ開閉APIってどれのこと言ってるんだろう。。

360 :デフォルトの名無しさん:05/01/28 00:57:35
>>359
MApplicationクラスにそのようなものがあります。
http://www.itmedia.co.jp/mobile/0208/23/n_sikoku2_2.html

361 :デフォルトの名無しさん:05/01/28 01:58:30
>>358
APIリファレンスに「折りたたみ型あるいはフリップ型の端末の
場合にのみ」と書いてあるよ。
つーかいい加減リファレンス読まずに質問するのやめてくれ。


362 :デフォルトの名無しさん:05/01/28 02:03:27
>>361
ありがとうございます。APIにご指摘の内容を確認しました。
次回より、よくよみます。

363 :デフォルトの名無しさん:05/01/28 10:27:09
504以降は全てあてはまるよ。
SO505iとかが、閉じていても画面が見えるので面倒なんだが!

364 :デフォルトの名無しさん:05/01/28 23:31:34
これって開閉APIというか、開閉時にイベントが発生するってことじゃないの?

365 :デフォルトの名無しさん:05/01/29 02:13:58
呼んだら開いたり閉じたりしたらスゲェよな<開閉API

携帯が噛むアプリとか作れっぞ

366 :デフォルトの名無しさん:05/01/29 11:34:34
>>365
開閉開閉を繰り返して待ち受け画像のセンベイが砕けていく
っていうくぅーだらないストレス発散アプリなら作れるかな

367 :デフォルトの名無しさん:05/01/29 11:55:26
(・∀・)イイ!

368 :デフォルトの名無しさん:05/01/29 12:18:35
>>366
さっさとリリースしる!



・・・おながいします。

369 :デフォルトの名無しさん:05/01/29 17:05:27
♪フーリップーを畳むと、おせんべいーが二つ

370 :デフォルトの名無しさん:05/01/29 22:25:18
900iシリーズでもスリープ時間の最低単位が1msじゃない端末ってあるんですか?

371 :デフォルトの名無しさん:05/01/29 23:09:41
Fが15で他は10だったかな

372 :デフォルトの名無しさん:05/01/29 23:38:45
iアプリとサーバーとをJavaで通信させたいのだが、
サーバー側のプログラムはservletを使うしかないのでしょうか?

373 :デフォルトの名無しさん:05/01/30 00:19:20
HTTP喋れれば何でもいい。

374 :デフォルトの名無しさん:05/01/30 00:34:17
>>371
返答ありがとうございます。
そんなにも精度が悪かったとは知りませんでした・・。

アクション系のゲームを作っているのですが
スリープなしだと速すぎてスリープをすると遅すぎる場合どうすればいいのでしょうか?
やはり移動距離の調節で対応するしかないんですか?

375 :デフォルトの名無しさん:05/01/30 01:15:42
うーん、スリープでだめなら、あとはyieldしてコンテクストスイッチ起こるのを期待するとか?

376 :デフォルトの名無しさん:05/01/30 01:30:18
秒何フレームなのさ

377 :デフォルトの名無しさん:05/01/30 06:31:06
質問です
着メロとして再生可能なMLDファイルがアプリ上で再生できないことはあるでしょうか?

いくつかあるMLDファイルのうちの何個かが鳴らないのですが
自分のところで作成したMLDファイルなので作成環境等はわかりません

同じ状況になったことのある方はいないでしょうか

378 :デフォルトの名無しさん:05/01/30 07:03:08
>>377
MLDには機種依存があるので(とくにPCM音声)
機種が違うと鳴らないことがある。

>自分のところで作成したMLDファイルなので作成環境等はわかりません

自分で作ったファイルなのに、
どうして作成環境がわからないの?

379 :デフォルトの名無しさん:05/01/30 13:06:16
>>375
Threadは一つしか作ってないんですけどyieldでスリープのような効果を期待できるのでしょうか?

>>376
秒間30フレーム程度で動かしたいのですが
スリープなしだと48フレームでスリープをかけると21フレームまで落ちます。

380 :デフォルトの名無しさん:05/01/30 13:40:37
>>379
yieldはSleepじゃない。例えばwhile() yield(); だとsleep()と違って
CPU利用率が100%になる。

フレーム数カウントして、数フレームに1度程度の割合でsleepするしか
ないんじゃないか?

381 :デフォルトの名無しさん:05/01/30 13:59:14
>>380
yieldだと100%になるということはバッテリのことを考えるとあまり使いたくないですね
数フレームに一度sleepをかけるとそのフレームだけコマ落ちのようになるような気がするんですが・・

382 :デフォルトの名無しさん:05/01/30 14:23:34
ループを綺麗に回したければ、Sleepは使えない。
バッテリを犠牲にして空ループで待つしかない。

383 :377:05/01/30 15:58:35
>>378
返答ありがとうございます

×自分のところで作成したMLDファイルなので作成環境等はわかりません
○自分のところで作成したMLDファイルではないので作成環境等はわかりません
のまちがいでした

現象が発生する機種はN900iで着メロとしての再生を確認したのも同じN900iです


384 :デフォルトの名無しさん:05/01/30 20:03:51
mldファイルの機種ごとの仕様書ってどこかにあるんでしょうか?

385 :デフォルトの名無しさん:05/01/30 21:15:13
ここで聞くのはスレ違いですか?
FOMAでアプリ以外で時間をリアルタイムで表示させる方法ってありますか?
ヤフオクの詳細な残り時間を表示させるような感じです。

386 :デフォルトの名無しさん:05/01/30 21:28:48
たぶんスレ違いだな。

387 :デフォルトの名無しさん:05/01/30 23:17:37
>>385
FLASH使えばできそうな気がするがスレ違いだな


388 :375:05/01/31 00:37:17
sleep()できないなら、busy waitするしか無いので、
その場合はyield入れなきゃだめだわな。

389 :デフォルトの名無しさん:05/01/31 05:17:49
yieldが要るど

390 :デフォルトの名無しさん:05/01/31 11:06:52
>>389

391 :デフォルトの名無しさん:05/01/31 11:09:13
>>383
ポート使用して再生してる場合
きちんとリソースの配置まで考えて作られたmld以外は鳴らない

ポート使用しない設定で再生すればその鳴らないデータも鳴るはず
ただし複数同時再生はできなくなる

複数同時再生するためのデータを作る場合はmldをちゃんと理解してから作ること

392 :デフォルトの名無しさん:05/01/31 15:50:02
>>383
機種によってはMLDのサイズがでかすぎる場合ならないことがある。
機種によってはプログラムのその音をプレイする前に
ストップを呼び出してるのが近い場合ならないこともある

出てない情報で考えうる残りの可能性。

393 :366:05/02/01 01:37:17
>>367-369
待ち受け煎餅(505i以降)
ttp://senbei.kt.fc2.com/i/
予想通り「かなり」くだらないorz
スレ違いなのでレス不要。

394 :デフォルトの名無しさん:05/02/01 09:19:12
>>393
乙。割れ方が気に入った

395 :デフォルトの名無しさん:05/02/01 10:08:21
ネ申キタ━━━━━━(゚∀゚)━━━━━━!!
GJ!

396 :デフォルトの名無しさん:05/02/01 11:50:39
>>366
開閉を早くやると、開閉イベントが飛んでこないアホ機種がありますから!残念!

397 :デフォルトの名無しさん:05/02/01 11:53:06
と思ったら、393で本当に作ってるよ(;´Д`)

398 :デフォルトの名無しさん:05/02/01 11:57:07
これって、割れ済みのせんべいパーツを持ってるのですか?
非矩形転送ってないですよね。

399 :デフォルトの名無しさん:05/02/01 13:02:35
>396
すまんが、その情報を詳しく教えて欲しい。
今、フリップ開閉を繰り返して行うと、閉じた時のイベントが発生しないバグがあって困ってます。
もしかして、そのイベント飛ばされる機種ってN系ですか?


400 :デフォルトの名無しさん:05/02/01 14:58:19
>>399
N900iだけど,500_秒くらい置かないと砕けない
まあ,よく噛めってことか

401 :デフォルトの名無しさん:05/02/01 15:32:51
ま た N か


402 :デフォルトの名無しさん:05/02/01 15:41:26
たしかF505あたりも反応が鈍かったような気がする

403 :デフォルトの名無しさん:05/02/01 22:29:30
N900i連続でやると確かに飛びますー。しかしGJ。

>>398
多分割れたせんべいパーツを用意してくっつけてるだけだと思ふ。

404 :デフォルトの名無しさん:05/02/02 01:00:18
質問です。
PanelとCanvasを同時に表示する事は出来るのでしょうか?
もしくは上半分をCanvas、下半分をPanelという使い方はできるのでしょうか?

405 :デフォルトの名無しさん:05/02/02 01:09:58
>>404
ムリ

406 :デフォルトの名無しさん:05/02/02 01:15:29
>>405
即答ありがとうございます。無理ですか・・・orz

407 :デフォルトの名無しさん:05/02/02 15:03:27
String型の配列をChar型の配列へ変換する方法をおしえてください

408 :デフォルトの名無しさん:05/02/02 15:19:55
string型配列をchar型配列へ変換する方法を教えてください

409 :デフォルトの名無しさん:05/02/02 15:23:26
ループ使って切れ

410 :デフォルトの名無しさん:05/02/02 15:41:16
>>407-408
iアプリじゃなくてJavaの質問になるので
スレ違い。

411 :デフォルトの名無しさん:05/02/02 17:04:47
>>407
APIリファ(ry

412 :デフォルトの名無しさん:05/02/02 18:28:33
>>407
まぁスキルアップのためにメソッド作っとけ。

413 :デフォルトの名無しさん:05/02/02 19:58:26
「活性」−「非活性」−「休眠」。
待受けアプリを作ってるんですが、この「非活性」の状態でも拾える
イベントってありますか?

414 :デフォルトの名無しさん:05/02/02 20:33:43
700系発表されましたね。アプリ対応ですね。動作確認大変ですね。

'`,、 '`,、 '`,、('▽`) '`,、 '`,、 '`,、

415 :デフォルトの名無しさん:05/02/02 21:37:08
>>413
質問の意味が分からないのだが。
非活性中に何をしたいの?

キーイベントは無理でも
タイマーイベントならハンドルできる気がするけど。

416 :デフォルトの名無しさん:05/02/03 10:44:05
>>413
キー入力ができないだけで、非活性状態は活性化状態と変わらん。
まぁPhone.callを非活性状態では使えないとか、そういう制限ならあるが。

417 :デフォルトの名無しさん:05/02/03 12:04:11
>>415 >>416
ありがとうございます。
「キー入力ができないだけで、」ということは、キー入力によって
非活性→活性 にすることはできないんですね。
「活性化ボタン(?)」を押すしか、非活性→活性 はダメという
理解でよろしいでしょうか。

418 :デフォルトの名無しさん:05/02/03 12:16:47
>>417
そんなことまでいちいち確認求めんでも
開発ガイド詳細編を「非活性」で検索して
引っかかったとこ読んで自分で判断しなって

419 :デフォルトの名無しさん:05/02/03 12:18:26
iアプリで携帯番号とかメルアドって取得できますか?

420 :デフォルトの名無しさん:05/02/03 12:49:12
>>418まぁまぁ、いいじゃないか。>>417そうだよ。むしろそうじゃなきゃ困るべ?

>>419
DOCOMO公認で、手続きをすればそれようのIDが発行されて、できる。

421 :デフォルトの名無しさん:05/02/03 13:21:50
すみません質問があります。
jar圧縮されたバイナリファイルをスクラッチパッドから読み込んで解凍して使用したいのですが
スクラッチパッド上にはすでに test.bin というファイルがjar圧縮されて配置されてあるとした場合、

InputStream aStream = Connector.openInputStream( スクラッチパッドアドレス+length );
JarInflater aJarFile = new JarInflater( aStream );
aStream.close();
InputStream bStream = aJarFile.getInputStream( "test.bin" );
aDataStreams = new DataInputStream( bStream );

〜ここでデータを読み込み〜

/*以下、各種終了処理*/
aDataStream.close();
aDataStream = null;

aJarFile = null;

bStream.close();
bStream = null;

aStream = null;

という感じでやっているのですが、
各種リソースの破棄などについて、上記の手順でよろしいでしょうか。
順番違いや、なにか足りない手順などありますでしょうか

422 :デフォルトの名無しさん:05/02/03 13:22:28
>>419
ありがとうございました

423 :デフォルトの名無しさん:05/02/03 13:24:00
>>420
ありがとうございました

424 :デフォルトの名無しさん:05/02/03 13:55:40
次に質問する人へ
↓ドコモのドキュメントを100回読め

425 :デフォルトの名無しさん:05/02/03 14:11:10
>>421
そのコードで動いているんだったらいーんじゃないの。

426 :デフォルトの名無しさん:05/02/03 14:14:32
aJarFile.close()が抜けてる気はするけどな。

427 :デフォルトの名無しさん:05/02/03 14:26:59
まったくまだJAVAとか解らない状態なんだけど、
リアルタイム通信の格闘ゲームって作れるかな?

428 :デフォルトの名無しさん:05/02/03 15:06:32
>>427
iアプリに関してはほぼ不可能。

429 :デフォルトの名無しさん:05/02/03 17:35:18
Sock通信が実装される日は来るのかねぇ…?

430 :デフォルトの名無しさん:05/02/03 18:38:22
ドコモもBREWを採用! なんてことになったらイヤだなぁ。

431 :デフォルトの名無しさん:05/02/03 19:01:12
>>430 BREWでできたKVMが乗るに決まってるジャン

432 :デフォルトの名無しさん:05/02/03 19:08:32
アプリでi-motionをストリーミング再生する場合、
i-motionのファイルサイズを150KB以内に収める必要ってあるの?

433 :デフォルトの名無しさん:05/02/03 19:56:07
わかる方、いらっしゃったらお願いします。
DataOutputStreamを使ってスクラッチパッドにデータを保存しているのですが、
一度にクラス単位で保存する技ありませんか?
今は、年齢のデータが沢山あったりすると、
writeInt(age);をループで書き込んでいます。
これだと非常に面倒なので他に技があれば教えてください。
また、読み取りのときもクラス単位でがっつり読み込めると嬉しいです。

434 :デフォルトの名無しさん:05/02/03 20:26:33
P900iでswid=640shei=480
Image.createImage(swid, shei);
java.lang.IllegalArgumentException Invalid width/height
って出ちゃうんですけど原因の分かる人いらっしゃいますか?

435 :デフォルトの名無しさん:05/02/03 21:31:05
>>434
いや、エラーメッセージの通り、Imageの幅と高さが不正なだけだけど・・・。

P900では320を超える値は設定できまへん。

436 :デフォルトの名無しさん:05/02/03 21:48:49
>>419,420
公式サイトでも無理だぞ

>>433
シリアライズ機能は無いからアキラメレ

437 :デフォルトの名無しさん:05/02/03 22:58:05
アドバイスお願いします。
機種:SH900i
現象:メモリーがすこしずつ減って行く
状況
・毎ループgc(何回も)
・MediaImage:unuse、dispose =null
・Image:dispose =null
・jar:dispose =null
・Graphics:dispose =null
など思いつく限り、メモリ解放に関係ありそうなことをしています。
補足:参照している変数がどっかに残っている可能性は大有り

なにか解放されていないようなのですが、こんなものですか?
なにか必要なことをしていないのでしょうか?
思い当たることがあれば、おねがいします

438 :デフォルトの名無しさん:05/02/03 22:58:59
>>419
アプリを使う人に入力してもらえばできるぞ!!

439 :デフォルトの名無しさん:05/02/04 00:25:46
>>437
MediaSoundは使ってないのか?
もしかして、少しづつ減って行くけどある程度減ったらgcがかかって増えるんじゃないの?

440 :デフォルトの名無しさん:05/02/04 01:34:20
>>437
動作中にメモリの確保/解放を繰り返す作りだと、断片化のせいで少しずつ
食いつぶされていくね。
文字列の連結とか、暗に確保されるような処理が入ってない?

441 :437:05/02/04 01:41:07
>>439
どもです。
MediaSoundは使っていますが、使いまわしで破棄対象ではありません。
InputStreamなどio系もclose() =nullしています。
SH900iではVM側が必要だと判断したとき、gcが実行されるということでしょうか?
かなりのデータ量なのでgcがかかった後の状態が、少しずつ減っているように感じます

442 :437:05/02/04 01:49:40
>>440
どもです。
その断片化はgcで解消されないのでしょうか?
文字の連結は若干しているケースもありますが、数KBも消費するほどでは・・・
それとこの文字の連結もgcで解消されないのでしょうか?
?ばかりでもうしわけないです

443 :デフォルトの名無しさん:05/02/04 01:51:40
>>442
信じられないことに、gcはするけどコンパクションしない機種があるのだよ。

444 :デフォルトの名無しさん:05/02/04 01:58:19
すいません質問です。
AffineTransのmul()でどうしてもRuntimeExceptionが出てしまいますorz

AffineTrans trans=new AffineTrans(0,0,0,0,0,0,0,0,0,0,0,0);
trans.mul(trans);
試しにこんなソースを実行しましたが、これだけでRuntimeExceptionが出ます。
何か足りないことでもあるんでしょうか?

445 :437:05/02/04 02:00:25
>>443
コンパクション、ググッってきました。
解放じゃなくて、メモリを整理してくれる・・・ということは、
どんどんメモリは無くなっていくばかりですかorz
SH900iなのですが、これがそうなんでしょうか?
900以上でコンパクションしない機種って分かりますか?
もしくは調べ方でもいいのですが・・・お願いします。

446 :デフォルトの名無しさん:05/02/04 02:42:37
>>444
MascotCapsuleのDLLが入ってないからじゃない?

447 :デフォルトの名無しさん:05/02/04 04:58:03
>MediaSoundは使っていますが、使いまわしで破棄対象ではありません。

ちゃんとdispose()しないと駄目だぞ
ネイティブヒープはgcの対象にならないから、わざわざdispose()とかのメソッドがある
ちゃんと使うべし

448 :デフォルトの名無しさん:05/02/04 05:00:30
要するにdisposeしてからgetSoundしろって事だ

449 :デフォルトの名無しさん:05/02/04 09:31:06
>>447
使い回してるってことは、最初に全部getSound()しちゃって、それ以降は
行わないようにしてると思うんだが・・・

450 :デフォルトの名無しさん:05/02/04 11:40:39
>>419
公式サイトだろうとそう言う事はできない。
公式アプリだと画面に表示したりすることは出来るが
機能が制限されるためそれを外部へ持ち出す手段がない。

個人的に思いついてないがその機能の抜け目があって
外部へ持ち出す事が可能なアプリを公式でなら可能とか
過去に言ってた人もいるが本当かどうかはわからない。

ちなみに、公式サイトのアプリなど有料サイトを使用して支払い拒否(未払い)した場合
その携帯で契約した各有料サイト運営会社には
使ってる本人の個人情報が流される仕組みにはなってるらしい。
ようは携帯契約時の内容の情報だな。電話や名前や住所などなど。

これは各会社でその個人に対してドコモが回収しなかった金額を個別に請求するために必要となる。
が・・・実際には個別で取り立てるとその手数料だけでマイナスになるので
あまり友好的に活用されていないのが現状ではあるが・・・個人情報が流れるのは気持ち悪いな。

451 :デフォルトの名無しさん:05/02/04 11:48:13
>>433
言いたいことはなんとなく判るが基本的に無い・・と言いつつ自信は無いwwww
でも、自分でデータの持ち方を変えてやるほうが良いと思う。
配列にしてwrite(byte[] b, int off, int len)で書くとか。

余計な事だが年齢をintで書き出すのはどうだろうか・・・。
byteで十分でしょ、無限にスクラッチ使えるわけじゃないし。

452 :デフォルトの名無しさん:05/02/04 11:51:37
>>442
開発情報PDF読むべし。
P900とN900にいたっては、断片化を修復しない。

んー。SHの開発情報PDFには特にそれ関連はないなぁ。
一定以上小さなゴミがたまったら解放とかかもしれない

453 :デフォルトの名無しさん:05/02/04 11:52:08
>>433それは私も以前調べた。
DOJAにシリアライズは無い。自力実装しかないです。残念!

454 :デフォルトの名無しさん:05/02/04 13:48:15
ちょっと既出な質問かもしれないけど、知っている人がいたら教えて下さい。

MediaListener のイベントで、着信や強制終了確認でのアプリ中断時に、AUDIO_STOPPED や AUDIO_PAUSED
のイベントって呼び出されますか?

それと、強制終了確認で「いいえ」を選択すると、決定キーが押されたという状態でアプリに戻ってくるんですが、
この状態の回避方法があれば、教えて頂けないでしょうか?

455 :デフォルトの名無しさん:05/02/04 18:35:03
>>454
>イベントって呼び出されますか?
質問が的確じゃない気がする。
理由としては機種依存もあればDoJaのバージョンによってその部分の挙動は違うから。
恐らくサウンドの事だろうけどAudioPresenterを調べて見るといいよ。
完全保障はほぼ無いor機種依存ってのがわかると思う。
でも実際はほぼ呼び出されてると思って良いけど過剰な期待はよした方がいいと思う。

>強制終了確認で「いいえ」を選択すると
>>81

456 :デフォルトの名無しさん:05/02/05 00:23:16
>>445
SHはコンパクションはやってくれてると思うけどなあ。
ところで、
> 解放じゃなくて、メモリを整理してくれる・・・ということは、
> どんどんメモリは無くなっていくばかりですかorz
なんかものすごい誤解してる気がするんだが、
コンパクションとGCは両方やるんですよ。
どういうイメージか知りたいなら「コピーGC」でぐぐれ。
GC+コンパクションの基本だ。

457 :デフォルトの名無しさん:05/02/05 14:30:20
特定の機種にだけソフトに誤りがありますと出てダウンロードできない場合
どういった場所を疑った方がいいんでしょうか?

458 :デフォルトの名無しさん:05/02/05 14:57:39
>457
私の経験では、jam ファイルに誤りがあった。
他は見逃してくれてただけ。

jam ファイルチェッカー欲しいなー。
自分で書いてもミスするから、
自分でチェッカー作ると信用できないし。

459 :デフォルトの名無しさん:05/02/05 18:37:00
>>457
アプリ名、スクラッチパッド、あとは対象機種名のあたりぐらいか
とくにアプリ名が16バイトオーバーしてたとかよくあった(それでも動く機種あるからなあ)

460 :437:05/02/05 18:48:20
>>447 >>448
>>449の様にしています。
追加補足なのですが、メソッド内で取得したGraphicsオブジェクトは、
disposeしていません。jarなども含めdisposeがあるオブジェクトは、
メソッド内だけのローカルで使用している場合でも、disposeは必要でしょうか?
既出な質問のような気がしますが、お願いします。
と書いていますがアク規制の間に試してみまして、変わりなしです。

>>452 ありがとうございます。

>>456 ありがとうございます。誤解してますし日本語もおかしいですね。orz
「gc=解放+コンパクション」 と 「gc=解放のみ」 の場合があり、
コンパクションを行われない場合、断片化が発生する。
断片化すると、残メモリはあっても大きい画像などを展開しようとすると
アウトオブメモリーが発生する。という感じでよろしいでしょうか?

461 :デフォルトの名無しさん:05/02/05 21:14:08
>>460
機種によるけどdisposeは必要
理由は>>447

disposeしても駄目って事は、そういう端末だと思って諦めるしかないって事だろう
何時間動かすと落ちるか調べたら?

462 :デフォルトの名無しさん:05/02/06 00:30:50
>>458>>459
返答ありがとうございます。
指摘された通りjamファイルを疑いアプリ名、サイズ、スクラッチパッド等を
ひとつひとつ変更しては試してみたもののどうしてもうまくいきません。
PやNではダウンロード、動作するのですが、SHだけはダウンロードで失敗します。
SHだけに起こる機種依存のようなものがあるのでしょうか?

463 :デフォルトの名無しさん:05/02/06 00:58:38
>>462
アプリ名に2バイト文字を使わないようにすると動くかも

464 :デフォルトの名無しさん:05/02/06 02:56:08
>>462
それと同じ症状になったことあります。
なぜかSH900iだけダメ。
ADFは(AppSizeとLastModified以外)変えていないのに、バージョンアップDLできなくなったり…
DoJa-4.0用のエミュレーターではADFチェックという項目があるんですが、それももちろん正常。
とりあえずうちの方ではProfileVerとかConfigurationVerとかの必須じゃない項目を削りまくったらSHでもDLできるようになったと報告を受けました。

あと、ADFの記述がPackageURL以外全く同じ505用はDLできたとも報告を受けたんですが…
全然原因がわかりませんでした(´・ω・`)

465 :デフォルトの名無しさん:05/02/06 03:21:23
じゃあ、今チェックしたところ以外で、
とりあえず解除できるところを一通り解除。
Launch なんちゃらとか。

SH900i は確かにチェック厳しかった気がする。


466 :デフォルトの名無しさん:05/02/06 03:57:45
>>462
AppNameは何て書いてる?
SH900は>>463が言うように特定の漢字使ってると引っかかるよ。
この件はこのスレでも過去に話題になった。Part5の>470-550あたり。

467 :デフォルトの名無しさん:05/02/06 06:21:58
前スレか

0x5C(\)の入った文字が関係あるらしいよ
"圭構蚕"でぐぐってみてw
--------------
ゴルフスコア表×
ゴルフスコア表です×
ゴルフスコア紙○
ゴルフ表スコア○
ゴルフスコア表○
ごるふすこあ表○
表ゴルフスコア○
ゴルフスコアひょう○
ゴルフスコア○
ゴルフ表○
ゴルフhyou○
ゴルフスコアhyou○
時刻表○
ウ表○
スコア表○
ゴルフスコア表×

468 :462:05/02/06 20:07:48
jamファイルのProfileVerの項目を削除したら無事ダウンロードできるようになりました。
SHはjamファイルの読み込みに癖があるんですかね。

469 :デフォルトの名無しさん:05/02/06 20:40:39
>>468
参考までに今まで何て書いてあったのか教えてもらえませんか
DoJa-3.0とか書くとこでしょ?

470 :デフォルトの名無しさん:05/02/06 21:21:26
>>469
そのままDoja-3.0って書いてましたよ。
他のアプリでは同様の記述でも問題なかったので何かの組み合わせで起こるのかもしれませんね。

471 :デフォルトの名無しさん:05/02/06 21:42:57
逆にSHが厳格なだけじゃないのかと疑ってみるテスト

472 :456:05/02/06 22:11:36
>>460
> コンパクションを行われない場合、断片化が発生する。
> 断片化すると、残メモリはあっても大きい画像などを展開しようとすると
> アウトオブメモリーが発生する。という感じでよろしいでしょうか?
その通り。

473 :437:05/02/06 23:35:57
>>461
場合によってデータ量が違うので、落ちやすいところが出てしまうんですよね。
テストでは2時間は大丈夫なんですが、たまに持たないときがあるようで・・・。

>>472 どもです。

さらに気になる点は、finalって普通に使用していますか?
いや、これを消してもメモリ減少に対する効果はほとんど無かったんですけどね。
危険だという話を聞いたもので、どういう危険があるのかと。
ちなみに、メソッド内(ローカル変数?)でfinalつかってました

474 :456:05/02/06 23:43:59
finalが危険?
言ってる意味がわからんぞ。そんな話は聞いたことがない。
一般的には、finalがあれば、JVMがインライン展開などの最適化を実行時にしてくれると思うが、
iアプリにおいては、static final定数を使えば定数の埋め込みがコンパイル時に行われること位しか効率上のメリットはないかもね。

475 :デフォルトの名無しさん:05/02/07 00:03:09
>470
それ、DoJa-3.0 って書いたら動かない?


476 :デフォルトの名無しさん:05/02/07 00:07:09
jarファイル圧縮ツール使って起動時間は劇的に速くなりますか?
サイズは3割減ったけど起動が速くなった気がしないしサイズが倍くらいあるアプリと同じくらいの起動速度…
起動速度を上げるのになにかtipsとかありましたら教えてください

477 :デフォルトの名無しさん:05/02/07 02:27:26
>>476
何を指して起動速度と言ってるのかわからないが、何にしても遅いものを速くするには
重い処理をはずすか、冗長性を減らすか、処理数自体を減らすか、とかだぞ。

478 :デフォルトの名無しさん:05/02/07 04:19:28
>>473
ガセネタ
むしろ積極的に使え

>>476
起動時間ってJavaのロゴが出てる時間? 
巨大なメソッドがあるとベリファイが遅い気がしないでもない

479 :デフォルトの名無しさん:05/02/07 08:10:20
>>478
なんのためのpreverify.exeなのかと(ry

480 :デフォルトの名無しさん:05/02/07 09:23:21
勘違いしてる悪寒

勉強汁!
ttp://www.netgene.co.jp/java/docs/javaPressVol23.html
>preverifyは,本質的には本番のベリファイ以前に行われる単なる前処理に過ぎず(注8),
>ベリファイの本体は2パス目のon-device verifyです

481 :454:05/02/07 11:14:49
>455
回答ありがとうございます。

>恐らくサウンドの事だろうけどAudioPresenterを調べて見るといいよ。
>完全保障はほぼ無いor機種依存ってのがわかると思う。
そうです、AudioPresenter と書くべきでしたな。つうか、MediaListener#mediaAction() と書くべきだったかも。
保証出来ない or 機種依存ですか…。すると、リスナーのメソッドと復帰処理の2ヵ所でサウンド再生再開処理を
入れた方がよさそうだね。

>>強制終了確認で「いいえ」を選択すると
>>81
あら、このスレの最初にあったんですね。
確かめずに質問して、申し訳ない。

482 :433:05/02/07 11:53:49
皆様回答有難うございます、無理なんですか・・・
スクラッチパッドが激しく使いにくく、書籍やwebを見ても、
非常に面倒な事をやっていたので、
まさか、こんな方法で保存しないだろうと思っていたのですが、
これしかないとは・・・かなり地道ですね。
Doja開発者のみなさんお疲れ様です。。。

483 :476:05/02/07 14:48:52
>起動時間ってJavaのロゴが出てる時間?
です。
当然ファイルサイズが小さいほうがロードの時間も短縮されますよね?
そのファイルサイズを小さくするためのtipsみたいなのがあればご教授ください
今のとこ知っているのは
・else使わないでifでつなぐ
・switchよりifのほうが速い
・定数は直で打つ
ってのは分かりました。まだ良く分かってないのは
・文字列の外部ファイル化
・forは逆に回す???

ほかにも何かありますでしょうか?
あと
eclipseプラグインでビルド->java Blenderで圧縮したjarファイルサイズ < DoJa 開発キットでビルドしたサイズ
なんですが、どちらが良いのでしょう?
過去スレdat落ちして読めないのがあるので分からないことだらけです・・・

484 :デフォルトの名無しさん:05/02/07 15:52:45
>>474
static final で埋め込みはしてくれないと思うぞ。
だからみんなプリプロセッサ使ってるわけで。

485 :デフォルトの名無しさん:05/02/07 15:54:14
>>483
JAVAのロゴが出てるのは、VMを初期化している時間だから、がんばってもあまり短くはならんと思うぞ

486 :デフォルトの名無しさん:05/02/07 20:57:29
>>483
ファイルサイズを小さくするには、クラスを極力作らないことかなー。

jarのサイズについては、実機で動くんだったらサイズが小さいに越したことは
ないだろー。

487 :デフォルトの名無しさん:05/02/07 21:43:49
実際に速くなくても、体感で速く感じられればOK


488 :デフォルトの名無しさん:05/02/07 22:36:37
>>484 474がいってるstatic final定数ってのはprimitive constantの
ことだと思うけど、インライン展開するぞ。言語仕様のクラスファイルの
バイナリ互換性のとこよんでごらん。

489 :デフォルトの名無しさん:05/02/07 22:55:51
>484
つ[jarg+javap]

16bit 未満くらいなら埋め込んでくれているように見える。
jarg 前はシラネ


490 :474:05/02/07 23:54:24
>>484に答えようと思ったら488さんが答えてくれていたようだ。ありがとう。
そういやオブジェクトもstatic finalにできるし、そっちはインライン展開なんてされないな。
すっかり忘れてたw

491 :474:05/02/08 00:00:04
ちなみに、プリプロセッサつかうってのは
static final定数を宣言すると宣言するのにある一定のバイト数が必要だから。
その定数を使う側にとっては、定数を参照するのと、即値を書くのはコスト的に変化はない。

だから、DoJaのAPIリファレンスに書かれてるstatic final定数は、
わざわざ即値で書いてもサイズ減少には全く貢献しない。

自作クラスのstatic final定数の宣言を消した場合にのみサイズ減少に貢献する。

492 :デフォルトの名無しさん:05/02/08 02:58:19
ま、逆アセンブルしてバイトコードを見ろってこった。

493 :デフォルトの名無しさん:05/02/08 04:24:40
今出回ってる端末って7-Zipで圧縮して大丈夫?
N503iやN504iでは動かなかった記憶があるので。

494 :デフォルトの名無しさん:05/02/08 06:11:51
N503iやN504iは今出回ってる端末じゃないのかと

昔のNでもクラス2個までなら大丈夫だった
505以降はアーカイブするファイルがそれなりの数あっても大丈夫っぽい

495 :デフォルトの名無しさん:05/02/08 13:44:32
ちわっす。
ダウンロードしたアプリを起動させたいんですが、
あれはどうやっているんでしょうか?
ガイドの即起動と、ブラウザから起動ではなく、
ダウンロード後に「アプリを起動しますか?」というメッセージを出して
起動する方法です。

ご存知の方宜しくお願いいたします。

496 :デフォルトの名無しさん:05/02/08 13:57:55
>>495
質問の意味不明。

自分の買った携帯の説明書を読め、で片付く内容っぽいかな。
エミュの話ならそんなものはない。

497 :デフォルトの名無しさん:05/02/08 13:58:54
>>495
それはお前が汁必要の無いこと

498 :495:05/02/08 14:42:19
わかりにくくてすいません。
アプリをダウンロードしたらアプリを起動しますか?
って出ると思うんですが、私が作ったアプリをサーバーに上げたところ
ダウンロードして終わってしまいます。
ADFに何か書けば、ダウンロード後に起動確認してくれるみたいなんですが、
ご存知ありませんか?

499 :デフォルトの名無しさん:05/02/08 15:25:23
>498
携帯しだい。普通は聞かれるが、それを省くようにオプション設定できたと思う。


500 :デフォルトの名無しさん:05/02/08 16:17:55
String型の配列をChar型の配列に変換したいのですが、StringBufferを
使わずにやる方法がわかりません、どなたか教えてください

501 :デフォルトの名無しさん:05/02/08 16:30:09
>>498
ADFにはそういう設定はないと思うよ。
ADF全部を理解してるわけじゃないけど・・・たぶんない。

502 :495:05/02/08 16:56:21
みなさんレスどうもです。
htmlの記述が悪いのかなと思っていろいろistaとか
試したのですが、やっぱり違うようです。
頼みのADFでも無いようなので、残念っす。

503 :デフォルトの名無しさん:05/02/08 17:15:08
>>500
前にスレ違いって言われなかったかい?


504 :デフォルトの名無しさん:05/02/08 17:24:11
スクラッチパッドを使って、書き込みしてから、読み込みしました。
しかし、(書き込み文字)==(読み込み文字)となりません。
何が問題なのでしょうか。

void check1() {
String inStr = "Hello", outStr;
try {
DataOutputStream dos = Connector.openDataOutputStream("scratchpad:///0;pos=" + SP_DATA_POS);
dos.writeUTF(inStr);
dos.close();
} catch (Exception e) {
}
try {
DataInputStream dis = Connector.openDataInputStream("scratchpad:///0;pos=" + SP_DATA_POS);
outStr = new String(dis.readUTF());
dis.close();
System.out.println(inStr);
System.out.println(outStr);
System.out.println(inStr == outStr);
} catch (Exception e) {
}
}
【結果】Hello Hello false
^^^^^

505 :デフォルトの名無しさん:05/02/08 17:36:28
>>504
SP関係なしにJavaの話だが、Stringは
適当な文字で初期化するのと、バイトから生成で振る舞いが違う(詳しくは調べて)。
== で比較できるのは前者。同じオブジェクトを指しているかって意味。
単に同じ内容の文字か、という意味ならString.equals(str)使え。
その例でいくと 〜println( inStr.equals(outStr) );

506 :デフォルトの名無しさん:05/02/08 17:41:27
>> 505
ご指摘のとおりでした。下のコードで、Hello Hello true でした。
ありがとうございます。
System.out.println(inStr);
System.out.println(outStr);
System.out.println(inStr.equals(outStr));

507 :デフォルトの名無しさん:05/02/09 06:08:30
Stringの場合、==で比較してるのはハンドルであって文字列の内容じゃないからじゃないのか?

String a = "hoge";
String b = a;
String c = new String(a);

で、a==bは成立するが、a==cは成立しない。

508 :デフォルトの名無しさん:05/02/09 12:06:24
初心者スレ行けよ。equalsと==の違いなんてここで教わる内容じゃないだろ。

509 :デフォルトの名無しさん:05/02/09 12:32:24
>>502
iletだilet

510 :495:05/02/09 16:11:58
>>509
iletにしたら、ダウンロード後にいきなりアプリ起動して、
アプリ終了後にアプリを保存しますか?
と聞かれてしまいます(T_T)

やりたい遷移は
ダウンロード→起動しますか?→起動っていう流れなんです。
他の作者さんみるとijamでいけてるみたいなのに...orz



511 :デフォルトの名無しさん:05/02/09 16:31:13
>>510
一つ確認しておきたいんだが、ダウンロードしたアプリは、手動でなら起動できるのか?
つまりダウンロード自体が正常にできてるかどうかってことも疑え。
できてないならアップロード時のミスを確認したりアップロード先のサーバを変えろ。

それも正常だったら、原因はアプリでもjamでもダウンロードページのhtmlでもない
だろうから、後は端末の設定だろ。それでもだめならあきらめろ。

512 :デフォルトの名無しさん:05/02/09 21:43:41
>495
D506i は、アプリを待ち受けに設定しないときは
即「起動しますか」になった。
待ち受けに設定したらブラウザに戻って
ブラウザを終了させたら待ち受けで起動した。

P900i は、ダウンロード後は「起動しますか」になった。

端末の実装依存だと思ってたけど違うってこと?


513 :デフォルトの名無しさん:05/02/10 02:03:53
基本的なことでスミマセンが、iアプリを作成するのに
iαppliToolを使って実行していたのですが、メモリのダンプなどが出来ないので
JBuilderの最新版をDLして統合環境で作成しようと
思ったのですが、JBuilder2005の設定方法がわからずに困っています

どなたか簡単にでも良いので教えてもらえないでしょうか?

514 :513:05/02/10 02:14:45
JDKの設定はしたのですが、それ以外が分からないので…

515 :デフォルトの名無しさん:05/02/10 04:18:17
ttp://www.javadrive.jp/iappli/game/1/6.html
なのですが、餌を食べる処理で
public void eatEsa(int x, int y){
for (int i = 0 ; i < 3 ; i++){
for (int j = 0 ; j < 3 ; j++){
if (mapdata[y + i][x + j] == 2){
mapdata[y + i][x + j] = 0;
esasu --;
}
}
}
}
のところでなぜ自分の場所から自分の場所+2まで検索しているのかがイマイチわかりません。
餌と餌の間隔が4ドットのようなので、そうなってるのでしょうか?
そこには掲示板がないのでもしわかる方がいらっしゃれば教えてください

516 :デフォルトの名無しさん:05/02/10 06:34:03
ペックマンのサイズ = 餌のサイズx3
かな?

517 :デフォルトの名無しさん:05/02/10 09:30:52
1ドットでも重なった瞬間食べると言うことなのでしょうかね…

518 :デフォルトの名無しさん:05/02/10 10:23:25
環境についての質問なんですが
メモリのダンプとかをしたい場合って皆さんどのようにしてますか?
VC見たいなデバック機能が欲しいんですが・・・

519 :デフォルトの名無しさん:05/02/10 10:36:31
>>518
ほんとにダンプしたきゃエミュレータのコンソールにprintln
大概はjdb使ってリモートdebugだが

520 :デフォルトの名無しさん:05/02/10 10:46:44
>>518
printlnのみ使って調べる。あとは頭で把握する。
機種依存っぽいバグでたらADFのトレースをオンにして確認。

521 :デフォルトの名無しさん:05/02/10 11:31:16
printlnだね
大体コレで事足りる
エクリプスもたまに使うけど

522 :デフォルトの名無しさん:05/02/12 00:29:58
CanvasとPanelの二つのクラスを相互に切り替えるにはどうすればいいんでしょうか?

523 :デフォルトの名無しさん:05/02/12 00:47:18
>>522
setDisplay(...)で・・・
という意味ではなくて?

524 :デフォルトの名無しさん:05/02/12 12:05:14
プロファイルはDoJa4.0で開発環境はEclipseです。
デバッグ用に、おかしな処理が行なわれそうになったときは
RuntimeException(String)でアプリを強制終了させる処理を組み込んでます。
ところが、EclipseのEMUからだと、RuntimeExceptionを生成しても
アプリ終了せずにフリーズします。これって仕様?

525 :デフォルトの名無しさん:05/02/12 16:06:28
まさかフリーズじゃなくてデバッガが例外を捕まえたままってオチじゃないよね。

526 :524:05/02/12 16:35:45
>>525
プログラムから明示的に生成したRuntimeException以外の例外は
きちんとコンソールに表示されてEMUも強制終了するんですよ。
となると仕様かな。。。

527 :デフォルトの名無しさん:05/02/12 18:47:33
>>526 それ525にたいしてなにも説明できてないよ。

528 :デフォルトの名無しさん:05/02/13 13:06:06
catchされない例外はもれなくデバッガに捕まると思われ

529 :デフォルトの名無しさん:05/02/13 14:50:18
ネットランキングを付ける場合CGIとPHPだとどっちが簡単ですか?

530 :デフォルトの名無しさん:05/02/13 15:09:20
釣りはカエレ

531 :デフォルトの名無しさん:05/02/13 17:05:53
PHPで困ったこと無いな。

532 :デフォルトの名無しさん:05/02/13 20:36:58
MediaManager.getImage("http://〜〜〜/abc.gif");
って無理ですか?


533 :デフォルトの名無しさん:05/02/14 00:13:27
かなり長いこと調べてここに行きつきました。
どなたかお助けください。

自宅サーバ(apache2)でIアプリを公開するとどうしても「ソフトに誤りがあります」
と出てしまいます。
当然、ローカルでエミュレータなんかはちゃんと動作しますし、
ISPのスペースにアップすれば普通にダウンロードできます。

いろいろ試しましたが、ADFファイル、アプリ本体には問題ないようで、
(と、いうかまったく別のADF、本体でも同じ状況が起こるので・・・)
おそらく自分のapacheの設定に問題があると踏んでるんですが。
理由の手がかりでもいいのでよろしくお願いします。

534 :デフォルトの名無しさん:05/02/14 00:27:42
漏れも詳しくはないんだが、
とりあえずサーバーのレスポンスのステータスを
ISP とサーバの両方で比較してみてはどうか。
HttpConnection.getHeaderFiled() 使って。


535 :デフォルトの名無しさん:05/02/14 01:54:25
>>533
ソフトに誤りがあるって出ることはダウンロードのHTMLまではいれるってことだよね?
じゃ、拡張子jamとjarのMIME設定が入ってないとかじゃない?

536 :デフォルトの名無しさん:05/02/14 23:19:34
drawImage で gifとかのイメージを描画する時って
描画するピクセルが色ありの場合と、ヌキ(透明色)の場合で速度変わるんでしょうか。

つまり
同じ面積のgifを1枚描画するとした場合
ヌキ(透明色)の面積が多い絵の方が描画早かったりするのでしょうか。

537 :デフォルトの名無しさん:05/02/15 00:45:28
>>536
実験ヨロシク

538 :デフォルトの名無しさん:05/02/15 01:07:43
いまから趣味で504向けにアプリ作るのは時代遅れですか?


539 :デフォルトの名無しさん:05/02/15 01:09:02
趣味ならいいんじゃない。個人の勝手だし

540 :533:05/02/15 02:05:32
>>534
レスありがとうございます。
私の説明が下手なせいもあって勘違いされているのかと思います。
通信ができないのではなく、アプリ自体がダウンロードできない状態なのです。
もし、私がとんちんかんなこと言っていたらごめんなさい。

>>535
レスありがとうございます。
jamとjarのMIME設定は私なりにしたつもりだったのですが・・・
と、いうかここが原因であろうといろいろ試してみたんですが。
もし、よければ具体的な設定例を教えていただけませんか。

話が少しズレるんですが。
この「ソフトに誤り」というエラーメッセージは
かなり色々な原因で発生するようなんですが、
もうちょっと原因を細かく表示するメッセージにはできなかったでしょうかね。
せめて、エラーの原因のコードみたいのだしてくれてもいい気がするんですが。



541 :デフォルトの名無しさん:05/02/15 02:23:20
>>533
使ってるAPIによっては勝手サイトからのダウンロードは出来ないようになっている。
(特にメールAPI関連や携帯の個人情報にアクセスするAPI等)


542 :デフォルトの名無しさん:05/02/15 07:44:17
IPアドレスでアクセスしてないか?
ドメイン名じゃないと駄目だぞ

543 :デフォルトの名無しさん:05/02/15 11:42:21
>>536
画像の描画速度に関しては思いっきり機種依存。
ので一概に早くなるとかは言えない。

>>538
むしろ504が一番作りやすい。アプリ・スクラッチ容量こそ
505に負けるが4倍の画面面積があるからね505。
GIF使う場合アプリの場合は504の方が楽w
沢山もてるからw

544 :デフォルトの名無しさん:05/02/15 12:08:50
漏れの印象

神:P504i,P504iS
上:901
並:900,504,700,旧FOMA
糞:505
貧:503
変:初期FOMA

545 :デフォルトの名無しさん:05/02/15 13:10:29
>>544
901ってまだ触ったことないんだけど上なの?

546 :デフォルトの名無しさん:05/02/15 13:11:23
505を一緒くたに糞とは何事か。気持ちはわかるが。
P505だけは並にしてやってくれ。

あと、504でもF504は上にしてやってもいいと思うぞ。

細かすぎか。


547 :デフォルトの名無しさん:05/02/15 13:12:02
あ、あとD504とN504とSO504が並ってありえなーい。

548 :デフォルトの名無しさん:05/02/15 16:31:51
>>541
すごく簡単なアプリでも同じ現象が発生する点。
ISPのサーバではダウンロードできる点を考えるとその可能性はないと思います。

>>542
現在はIPでアクセスしています。
同じような情報をどこかでみました。
そこにはADF内にIPアドレスでJARの場所を指定しては駄目と書いてありました。
そこでJAMとJARを同じフォルダにいれて相対アドレスで記載しては見たのですが。
じゃあ、それが原因かもしれませんね。
とりあえず、あとでMyDNSで試してみます。ありがとうございます。


549 :デフォルトの名無しさん:05/02/15 17:23:13
zive.orgが有料化する件について

550 :デフォルトの名無しさん:05/02/15 18:22:11
機種毎の速度比較とメモリ容量、世代別のアプリ容量などが書いてあるページ知りませんか?

551 :デフォルトの名無しさん:05/02/15 19:01:10
>>550
速度は知らんがそれ以外は「ん・ぱか工房」

552 :デフォルトの名無しさん:05/02/15 19:15:05
>>550
>>2のんぱか氏

>>548
ダウンロード後の話になるからちょっと本題からずれるが…
iアプリコンテンツ開発ガイドのHttpConnectionのところに、
「数値IPアドレスは使えません」と書いてある
他にもいろいろ注意事項が書いてあるから良く読んだ方がいいよ

553 :デフォルトの名無しさん:05/02/16 00:23:06
mydnsでとおりました。本当にありがとうございました。

ドキュメントは読むようにしていたつもりだったのですが、
足りていなかったのかもしれません。
アドバイスありがとうございました。

554 :デフォルトの名無しさん:05/02/16 11:01:56
おめでとう

555 :デフォルトの名無しさん:05/02/16 16:07:43
ttp://www10.plala.or.jp/java/i/jikoku/jikoku.txt
ここみたいにCanvasとPanelを切り替えて使いたいんですけど
一つのファイルの中に3つのクラスを作るのではなく、
クラス毎に別ファイルに保存したいのですがどうすればいいんでしょうか?

556 :デフォルトの名無しさん:05/02/16 16:45:51
そのクラスの名前.java
ファイルを作れ。

557 :デフォルトの名無しさん:05/02/16 16:46:18
>>555
それはJavaの記述の仕方の問題だな。>>340へ。

558 :デフォルトの名無しさん:05/02/16 21:00:24
現在N505の初回起動時にのみOutOfMemoryで落ちています。
落ちる所は決まっていて、ある程度進んだところで大きめの画像(8k程度)をSPから読み込もうとすると落ちています。
(試しに4kほどの画像でやっても同様に落ちてしまいました)
落ちる直前のfreeMemory()を正常に動作している時と比較しても大差はありませんでした。
エラーメッセージは
java.lang.OutOfMemoryError
curClass = com/nttdocomo/ui/ScreenUpdater
curMethod = run

アプリの作りは、初回起動時にDATをDLして、SPに保存してから起動させています。
2回目以降の起動では問題なく動作しています。
普段ならばMemoryの空きを増やしたり、画像を小さくしたりすれば解決するのですが、色々と手をつくしても駄目でした。
同じような現象に当たった方や、解決方法を知っている方いましたら、アドバイスお願いします。
ホント困ってますorz

559 :デフォルトの名無しさん:05/02/16 21:10:18
スクラッチパッドにアクセスするときlengthは付けてる?
System.gc();しまくってる?
それでも駄目なら、N505はデータのDL後終了するように作るしかないね

560 :デフォルトの名無しさん:05/02/16 21:24:07
N505のバグらしいよ
ファームアップデートしてる?

561 :デフォルトの名無しさん:05/02/16 22:00:27
>スクラッチパッドにアクセスするときlengthは付けてる?
N505iは
これが重要ものすごい重要

ところがN900iは
スクラッチパッドにアクセスするときlengthは付けたら逆にダメ

しかしN901iになると今度はまたlength付けろと。

もうアフォかと

562 :558:05/02/16 22:46:14
>>559
length付けてます。
こいつの存在を最近知って助かってます。

>>560
バグ!?
そうだったんですが、明日調べてみます。

>>561
N900iでは逆に駄目なんですか。
それは知りませんでした・・・。

みなさん情報ありがとうございます。
修正してみたらまた報告したいと思います〜。

563 :デフォルトの名無しさん:05/02/17 03:23:52
N506i使って作ってるけどlengthつけてなくてアクセスしても現状問題なしでした

564 :デフォルトの名無しさん:05/02/17 11:09:54
>>561
なぬ・・・N900i付けて問題ないが・・・偶然なのか。

565 :デフォルトの名無しさん:05/02/17 11:32:28
iアプリからどっかのサーバにアクセスし、
ファイルのダウンロードとかってできるの?

566 :デフォルトの名無しさん:05/02/17 11:38:51
>>565
>ファイルのダウンロードとかってできるの?
ってのが何のファイルを挿してるのか判らないが
サーバーにアクセスしてファイルをダウンすることは当然出来る。

結構ある形で初回起動時にファイルをダウンロードするアプリ多いだろ?
あれはあらかじめサーバーにアップしてるデータを携帯にダウンして保存してる。

567 :デフォルトの名無しさん:05/02/17 11:48:37
>>566
ありがとう。

iアプリなんか全然やらないけど、開発してみたいなぁと思った人間なもんで。

じゃあ、ムービーやら画像やらをダウンロードすると、スクラッチパッドに保存されるの?
メモリーカードとかには保存できないの?

568 :デフォルトの名無しさん:05/02/17 13:22:19
>>567
>開発してみたいなぁと思った

じゃ、その程度のことは自分で調べなさい
資料は>>2のリンク先に全部そろってる

569 :デフォルトの名無しさん:05/02/17 13:57:37
>>567
ドキュメント100回読みの刑に処す

570 :デフォルトの名無しさん:05/02/17 14:53:25
>>556
クラス名.javaで三つに分けて保存しています。

クラスの冒頭で
Canvas cv;
cv = new Canvas();
としてボタンが押されたら
Display.setCurrent(cv);
で切り替えようとしてるんですが、実行するとDoJaのエミュが固まってしまいます。
全てのクラスに上記のような内容を書いているのが原因のような気がするんですが
どうすればいいのかまったく検討がつきません。
どなたかお助け下さい。

571 :デフォルトの名無しさん:05/02/17 15:03:28
Panelを呼び出した時、最初からListBoxを選択した状態に
なっているようにするにはどうすればよいのでしょうか?
「ドコモ料金案内」みたいなやつです

572 :デフォルトの名無しさん:05/02/17 15:41:03
>>570
頑張って原因を探ってください

>>571
APIリファレンスを良く読んでください

573 :558:05/02/17 16:15:33
N505の件ですが、無事に動くようになりました。

SPからデータを読み込むところで、一カ所length指定を忘れていました。
なんとも単純で恥ずかしいミス。

色々とアドバイスをくださった皆様ありがとう〜〜

574 :デフォルトの名無しさん:05/02/17 16:28:12
>>564
N900iでlength付けてImageのロード、解放を繰り返すとOutOfMemoryが出る事がある

575 :デフォルトの名無しさん:05/02/17 16:39:29
>>570
IApplication(またはMApplication)のコンストラクタの中で
setCurrent(...)しているとか。
start() の中で呼び出してる?

576 :デフォルトの名無しさん:05/02/17 16:42:57
>>574
こっちでも結構やってるんだが落ちたことが無い・・
実験アプリつくってみるしかないか・・・。

577 :デフォルトの名無しさん:05/02/17 17:00:00
>>574
その逆なら経験した
N900iでlength付けないとOutOfMemoryになる

もうワケワカメ

578 :デフォルトの名無しさん:05/02/17 17:30:07
いま実験アプリ作ってN900iで実験してみた結果内容・・・期待にそう内容じゃないのだが。

アプリ内容
1:合計で約10KBの画像を11個スクラッチにダウン
2:スクラッチから11個画像展開
3:11個の画像を総て描画
4:画像破棄
5:2へ戻る

ってのを作ってN900iで動かしてみた。
結果なんだがlengthつけてもつけなくても・・・落ちなかった。
ただいまリアル実行中だが上の処理のループを1000回超えても全然平気だ。
ギリギリのラインまでメモリ使ってなおかつ画像の展開破棄をやらんと実験にならんか・・。

579 :デフォルトの名無しさん:05/02/17 18:59:16
>>574-578
う〜むなにやら画像のセーブサイズに関連するという話を聞いたこともあるが・・

しかしN900i
Length付けても付けなくてもOutOfMemoryが出る事があるとなると・・

どうしたもんかなぁ

580 :デフォルトの名無しさん:05/02/17 22:27:09
今手に持っているN900iが激しくおばかさんに見える…

581 :デフォルトの名無しさん:05/02/18 02:13:52
m9(^Д^)プギャーーーッ

582 :デフォルトの名無しさん:05/02/18 10:47:08
いや、N900iとP900iは、むしろLengthつけてくれという公式PDFが出てるぞ。
一般人に配られてるものかどうかは知らんが、Lengthつけたほうが一時メモリー確保量が少ないからそうしてくれと。

アホかと。

583 :デフォルトの名無しさん:05/02/18 11:18:26
lengthつけるというのが具体的にどういうことなのか分からないのですが…

584 :デフォルトの名無しさん:05/02/18 12:38:21
>>583
getImage("scratchpad:///0;pos=" + hogehoge + ",length=" + 8000 );
こんなんでいいか?


585 :デフォルトの名無しさん:05/02/18 13:27:14
N900iの開発者を今すぐここに呼べ!

586 :デフォルトの名無しさん:05/02/18 13:49:56
N900iの製作者(パナの社員)は悪くない。
あきらかにPのエンジンや、Pのインターフェイスのほうが上だったのに
無理やりNベースで作らされたのが不幸の始まり。

587 :デフォルトの名無しさん:05/02/18 15:00:38
>>583
スクラッチにアクセスするさい>>584のように記述することで
メモリ消費低下やアクセス速度アップ等の恩恵を得れるオプション。
505ではかなり重要でつけていないと不安定になりやすかったりする。
ゲーム開発してる人なら経験あると思うがスクラッチのGIFの展開速度が桁違いに違う。
エミュ上でもはっきりとした速度の違いを体験できる。

つけなかった場合でメモリや画像を大量に使用するアプリを作成した場合
落ちやすくなったり、ギリギリ動いててもなぜかNETアクセス(ランキングとか)
が出来なくなったり、展開に時間かかりすぎてイライラしたりという経験がある。


588 :583:05/02/18 20:25:29
>>584並びに>>587さんありがとうございます

589 :デフォルトの名無しさん:05/02/18 23:54:26
>>586
キミ詳しいね。

590 :デフォルトの名無しさん:05/02/19 02:15:15
N900i/P900iでOutOfMemoryがでるのは、System.gc()してもメモリを解放するだけで、
コンパクション(並べ替え)まではやらないからヒープ領域に巣ができちゃうのが原因ってきいたけど。
スクラッチパッドとか画像展開とか特定のAPIに依存した問題じゃないでしょ。

591 :デフォルトの名無しさん:05/02/19 03:18:19
そだね
対処療法はあるけど、根本的な解決策は無いって事
 開 発 者 出 て こ い ! !

592 :デフォルトの名無しさん:05/02/19 09:29:54
ずびばせん

593 :デフォルトの名無しさん:05/02/19 09:31:02
イッツNECクオリティ


594 :デフォルトの名無しさん:05/02/19 11:54:41
あの〜すいません、ちょっとお聞きしたいのですが
スレッドってインスタンスした物を一回実行してスレッド終了すると
それのインスタンスをもう一度startさせることってできないんですか?
基本中の基本ですんません。

595 :デフォルトの名無しさん:05/02/19 13:11:16
どう終了したかによる

596 :デフォルトの名無しさん:05/02/19 13:41:27
>>594
できない。

597 :デフォルトの名無しさん:05/02/19 15:35:18
iアプリからどっかのサーバに
画像とかのアップロードとかってできるの?

598 :デフォルトの名無しさん:05/02/19 15:49:30
>>597
アプリをダウンロードしたサーバにならHTTPでアクセスできる。
なのでアップロードも可能。
(アプリDXならヨソのサーバにもアクセスできる、が、個人では公開不可)

599 :デフォルトの名無しさん:05/02/19 15:55:39
>>598

600 :デフォルトの名無しさん:05/02/19 15:56:21
↑すまん

ありがとうと書き込もうとしたら、これですよ。

601 :デフォルトの名無しさん:05/02/19 16:58:00
>>598
個人では公開不可

ということはどーゆーことですか?個人iアプリだとアップロードできないという意味でしょうか。

602 :デフォルトの名無しさん:05/02/19 17:08:31
それ以外にどういう意味があると思ってるのか言ってみ?

603 :デフォルトの名無しさん:05/02/19 17:18:47
>>601
個人でどうやってトラステッドAPID取るんだよ

604 :デフォルトの名無しさん:05/02/19 17:24:32
まぁ開発者ガイドよく読めと…

605 :デフォルトの名無しさん:05/02/19 17:40:02
アレだ、自分の言葉で言い直さないと理解できない人なんだよ
良くいるじゃん

間違いを防ぐために確認の意味で言い直すのはいいけどさ

606 :デフォルトの名無しさん:05/02/19 17:55:59
processEventのKEY_RELEASED_EVENTでキー入力を取っているアプリで

ボタンを連打するとそのキー情報が遷移先のクラスに有効になってしまっていて

4回連打すると、4回ボタンに対応したアクションをしていまいます

クラスの遷移の時にキーを入力できないようにする処理はどのようにしたらよいのでしょうか

ご教授おねがいします

607 :デフォルトの名無しさん:05/02/19 18:17:11
遷移ってなんのことかわからんけど、無視するように作ればええんちゃうの?

608 :デフォルトの名無しさん:05/02/19 18:22:37
遷移という言い方は

このアプリクラスがメチャメチャ多くてですね

そのクラス移動するときにHTTP通信でCGIにアクセスして返り値で

その変わっていくクラスを決めるんですよ

普通にキー情報が受け継がれることは無いだろうと思っていましたら

ばっちりキー情報はどっかにプールされてるみたいなんですね


609 :デフォルトの名無しさん:05/02/19 18:25:46
>>608
>クラス移動
まずこの用語を説明してくれ

610 :デフォルトの名無しさん:05/02/19 18:30:27
>>608
ひょっとして割り込みメソッドに直接起動処理かいる?
割り込みが入ったときはgetKeypadState()なんかでフラグを保存しておいて、
各クラスではこのフラグを参照してキー入力状態を取得すると良いのでは?

611 :デフォルトの名無しさん:05/02/19 18:40:06
>>610
>割り込みメソッドに直接起動処理かいる
まずこの文を日本語にしてくれ


612 :デフォルトの名無しさん:05/02/19 18:45:04
>>610
ああ、できました、、、

ありがとうございます。。。

他の文章読解能力の低い馬鹿は死んでください。。。

613 :デフォルトの名無しさん:05/02/19 19:17:22
そう言う事はまともな文章書いてから言ってくれ

どうせprocessEventの使い方が間違ってたんだろ?
開発ガイドを読めよ
この程度のことなら全部書いてあるからさ

614 :デフォルトの名無しさん:05/02/19 21:09:34
しかも「クラスの移動」とか意味不明な用語を使っておきながら。

615 :デフォルトの名無しさん:05/02/20 00:33:20
まあまあ。マターリマターリ。

616 :デフォルトの名無しさん:05/02/20 11:25:20
個人で作ったiアプリをどっかのサーバーで勝手に公開すんのってありですか?

617 :デフォルトの名無しさん:05/02/20 15:01:29
余裕でアリ

618 :デフォルトの名無しさん:05/02/20 16:11:07
cgiに変数を渡したいんですが
launchでアクセスする際のアドレスに
「?a=xxx」と追記する以外に方法は無いんでしょうか?

619 :デフォルトの名無しさん:05/02/20 16:36:27
>>618
ん?POSTで渡したいってこと?
俺はCGIに渡したことは無いけど、
サーブレットにPOSTで渡すときはContentTypeに
urlエンコードを指定して渡してやってるよ。

620 :デフォルトの名無しさん:05/02/20 17:15:27
launchって事はブラウザを起動するんだろう

>>618
他に方法はない

621 :デフォルトの名無しさん:05/02/20 17:31:47
>>619
ContentTypeを使うということはOutputStreamで送るって事ですか?

>>620
アプリからサーバーに変数を送るときに
launchだとアドレスに追加した変数が見えてしまうので
launchを使わない方法が知りたかったんです。

622 :デフォルトの名無しさん:05/02/20 18:03:03
>>621 何がやりたいの?

launchはブラウザを起動するのに使う。
URLを 〜cgi?aaa=123 と指定すれば引数はサーバに伝わる。
このとき引数は、ブラウザ起動の確認ダイアログでユーザーに見える。

引数をユーザーに見せないでサーバに値を渡す/取得することが目的で、
ブラウザは起動しなくていいというなら、GETでもPOSTでも>>621の1つめの方法でいい。
具体的なやり方がわからなければドキュメント、HTTP通信やcgiの本でも読んでみて。

ブラウザを起動してURLで引数を指定しつつも、それをユーザーに見せたくない、
というならあきらめれ。
(参考:
 auのブラウザ起動確認ダイアログはcgi以降を意図的に隠してくれるが
 DoCoMoはそういう仕様ではない)

623 :デフォルトの名無しさん:05/02/20 19:37:34
おとなしく暗号化しようぜ。

624 :デフォルトの名無しさん:05/02/20 20:04:45
とにかく開発ガイド読め
サンプル付きで全部出てる

625 :デフォルトの名無しさん:05/02/21 01:53:40
1.アプリ側から固体識別番号又はUIM番号を抜く。(uidが可能ならそれでもOKだ。)
2.アプリからの通常の通信はURLは割れないのでアプリから予めcgiを叩いて送信しておく。その際「1」を付与する。
3.サーバ上に一時保管しておく。
4.launchには「1」のキーのみ付与する。
5.受取ったCGIはこのキーと「3」の受信内容を付け合せる。

これでどうだ?


626 :デフォルトの名無しさん:05/02/21 11:56:01
>>618
散々言われてるが何をやるかによって手法が異なる。
launchでのアクセスでは総てのURLが表示される為そこを消すことは不可能。

1:ゲームなどのランキング
  ゲームなどのランキングをやりたいなら通常の通信(HttpConnectionを使う方法)で
  アクセスすれば良いかと。この時はGET方式でも通常内容がばれる事は無い。
  その後ブラウザ起動したいのであればlaunchで呼び出せば良い。

2:CGIが返すのがHTMLの場合
  思いつく例としては占いかな。Iアプリで色々質問なぞして結果をブラウザで表示する場合とか。
  この場合はlaunchによるCGI呼び出しが必要になるが内容がバレるので
  暗号化するのがベターだろうね。他の手順としては>>625のような手法になるね。
  暗号化よりも難しいとは思うけど。

627 :デフォルトの名無しさん:05/02/21 15:04:04
ご返答ありがとうございました。
色々と方法を教えて頂きなんとかなりそうなので
後は自力で頑張りたいと思います。

628 :デフォルトの名無しさん:05/02/21 17:10:07
700はDojaいくつの対応になるの?

629 :デフォルトの名無しさん:05/02/21 17:19:27
ttp://www.itmedia.co.jp/mobile/articles/0502/02/news099.html
ここによるとDoJa-3.0みたいだよ

630 :デフォルトの名無しさん:05/02/21 17:27:47
名前は4.0LEだから騙されそうになるけどな。

631 :デフォルトの名無しさん:05/02/21 19:37:25
なにこれ、しょぼすぎ

632 :デフォルトの名無しさん:05/02/22 00:10:36
4.0LEは4.0のサブセットじゃないの?

633 :デフォルトの名無しさん:05/02/22 21:19:19
CLDC1.1+Doja4.0LEか
どうせ3Dでも削っただけの4.0なんだろ

634 :デフォルトの名無しさん:05/02/22 21:33:18
>633
ちゃんと嫁。
基本はアプリサイズ制限+スクラッチパッドサイズ制限。
3Dは一部。
通信できるサイズが一番知りたいんだが・・・。


つか、こういうのやめて欲しかったわ。
分別しづらい。


635 :デフォルトの名無しさん:05/02/23 01:44:35
とにかく3.0よりは機能は搭載されてると思うのだが。

636 :デフォルトの名無しさん:05/02/23 02:59:40
スクラッチパッドの読み書きについての質問です
1つの文字列の読み書きはreadUTFやwriteUTFを使うのは分かりましたが、2つの文字列を読み書きする場合、どのようにすれば良いですか?
今は仕方なく文字列間を&ではさんで読み書きし、splitしています。

637 :デフォルトの名無しさん:05/02/23 04:28:59
どんなデータでもbyte[]配列に分解すれば読み書き出来るよ。
シリアライズ用のクラスを1個こしらえておくと後が楽だよ。

638 :デフォルトの名無しさん:05/02/23 04:53:20
UTFは使わない
漢字や半角カナだと3バイト食うから
んで、必然的に>>637のやり方になる

639 :デフォルトの名無しさん:05/02/23 12:38:12
ネットランキングをしたくてアプリで名前を入力させたいのですがなんていうのを使えば入力させられますか?

640 :デフォルトの名無しさん:05/02/23 12:53:07
>>639
Canvas#imeOn
Canvas#processIMEEvent

このぐらい自分で調べられないようでは完成は遠いぞ。

641 :デフォルトの名無しさん:05/02/23 12:53:09
>>639
Canvas#imeOn


642 :641:05/02/23 12:53:54
かぶった・・・orz


643 :デフォルトの名無しさん:05/02/23 22:07:20
int型の変数をbyte型の配列に変換する良い方法ってありますか?

今作ってるゲームなのですが、セーブデータは異なるデータ型が混在してます。
しかしSPへの書き込みはbyte配列でやってます。

少し前に話題に出てたけど、シリアライズが使えないので難儀中。
(せっかくのJavaなのでビットシフト処理するのはあまり美しくないかなと)

644 :デフォルトの名無しさん:05/02/23 22:11:57
>>643
このスレでも過去に出てるがこちらへドゾー
【初心者】Java質問・相談スレ62【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1108389742/

645 :デフォルトの名無しさん:05/02/23 22:35:13
何も考えずにwriteInt,readInt使ってる

646 :デフォルトの名無しさん:05/02/23 23:03:49
>>644
ありがとうございいます!なるほどね、自前でシリアライズ実装して構わないわけですか。
ていうかCLDCのAPIに載ってますね…。

>>645
ゲームデータのセーブ・ロード自体が「バイト配列丸ごと」という感じで、
ゲーム中も全てバイト配列で管理されてるんですよ。
結果、>>644のアドバイス参考に、writeIntの内部処理を自前で実装する羽目になったと。


647 :デフォルトの名無しさん:05/02/24 03:12:01
>>637-638
分かりました
intとString間の変換は、toString・getBytesメソッドを使う、で合ってますか?

648 :デフォルトの名無しさん:05/02/24 05:55:00
わかってない
byte[] とStringだ

649 :デフォルトの名無しさん:05/02/24 06:38:21
>>647
なにを言っているのかよく分からないけど、
私の場合は、根がローテクに出来ているためか、
バイトオーダーを勝手に決められるのが気持ち悪いので、
intもStringもビットシフトでbyte配列に落とすけどな。

650 :デフォルトの名無しさん:05/02/24 10:22:26
今アプリ内でGIFを作ってるんですがそろそろちゃんと圧縮したやつをやろうと思っています。
で、GIFではビットマップを使う色数に合わせて可変長ビットにしていくんですがそのビット変換がうまくできず、とりあえず1と0の文字列に変換→8個以上たまったらバイトに変換、としています。
でも遅いです。intからきれいに可変長ビットにする方法無いですか?

651 :デフォルトの名無しさん:05/02/24 12:03:54
>>648-649
intはbyte配列の間違いでしたorz
ビットシフトは<<や>>>とかですよね。どうすればビットシフトでStringやintをbyte配列に変換できますか?

652 :デフォルトの名無しさん:05/02/24 13:36:12
>>650
頭悪いのでGIFをアプリ内でつくるってのは有効性はよくわからないが
仮に画像を作成してスクラッチに保存するなら・・・独自の形式でいいんでない?
わざわざGIFにしなくても・・・って思ったのはGIFがよく理解できてないからだけどwwww

>>651
もはやiアプリに関係ないじゃん・・。
あくまで例・・・言ってる意味はこう言う事?

int a; //何か数値入ってるものとして・・・。
byte b[] = new byte [4];

b[0] = (byte)(a&0xFF);
b[1] = (byte)((a>>8)&0xFF);
b[2] = (byte)((a>>16)&0xFF);
b[3] = (byte)((a>>24)&0xFF);

653 :デフォルトの名無しさん:05/02/24 13:39:25
>650も>651もiアプリとは何の関係もないし
せっかく>644が誘導してくれてんだからそっち行けば?

654 :デフォルトの名無しさん:05/02/24 14:18:54
初心者さんは、iアプリの話とJava一般の話の区別がつかんのかも……。

いずれにしても、このままだとまた以前みたいに
初心者用スレ立てるのどうのでフレームになりかねんので、
質問する前にもう少しよく考えて欲しい気はするが。

655 :650:05/02/24 15:48:22
>>652
お絵かきアプリ内でGIFを生成、通信でサーバーにアップ、待ち受けなりスクリーンセーバーなりにできる。ていうやつが作りたいから有効性はもろありです。
そんなことよりビット変換したintをいかにバイトに詰めていく方法がないか知りたいんです。

656 :デフォルトの名無しさん:05/02/24 17:06:53
だから、iアプリ関係ないじゃんとorz
JAVA自体の話題でしょそれ。

657 :デフォルトの名無しさん:05/02/24 17:15:25
>>655
やりたいことは判ったけど、GIF化をアプリでやらなくても良いんじゃね?
お絵かきツールの色数がどれほど持ってるのか知らないけど
256色以下だからGIF使おうって思ってるんだよね?
パレットデータとドットのデータをサーバーに送ってCGI上でGIFにした方が
ライブラリとかもありそうだし楽じゃね?
GIFより大きくなるかもしれないが転送するデータも自己ファイル形式なら多少は減るかと。

実際やってないからあくまで憶測って事で聞いて欲しいが
ダウン時はDoJaのバージョンにもよるがHTTPでアクセスするデータ量が
制限されている。10KBとか20KBとか。大量のデータをダウンする時は
分割してアクセスするように作ってるがアップも同じように分割してやる必要があると思う。
となると、分断したデータをCGIで受け取り1つにくっつける作業をどうせしないとだめそうな気がするし。

可変長ビットってのがわたしゃ判ってないのでビット演算に関しては何も言えん・・。

658 :651:05/02/24 17:15:56
逝ってきます。誘導ありがとうございました

659 :デフォルトの名無しさん:05/02/24 19:22:49
>>655
Cのソースならその辺に転がってるだろ
根性で作れ

660 :デフォルトの名無しさん:05/02/24 23:31:42
別に適当にランレングス圧縮でいいんでないの?

661 :デフォルトの名無しさん:05/02/25 00:29:48
大昔の機種は捨ててjpegにするのが楽
ImageEncoderで一発だ

662 :デフォルトの名無しさん:05/02/25 00:38:19
JPEGロス有り圧縮だからなあ。

663 :デフォルトの名無しさん:05/02/25 09:55:50
携帯のJPEGって、可逆JPEG化できんのですか

664 :デフォルトの名無しさん:05/02/25 11:21:50
>>663
多分ないっしょ。
リファレンス読んでる上で画質に関するフラグって非常に少ないし
なんとなくだがJPEG化処理も機種依存な気がしてくる。
カメラ撮影で使う機構をそのまま使ってる感じっぽい印象を受ける。

お絵かきになら劣化しない物がいいんだろうけどね・・・ドット数によるけど。
どっちにしてもGIFだろうがJPEGだろうが通信パケット量が大なのがちとネックだなぁ。
携帯でお絵かきBBSってのも面白そうではあるが^^お絵かきBBSってJAVAだったな。
どっかのお偉いさんが作ってたって印象しか残ってないがw

665 :デフォルトの名無しさん:05/02/25 13:05:24
(・∀・)イイ!
その案もらいますた

666 :デフォルトの名無しさん:05/02/25 14:55:19
ゲーム中に電池切れで落ちても充電して途中から復帰させる方法とかないでしょうか

667 :デフォルトの名無しさん:05/02/25 15:03:21
>>666
常時スクラッチパッドに状態をセーブしとけ。

668 :デフォルトの名無しさん:05/02/25 15:34:16
>>666
ハード的にそんな機能がついてない限りできない。
電池切らすな!常に充電しつつ遊べ!!!

669 :デフォルトの名無しさん:05/02/25 15:47:43
>>667
前スレあたりで、正常終了しないとスクラッチパッドに書き込まれない
機種があるとかいう話があったような…。


670 :デフォルトの名無しさん:05/02/25 15:49:23
>>666
基本は667とおんなじになるんだけど
電池切れ直前、つまりメーターがゼロになった瞬間に
セーブするようにすればいいのでは?
多分その辺で「あと〜秒で電池切れまっせ」みたいなメッセージ出るっしょ?
・・充電し始めたら勝手に再開するように、とまでいうなら無理っぽいけど。

671 :デフォルトの名無しさん:05/02/25 15:58:04
>>669
phonesystemでバッテリ残量見て
ヤバくなったらスクラッチパッドにハイバネーション用ダンプ書いてterminate
アプリのスタート時にハイバネ用ダンプがあるかどうか見て
あったら読み込んでダンプ消して続行
なかったら最初からスタート

って実装しとけ

672 :デフォルトの名無しさん:05/02/25 16:07:31
>>669
Pシリーズとかだな。電源切れるときはどうか判らんが。

>>670
内部電源の状態はそんなに細かく取得できないはず。
消費電力ってあくまで目安だからな・・・ハード的に確実ってのはなさそう。
ほとんどの携帯の電池アイコンは3段階だがフル状態のアイコン
でしか起動しないアプリとかなら出来るがそんなの嬉しくもない。

いつドコでも現在の状態をユーザーが任意に保存できるようにするのが
ベターな設計だろう。

673 :デフォルトの名無しさん:05/02/25 16:35:40
結局バッテリーいきなり抜いたら同じだから
素直にあきらめとけ。

674 :666:05/02/25 17:02:02
色々な意見ありがとうございます。
ちょっと処理が遅くなるけど、常時保存することにしました。

675 :デフォルトの名無しさん:05/02/25 17:28:50
>>674
あんまり頻繁にセーブしたら駄目。
電池食うし、そもそもflashメモリは10万回ぐらい書き換えたら寿命。

676 :デフォルトの名無しさん:05/02/25 18:24:34
>>674
Nとかだと極悪に重いとおもうぞ・・・。
さらにセーブが長い場合そこで電源切られたら・・・でーた飛ぶよ。

677 :デフォルトの名無しさん:05/02/25 21:56:12
>>676
Nで重いのはともかくとして、
プロファイルによっては二行目はプログラムの作りで回避できるよ。

開発ガイドにもあるけど、open()〜close()までの一連の処理は
SQLのbegin〜commitのようにセッションの一時性が確保されてる。
つまり、「全部成功するか」「全部失敗するか」のどちらか。


678 :デフォルトの名無しさん:05/02/25 23:55:36
原子性ってやつですかね。
一応、携帯のバッテリが切れるときも一通りシャットダウンの処理してるんだろうし。

679 :デフォルトの名無しさん:05/02/26 01:08:17
>>678
また超直訳だねぇ

680 :デフォルトの名無しさん:05/02/26 01:27:43
ん?atomicを原子性って訳されてるのは良く見るよ。

681 :デフォルトの名無しさん:05/02/26 01:33:18
(データベースソフトにあるような)トランザクションの概念が導入されていると書いてある
が…どこまでちゃんと作られてるのか謎

682 :デフォルトの名無しさん:05/02/26 02:33:25
信用できんな…

683 :デフォルトの名無しさん:05/02/26 08:47:24
珍しくすごく役にたちそうなやりとりが!

とりあえず常時といっても、ゲームだったらターンの切り替わりとかにセーブしておけば
それほど文句もこないだろう。

684 :デフォルトの名無しさん:05/02/26 10:47:17
close()するまで実際のSPへの反映はされないってことじゃないの?

685 :デフォルトの名無しさん:05/02/26 11:37:17
>>684
そんなことになってたら、画像をDLしてそれをSPにためて読み込むことすらできんぞ。

686 :685:05/02/26 11:37:48
ごめん間違えた_| ̄|○
異常終了の話かと思ったら、closeの話だったのね。

687 :デフォルトの名無しさん:05/02/26 12:13:57
つまりアプリ起動中はテンポラリのRAMが仮想メモリマッピングされていて
そこで読み書きされた結果がアプリ正常終了時のみフラッシュメモリとかに
書き戻されるってこと?


688 :デフォルトの名無しさん:05/02/26 12:15:10
>>687
フラッシュメモリの寿命を無駄に消費しないように考えられた
良い方法だと言える

689 :デフォルトの名無しさん:05/02/26 12:28:11
まぁ、その為にその機種はヒープが鬼少ないわけだが

690 :デフォルトの名無しさん:05/02/26 13:56:57
>>688
実際、それを前提にプログラムしちまって良いのか?
なんか機種の実装によって違ってきそうだよね

691 :デフォルトの名無しさん:05/02/26 14:17:43
スクラッチパッドがんなことになってるなら、
ローグライクみたいな死んだら終わりなゲームを作ったら、機種で有利不利生まれる?

692 :デフォルトの名無しさん:05/02/26 17:44:04
正常終了には、電源キー押しも含まれるからそんなに心配しなくてよかろう。

電池抜いた時にスクラッチパッドが巻き戻っちゃう端末ってマジあんの?
>>691の指摘どおりのゲームをつくろうとしたとき困る。

693 :デフォルトの名無しさん:05/02/26 21:39:05
F505iってg.lock();g.unlock();しないまま描画を繰り返すとバグるんですか?
場合によってはダブルバッファしなくても描画できる箇所があるのに、
なんでこんな実装してるのかなあ?

694 :デフォルトの名無しさん:05/02/26 22:31:47
シラネーヨ

695 :デフォルトの名無しさん:05/02/26 22:33:13
>>692
あるよ
解決法はあきらめる事w

696 :デフォルトの名無しさん:05/02/26 23:33:05
画像などをスクラッチパッドから読み込む時
scratchpad:///0;pos=1024
などと書きますが、↑の場合どこまで読み込まれるのですか?スクラッチパッド領域の最後までですか?

697 :デフォルトの名無しさん:05/02/27 00:16:20
スウジヨメマスカ?

698 :デフォルトの名無しさん:05/02/27 00:44:23
今から開発環境整えてiアプリ作成に励もうとしているものです。
質問です。

ドコモのHPで配布しているiアプリEmuのオプションにある、Eclipse2.1.X用Pluginを、
Eclipse3.0で利用中の方いますか?

Yes/Noだけでもよいので、実績報告あればお願いします。


699 :デフォルトの名無しさん:05/02/27 03:04:18
>>698
残念ながら使えないよ。

700 :デフォルトの名無しさん:05/02/27 03:04:20
>>696
画像じゃなければバッファの長さまで。もちろんスクラッチパッドの最後は超えられない。
gifは1画像の長さ分を読んでくれる。
jpgはスクラッチパッドの最後まで読むから後ろの方に配置しろ、
って解説がドキュメントに出てたような。504のころ。今でもそうなのか?
まあjpgは長さ指定するか、その長さ分のバッファを用意して読み込むもんだろうな。

701 :デフォルトの名無しさん:05/02/27 03:06:28
>>696
実装依存だろ
エミュは最後までっぽい

>>698
3.0では使えなかった

702 :デフォルトの名無しさん:05/02/27 10:43:45
>>700-701
そうなんですか。基本的には最後までなんですね。lengthをつければ読み込むバイト数が指定できるんですね。
ありがとうございました。
>>697
10進数で16桁までならなんとか

703 :デフォルトの名無しさん:05/02/27 11:47:51
>>701
回答ありがとうございます。

私も動かなかったんですが、しょうがないことなのか自分の設定が悪いのか、整理しときたかったんで・・・
701さん、どうもありがとう!!!(*^_^*)

704 :デフォルトの名無しさん:05/02/27 12:49:01
>>698
今配布されてるやつは3.0にノンサポートで対応してる。リリースノート読むよろ。
うちではちゃんと使えてる。デバッガもOK。
まあ、不安なら2.1使っとけ。

705 :デフォルトの名無しさん:05/02/27 20:17:34
画像の表示される座標がおかしくなってしまいます
スクラッチパッドからMediaManagerで読み込み,getImageして,drawImage(img, 10, 10);としています
エミュレータ上では10,10に表示されるのですが,N900iやSO505iSでは10,30あたりに表示されてしまいます
画像のサイズは171*31です
どうしてこうなってしまうのでしょうか

706 :デフォルトの名無しさん:05/02/27 20:35:47
>>705
他人のプログラム見てるのか?

ADFにDrawAreaを書いてるとか、そうなるようにプログラムが書かれているか

707 :デフォルトの名無しさん:05/02/27 21:30:53
すみません、上下に描画領域外があるのをわすれていましたorz
失礼しました

708 :デフォルトの名無しさん:05/02/27 23:51:02
ああ、よくあるw

709 :デフォルトの名無しさん:05/02/28 08:56:29
質問です。
動作している機種の、Dojaバージョンを調べる方法はありませんでしょうか。

あるとすればSystemクラスに実装されていると思うのですが、APIリファレンスにのってないので
(どこ調べていいかも含めて)分からんのです。
よろしくお願いいたします。

710 :デフォルトの名無しさん:05/02/28 10:04:03
システムプロパティでわかるんじゃないの?
System.getProperty("microedition.platform")とかやって取得

microedition.platform ホストプラットフォームまたはデバイス名
microedition.profiles サポートしているプロファイル名    
microedition.configuration サポートしている構成の名前とバージョン
microedition.encoding デフォルトの文字エンコーディング

microedition.profilesはDoCoMoProfile-1.0とかになってるらしい

711 :デフォルトの名無しさん:05/02/28 10:09:33
DoJa3.5のエミュで試してみた

X900i
DoCoMoProfile-3.5
CLDC-1.0
SJIS

DoJaのバージョンはSystem.getProperty("microedition.profiles")で判るっぽいな

712 :デフォルトの名無しさん:05/02/28 10:58:32
>>710-711
ありがとうございます。
その線で実装し、全機種チェックにかけてみます。

結果は近いうちにご報告しますのでお待ちください。

713 :デフォルトの名無しさん:05/02/28 11:54:53
横から失礼します。
>>707の「上下に描画領域外」
とは何のことでしょうか。

714 :デフォルトの名無しさん:05/02/28 13:12:45
アプリ実行時の240*240の上下をどう扱うかは機種依存。(液晶は240*320だから80ドット分余ってるだろ?)
機種によっては真っ白でうめてくれやがるので、見た目が悪いことも…。

715 :デフォルトの名無しさん:05/02/28 13:55:37
>>714
g.setColor(好きな色);
g.fillRect(0, 0, g.getWidth(), g.getHeight());
g.setOrijin((g.getWidth-240())/2, (g.getHeight()-240)/2);
g.setClip(240,240);

DrawAreaは逝って善し

716 :デフォルトの名無しさん:05/02/28 14:04:38
>>715
あのな(;´Д`)
そうじゃねーだろ、そうじゃ。

F505iみたいに「アプリの描きこみ権限が無い領域が白くて格好悪い」機種もあるんだよ。

717 :デフォルトの名無しさん:05/02/28 14:17:27
>>714
実例だせば、D505iの場合

ディスプレイサイズ240*320(待ち受け画像とかもこのサイズ)
iアプリ描画可能エリア、パネル・キャンバスともに240*270。

どうあがいても差分の縦50ドットはアプリから操作できんってことさ。

718 :717:05/02/28 14:18:10
アンカーミスった・・・>>714でなく>>715な・・

719 :715:05/02/28 15:26:52
>>716
あーそういうことか。そうするとこちらが論点を勘違いしてた。申し訳ない。
その話で行くと、個人的にはSO505iあたりが最悪系だな。

でもそれで行くと>>714の「240*240」はおかしいぞw

720 :デフォルトの名無しさん:05/02/28 16:11:07
>>719
最低保証アプリ領域サイズの240*240を書いたのじゃー。
勘違いさせたならスマヌ。

721 :713:05/02/28 16:13:09
>>714-719
ありがとうございます。納得しました。
「パネル・キャンバスのサイズを越える領域には描写できない」と言うことですね。

722 :デフォルトの名無しさん:05/02/28 16:29:49
320*240マックスで使わせて欲しいものよのぉ。
ソフトキーとかの互換性でもう無理だと思うが。

723 :デフォルトの名無しさん:05/02/28 17:58:44
俺はむしろ逆だ、240*240で統一しろと。
N504で中途半端にデカイためすげー見苦しいことになってる。
あんな機種がもう一度きたらめんどくさくてめんどくさくて。

724 :デフォルトの名無しさん:05/02/28 18:32:39
240*320の全画面がいいなぁ
待ち受けとかだと240*240は見た目が悪い
あとソフトキーラベルもいらない
必要なら自分で作ればイイだけだし

725 :デフォルトの名無しさん:05/02/28 21:45:06
待ち受けのためにNとSH以外にも背面液晶対応を…

726 :デフォルトの名無しさん:05/03/01 03:20:12
急で申し訳ありませんが、今まで動作していたプログラムが
どうしても動かなくなってしまいました。

セーブデータの処理を走らせたときに以下のエラーが表示されます。

ScratchPad Save Err.
com.nttdocomo.io.ConnectionException: Scratchpad already opened for output

これの対処をご存知の方、どうか教えていただきたいと思います。
よろしくお願いします。


727 :デフォルトの名無しさん:05/03/01 03:28:51
>>726
対処も何も、エラーメッセージの通り。読めよ。

スクラッチパッドに書き込むときにopenしたOutputStreamのcloseが抜けてるだけ
でしょ?

728 :デフォルトの名無しさん:05/03/01 04:59:44
726です
すみません、説明が抜けてました。

もともと、スクラッチパッド関係の処理は1つのクラスとして
もっていまして、OutputStream等は必ずそこで行っています。

もともとというのも、505(doja3.0)時代に使用していた
クラスでして、現在FOMA900i系(doja3.5)にて、
同じクラスを使用したところ、エラーが出て書き込めないという
事態に陥りました。

HTTPからのファイルのダウンロード>スクラッチパッドへの格納
は同クラスで動作しており、40以上のファイルを繰り返し処理しても
大丈夫なのです。

で、セーブデータとして、単にバイトデータを読み書きする時点で
ダメになっていて、もしやdoja3.5から何か変わったのかな?
とも思い質問いたしました。

長文、失礼いたしました。

729 :デフォルトの名無しさん:05/03/01 05:28:44
じゃ、そこ以外が変なんだろ
何が変なのかのヒントはこれだ
Scratchpad already opened for output

730 :デフォルトの名無しさん:05/03/01 06:15:21
726です
こんな時間にありがとうございます

直りました。
原因はご指摘の通りoutをcloseしてないでした。

いくつかメソッドを用途別に抱えており、文字列の格納の際でした。
in.close() と inc.close() の違い・・・。

(しかし505時代はこれで動いていたのが逆に今疑問でもあります^^;)

ご迷惑おかけしました。


731 :デフォルトの名無しさん:05/03/01 08:54:47
>>730
数十回の累積openに耐える機種もあれば、耐えない機種もある。
基本的に累積openはしてはいけない。

732 :デフォルトの名無しさん:05/03/01 10:16:27
つまりは、今までファイルをオープンしてもクローズしてない
アプリをばら撒いてたってわけだな。

733 :デフォルトの名無しさん:05/03/01 11:46:06
そろそろソフトキー4つにしても良いと思うんだが

734 :デフォルトの名無しさん:05/03/01 11:53:30
まぁ、確かにclose()漏れ事故って起きがちだよな。

735 :デフォルトの名無しさん:05/03/01 11:55:03
おまいらがドアアキなのはわかった

736 :デフォルトの名無しさん:05/03/01 12:36:17
> まぁ、確かにclose()漏れ事故って起きがちだよな。
open直後にtry {} finally {} でclose()するのが安全なんだけど、
コードの見通し(融通)が悪くなるのとサイズ増加がね。

737 :デフォルトの名無しさん:05/03/01 14:39:49
getBytes(String enc)でEUC-JPに変換した文字を格納したいんですけど
encに"EUC-JP","EUC_JP","eucjp","euc-jp","eucjis"等を指定しても
java.io.UnsupportedEncodingException
とでて変換してくれません。
もしかしてCLDCではEUCをサポートしてないんでしょうか?

738 :デフォルトの名無しさん:05/03/01 14:53:20
>>737
んー、文字コードの変換みたいな機能は実装されていなかった気が。
なにしろ「キロバイトJava」なので。

739 :デフォルトの名無しさん:05/03/01 16:00:57
どっかでjcode.plをJAVAのパッケージ化したサイトを見たなぁ

740 :デフォルトの名無しさん:05/03/01 18:03:29
質問です。
自力serializeを作ろうかと思うのですが、携帯JAVAってreflectionを使えるのでしょうか?

741 :デフォルトの名無しさん:05/03/01 19:59:41
ネイティブヒープの空き容量を取得する方法ってありませんか?

742 :デフォルトの名無しさん:05/03/01 21:30:53
>>471
確かJAVAヒープしか無理だった
JAVAとネイティブがごっちゃになっている機種もあるけど>NP

743 :デフォルトの名無しさん:05/03/01 22:06:34
エミュレータで動いて実機で動かない現象にはまりました・・・
環境:エミュ:Doja-3.0 実機:F505iGPS

InputStream in=null;
in=getClass().getResourceAsStream("/test.txt");
エミュ上だとこれはOK 実機NG

in=getClass().getResourceAsStream("resource:///test.txt");
エミュ上だと
java.lang.SecurityException: Illegal url : resource:///resource:///test.txt
とエラーを返しますが、実記だと動きます。

エミュレータの設定かなんかの気もするのですが、直し方がわかりません。
ご存知の方いたら教えてください・・・

744 :デフォルトの名無しさん:05/03/01 23:58:31
>>743
getResourceAsStreamは、機種によって引数の解釈が違った気がする。
Connector.openInputStream()使った方が確実だよ。

745 :デフォルトの名無しさん:05/03/02 00:26:33
launch(LAUNCH_BROWSER,new String[]{"http://url.com"});
のアドレス部分を変数に置き換えるにはどうすればいいんですか?


746 :743:05/03/02 01:01:38
>>744
おおお、そんなメソッドが・・・
ばっちり動きました。大感謝ですm(__)m

747 :デフォルトの名無しさん:05/03/02 01:20:53
質問ですが、extends Canvasなクラスを10個作成したのですが、この時メモリ上はCanvasクラスのインスタンス も10個ですか?それともまとめて1個ですか?

748 :デフォルトの名無しさん:05/03/02 01:57:12
>>745>>747
頼むから。釣りじゃないならまずJavaを勉強して。

749 :デフォルトの名無しさん:05/03/02 11:30:34
>>748
漏れは>>745についてはむしろそんなソースの書き方があったのかと勉強になった藁

750 :デフォルトの名無しさん:05/03/02 12:43:33
>>745
""いらない。
>>747
そう。

751 :745:05/03/02 15:19:04
普通にString配列で変数作ったらできました。
で、疑問なんですが、なんで配列型なんですかね?

752 :デフォルトの名無しさん:05/03/02 16:12:40
>>751
>パラメータ:
>target - 起動するアプリケーションの種類を指定します。
>args - 起動するアプリケーションに渡す引数を指定します。
>引数の意味は起動するアプリケーションによって異なります。

「意味はいろいろ」だから可変長なんでしょ。

753 :デフォルトの名無しさん:05/03/02 21:25:48
既出な内容なんだが、誰か教えて欲しい。
>79 のような状態になっているんだが、どうにもバッファが消去できずにいる。

消去方法は、

if (type == Display.RESUME_VM_EVENT) {
do {
  Thread.yield();
} while(getKeypadState() > 0);


// こっから入力バッファ
iKeyOn_Next = 0;
iKeyTrg = 0;
iKeyOffTrg = 0;
iKeyOn = 0;
}

な感じのソースを、processEvent に仕込んでいるんだが、どうもうまく動かない。
他にうまい方法はないもんでしょうか?


754 :デフォルトの名無しさん:05/03/02 22:16:29
>>753
while( getKeypadState() ) で
イベントのキューを空にできるんですかね?getKeypadState()は
I/Oを直接読むカンジで、イベントに左右されない気がするんだけど。

たぶんキー判定にprocessEvent()をまったく使っていないんだと思うけど、
Javaの流儀でいうと、イベントをハンドラ以外に解釈させるのはヘンな実装なのですよ。

というわけで、processEvent()でキーイベントを消費してあげれば安定する気が
するけど、もう試した?

755 :754:05/03/02 22:20:07
スマソ。
if (type == Display.RESUME_VM_EVENT) の中でスレッドを数ミリ秒スリープ
させるだけで、解決できるのかも。


756 :753:05/03/02 22:42:45
>754
あ、やっぱり getKeypadState() の空回しでは、バッファクリアにはなりませんか…。
ドキュメントにも「キーパッドの状態が戻り値として返されます」って書き方だったから、参照だけしかしない
メソッドでは? とも思っていたんだけどね…。

754 さんの指摘通り、processEvent() でキー操作系を全く使っていない作りになっています
(昔に誰かが作成した方法通りにやっているもので、Javaの基本を抑えているわけではないんですよね…)。


で、本当に基本的な話かもしれませんけど、キーイベントを消費するって、具体的にどのような方法なんです?

if (type == Display.KEY_PRESSED_EVENT) {}

を用意する…、だけでは非常に足りない気がするんで、そこら辺の詳しい情報が載っている場所があれば
教えて下さい。お願いします。


757 :754:05/03/02 23:26:52
>>756
まず>>755を試してみてください。

というのも>>754を書いたあとに、「そもそもキーイベントって発生していな
いんじゃないかな」と思ったんです。

終了画面で「いいえ」を選んだときに、Javaより下のレベルでイベントが
ハンドルされているはずなのと、もし残っていてJavaまで上がってくるなら
仕様としてオカシイ気がします。

getKeypadState() がJavaのイベント機構とぜんぜん関係がないのなら、
「いいえ」を選んで決定キーから指が離れる前に、getKeypadState() さ
れるのが問題になるので、指が離れるまでちょっとウェイトを入れてあげれ
ばいいのかなと。

最後に、キーイベントを消費するっていうのはイベントをハンドルした
ときに(processEvent()内で)キー入力を無視するフラグを立てて、
getKeypadState() を実行しないっていうような意味で書きました。
が、今回のケースではハズレだったみたい。無視してくださいな。


758 :デフォルトの名無しさん:05/03/02 23:35:06
>>753
ちょっと考え方が違う。

processEventは()実行中スレッドとは別に新たなスレッドが新たに立ち上がって動く。
つまり、そこにウエイトを置いても、実行中スレッドの処理には一切影響を及ぼせない。

また、>>754の言うとおり、getKeyPadState()は「コールされた【瞬間】のキー情報」を取得するので
キーバッファ、キーイベントという概念は適用できない。

キーはgetKeyPadState()で拾ってるのかな?
だとしたら、getKeyPadState()を直接参照せず、
一旦グローバル変数に代入してから参照する作りにすればいい。
それで、レジュームが発生したらその変数をクリアすると。

759 :753=756:05/03/02 23:37:06
>757
では、まず sleep() で数ミリ秒のウェイトを入れてみますね。

>というのも>>754を書いたあとに、「そもそもキーイベントって発生していな
>いんじゃないかな」と思ったんです。
確かに終話による入力は、VM制御範囲外ですから、イベント発生はないかもしれませんね
(ただし、「KEY_RELEASED_EVENT」イベントは発生しそう…)。

まあ、元々は「イベントで処理せいや!」という問題ですから、プログラムを変えてしまえば楽なんですが、
納期は明日な物ですから…(泣)。
もう少し、悪戦苦闘してみます。

757 さん、ありがとうございました。

760 :デフォルトの名無しさん:05/03/02 23:56:51
>>753以降ちょっとまて、
ドキュメントの、低レベルイベントの処理の説明で
「RESUME_VM_EVENT 使用されない」 と書かれているのは知っているか?

761 :753=756=759:05/03/03 00:43:38
>760
あ、ほんとだ…。78ページに載ってました…。
もしかして、IApplication 派生クラスの resume を使わなければいけないのか!

ちょっと光が差してきたかも…。
>757 の指摘通りに sleep() を、今度は IApplication 派生クラスの resume へ入れて確認してみたいと思います。
あとは、キーバッファクリアもかな。


762 :デフォルトの名無しさん:05/03/03 00:47:54
素直にresume()使った方が良いかもね。
あと、type == RESUME_VM_EVENTとか判定してるってことは、それはprocessEvent()の中のはずだけど、
一般的にイベントハンドラのなかで、busy waitするのはおすすめできない。

763 :753=761:05/03/03 01:50:06
調べてみた結果、なんかダメっぽい…。
resume と RESUME_VM_EVENT 、入力の発生するメソッドに println をしこんで trace させてみたら…

出力1:入力の発生するメソッド
出力2:RESUME_VM_EVENT
出力3:resume

となった。

出力2は、>760 のドキュメントの続きに、doja2.0 以降では RESUME_VM_EVENT 発生後に resume が実行される
という記述があったので、問題ない様子。

私の想像だけど、再開処理は一時停止したメソッドを完全に実行し終えてから、イベントやらメソッドを実行するようだ。
つまり、こと SELECT_KEY においては、getKeypadState() を使うと、一時停止中の動作が保証出来なくなるらしい。

…つうことは、俺は徹夜で入力系を修正せなあかんのか…(泣)。

764 :デフォルトの名無しさん:05/03/03 08:56:21
FPS10くらいしかいかない携帯アプリで、getKeypadStateを使おうとするほうがまずいかと…。
0.1秒以内に押して離した場合、検知できない恐れががが

765 :デフォルトの名無しさん:05/03/03 10:07:17
getKeypadStateとprocessEventを用途によって使い分けるベシ

766 :デフォルトの名無しさん:05/03/03 11:44:45
アプリからの通信ができてないみたいなんですがURLに決まりみたいなのはあるんですか?ちなみにこんなURLでGETをつかっています。
http://ホスト/~アカウント/test.cgi?データ/

767 :デフォルトの名無しさん:05/03/03 11:52:03
>>766
ホストにIPは指定できない
jarのダウンロード元となったホスト以外はアクセスできない

768 :デフォルトの名無しさん:05/03/03 11:52:09
>>766
iアプリはDXでないとダウンロードしたサーバとしか通信できないってのではなく?

769 :デフォルトの名無しさん:05/03/03 11:52:39
6秒かよ('A`)

770 :デフォルトの名無しさん:05/03/04 13:46:45
ちょっと知恵をお借りしたいのですが…
900系から504まで一つのアプリで対応させていて、
Doja2.0の規格にあわせる為に画像やテキストをスクラッチパッドに格納しているんですが、
チェック先からSH505iSなどSH系が異様にダウンロードに時間がかかると言われました。

自分はプログラム担当ではなく該当機種も持っていないのでお手上げ状態。
過去スレでscratchpadにlengthをつけると良い(が問題が出る機種もある)と言うのを見ました。こちらのプログラムでは

Connector.openInputStream("scratchpad:///0;pos=" + sct[no][0]);

こうなってます。
SH系以外では問題が出ていないので他の機種で問題が出そうな対策は避けたいのですが、
何かSH系にしかない問題とか回避方法とかあるのでしょうか?

771 :デフォルトの名無しさん:05/03/04 14:55:59
>>770
結論から言えば根本的な回避法は無い気がする。
なぜなら通信速度はプログラムでよっぽど馬鹿なことしてない限り機種の性能だから。
時速20kmでしか走れない車で時速100kmだして走りたいと言ってるような物。
通信速度の速いFOMAと遅いムーバではかなり差が出るのは当然。数値忘れたが数倍は違うはず。

lengthオプションはスクラッチパッドへのアクセスが安定+高速されるメリットがあるが
通信速度を上げる事はない。ダウンロードしたデータを保存する時に多少早くなるが
全体的にみて時間短縮に貢献するほどではないと思われる。
記憶が正しければlengthオプションが機能するのはDoJa3.0からだったような??

結論的にはプログラムのせいではなく、機種の性能と言う事を先方に伝えるべし。
これが似たような容量のデータをダウンする他のアプリと比べて決定的に遅いならプログラムのせいだが。
あ、そうそうダウン中に画面上にアニメーションを細かく表示するようなアプリだと
通信に裂くCPUパワーが大きいのか全体的にパフォーマンスは下がる。

余談:個人的な感想だが・・・SH505よりD505の方が遅い気がするが・・・。

772 :デフォルトの名無しさん:05/03/04 15:20:14
>>770
業者が提供しているiアプリは「SH505iをお使いの方へ」っていう形で注意書きがあることが多いよ。
そこにはファームをアップデートしろって書いてある。
あとSHはスクラッチパッドが遅いっていうのが、ある意味伝統。

773 :デフォルトの名無しさん:05/03/04 15:36:55
>>771,772
ありがとうございます。納品間近でこんな事言われてあせってました。
というか、それを速くなるようにして下さいってひどいチェック会社だなぁ。
とりあえずこちらの大義名分が出来ただけでありがたいです。
ありがとうございました。

774 :711:05/03/04 15:40:41
>>773
追記
プログラム1行しかないからなんとも言えんが・・気付いた事がある。
なぜConnector.openInputStreamなんだ??ダウンしたデータ記録なら
Connector.openOutputStreamだろ??
もしや保存済みの画像データの展開の速度が遅いと言われてるのか。
スクラッチのデータの先頭指定も配列だし・・・展開っぽい気がしてきた。

もしそうならlengthオプションをつければかなり改善されるが。
504もあるなら内部で機種情報とって分岐するとか必要かも。
504でlength使ったこと無いので・・。

775 :711:05/03/04 15:44:17
>>773
さらに追記・・・
よくよく考えてみれば画像展開にConnector.openOutputStreamは使わん・・。
直接メディアイメージ取り出すし・・・。
なぜConnector.openInputStreamが出てきたのか判らんが・・・すまん判らなくなったwww

776 :デフォルトの名無しさん:05/03/04 15:54:39
>>774-775
770のアプリは、SPにリソースデータを一度ダウンロードして、
終わったらSPからリソースを読み込むって造りなんじゃないの?
(書き込みのコードは省略。書いてあるのは、読み込みのコードだけ)

Doja2のjarファイル30KB制限を回避するための、よくある実装と思われ。

777 :デフォルトの名無しさん:05/03/04 16:16:58
>>773
遅いけどある程度工夫で回避できるぞ。
むしろSPへの書き込み部分のコードを晒してみ。

778 :771:05/03/04 16:24:22
>>776
名前771なのに711とか書いとるし・・・何やってんだ俺w
しっかし・・・勉強不足なんだな俺、ちと言われた事が判ってないや。
かなり抜粋だが俺が画像をロードする場合は仮に1つのデータ読む際、

out=Connector.openOutputStream("scratchpad:///0;pos=200");//スクラッチの先頭指定
url = "http://abc.co.jp/abc/i/test.dat";//落としたいデータURL
connection=(HttpConnection)(Connector.open(url,Connector.READ));
connection.setRequestMethod(HttpConnection.GET);
connection.connect();
in=connection.openInputStream();
while (true)
{
i = in.read();
if(i == -1)
break;
out.write((byte)i);
}
in.close();
connection.close();
connection = null;
out.close();

って方法しか知らないや・・。
突然出てくる変数は別で宣言してると思ってくれい。
動けば良いとか思ってやっとるし^^;

779 :773:05/03/04 17:16:45
説明不足でした。さらにプログラムは他の人がやっていて違う部分を書き出してました。
776さんの言う通り一度スクラッチに全て取り込んだ後に読み込んでます。

hc = (HttpConnection)Connector.open(url,Connector.READ, true);

hc.setRequestMethod(HttpConnection.GET);
hc.connect();
is = hc.openInputStream();
os = Connector.openOutputStream("scratchpad:///0;pos=" + pos);

この部分でしょうか。

780 :デフォルトの名無しさん:05/03/04 19:11:43
iアプリのゲームを作ろうとしているのですが、携帯電話内に最初からあるmldや、
ネットから落として着信音にしたmldなどはプログラムで参照できないのでしょうか?
ゲーム内でもってる曲を鳴らせないかなと思いまして・・・。


781 :デフォルトの名無しさん:05/03/04 21:07:37
できない
アプリ上でネットから落とすか、PCでJARにするときにぶちこむしかない

782 :デフォルトの名無しさん:05/03/04 21:55:09
>>781
そうですか・・やっぱできないですか・・。
mldが大量にある場合とかやっぱネットから落とすしか方法がないみたいですね。
返答ありがとうございます。

783 :デフォルトの名無しさん:05/03/05 00:01:28
AACファイルなら参照できるのでしょうかね。

784 :デフォルトの名無しさん:05/03/05 00:25:23
画像だったら読めんだろ?偽装すりゃいいじゃん

785 :デフォルトの名無しさん:05/03/05 11:59:40
>>784
>>780をよく嫁

786 :デフォルトの名無しさん:05/03/05 13:02:18
できるのに・・・

787 :デフォルトの名無しさん:05/03/06 01:26:27
ネイティブのは画像しか扱ったことないけど
読んでこれるのとこれないのがあった希ガス


788 :デフォルトの名無しさん:05/03/06 09:32:33
mldが大量にある場合はjpg画像に偽装して、miniSDに入れて、本体にコピーすれば
アプリから使えるんじゃないのかな
激しく面倒だが

789 :デフォルトの名無しさん:05/03/06 17:08:23
変数っていったいいくつまで定義できるんですか?

790 :デフォルトの名無しさん:05/03/06 18:15:09
メモリの許す限り。
っつうか、昔のN-88BASICじゃあるまいし、変数宣言に限界なんてあるのか?

791 :デフォルトの名無しさん:05/03/06 18:55:34
1文字の変数は特別扱いされてるから演算が速いんですよ。

792 :デフォルトの名無しさん:05/03/06 22:44:21
やはりN-88BASICで開発しているように思える件について

793 :デフォルトの名無しさん:05/03/06 23:46:21
WinのPHPは128個しか作れないんだって

794 :デフォルトの名無しさん:05/03/06 23:47:42
むしろ1文字の変数しか使えませんが、何か?

795 :デフォルトの名無しさん:05/03/07 17:57:28
POST送信が出来ません。助けてください。

現在やっていること、
1.アプリがPOSTデータを作成。
2.POSTの内容を表示するPHPにアクセス。
3.PHPでPOSTが送られてないメッセージが表示される。

サーバー側のPHPはフォームからPOSTで送ったところデータを表示しました。
コーディング内容はプログラミングガイドまんまです。(※URLと書き込み内容
を変更

なにか陥りやすい罠等あれば教えて下さい。

796 :デフォルトの名無しさん:05/03/07 18:10:42
close()してないとか

797 :デフォルトの名無しさん:05/03/07 18:21:20
closeはしてました。

OutputStreamをHttpConnectionからもらって
書き込んで、closeしてHttpConnectionをconnectしています。

プログラミングガイド通りにやっているのですが、上手くいきません。
携帯からアクセスする時はサーバーのPHPに特別な処理とか
いらないですよね?

一応、POSTデータがあるたびにPHPがテキストファイルにデータを上書きしているのですが、
ブラウザからアクセスしたときのみしか上書きされず・・・

798 :デフォルトの名無しさん:05/03/07 22:48:52
>>797
そんな情報だけで分かるわけないだろ。
そもそもApacheのアクセスログには、携帯電話からのアクセスは記録されてるの?
それが記録されてないなら、そもそもHTTPの通信が確立されてない可能性が高い。
どこかで例外とか出てたりしないの?

799 :デフォルトの名無しさん:05/03/08 00:28:37
少し上でも既出だけどIPアドレスではアクセス出来ないよ。

800 :デフォルトの名無しさん:05/03/08 01:39:57
>>795
どうせurlエンコードしてねーとかだろ。
コード晒せ。
800ゲツ

801 :デフォルトの名無しさん:05/03/08 01:45:00
Content-typeは設定してるか?

802 :795:05/03/08 05:09:19
皆さんレスどうもです。
urlエンコードはしてません。
ドコモのサンプルではエンコードしていないように見えるのですが
しなければならないのでしょうか・・・

ちなみに、コネクションの確立までは上手くいっています。
サーバー側のPHPはPOSTがあった場合に、
それの有無を表示するつくりになっています。

アプリでアクセスしたときには、
POSTデータはありませんとレスポンスが帰ってきます。
eclipseでデバッグしながら確認していますが
例外は拾っていません。

setRequestPropertyと
setRequestMethodはきっちり設定しています。
ドコモのサンプル丸写しで、サーバー名だけ変えたものなので
動くはずなのですが、動かないのが不思議です。

他に手立てが無いので
ご助言のとおりurlエンコードをしてみます。

803 :800:05/03/08 08:12:18
>>795
setRequestMethodに何をセットしてんのか言ってみれ。

804 :800:05/03/08 08:12:58
↑寝ぼけ誤
setRequestPropertyだった。

805 :デフォルトの名無しさん:05/03/08 09:23:35
なぁ。とりあえず

ソ ー ス 晒 せ や

806 :デフォルトの名無しさん:05/03/08 11:33:24
最近ここノイズ多くなってきたね


807 :デフォルトの名無しさん:05/03/08 11:44:36
DoJaで電話をかけるのはできますが、
Phone.call("117");
電話にでることはできるでしょうか? 具体的には、ベルが鳴っている
ときに、「1〜9のキーを押すことで電話にでる」待ちうけアプリを
作りたいんです。


808 :デフォルトの名無しさん:05/03/08 11:47:08
できるわけがない。

809 :802:05/03/08 12:06:38
try{
// POST
HttpConnection con = (HttpConnection)Connector.open(
"アプリがあってDNSに登録しているサーバー", Connector.READ_WRITE,
true);
con.setRequestMethod(HttpConnection.POST);
con.setRequestProperty("Content-Type","text/plain");
OutputStream out = con.openOutputStream();
out.write(("POST=DATA" + "\n").getBytes());
out.close();
con.connect();
if( if(con.getResponseCode() == HttpConnection.HTTP_OK){
String [] res = new String[256];
InputStream in = con.openInputStream();
int d=0;
d = in.read();
msg += (char)d;
while( d != -1)
{
d = in.read();
msg += (char)d;
}
in.close();
}
con.close();
}catch(Exception e){ }

こんなんです。
例外処理のところはprintlnで表示していますが
表示された事はないです。
msgにちゃんとサーバーのPHPが返すPOSTデータがありません。
というのが入ってきます。

810 :801:05/03/08 12:12:36
>>809
con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

811 :801:05/03/08 12:15:35
ついでに補足。
finally節でストリームとHttpConnectionのクローズと、明示的な null 代入を
かましてあげないと、機種によっては不具合が出る。

812 :デフォルトの名無しさん:05/03/08 12:40:38
URLエンコめどかったらoctet-streamとかにすればいいんじゃないか?

813 :802:05/03/08 15:54:19
>810-812
ありがとうございます。
application/x-www-form-urlencodedこれでいけました。
感動です、GETに心移りかけていただけに感動です。
ドコモのサンプルはtext/plainなのに駄目なんですね。
finally節かまします。
ありがとうございました。

814 :デフォルトの名無しさん:05/03/08 16:50:23
php側の仕様だろ
ドコモは関係ない

815 :デフォルトの名無しさん:05/03/08 20:15:33
即出or簡単でしたらすみません。
どうしても端末から取得した画像のファイルサイズを調べることができません。
どのようにしたらよいのでしょうか?

816 :デフォルトの名無しさん:05/03/08 21:06:43

既出ですね。
さよなら

817 :800:05/03/08 22:04:55
どういう風にしてもサイズは調べられると思うんだがなぁ。
まったく不思議なヤツだ。

…あ、釣りか

818 :デフォルトの名無しさん:05/03/08 22:10:44
>>817
どの命令文を使うかだけ教えてもらえないでしょうか?

819 :デフォルトの名無しさん:05/03/08 23:44:17
画像に関係あるクラス全部(10もないけど)調べろ

820 :デフォルトの名無しさん:05/03/09 00:08:18
どんなけ探しても見つからない。
それらしきものは「size();」「getImageLength(int) 」
どれなんだ?おそらく2つとも違う。

821 :800:05/03/09 00:23:10
おれ、そんな事やろうと思ったことさえ無いけど
ストリーム駆使したらできたぞ。
回りくどくても動けばよし!ってノリだったがw
他にいいやり方あるんだろうけどね。要は応用。
ここまで言ってわからなかったら…もうダメポ

822 :デフォルトの名無しさん:05/03/09 00:27:18
画像のファイルサイズを調べるAPIなんてないよ。
「画像」がどういう形になってるのかにもよると思うんだけど、
Imageオブジェクトになってるなら、そもそもファイルフォーマットが未確定なのでサイズなんて知る由も無いし、
(ImageEncoderでJPEGにしてからサイズ計るのならわかるが)
Imageオブジェクトじゃないなら、そもそもバイト配列かストリームなわけなので、
何バイトか数えれば済むと思うよ。

823 :800:05/03/09 00:44:31
>>822
答え出しちゃったよ…

824 :デフォルトの名無しさん:05/03/09 00:51:23
>>821-822
ありがとうございます。
ソースを提示します。

 ImageStore w_imagestore = ImageStore.selectEntry();
 int w_id = w_imagestore.getId();
 MediaImage w_media = w_imagestore.getImage();
 w_media.use();
 photo = w_media.getImage();

なんですが、この後「photo」をSPに保存したいんです。
SPが200kbと仮定して画像1が8kbで画像2が10kb…のように
200kbいっぱいまで保存していけるようにしたいのです。
その際に詰めるためにファイルサイズがどうしても知りたいというわけです。

825 :デフォルトの名無しさん:05/03/09 00:57:15
>>824
だから、Image型であるphotoを、ImageオブジェクトのままSPに書き込む方法はない。
すると、photoはImageEncoderでJPEGにして、ストリームを取得する必要がある。
(もちろんJPEGの品質によってファイルサイズは変わる)
そのストリームのバイト数は、自分でカウントすればいいだろ。
read()する度に何バイト読んだかカウントするだけだ。簡単だろ?

826 :デフォルトの名無しさん:05/03/09 01:07:20
>>825
ありがとうございました。
だいたいの流れはつかめました。

w_out=Connector.openOutputStream("scratchpad:///0;pos="+po);
w_data=new byte[128];
while((w_length=w_in.read(w_data))!=-1){
w_out.write(w_data,0,w_length);}

こんな感じですよね?

827 :デフォルトの名無しさん:05/03/09 01:27:54
>>826
おいおい、w_lengthは累積して足し込まなきゃ総計何バイトなのかわからないでしょうに。。}

828 :デフォルトの名無しさん:05/03/09 01:50:39
>>824
ImageStoreのリファレンスをよく読め。
InputStreamを取得するメソッドがわざわざ用意されてるだろ。
その時点で気付きそうなもんだ。

829 :デフォルトの名無しさん:05/03/09 14:37:03
HttpConnection htcon =
(HttpConnection)Connector.open(URL,Connector.READ_WRITE,true);
htcon.setRequestMethod(HttpConnection.POST);
htcon.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
OutputStream htout = htcon.openOutputStream();
htout.write(DATA);
htout.close();
htcon.connect();
htcon.close();

PHPにデータを送信したいので上記のようにしてるんですが
PとNでは動くのにSHは固まってしまいます。
htcon.connect();
htcon.close();
この辺が怪しいと思うんですけどどうすればいいんでしょうか?


830 :デフォルトの名無しさん:05/03/09 16:10:11
HttpConnection htcon =
(HttpConnection)Connector.open(URL,Connector.READ_WRITE,true);
htcon.setRequestMethod(HttpConnection.POST);
htcon.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
OutputStream htout = htcon.openOutputStream();
OutputStreamWriter htoutw = new OutputStreamWriter(htout);
htoutw.write(DATA);
htoutw.close();
htout.close();
htcon.connect();
htcon.close();

これならどう?

831 :デフォルトの名無しさん:05/03/09 16:37:00
「固まってしまいます」じゃ誰もワカラン

832 :デフォルトの名無しさん:05/03/09 16:44:03
>>830
ありがとうございます。試してみます。

>>831
画面が固まってキーも何も受け付けなくなるってことです。

833 :デフォルトの名無しさん:05/03/09 17:38:56
>>832
なぁ。それを他人に言われたとして、わかると思うか?
固まる?
何が。キーも何もって、キー取得のプログラム書いてるの君だろ?
どう取得してるのかもわからん。
強制終了キーすら聞かなくなるのなら尊敬するがね。

「俺はお前じゃない」

834 :デフォルトの名無しさん:05/03/09 18:31:38
サスペンドもしなかったら本当に尊敬する

835 :デフォルトの名無しさん:05/03/09 18:40:17
>>833
お前うざいよ。

聞いてる本人は努力してるし機種よって発生するバグは経験がきっかけで
バグを取れることがあるんだからここで質問する事はかなり有意義なことだろ。
固まるだけで判らんとか、揚げ足取りかっこ悪いぞ。判らんなら黙ってろ。

>>832
CGIアクセスのアプリしか作ったこと無いので参考になるか判らんが
過去機種によってはメモリ使用量がからんでる場合もあった。

画像を大量に使ってるアプリだったのだが当時スクラッチにアクセスする際
lengthオプションを知らず画像展開してたのだがその時は以下のような事が起きた。
初回起動時:画像をダウンするためにネットアクセスが先。その為初回起動時は
        メモリが確保されてるためかCGIへのアクセスも正常に。
2回目以降:スクラッチにダウンしたデータから開くのが先ででネットアクセスは後。
       ネットアクセス時メモリが足りないのか正常アクセスできなかったりエラーやフリーズが発生する機種も。

lengthつけてメモリ使用をはっきりさせることで回避できたがつけてようがつけてまいが
メモリの使用量がギリギリのラインだと機種によっては不具合でるかも。

836 :デフォルトの名無しさん:05/03/09 19:18:13
>>835
> 聞いてる本人は努力してるし

あなた、エスパーですか?

> 参考になるか判らんが

キミの言葉をそのまま借りて、「判らんなら黙ってろ」とでも言うべき?
つーか、君が長々と書いた心の底からどうでもいい体験談が、
どうしてこの問題の解決に役立つと思ったわけ?

教えてクンに、どうでもいい回答者にと、本当にカオス状態だな最近のこのスレ。
とにかく、まず>>829はどう「固まる」のか現象を詳しく調べて書きなさい。

念のため、俺は>>831でも>>833でもない。

837 :836:05/03/09 19:28:14
今回の件に限った話じゃなく、一般論として参考になりそうなページを紹介しとく。
メーリングリストの話だけど、掲示板でも概ね通用するでしょう。
質問者は、質問する前に立ち止まって、まずこれに一通り目を通して欲しい。

技術系メーリングリストで質問するときのパターン・ランゲージ
http://www.hyuki.com/writing/techask.html
真・技術系メーリングリスト FAQ
http://www.geocities.co.jp/SiliconValley/5656/

838 :デフォルトの名無しさん:05/03/09 20:01:02
>>830
試して貰ったのですが、まだ駄目なようです。

>>833
キーの取得はSoftKeyListenerで受け取ってます。
電源ボタンでの終了等は動きます。

送信はPanel上のボタンが押されたときにcomponentActionで受け取り
その中で829に書いたメソッドを呼び出して行っています。
ですが、SH900iにおいてデータが送信されず
メソッドから戻ってこないような感じです。
手元にSHがあるわけではないので、詳しい状況はよく分かりません。

>>835
文字列を送信するだけなので、メモリの使用量はたいしたこと無いと思います。

>>836
上記のようなしだいです。
まだ足りないところがあれば教えていただきたいです。

839 :デフォルトの名無しさん:05/03/09 21:13:04
どこまで進んだか、
サーバレスポンスはどうだったかとか、
そういうのは?


840 :デフォルトの名無しさん:05/03/09 21:32:32
そこいらじゅうにSystem.out.println()を仕込んで
トレース情報からどこまで処理が進んでるか確認してみな。
その結果をもらえればもう少し良いアドバイスが貰えるかも。

ちなみに、「固まる」って言葉を嫌うプログラマーは多いよ。
キーを巻き込んでるのか、サウンドまで道連れにしてるのか、
この辺りによって状況が全く異なるからね。

かくいう漏れも、デバッカーに何も考えずに「固まった」とか言われると、
思わず無賃残業で再発確認させたくなる気分になるw


841 :デフォルトの名無しさん:05/03/09 22:16:05
>>838
ちょっとひねくれた見方だけど>>829はメソッドとはいえない。メソッド群って意味なら可。
あるメソッドの一部が829だとすると、書いてないとこが原因では?とも考えられる。
逆に書かれている部分に変なところはなさそうな気がする。
手元にSHが無いなら、その現象は誰が起こしてんの?そう客に言われただけって事?
とりあえず間違ってないと思ってる部分も色々疑ってみては?

842 :デフォルトの名無しさん:05/03/10 01:31:32
>>838
おいおい、componentActionの中でHTTP通信してるの?
じゃあ、componentAction()から抜けるまで(HTTP通信が完了するまで)
キーイベント受け付けない可能性があるよ。
そもそもイベントハンドラの中で通信するなんてコードは書かない方が良い。
そういう時はcomponentAction()の中でHTTP通信するスレッドをrunしましょう。

843 :デフォルトの名無しさん:05/03/10 08:14:39
>手元にSHがあるわけではないので、詳しい状況はよく分かりません。

じゃ、これ以上は無理だ

844 :デフォルトの名無しさん:05/03/10 09:12:17
とりあえずだ。
なんかSUGEEEEEEEE!!セオリー無視の書き方してるっぽいから、
ソース全部どっかにUPしたら?

>>835
本人の自作自演かとも思ったが、ただの馬鹿らしいな。
てめーのその経験談は、とっくに告知済みのP900/N900問題だ。PDF読め。
今回の質問者はSHな上、P900問題はフリーズなんてしねーよ。

相手の言いたいことを推測してものをいうと、見当はずれのことを言って混乱させることのほうが多いんだよ。
だから「詳しくかけ、話はそれからだ」と言ってんだ。

>>838
commandActionが通信終わるまで固まってしまう。
やってはいけない実装だ。
commandAction内ではフラグの書き換えだけ行って、フラグが書き換わってたらメインスレッドで通信を行うようにするべし。

845 :デフォルトの名無しさん:05/03/10 09:27:49
>>829
DoCoMoに機種固有の問題がPDFで配布されていたと思うけど、
もうそれは読んだ?

846 :デフォルトの名無しさん:05/03/10 10:33:18
つーか通信を別スレッドに分けたらどうか

847 :デフォルトの名無しさん:05/03/10 10:56:20
携帯アプリ板から誘導されてきました(だいぶ前ですが...)

DoCoMoのサービス問い合わせ(留守電が入ってないか確認するヤツ)
を一定時間毎にしてくれるiアプリってないですしょうか?
そもそも、そのへんはiアプリでは制御出来ないものでしょうか

機種はD505iSです

ご存知の方、宜しくお願いします

848 :デフォルトの名無しさん:05/03/10 12:05:53
少数が使えない場合で比率とか割合ってどうやって求めるんでしょうか?
例えば、収支が100円で食費が80円の場合、
比率=食費/収支で算出できますが解が少数なので、0が入ってきますよね?

皆さんはどうやって対処してるんでしょうか?

849 :デフォルトの名無しさん:05/03/10 12:15:36
( ゚Д゚)ポカーン

850 :デフォルトの名無しさん:05/03/10 12:16:55
>>848
整数%でイイなら計算するまえに100倍
小数点1位まで必要なら1000倍
でどう?

851 :848:05/03/10 12:22:18
ごめんなさい。
私すごい馬鹿なんで100倍が理解できないです。

収支が100円で食費が80円で、食費の割合を求めたいときは、
x = (100*100)/(80*100)
ですか?でもコレだと解は小数点になるような・・・

適当に思いついたいのですが、
x = 100 - 100%80
だと、求められるような気がしますが数字によっては破綻しますでしょうか?

852 :デフォルトの名無しさん:05/03/10 12:22:56
>>848
サーバで計算させて結果をダウンロードする。




(゚∀゚)

853 :848:05/03/10 12:28:52
本気で頭悪いからわからない・・・

854 :デフォルトの名無しさん:05/03/10 12:39:17
>>848
100倍するのは分子の方だけ。
小数点を表示させたいのであれば、結果を一度文字列にして適当な位置に「 . 」を追加するしかない。

855 :848:05/03/10 12:41:53
ありがとうございます。

x = (80*100)/100
だと確かにxがいきなり80になってとても便利ですね。
助かりました。ありがとうございます。

856 :デフォルトの名無しさん:05/03/10 12:41:53
アプリを作る前に固定小数点ぐらい覚えておいた方がいいぞ
x=80*100/100

857 :デフォルトの名無しさん:05/03/10 12:55:31
比率=食費/収支 
↓両辺を100倍
100*比率=100*食費/収支

分かった?

858 :デフォルトの名無しさん:05/03/10 13:11:13
お前らめちゃめちゃ優しいな。
荒らしだと思ったぞ。

859 :デフォルトの名無しさん:05/03/10 13:40:47
通信とかなんだかすげー話の内容的にレベルの差を感じますが、質問を。
答えてやろうという方よろしくお願いします。他の方はスルーしてくださいな。
当方現在505・900など240*240表示できる機種で
共通で動くアプリ作成中です。DoJa3.0基本で。

で演出でブラックアウトなど画面全体の色見を変えて画面切り替えを
行おうと思ってるのですが現在はgetRGBPixelsでキャンバスの画像を取得>
各ドット(240*240)を目標とする色(黒とか)へ近づける>
setRGBPixelsを使い描画するという内容を繰り返す、で作ってみたものの
手元にあるD505iと友人のP900iでは共通して使い物に
ならないほど遅く(Pの方がここだけ遅い)エミュでもそこそこの速度。

スムーズなブラックアウトやホワイトアウトなど作る際に何か
他の方法がありましたらご教授ください。

860 :デフォルトの名無しさん:05/03/10 13:51:50
palettedImage

861 :859:05/03/10 13:58:25
変数の定義とかは書いてないですが一応心臓となる部分の私が作ったソース

Graphics gg = getGraphics();
gg.setOrigin(off_x,off_y); //画面の位置を設定
gg.getRGBPixels(0,0,240,240,pic,0);
//kaiには何段階で色を変化させるかの数がはいってる
for(i = 0;i < kai;i++)
{
 for(j = 0;j < (240*240);j++)
 {
  //取得したドットをr,g,bに分解
  b = pic[j]&0xff;
  g = (pic[j]&0xffff)>>8;
  r = (pic[j]&0xffffff)>>16;
  //r2,g2,b2は最終的に変化させたい色の値が入ってる
  pic2[j] = ((((kai-i)*r)+(i*r2))/kai)<<16;
  pic2[j] += ((((kai-i)*g)+(i*g2))/kai)<<8;
  pic2[j] += ((((kai-i)*b)+(i*b2))/kai);
 }
 gg.lock();
 gg.setRGBPixels(0,0,240,240,pic2,0);
 gg.unlock(true);
}

862 :デフォルトの名無しさん:05/03/10 14:10:50
>>859
一番楽なのは、ブラックアウト/ホワイトアウトをあきらめて、マスクを重ねて
ワイプ処理でごまかす。

DoJa3.0で、全機種で動く半透明フェードをやりたければ、Graphics3Dを使って
画面いっぱいの半透明ポリゴンを重ねるのが唯一の方法。

863 :デフォルトの名無しさん:05/03/10 14:12:51
>>859
for(j = 0;j < (240*240);j++)
57600回も繰り返せば遅いのは当たりまえ。

864 :デフォルトの名無しさん:05/03/10 14:26:56
>>862
859ではありませんが、便乗させて下さい。
何かを描画した後の画面にマスクが掛けられるんでしょうか?

白地に黄色の正方形をかいて、
青でマスクを掛けた場合は、白地が青になって、黄色が緑に?
こんな便利なことが出来るんですか!?


865 :859:05/03/10 14:31:34
>>862
あきらめてワイプ処理〜っと言うのは実際にはどういうものでしょうか?
下のポリゴンの方はなんとなく理解できますが。

>>863
ビット演算が回数多いため遅いのは覚悟はしてたのですがソース見てわかる通り
変化させたい画像(画面)の状態は色見以外変化させないでやるつもり
だったので動きが無い分多少遅くても良いかと思ってたんですが
想像をはるかに超えて遅かったのでこの方法はダメかとなったわけです。
部分的に変化させるとかなら使えそうではあるんですけどね。
この方法を選んだのはブラックアウトなどに限らず色味の変化を自在に
操れそうかなぁっと思ったからです。

正直なところ505以降でどういったことが出来るのか?というのを
ただいま勉強しながら色んな実験をしてるところなんです。

866 :デフォルトの名無しさん:05/03/10 14:38:14
こゆこと?

黒25%透明75%な画像を描画(ちょっと暗くなった感じ)

黒50%透明50%な画像を描画(暗くなった感じ)

黒75%透明25%な画像を描画(かなり暗くなった感じ)


フェードイン、フェードアウトは白黒以外諦めた方がいいと思うよ

867 :836:05/03/10 15:32:38
ですな。実際のとこ、数年前のPCでもフェードイン・アウトは結構難題だったくらいで。
いまだと半透明ポリゴンで覆っちゃうけどね。
携帯もそのうち楽にできるようになるでしょう。
それまでは他の場面転換エフェクトを考えるのが吉。

ワイプはアレだ、wipe(拭く)という言葉通り、
画面が端のほうからジョジョに変わってったりするやつ。

868 :デフォルトの名無しさん:05/03/10 15:36:01
fillRectだけはGraphics2.setRenderModeで半透明使えるんじゃなかったっけ?

869 :859:05/03/10 15:51:21
>>867
よくみかける端から黒い帯が伸びたりするタイプのことでしょうか?
fillRectなどでアニメーションさせつつ黒い範囲が増えていくような。

>>868
Graphics2も考えましたが実装状況をみると明らかに
対応していない機種が多数あるようです。

870 :862:05/03/10 16:07:58
>>869
そのとーり。

>>868
使えない機種が多い。F900とか。

>>864>>866
Graphics3Dで半透明ポリゴンを上から重ねる方法は、
・加算/減算の半透明が使える
・ポリゴン自体の色は任意の色が使える
というところで、使い方次第でいろいろできる。

例えば、フェードアウトだったら、減算半透明で画面全体を覆うポリゴンを描いて、
その色を(0x00,0x00,0x00)→(0xff,0xff,0xff)に段階的に変えていけばいいわけだ。

871 :859:05/03/10 16:56:52
お答えくださった皆様ありがとうございました。
3Dはまだ触れていない所なので今後やってみることにします。

872 :デフォルトの名無しさん:05/03/11 01:35:04
日本語文字列を10文字スクラッチパッドに書き込んだら何バイト使うんですか?
リファレンスを読むと最初の2バイトが文字の総バイト数で
その後に文字列が書き込まれると書いてあるんで22バイトかと思ったら
スクラッチパッドを見ると22バイトを超えてるような気がします。
いったいどうなってるんでしょうか?

873 :デフォルトの名無しさん:05/03/11 01:39:45
writeUTF8で書き込んでるってこと?
だったら日本語1文字について3バイト消費するよ。
だから、10文字だったら32バイトかな。先頭の2バイトのヘッダ含めて。

874 :デフォルトの名無しさん:05/03/11 02:12:29
>>873
ありがとうございます。
ちょうど今UTF-8について調べてたら1文字3バイトって書いてありました。
日本語=2バイトだとずっと思いこんでた。orz

875 :デフォルトの名無しさん:05/03/11 10:20:55
>>859
int[] getRGBPixels(int x, int y, int w, int h, int[] pixels, int off)
指定する領域のピクセル値を0xRRGGBBの形式で取得します。

static Image createImage(int width, int height, int[] data, int off)
RGB配列を指定してイメージオブジェクトを生成します。

この二つを使えば、使い物になる程度には速いよ。
ただし、エミュレータだと地獄の遅さなので、デバッグフラグで処理切り替えられるようにしておいたほうがいい。
240*240なら1分くらい平気でかかる<エミュ
実機なら1秒はかからないと思う。

876 :デフォルトの名無しさん:05/03/11 10:52:07
全機種で0.1秒かからないなら使えるが、実際どうなんでしょ

877 :859:05/03/11 11:00:53
>>875
実験してみました。

>>861で表示したソースの
gg.setRGBPixels(0,0,240,240,pic2,0);
の部分を
gg.drawImage(Image.createImage(240,240,pic2,0),0,0);
に変更して実行してみました。

結果:
エミュでは言われてる通り1回の処理で1分以上かかる感じ。
実機D505iでは1回の処理に約3秒。
D505iにおいては体感的にsetRGBPixelsとあまり変わらないか少し遅いくらいな結果になりました。
でもこういうやり方もあると参考になりました、ありがとう^^

878 :859:05/03/11 11:05:35
createImageでの速度というよりも
単純に私のビット演算の処理の仕方のまずさで遅いのだと思います。
毎回RGB分解する必要はないのですがメモリの消費量を気にしてたりして^^;
仮に分解部分を外にだして1回だけにしても多少速度が上がる程度だとは思いますが。

その時の色の描写の計算式に掛け算、割り算を使ってますから・・・そこが重いのかと。

879 :859:05/03/11 11:22:43
連続書き込み申し訳ない、これで最後です

>>861で表示したソースの
for(i = 0;i < kai;i++)

for(i = 1;i <= kai;i++)
に訂正。間違えてました。

でもう一度
gg.setRGBPixels(0,0,240,240,pic2,0);と
gg.drawImage(Image.createImage(240,240,pic2,0),0,0);
の速度をD505iでアバウトながら比べてみたところ
setRGBPixelsをつかったループは1回で約1秒。
createImageをつかったループは1回で約2秒でした。

テストでRGB分解の結果をあらかじめ保持するパターンも作ってみましたが
D505の場合このテストアプリが他にもいろいろ実験しててある程度メモリを使ってる
こともあってか処理に入った段階でメモリが足らなくなって落ちました^^;

880 :デフォルトの名無しさん:05/03/11 13:10:20
結構遅かったな。
すまん、俺はD900iで実験したもんで、15ミリ秒くらいだったから使えるなーと思ってたんだが
そうだね。505系だとダメだわ。

881 :デフォルトの名無しさん:05/03/11 15:27:14
質問ばっかりで申し訳ない。
ググってみても参考になる場所が一切見つからず。
依然としてブラックアウトの方法を色々試してみてるのですが
昨日言われたポリゴンを重ねる方法、3Dプログラミングの
経験は0でもプリミティブを1枚表示くらいは出来るだろうと
思っていたのですがうまく行きません。

//priは座標と色が設定済み4角プリミティブ。
g3 = (Graphics3D)g;
g3.setScreenCenter(0,0);     //表示位置
g3.setScreenView(240,240);    //平行投影
g3.enableSemiTransparent(true); //半透明on
g3.renderPrimitives(pri,g3.ATTR_BLEND_SUB);
g3.flush();

とやってみたのですが結果はエミュ上では右と下1ドット
足りずD505iでは右のみ1ドット足りないプリミティブが
表示されます。ソースにありませんがプリミティブの座標を
どんなに大きくしてもまたスクリーンの大きさをいかに変えようとも
右と下の1ドットが欠けてる状態になります。
クリップなども一切していないのですが原因を突き止める事が出来ません。
よろしければお知恵をお貸しください。

882 :デフォルトの名無しさん:05/03/11 15:34:26
>>881
あー…。うん。
Graphics#drawPolygonでも右と下が1ドット欠ける機種あるよね…。
つまりそういうことだと思うよ(´・ω・`)

883 :デフォルトの名無しさん:05/03/11 15:40:19
>>882
友人に連絡してP900iにて動作させてもらったら
ドットの欠けは無いようです。(速度もほぼ低下せず)
機種依存なのでしょうか。

機種依存なら欠けることを踏まえて使えば速度的には
かなり優秀(D505は遅いですが)っぽいですけどね。

884 :デフォルトの名無しさん:05/03/11 15:48:07
現在アプリが使用しているヒープの総量を確認するにはどうしたらいいでしょうか?

885 :デフォルトの名無しさん:05/03/11 15:49:31
そういうこと=機種依存ですわ。
なのでdrawPolygonは使うなというのが一般的見解。

3Dでもなるというのは知らなかった。
おそらく内部で、drawPolygonを使ってやってるんだろうね。

886 :デフォルトの名無しさん:05/03/11 15:50:40
>>884
#を3回押下後3キー

887 :デフォルトの名無しさん:05/03/11 15:53:02
>>886
嘘と思いつつ、今デバッグ中だったので試してしまったw
もちろん反応なっすぃ

888 :886:05/03/11 16:23:58
アレ?
俺、DEBUG AVAILABLEってでるよ。
左に1.3Mとか表示されてる。
信頼できる先輩にデバッグ方法を教わったので間違いないハズ・・・

889 :デフォルトの名無しさん:05/03/11 16:29:45
887の律儀さか、886のマヌケさか、どちらが演技なのか悩む

890 :887:05/03/11 16:32:13
それは、そのアプリにそういう隠しコマンドを作っておいたというだけの話では?


891 :デフォルトの名無しさん:05/03/11 16:55:51
>>890
ヒープと言ってもJavaヒープとネイティブヒープがあるぞ。
Javaヒープのみ取得可能。
CLDCのクラス Runtimeを使うべし。

使い方判らなければテンプレにあるサイトん・ぱか工房へ行けば書いてある。

892 :887:05/03/11 17:07:30
いや、ゴメン。俺質問者ではないんだ。
たまたまここ見ながらデバッグ作業してたもんで、試してみたってだけで…。



893 :デフォルトの名無しさん:05/03/11 17:12:19
>886
auの携帯電話じゃねーかよ。

894 :981:05/03/11 17:34:44
>>892
すまね、アンカー間違った。
>>890でなく>>884だな。

895 :887:05/03/11 17:53:45
>>893
と聞いて、AU携帯で実験してみた。
おお、本当に表示される。AUはすげー気がきいてるなぁ。

896 :デフォルトの名無しさん:05/03/12 09:53:34
ほっほー

897 :デフォルトの名無しさん:05/03/12 18:43:13
DoJa3.0以降(に限らなくても良いのですが…)で使える
オススメのJavaオプティマイザなどご存知ないでしょうか?

JavaBlenderを使っていたのですが、突然使えなくなってしまいました。

ちょっとサイズがシビアなアプリを作っており、
オブファスケーターのみだとちょっと心もとなくなりそうで…。

ちなみに今、ProGuard+7zで29.7KBほど。


898 :デフォルトの名無しさん:05/03/12 18:49:56
>>897
> ちなみに今、ProGuard+7zで29.7KBほど。
ProGuard+jarg+7zすると少しだけ小さくなる。

有料の製品ならSophiaCompress。ただ設計によっては速度が遅くなった経験あり。

899 :デフォルトの名無しさん:05/03/12 19:46:30
>>898
200バイトほど小さくなりました。
状況が状況なので、かなり救われてます…。

確かにSophiaCompressは色々と聞きますね。
何だかんだでほとんどのアプリでは問題ないのでしょうが、
お金を払うことを考えるとどうしても尻込みしてしまいます。


900 :899:05/03/12 20:21:57
>>899
一応体験版があるみたいよ。試してみたら?

私が製品版で試したケースでは、
ProGuard+jarg+7zよりもさらに1,2割小さくなったけど、
実行速度が遅くなった。
過度なクラス融合が悪さをしたと思われ。

製品版は額も半端じゃないから使わないとすれば、
あとはがんばってチューンするしかないよねぇ…

901 :898:05/03/12 20:23:13
>>899 名前欄、898の間違い…ゴメン orz

902 :デフォルトの名無しさん:05/03/12 20:33:04
>>897
>JavaBlenderを使っていたのですが、突然使えなくなってしまいました。
これの原因は放っておくのか?

903 :デフォルトの名無しさん:05/03/12 23:04:21
SophiaCompress昔売り込みに来てたなぁ
試したアプリがクラス2個だったせいもあると思うが、ProGuard+jarg(-nobco)+7zより
数%小さくなっただけだったんでその時は採用しなかった

904 :899:05/03/12 23:14:56
>>902

普段は、iDKのコンパイラは一切使わず、全てコマンドラインで
コンパイルしているのですが、その場合、blender505.exeで
「verification failure」とエラーメッセージが出力されて
以後の処理全てが失敗します。


おかしいと思いiDKよりコンパイルしてGUIからの実行してみたのですが、
「コード検証に失敗しました(Phase 2)」と表示されてやはりだめでした。

本当に突然で、最後にコンパイル成功してから、
数十行追加して再度コンパイルしたところだめになってた、という感じです。


905 :デフォルトの名無しさん:05/03/13 00:24:57
>>904 iDKのコンパイラって? なんか勘違いしてないかい?

906 :904:05/03/13 00:54:36
>>905

すみません。正確には、
「iDKからjavac.exe,preverify.exe,jarを呼び出してのコンパイル」でした。
そういった意味では、全てSunのコンパイラですね。



907 :デフォルトの名無しさん:05/03/13 02:12:34
>>904
そういうのは突然とは言わないだろう。
数十行追加した内容か、もしくはその追加行為によってたまたまJavaBlenderの
何かしらの制限を越えてしまったことが原因と考えられるわけだな。

もし詳しいことが分かったら、他のJavaBlender使いの人の参考になると思うので
報告してもらえるとありがたい。

908 :904:05/03/13 03:03:09
>>907
了解です。少し前のことなのでうろ覚えですが、現時点で覚えている限りで。

最後に数十行追加したのは本当に簡単な内容で、
switch〜caseの条件分岐と、try〜catch構文がいくつか、
あとは、変数の代入程度、ありふれたコードなので
この数十行に原因があるとは考えにくいと思っています。

コンパイラは一通り試してます。
1.3.x,1.4.x,1.5.x
全てダメでした。1.5.xはiDKとの相性は悪いようですが、
コマンドラインでターゲットVMをきちんと指定してあげれば、
JaveBlenderを通さない限り正常動作しました。

ソースの書き方としては、もともとサイズギリギリになることわかってて
それを前提で作ってるので、インスタンス生成の即値からいきなりメソッド読んだり、
((new Thread(this)).start()とか)
数百回の再帰が行なわれる再帰メソッドを構成したり、
結果、メモリの確保・開放は激しいと思います。

納期まではまだ時間あるので、JavaBlender復活をもう少し目指してみつつ、
もしうまくいったら後日報告します。

909 :デフォルトの名無しさん:05/03/13 23:28:40
画像(Image)のリサイズってできるんでしょうか?

910 :デフォルトの名無しさん:05/03/14 01:09:21
>909
Graphics#drawScaledImage ではだめか?


911 :デフォルトの名無しさん:05/03/14 02:09:33
>>910
無事できました。
ありがとうございました。

912 :デフォルトの名無しさん:05/03/14 11:16:33
DoJaで、JUnitを使いたいのですが、javac.exe と java.exeに
対応するのはどれなのでしょうか?

913 :デフォルトの名無しさん:05/03/14 15:39:19
よくわからないので教えてください。
try
{
mi = MediaManager.getImage("resource:///"+teigisita.gif);
mi.use();
}catch(Exception e){}

よくある、リソースからの画像読み込み処理ですが、
これを何回も呼び出すメソッドを作りました。毎回呼び出す画像は違いますが・・・
ところが二回目以降例外が発生してしまいます。
MediaManagerとImageをunuseとdisposeをしてもうまくいきません。
何がまちがっているのでしょうか?

914 :913:05/03/14 15:48:31
自己レスすいません。

APIリファレンスによると、
ストリームを指定してMediaResourceオブジェクトを取得し、
MediaResource.useメソッドをunuseメソッドを挟んで複数回呼び出した場合、
1回目のuseメソッドは成功しても2回目以降のストリームからの読み出しができず、
結果的に例外をスローすることがあります。

まさにコレなんですが、もしかして、呼び出す画像毎にオブジェクトつくらないと
だめなんでしょうか?
一つのオブジェクト使い回しはだめでしょうか?

915 :デフォルトの名無しさん:05/03/14 15:55:02
mi = null;
system.gc();
でもやっとけ

916 :デフォルトの名無しさん:05/03/14 16:10:49
>このメディアイメージがunuse() や dispose() された場合は、メディアイメージから
>取得したイメージオブジェクトは、 そのオブジェクトを参照しているオブジェクトが
>存在しているか否かに関係なく 無効(Image.dispose() が呼ばれた状態)となります。

使い回せないように読めるけど
VisualPresenterだと違うのかな?

917 :913:05/03/14 16:16:16
すいません、
イメージをロードするメソッドだけを試したところ上手くいきました。
但し、MediaImageは一切破棄しないで、メンバを使い続けてます。
メモリがどのように使われてるかはこれから調査しますが、
こういう使い方はありなんでしょうか?

918 :913:05/03/14 16:28:37
度々自己レスすいません。
こういうコーディングだとメモリが減りませんでした。

Image image = LoadImage("取り出したいイメージ"); //よくあるロード処理
g.drawImage(image,image.getWidth(),0);         //MediaImageだけメンバで保持
image.dispose();
mi.unuse();

Runtime rm = Runtime.getRuntime();
rm.gc();
g.drawString(""+rm.freeMemory(),100,100);

実機で試しても上手く行ってるようです。

919 :デフォルトの名無しさん:05/03/14 16:45:09
いや、そりゃそうだろ。というかどの初心者サイト見ても、そう作られてると思うが。

920 :913:05/03/14 16:50:09
>919
初心者サイトをみるとコンストラクタで呼んだきりで
その後何回も呼びまわすのが見つかりませんでした。
何回も呼び出す場合はMediaImageは結局unuseすべきなんでしょうか?
それともそのままでいいんのでしょうか?


921 :デフォルトの名無しさん:05/03/14 16:56:04
すべき。
ロードする画像領域分だけ
MediaImage と Image は持つようにしましょう。

922 :913:05/03/14 17:00:56
ありがとうございます。
勉強になりました。

923 :デフォルトの名無しさん:05/03/14 17:37:40
>>913
画像をアプリ中で読んだり消したりを繰り返す場合は
MediaImage とImage を保持する形で作りそれぞれ解放すべし。
ただ過去スレで…Nだっけか?あれだけちょっと特殊とかあったような?
解放するときにtry〜catchで引っ掛ければ良いだけだけだったとは思うが。

良い方法ではないだろうがアプリ内で読み込んだきり絶対解放しない画像に
ついてはMediaImageは保持していないでも問題ないと思われる。

924 :デフォルトの名無しさん:05/03/14 17:57:53
基本的なことで申し訳ないのですが
文字や数字のデータをアーカイブしたデータをWebに上げて
起動時にダウンロードをしてスクラッチパッドに書き込んでいるのですが
下のようにすると、文字のデータが正しく書き込まれません

in = new InputStreamReader( hc.openInputStream() );
out = Connector.openOutputStream( "scratchpad:///0;pos=0" );

while( true ){
i = in.read();
if( i == -1 )
break;
out.write( i );
}
そのまま内容を書込みたいだけなんですが・・・宜しくお願いします

925 :デフォルトの名無しさん:05/03/14 18:04:15
>>924
>>778を参照

926 :デフォルトの名無しさん:05/03/14 18:13:29
>>925
上手くいきました。
何故かInputStreamReaderで書いていました…
ありがとうございます

927 :デフォルトの名無しさん:05/03/14 20:09:05
>912
javac は javac じゃないかな?
java もエミュレーションするときは java 使ってると思うが・・・。

うちじゃ Unit がでかすぎて使えそうな気がしない。


928 :デフォルトの名無しさん:05/03/14 22:17:19
Doja4.0用の開発エミュレータを使ってみたんだが、何このバグだらけ…。

drawImageの引数を書き換えただけで何故かフリーズ。(画面が真っ白なまま動かない。電源キーなどは反応するからエミュがフリーズしたわけではない)
System.out.printlnを無意味に足したら何故か動く。
drawImageのX座標に1足したらまた動かなくなった。

3.5に戻すわ…。


929 :デフォルトの名無しさん:05/03/14 22:57:18
そんなバグあったか?

930 :デフォルトの名無しさん :05/03/14 22:59:12
>>928のPCがおかしい でファイナルアンサー

931 :デフォルトの名無しさん:05/03/14 23:17:36
メモリ不足じゃないの?

932 :デフォルトの名無しさん:05/03/14 23:30:03
>>927
javacとjavaでいいんですね。
そいでもって、classes.zipやdoja_classesあたりをclasspath
指定すればよいようです。ありがとうございました。

933 :928:05/03/15 00:27:00
う…すまん。感情的になって書き込んでしまった。

俺のプログラム自体に「何割かでフリーズする」バグがあったっぽ
ごめんDoCoMoの人_| ̄|○

934 :デフォルトの名無しさん:05/03/15 10:34:25
何でも他人のせいにしてはいけない、と。

935 :デフォルトの名無しさん:05/03/15 11:14:47
でも4.0は出来が悪いと思うぞ。
基本APIなった3D関係を動作させるとPCのメモリを異常なまでに食う。
ものの数分でPCそのものの動作が安定しなくなるほど。
タスクマネージャーで見てると恐ろしいほどCPUとかに負荷がかかる。

って同じ経験の奴いない?

936 :デフォルトの名無しさん:05/03/15 11:24:24
4.0エミュの更新履歴に、3D関連のバグを修正しましたが連発されてるのを見ると
おそらくそういうことなんだろうな(´・ω・`)

937 :デフォルトの名無しさん:05/03/15 11:29:53
PaletteImageを使ってみたんだ。
F900iTが、そんなもの微塵も存在しないパレット情報を返してくるんだが、
一体どうなってるんだ?

32bitで、
0~7=R
8~15=G
16~23=B
24~31X

だよな?
具体的に言うと。実機や他の機種では
255,0,255,0 のパレット情報が
31,248,0,0 になってる
……ん?

つまり……。なにこれ…565の16bit画像じゃんorz Windowsの16bit演算の悪夢が再びかよ

938 :デフォルトの名無しさん:05/03/15 11:37:10
しかもRGBじゃなくてBGRっぽい…

939 :デフォルトの名無しさん:05/03/15 11:45:12
>>937
帰ってくるintの意味は実装依存じゃないのか?
エミュや機種によって違ったりした記憶がある
設定する値はGraphics.getColorOfRGB()使わなきゃいかんよねぇ

940 :デフォルトの名無しさん:05/03/15 11:48:40
実装依存だよ。

941 :デフォルトの名無しさん:05/03/15 11:50:06
>>939
情報ありがとう。
getColorOfRGBか…。懐かしいな。
自作メソッドの中に閉じ込めてたから、久しく見てないよ。

で、次の問題は
intをRGBに分解する方法なんだが、知恵をお借りできないだろうか。
メソッドある?

それともgetColorOfRGBで0, 64, 128あたりをintに変換したあと、自前解析っすか(´・ω・`)

942 :デフォルトの名無しさん:05/03/15 11:54:43
>>941
> それともgetColorOfRGBで0, 64, 128あたりをintに変換したあと、自前解析っすか(´・ω・`)

DoJaでメソッドが定義されていないなら無駄な努力だと思うが。
中には全然関係ない値を帰す実装が無いとは言えんぞ?

943 :デフォルトの名無しさん:05/03/15 11:59:36
むはー。
とりあえず
R_MASK = Graphice.getColorOfRGB(255, 0, 0);
G_MASK = Graphice.getColorOfRGB(0, 255, 0);
B_MASK = Graphice.getColorOfRGB(0, 0, 255);
とマスクを最初に取得して、操作することにしました。

A/Bに暗くする処理しか考えていないのでとりあえずこれで大丈夫そう。
加算とかが作りにくそう(´・ω・`)

しかしこれ、例えば
(Rの値 * A / B) & R_MASK
と計算するから、最上位8bitにRGBの情報が割り振られている機種ではどうなっちゃうやら(´・ω・`)
今のところ見当たらないけど…。

944 :デフォルトの名無しさん:05/03/15 12:48:30
>>943
やめとけ。
悪夢を見るよ。

945 :デフォルトの名無しさん:05/03/15 12:57:55
>944
地獄を見るほど複雑とも思えないのだが、何を懸念してるんだ?

946 :デフォルトの名無しさん:05/03/15 13:03:33
RGBで明度が違うから単純にマスクしちゃだめ

947 :デフォルトの名無しさん:05/03/15 13:17:04
>>945
作ってるアプリは商用? それとも趣味?
どこかに納品するものならやめておいた方が良いと思うよ。
DoJa4.0でgetColorOfRGBの仕様が拡張された例もあるし、
自前で内部解析しても将来端末で動く保証が何も無い。
後々まで対応迫られるのも嫌だからね。

ってこのあたりはクライアントによりけりか。
老婆心だった。すまん。

948 :デフォルトの名無しさん:05/03/15 13:40:32
>>936
Poly描くとき画面端1ラインおかしいの直ってる?

949 :デフォルトの名無しさん:05/03/15 13:53:50
>>943
アプリ開始時に

Graphics g;
int r_table=new int[256*256*256];
int g_table=new int[256*256*256];
int b_table=new int[256*256*256];

for (r=0; r<256; r++) {
 for (g=0; g<256; g++) {
  for (b=0; b<256; b++) {
   g.setPixel(0,0,Graphics.getColorOfRGB(r,g,b));
   i=g.getPixel(0,0)
   r_table[i]=r; g_table[i]=g; b_table[i]=b:
  }
 }
}

とか考えてみた。改良したら使い物になるかもしれん。

950 :949:05/03/15 14:00:16
>>943
つうか、PalettedeImageなんかGIFから読み込むぐらいにしか使わないから、
GIFからパレットデータ抜き出して操作するぐらいで足りないの?

951 :デフォルトの名無しさん:05/03/15 14:11:41
全体的に光らせたり、
キャラを暗い状態からだんだん明るくしたり

と細かい数式的な動作をさせたいのです。
パレットそのものを持つと、1*1の面積をもつ16色GIFですら77バイトもかかってしまふ

952 :デフォルトの名無しさん:05/03/15 14:52:01
         ☆ チン     マチクタビレタ〜
                         マチクタビレタ〜
        ☆ チン  〃  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) < 次スレまだ〜?
             \_/⊂ ⊂_ )   \_____________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
        |  愛媛みかん  |/


953 :デフォルトの名無しさん:05/03/15 15:28:57
>>951
PalettedeImageってパレット替えが遅くないか?

954 :デフォルトの名無しさん:05/03/15 15:44:27
>>953
いや、かなり早い。が、また問題発覚。
D900iが、どんな色数のGIFを読ませても
getEntryCount で256返してきやがるorz もう最悪やこの機種

955 :デフォルトの名無しさん:05/03/15 16:02:34
ああ、ごめん。それは流石に勘違いだった<必ず256
死ぬかと思ったorz

そろそろ日記帳状態になってきたから、次スレあたりで続きをまとめて報告するよ。
ノシ

956 :デフォルトの名無しさん:05/03/15 16:14:10
質問です。
アプリのバックライトを常にONにしておくにはどうしたらいいのでしょうか?
PhoneSystem.setAttribute(PhoneSystem.DEV_BACKLIGHT, PhoneSystem.ATTR_BACKLIGHT_ON);
を最初にやっても、しばらくすると暗くなってしまいます。

暗くなったら上の命令を。とすると、一瞬だけ暗くなるため画面がちらついてしまいます。
ご教授よろしくお願いいたします。

957 :デフォルトの名無しさん:05/03/15 16:26:12
ネイティヴからのバックライトの制御(操作でON・一定時間でOFF)は
アプリ側からはどうしようもない

958 :デフォルトの名無しさん:05/03/15 16:47:12
>>956
ネイティブの「iアプリ設定」の画面を開いて
バックライトの制御を「システム優先」から「ソフト優先」
にすれば制御できた記憶が。

959 :デフォルトの名無しさん:05/03/15 17:02:41
試してみました。

ネイティブの設定で「ソフトの設定に従う」にしてあれば、
一度setAttributeするだけで永続するようです。

設定になっていない場合は、断続的にsetAttributeするしかなさそうですね。

960 :デフォルトの名無しさん:05/03/15 17:05:11
>>959
ついでに、レジュームがかかると再度設定する必要がある。

961 :デフォルトの名無しさん:05/03/15 17:29:44
>>954
やたら遅かった記憶があるんだが、FF1の戦闘画面みたいに絵が大きくなければ
実用的な速度で動くのかな?

962 :デフォルトの名無しさん:05/03/15 17:57:43
64*64くらいの画像を、パレット変更しながら描画したけどあまり気にならず。
だが、D900はやはり遅い。
D900i
F900i
N900i
SH900i
P900i
の順番で遅かった。減色具合をリアルタイムに計算させてたのもあるが、
Dはパレット計算&セットだけで25msくらいとった。っておーい。すげー遅いじゃん(;´Д`)

絵の大きさは多分関係ないと思うぞ。パレットなんだし。

963 :デフォルトの名無しさん:05/03/15 18:00:49
>>962
パレットがハードウェアで実装されてないんじゃないのか?
ソフトウェアエミュレーションで遅くなってる

964 :デフォルトの名無しさん:05/03/15 18:12:02
ああ、ちなみに。
エミュとD900はRGBそれぞれ8bit
それ以外の900は565の16bitでした。

またDだけか!

965 :デフォルトの名無しさん:05/03/15 18:46:29
>>964
Dで画像のサイズ変えて同じようにパレット操作して
処理にかかる時間が画像サイズに比例するか調べてみた?

966 :デフォルトの名無しさん:05/03/15 18:51:20
俺の記憶ではパレット操作はSH以外使い物にならんほど遅かった気がするが…

967 :デフォルトの名無しさん:05/03/15 19:38:15
PよりSHのほうが速いだろ。

968 :デフォルトの名無しさん:05/03/15 20:36:13
>>965-967
あくまで自分のゲーム用に実験しただけなので、場合によってはスピード逆転とかは十分あると思いますよ

969 :デフォルトの名無しさん:05/03/15 20:53:00
パレット操作はともかく、PalletedImageの方が描画遅いよね。倍ぐらい。

970 :デフォルトの名無しさん:05/03/15 21:07:04
>>969
機種によりました。
P900iはどっちでもスピード(ほとんど?)変わらず。
Dは顕著に遅くなる。他はまぁちびっと。

でも基本はPlettedImageの方が遅いと考えていいと思います。

971 :デフォルトの名無しさん:05/03/15 22:30:38
すいません、教えてください。
アプリをダウンロードする時に、指定するjamファイルをPHPにして、
そのPHPがjamファイルを表示してダウンする事はできますでしょうか?

今、PHPにjamをそのまんま表示させてるんですが、ソフトに誤りがありますと言われます。
但し、その表示されてるもんをjamファイルに貼って正規のやり方で落とすと
落とせます。
ご存知のかたいらっしゃいましたら宜しくお願いいたします。

972 :デフォルトの名無しさん:05/03/15 22:55:19
>>971
HTTPヘッダとかマンドクサイことになりそうだから
素直にperlで吐いたほうがいいと思う。
すくなくともperlのCGIでjam吐かせたら問題なくダウンできたよ。

973 :デフォルトの名無しさん:05/03/15 23:00:25
>>972
レスどうもです。
なんか適当にやってたら1回だけ出来たんです。
それがものすごく単純なコ−ドで。
へぇこんなんで出来るんだって感じでした。

ところがどっこい、ソースをいじって遊んでたら、どうやるか
わからなくなってしまいました(T_T)
激しく後悔。。。


974 :デフォルトの名無しさん:05/03/16 00:59:27
人間は追い詰められると幻覚が見えてくる動物です


975 :デフォルトの名無しさん:05/03/16 02:39:23
>>971
>jamファイルをPHPにして、

ここの意味が分からん
PHPでjamファイルを作成してそこへのリンクを表示させたいってこと?
何が言いたいか分からん上にスレ違いくさい

976 :デフォルトの名無しさん:05/03/16 05:06:36
PHPでjamファイルを出力するって意味でわ?

977 :デフォルトの名無しさん:05/03/16 05:56:03
>971氏は文章を整理して質問し直すべし。
>975>976のやり取りを見れば前半ですら意味が伝わってないことが分かるでしょ?
後半も「PHPにjamをそのまんま表示させてるんですが」や「その表示されてるもんを
jamファイルに貼って正規のやり方で落とすと」とか独自の表現が多くて意味不明。
質問するなら人に伝わるように書かないと期待する回答は得られないよ。

978 :デフォルトの名無しさん:05/03/16 08:14:36
PHPでjamファイルを出力するって意味でわ?

979 :デフォルトの名無しさん:05/03/16 08:29:54
そうは読めないねぇ
用語が支離滅裂なんで電波系の人だと思った

つーか、ちゃんと寝なさい

980 :デフォルトの名無しさん:05/03/16 08:51:10
>>971
翻訳するとこんなん↓かしら?

>教えてください。
>アプリをダウンロードする時にJAMファイルの替わりに、
>PHPでJAMファイルの内容を出力させてもダウンできるで
>しょうか。

>試してみたら「ソフトに誤りがあります」と言われて
>ダウンロードできませんでした。PHPで出力するテキストを
>JAMファイルに保存してみたら、ダウンロードできました。

引っ掛かりそうなことを順番に上げると、
・文字セット(SHIFT_JISとかEUCとか)
・改行コード
・Content Type
くらいかな。

981 :デフォルトの名無しさん:05/03/16 10:55:27
翻訳ありがとうございます。

やりたいことは、
<object declare id="application" data="jam.php?id=999" type="application/x-jam">
↑です。
文字セットはSJISで出力して、改行コードは\r\n
Content-Typeはapplication/x-jamとtext/plain
で試しましたが旨くいきませんでした。

覚えてはないのですが、適当にやって一度だけ上手くいったので
その後ソースをいじってしまい非常に後悔しております。

982 :デフォルトの名無しさん:05/03/16 11:02:55
>>981
jam.php?id=999
をブラウザで開いて、元のJAMファイルと
バイナリレベルで違いを比べれば分かりそうだけど。

983 :971:05/03/16 11:12:33
すんません。できました。
指定した位置にjarがなかったのが原因でした。。。

一応、PHP側のソース載せときます。
<?php
$ref = $_GET['ref'];//ファイル名
$array = file("${ref}");//SJISで保存されたJAMを読み込む。

for($i=0;$i<count($array);$i++)
{
//paramとかネットワーク系の情報を変更したかったらeregiでもしましょう。 
print "$array[$i]";
}
?>

終始電波で申し訳ございませんでした。m(_ _)m

984 :デフォルトの名無しさん:05/03/16 11:15:04
>>982
レスありがとうございます。
もう解決しましたが、ブラウザでアクセスすると
きちっと表示されてたんです。
なのに何故?と思っていたら、jarがありませんでした。
お手数かけました。ごめんなさい。

985 :デフォルトの名無しさん:05/03/16 12:34:14
パネルクラスでIApplication型の変数を使ってgetSourthURL関数を呼ぶとエラーになるのですがなぜでしょう?
ソース的には以下のような感じです。
class A extends Panel {
IApplication IApp;
String URL=IApp.getSourthURL()+"xxx.cgi";
}

986 :デフォルトの名無しさん:05/03/16 12:40:59
エラーって一言で言われてもねぇ…

987 :デフォルトの名無しさん:05/03/16 12:41:29
getSourceURL()じゃねえの

988 :デフォルトの名無しさん:05/03/16 12:56:12
>>987
あー間違えました。
985のソースのgetSourthURL()の部分はgetSourceURL()です。

989 :デフォルトの名無しさん:05/03/16 13:01:30
>>981
data="jam.php?id=999"
ってとこみると、jam.phpというファイル名だと思うけど、
"xxx.jam"みたいな名前にして
.htaccessでサフィックスjamをserver parsedに設定しといたほうが
より安心できないか?

990 :デフォルトの名無しさん:05/03/16 13:04:32
>>985
IAppが空じゃん

IApplication IApp = IApplication.getCurrentApp();
String URL = IApp.getSourceURL()+"xxx.cgi";

991 :デフォルトの名無しさん:05/03/16 13:15:11
新スレ立ててきた

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

992 :デフォルトの名無しさん:05/03/16 13:33:21
>>990
ありがとうございます。
getCurrentAppしないと駄目なんですね。
でも何故かgetCurrentAppをしていなくても
エミュレーターや一部の実機では動いたりしました。
なんで動いたんだろう??

993 :デフォルトの名無しさん:05/03/16 17:01:34
くそー
Invalid constant pool entry 吐きやがった
double や float などを使ってたり、クラスが壊れてたりしたら出るってどこかに書いてあったが
doubleとか使ってないし、何度もビルドしてるからクラスが壊れてることもないと思うんだが……

double float 以外に、Invalid constant pool entry を吐く変数型とかってある?

994 :デフォルトの名無しさん:05/03/16 17:46:10
とりあえずググれ
きちんと対処法と、まず試してみるべき行動がきちんとひっかかるじゃないか。

995 :埋め:05/03/16 21:53:33
次スレ
http://pc5.2ch.net/test/read.cgi/tech/1110946222/

996 :埋め:05/03/16 21:55:04
.

997 :埋め:05/03/16 22:05:19
.

998 :埋め:05/03/16 22:11:45
.

999 :埋め:05/03/16 22:14:07
次スレ
http://pc5.2ch.net/test/read.cgi/tech/1110946222/

1000 :埋め:05/03/16 22:25:12
1000げっとずさ

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

275 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)