iモード携帯電話用Java(iアプリ) Part 8
昨日パレット系の話してたものです。 SH700iのカラーが独自仕様でした!
RGBXのX部のbitが全て立ってました。 他の携帯は全て倒れてました。 黒が SH700i -> 0xFF000000 その他 -> 0x00000000
カメラで取った画像をサーバーに送りたく、 あちらこちらのサイトを参考に、通信するプログラムを組んでみました。 文字列をサーバーにPOST で送り、それをレスポンスとして表示し、 受け取るところまで成功しました。 ところが、スクラッチパッドに保存している写真データを読みながら、 OutputStream out = con.openOutputStream(); でつくったオブジェクトに 書き込んだところ、全然送信できていません。 printlnで見たところ、InputStream#public int read(byte[] b)で 戻り値の合計がスクラッチパッド分ありましたので、読めてはいるようです。 サーバー側のログをみるとアクセスはしていて、またアプリ側もアクセスした レスポンスを表示しているので通信エラーでも無いようです。 そこで、OutputStreamに何が書き込まれているか知りたいのですが、可能でしょうか? また、初心者が陥りやすそうな罠などあれば教えてください。 ちなみに、そのスクラッチパッドのデータを読み込んでから、 また、スクラッチパッドに書き込み、 MediaManagerで表示することは出来るので、スクラッチパッドには誤りが無いようです。
>>7 確かSHはsetColor(0)が黒じゃなくて透明(つーか無意味)なんだよね
その辺が影響してるのかも
上位8bitが立ってないと透明になると思われ。
>>9 ちゃんと送れてないか受け取れてないんだろ
似たようなのが前スレにあったが‥
URLエンコしてるなら
con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
してないなら
con.setRequestProperty("Content-Type","application/octet-stream");
どう受け取るかは鯖のプログラム次第だからなんとも言えん
>>12 Content-Typeって、
text/plain と
application/x-www-form-urlencoded
しか指定できないんじゃなかったっけ?
PalettedImageって、getPixelsすらできないのね(つД`) 特定の座標の色が、パレットの何番目の色なのかすらわからない。 Windowsにおける256色ゲームの半透明のように、パレット同士のかけあわせを テーブルで持とうと思ったのに、ダメぽ
>>8 2004年秋モデル以降はできるんじゃないの?
つかAPIにもあるし
>>12 レスどうもっす。
application/octet-streamにしてみましたが駄目でした。
現在わかっているのは、
img=[スクラッチパドから読み込んだデータ]をバイトに変換して書き込んでいます。
これだと、サーバー側にはなにも送られていません。ところが、
img=[適当な文字列]だときっちり送信できるのです。
上記を踏まえて、スクラッチパッドが怪しいと思い、
スクラッチパッドを読み込んでメモリ上のバッファに保存後、
再度書き込み、そして表示させる。
という処理をいれたところ、データの表示自体は上手くいきました。
陥りそうな罠がわかりません。
送られてこないのはどうやって確認したのさ 送られてるんだけど受け取り方が間違ってて受け取れてないだけじゃないの?
Graphics2の実装状況なのですが、 D900iが積んでないことは確認しました。(DQとFFが作れなかった原因とも聞いています) D901iは実装されているのでしょうか? お分かりになる方いらっしゃいましたら、お願いいたします。 4.0での拡張命令実装表がまだ公式に無いもので…。
>>17 レスどうもです。
文字列を送ったときに表示されているんだらから
サーバー側に非はないと勝手に思い込んでいました。
実験したところ、
img=aaa\0\0bbb
なんてものを送信したら、ご推察の通りaaaしかPOSTデータで取得できませんでした。
解決には至ってませんが、糸口が見つかりました。
ありがとうございます。
setCurrentでPanelクラスとCanvasクラスを切り替えているんですが Canvas>Panel>Canvasと切り替えたところで Canvasクラスの中のprocessEventが反応しなくなってしまいました。 こういった場合まず何を疑えばいいのでしょうか? Canvasクラス Graphics(){} exe() { ボタン押されたらsetCurrent(new Panelクラス()) } processEvent(){ キー値受け取り } Panelクラス softKeyReleased(){ ボタン押されたらsetCurrent(new Canvasクラス()) } クラスの構造はこんな感じです。
>反応しなくなっていまいました 何が反応しないのか。 paintすらこないのか? それともキーイベントがこないのか。 RESUMEイベントすらこないのか? 画面はどうなっているのか。 そして何故新しいキャンバスをわざわざ作っているのか。 書かなければならないことはこんなにもある。我々はエスパーではない。 それでも一応推測しよう。 おそらくsoftKeyが効かないのか? それを「processEventがこない」と勘違いしてるのではないか? panel.setSoftKeyListener(null); をしてないだろう? それではいつまでもpanel側にソフトキーのイベント受信権を奪われたままだ。
>>22 そもそも
setCurrent(new Canvas())
って、ボタン押毎に新インスタンス作ってどーすんの?
というわけで、疑うべきはアンタのJava理解度ですから!残念!
切り替えはメイン(IApplicationとか)でPanelとCanvasインスタンス作って
PanelにはCanvas、CanvasにはPanel、のインスタンスを教えてやり
切り替えは PanelではsetCurrent(Canvasのインスタンス) とかやれ。斬り!
最近エスパー頼みの質問が多いな。 そういうのは板違いだから超能力板でやっておくれw
>>23 ありがとうございます。
反応しないというのはキーを押してもprocessEventの中の
getKeypadStateがキー値を受け取ってくれなかったいうことです。
そのためソフトキーを押しても反応が無くて困ってました。
画面はCanvas>Panel>Canvasと切り替わっています。
うまく伝えられなくてすいません。
>panel.setSoftKeyListener(null);
これやってませんでした。
早速試してみたいと思います。
ありがとうございました。
>>22 http://www.ne.jp/asahi/hishidama/home/tech/iappli/iappli.html ココを見て真似て書いてみたんですが
ボタンを押すたびにインスタンスを作ってはいけないのですね。
アンカー間違えました。
>>22 ではなく
>>24 です。
JAVAの理解度と言われると正直何も分かってないに等しいです。
それで早速試してみたんですけどエミュレータが起動するところで固まってしまいました。
画面は起動時の緑色の画面のままです。
電源ボタンすら無反応なのでAlt+F4で終了しました。
IApplicationクラス{
コンストラクタ{
Canvas c=new Canvas()
Panel p=new Panel()
}
start(){
setCurrent(c)
}
}
Canvasクラス{
コンストラクタ{
Panel pa=new Panel()
}
}
Panelクラス{
コンストラクタ{
Canvas ca=new Canvas()
}
}
エミュでは起こらないのですが 端末では画像を取り込んだ場合(ImageStore.selectEntry();使用時) エラーが起こる場合があるんですが、取り込むファイルサイズがある一定のサイズを超えたらエラーが起こるような感じです。 どなたかその一定サイズをご存知の方はおられないでしょうか? よろしくおねがいします。
>>28 どの端末かくらい言え・・。全部なのか、一部なのか。
少なくとも起きてる機種くらい言え。
割り込みスマソ スクラッチパッドからイメージを取得していますが、lengthが効いていません。 1324バイトのGIF画像なんですが、210とか5437とか指定しても1324バイトぽっきり読み込みます。画像もちゃんと表示されます。lengthは付けても意味はないのですか?DoJa3.5です。
>>26 ソース丸々有るならいっそ丸写しでやってみんさい。
それでダメならそのソースの作者にでも聞いてみれ。こっち振るな。
そのサイトでも、最初の方(一番簡単な)では setCurrent(new〜) じゃないろ?
何で後半そうなったかは知らんけど・・。彼もまた勉強中ってことかいな。
で
オイラ実はMIDP専門でiアプリ初めて触ってみたんだけど
ttp://up.isp.2ch.net/up/461cc9c15e42.lzh で動いた。でも26のままでも一応動いてた。アリ?エミュ(4.0)だから?
ンマー、とりあえずこれで試してみて。あとは自習で。
>>31 意味無いわけがあるかー!ウソテッククイズかよ!
多分、書き方が悪いか端末が悪いかのどっちかだろ。
とりあえず、イメージ取得する部分のソースと機種名書いてみそ。
orz もうね、実機でバグって言ってるのに実機名書かない奴とかわけわかんない
>>30 実際何がやりたいのかすら判らんが、
その呼び出そうとしてる画像は通常の画像なのか?
再配布不可識別子が不可に設定されてれば
アクセスした時に弾かれる。
selectEntryの時にサイズうんぬんは関係ないはず。
出してくる例外をキャッチしてトレースしてみろ。
再配布不可能の設定をアプリで変更して
配布可能にしようとか考えてるんじゃないだろうな?
イメージ取り出して使うときにはサイズは機種依存。
3.0以降なら240*240に抑えておくべき。
質問するときの注意 ・エラーが起きたのなら、エラー内容くらい書け。NullPointerExceptionとかそういうやつだ ・実機でバグというのなら、その実機名くらい書け ・回答者はお前じゃない。詳しく書かなきゃわからない ・可能ならばソースをコピペしろ
>>32 すみません,今210にしたらcom.nttdocomo.ui.UIException
でした
mdaImg = MediaManager.getImage("scratchpad:///0;pos=" + SP_IMG + ",length=5437");
N900i,N503iです
37 :
↑31 :05/03/18 16:25:35
でした,書き忘れてました
>>34 >その呼び出そうとしてる画像は通常の画像なのか?
通常の画像です。
ネットで探してきた画像は読めるのですが、
カメラで撮影した画像は読めないみたいです。
やはり240×240を超えたらだめなんでしょうか?
>>27 まさに何も分かってない。
エミュレータで行き当たりばったりに試す前にまずJavaやMIDPの参考書、
Java解説サイトなりを読んで理解度を高めるのが先。質問はそれからにしな。
>>36 実際のサイズより小さい数ならともかく、大きかったら意味無い希ガス。
んで、小さい数(210)にしたらエラー(210Bではファイルが成立しない)。
うん、当たり前の結果じゃないかな?違うかい?
>>38 そのソース全部でなくていいからImageStoreクラス使ってる
関連性のある部分だけ提示して、どの部分でエラーが返ってるのか
ぐらいは教えてくれ・・・手間過ぎる。
イメージ取得で落ちてるのか、オブジェクト取得で落ちてるのかすら判らん。
ちなみにiアプリで使える画像サイズは色々ありすぎて一言では言えん。
N901iCなら320*320以上の画像は扱えないはずだし
画像サイズが320*320以下でもファイルサイズ制限もある。
表示してるキャンバスの画面サイズに依存する機種もあれば
メモリの空き次第でいくらでも使える機種、
もとから1500*1500を超えるようなデカイ画像を扱える機種
縦と横のサイズではなく面積で決まる機種など千差万別。
どれでも動かしたいならキャンバス画面サイズ
以上の画像を扱わないが吉。
>>31 lengthの意味を勘違いしてないか?
lengthで指定した範囲を読むと宣言するだけで
実際に読んでるわけじゃない。
この宣言ってのが機種によって解釈が違うかもしれないが根本的には
「その範囲を読み込むのに必要なメモリを確保する」ってことだろ?
つまり大きい値をしてしてもその範囲を読んでるわけだから関係ない。
たんなるメモリの無駄遣いにしかならん。
もし小さい値を指定しても読めるならメモリを細かくやりくりしてる
かも知れないし、単純にエラー出すかもしれない。
どっちにしろ、値はわかってるなら正確に入れろってことだ。
ちなみにN503iはDoJa3.5じゃない。
個人的に3.0以降でしかlength使ってないが・・・それ以前に効果はあるのだろうか??
>>32 わざわざソースまで用意して頂きありがとうございます。
参考にさせて頂きます。
void check(){ Dialog dialog = new Dialog(Dialog.DIALOG_YESNO, "確認"); dialog.setBackground(4); dialog.setText("〜〜〜 ダイアログの背景色が,どんな値を指定しても黒になってしまいます。なにがおかしいんでしょうか??
>>44 4だと「ほぼ黒」だと思うけど。
0xffffff
だと白になります?
>>44 色をしめすintの中身は機種依存。
きちんとGraphics.getColorOfRGB(r, g, b)しる
>>45 出来ました!色指定について大きな勘違いをしていました,ありがとうございました
>>23 > panel.setSoftKeyListener(null);
> をしてないだろう?
> それではいつまでもpanel側にソフトキーのイベント受信権を奪われたままだ。
そんな馬鹿な。
ソフトキーもカレントのフレームにイベントが飛ぶはず。
それともそんな腐った機種があるの?
>>48 が後に
「実機でなぜかフリーズして困っています」、という質問をしてくる
に100Kバイト
>>41 ご丁寧にありがとうございます。
ソースは以下の通りです。
ImageStore w_imagestore = ImageStore.selectEntry();
int w_id = w_imagestore.getId();
w_in=w_imagestore.getInputStream();
w_out=Connector.openOutputStream("scratchpad:///0;pos="+spsize);
w_data=new byte[128];
while((w_length=w_in.read(w_data))!=-1){w_out.write(w_data,0,w_length);}
w_in.close();
w_out.close();
90X専用なんで、大丈夫ですよ
確認して味噌 間違いなく駄目な機種がある
>>51 何か、少し前に、このw_をprefixに付けてるソースを見たことがあるなw
>>57 すみませんが、どういう意味ですか?
Graphics.getColorOfRGBで指定するのは間違っているんでしょうか?
60 :
デフォルトの名無しさん :05/03/19 13:51:24
エミュレータでスクラッチパッド以外のファイルを出力する方法はありませんか〜〜
HTTPサーバーにPOSTしてファイル作ってもらえばいいんじゃない?
通りすがりだが
>>48 が全ての発端だな。
「それでも出来る」んじゃない。そうしなきゃだめなんだ。
まぁ
この件はこれで終わりな。よいこたち。
>>62 すみません某サイトでその理由が書いてありました
お騒がせしました
>>63 某サイトってどこだよ?
その理由ってなんだよ?
自分が嵌って聞きに来たんだから、何がいけなくてどうやって解決したのか、
サマリぐらいはここに書くのが礼儀ってもんだ。
引っ張るほどじゃないし放置でいいから ↓次の質問ドゾー
>>63 お願いだから、情報をもってくだけじゃなくて出していってくれ。
そんな細かいことまで書いてある「某サイト」のURLという情報をもってるんじゃないか…
教えてくださいと素直に言えw
一般的に言えば書いた方がいいだろうけど 今回のようにリファレンス読めばわかるような 常識的なことをわざわざ書かれてもねェ…。
あれだ、 情報書いてくれというのは 「教えてください」じゃなくて 「礼儀をしれ」という意味だ はずかしいっ!(おすぎ調)
505以上の機種は複数のスクラッチパッドにアクセスできるんですか?
>>70 論理的にひとつのスクラッチパッドを分割できるだけです。
ディスクをパーティションに分けるのと似ている。
スクラッチパッドに関する質問があります。 Doja3.5で最大409600バイトのスクラッチパッドにアクセスする場合、 全部をひとつのスクラッチパッドにする事はできるのですか? それとも例えば ひとつのスクラッチパッドの上限は256K、とかいう風に決まっているのでしょうか つまり400Kバイトをフルに使いたい場合 スクラッチパッドは分割して複数持たなきゃいけないのでしょうか?
開発者ガイドのP117に書いてある。 よく読め。
MediaSound ms = MediaManager.getSound("URI"); として音楽を取得していますが,音楽は複数ファイルあるので,msを配列にして扱いたいのですが, MediaSound[] ms これは明らかにおかしいですよね。どうすれば良いのでしょうか。
勘違いしていました,MediaSoundはインスタンスが生成できるんでした MediaSound ms[] = new MediaSound[20];
>>75 それは配列のインスタンスを生成しているだけで、MediaSoundインスタンスを生成してるわけじゃない。
まあ、結論としては、
>>75 で配列を初期化した後に、
forループで複数回MediaManager.getSound()すればいいんだけどね。
77 :
74 :2005/03/21(月) 10:06:35
>>76 JAVA自体の理解が間違っていました。ありがとうございました。
すみませんがもう一つ質問です。こうするとConnectionException Unexpected I/O connectionになってしまいます。
ms[0] = MediaManager.getSound("resource:///01.mld");
try {
ms[0].use();
} catch(IOException) {
コンパイル時にresフォルダに01.mldがあり、単体でうpしても正しく再生できます。何か考えられる原因はありますか?
AudioPresenter[] music = new AudioPresenter[20]; for(i=20;i>=0;i--){ music[i]= AudioPresenter.getAudioPresenter(); MediaSound ms = MediaManager.getSound("resource:///"+i+".mld"); ms.use(); music[i].setSound(ms); } こうじゃないの? MediaSoundを配列にする意味ってあるのかな
>>78 動くならそれでもいいかもね
試してないだろw
80 :
74 :2005/03/21(月) 19:00:34
やはりms.use()で同じエラーが出てしまいました
81 :
74 :2005/03/21(月) 19:27:59
すみません解決しました ファイル名をSystem.out.printlnするとresource:///01.mld.mldとなっていました
82 :
デフォルトの名無しさん :2005/03/23(水) 00:20:32
初心者質問ですみません。 iアプリを作りたくて、JAVAを始めたものです。 いま使っているバージョンが1.4なのですが、 iアプリ開発キットに対応した1.3を 混在させても大丈夫でしょうか? それとも1.4を削除して新たに入れたほうがいいのでしょうか。
83 :
デフォルトの名無しさん :2005/03/23(水) 00:25:42
>>82 1.4でOK
または、
javac -target 1.3
>>83 レスありがとうございます。
さっそくやってみます。
しばらく書き込めなかったぞっと。板のURLかわっとるし・・・。
>>51 >>41 でソース表示して〜と書いてあるが、
どこでエラーがでるのか?とも聞いてるだろ?
実機でのトレース情報の表示の仕方がわからないとか?
ソース抜粋してるだけで実際やってるか判らないが
ざっと見た感じまずはw_imagestoreの中身がnullかどうか調べる必要性がある。
なぜか使っていないIDを取得してる。
イメージ取り出しをしてないから画像の大きさでんでんは関係なさそうな気がする。
読み込みつつ書き込みしてる部分はtry〜catchすべき。
とか気になったがどこでエラーでるか判らないと話しにならん。
実機でのトレースはADFのAppTraceの項目をonにして
怪しいところにprintlnをつかっておくべし。
エラー出たあと、実機にてどこかでその出力した文字列見れるから探してみなさい。
e.toString()などエラーをキャッチして出力するようにすればなおよし。
ちょっとお聞きしたいんですが、Tickerで表示できる文字列の長さって機種依存とかあります? エミュで表示できても携帯だと切れちゃったりするんで・・・。
Tickerってのが何を言いたいのかわからんが、 drawStringで描ける文字列の長さにはN機種で制限がある。
すんません、Panel型なんでcom.nttdocomo.uiのTickerクラスです。 String strにだいたい40文字くらい入れてTicker.setText(str)で表示しても 途中で切れちゃうんで困ってました。 TextBoxなら大丈夫なんだけど場所食って仕方がない・・・。
あー、そんなクラスあったんだー…。 とりあえず切れちゃったという実機をあげてみ。
N505iです。30文字くらいから切れてる感じです。
Nだからじゃねーかなー…。 あー。確かdrawStringの制限が、372ドットだっけ? 全角で31文字までだねぇ。 それと同じなんじゃないかな(苦笑
あぁ、それっぽい。31文字は厳しいなぁ。 どうもありがとー。
Labelを自力で書き換えまくるとか。できたっけ? そんな方法しかないと思われ。 NのPanelが、drawStringを使いまわしてしかも欠点を放置してるってのが丸分かりな自称でしたね…。 Canvasで使う自作テロップでは、Stringを30文字ずつくらいで自動分割 してくれるように作ったよ。あほくさかった…。
つFont#getLineBreak()
とりあえず全角カタカナを半角カタカナに変換してなんとか収まりました。 初アプリなんでとりあえずPanel型から始めてみました。 Canvas型も勉強しないとなぁ。
>>93 901系は、ほぼ全機種Labelの書き換えが遅い。504で問題なかったコードが901に載せた
とたんに遅くなった。
LabelをPanel上にずらっと並べてsetText()すると、1つ書き換えるごとにページ全体を
書き直してるっぽい動作をする。
なんか、仕様の統一でもあったっけ?
eclipseを使って開発したいのですが、 ユーザーズガイドにしたがってサンプルを入力して ビルドして実行しようとすると com.nttdocomo.eclipse.DoJaBuildExeption: Fail to create というエラーがでて実行できません。 なにかポイントとかあったら教えていただけないでしょうか。 環境は、 DoJa4.0 eclipse2.1.2 J2SE v1.4.2_07 SDK です。
J2SE SDKのbinディレクトリにパスを通してみてちょ。
100 :
デフォルトの名無しさん :2005/03/23(水) 23:54:33
iアプリでサウンドを作曲したいのですが、必要なツールなど詳しい方、 お薦めツールなど教えてくださいm(__)m
普通に着メロ作るのと同じだからそっち系のサイトとかスレを探したほうがいいよ
保守しとくか
103 :
98 :2005/03/24(木) 11:54:52
>>99 パスを設定してみましたが状況は変わりませんでした。
もしかして、eclipseの中で設定する項目があるのでしょうか?
よかったら教えていただけるとありがたいです。
iαppliTool for Doja-4.0の方ではビルド、起動ともにできるのですが・・・
ユーザーズガイドにしたがってやってるだけなので、
どこかに見落としとかがあるのかと思いますが見当がつかない状態です。
見落としやすいポイント、嵌りやすいポイント等あれば教えていただけますでしょうか。
104 :
デフォルトの名無しさん :2005/03/24(木) 12:19:23
中途半派なやつに限ってエラソーに言う。
106 :
デフォルトの名無しさん :2005/03/24(木) 14:25:50
>101さん 100です ありがとうございます。チャクメロで調べてみます。
質問があります 配列を適当に並べ替えるにはどうすれば良いですか? 調べてみて、Java.util.ArrayListとJava.util.Randomを使って配列の要素を適当に抜いていく方法を考えたのですが、どうも携帯Java(J2ME?)では「シンボルを解決できません」になるので…
…ランダムなんか、ネットにころがってるiアプリのコードにいくらでも載ってると思うが…
>>107 Randomr = new Random();
int n = r.nextInt();
で好きなだけランダムにどぞー。
質問です。
F900iでアプリを動作させていたところ、唐突に画面がスローモーションになり、なかなか治らなくなってしまうという現象がおきました。
その後スローモーションな中アプリを動作させつづけ、
画像の解放と読み込みを大量に行ったところ元に戻りました。
また、強制終了キーを押してダイアログを出し、Noを選んで続行するという行為でも戻るようです。
原因が何か思い当たるかたいらっしゃいませんでしょうか?
スローになる原因としては、タイマーかなと思ったのですが
System.currentTimeMillis() で前フレームとの時間の差を調べ、100ms以上なら新しい描画へ進むとやっているだけのため、
時計が狂ったとはちょっと考えづらいです。
110 :
107 :2005/03/24(木) 16:41:39
>>108 大きい順・小さい順に並べ替えるものなら見つかるのですが…
>>109 言い忘れていました。
重複してはいけないのです。すみません。
111 :
107 :2005/03/24(木) 16:58:01
説明不足でした。 int[] hoge = {1, 2, 3, 4, 5, …}という1から500までの要素数500の配列があって、これを{102, 398, 23, 447, 163, …}というように並べ替えint[] mogeに代入したいのです。 r.nextInt() を2回使って要素を入れ替えていく方法を考えたのですが、実際に1000回それをやってみると、入れ替わらなかった要素がたくさんできてしまいました
おいおい。そこまで聞くんかい。 そりゃiモードスレで聞く質問じゃないだろ。アルゴリズムスレにでも行って怒られてきなさい。
>>111 > 入れ替わらなかった要素がたくさんできてしまいました
入れ替わらなかった理由は考えたのか?
>>111 悪い手本だけしめしておいてやる。
悪いことは言わないからこの手の質問は別でやれ。
int hoge[] = new int[500];
int moge[] = new int[500];
int i,j,z;
for(i = 0;i < 500;i++)
hoge[i] = i+1;
for(i = 0;i < 1000;i++){
j = (java.lang.Math.abs(ran.nextInt())) % 500;
z = hoge[j];
hoge[j] = hoge[(i%40)];
hoge[(i%40)] = z;}
for(i = 0;i < 500;i++)
moge[i] = hoge[i];
…正直これくらい自力でできないようじゃプログラミングは厳しいと思うんだけど…
>>114 まちがった。
%40と書いてるところは%500な
>>115 禿同
どうせ同じような質問を繰り返すに違いない
…ちと厳しすぎたかな? まぁこういうのはパズルだと思って楽しんでやることだ。慣れもあるしね。
>>109 タイマーが遅くなるってのは確かに考えにくいな。システム時間を返すものだし。
実際他の機種あればそれらでもなるのか試して欲しいところだけど。
時間関係で狂うとすれば前フレームの時間を格納してる値が途中で変更されるくらいか。
思いつくのはメモリ関係だろうかね、やっぱ。
適度にgc()かましてみると改善されるやも知れない。
でもまぁgc()かますと処理落ちも考えねばならんが。
あと思いつくのは・・・並立して処理させてるスレッドがあるなら
その部分でやたら重いことやってるとか・・。
121 :
109 :2005/03/24(木) 17:39:11
>>118 ゲームが進んでく中で、ちょびっとの画像解放と取得は行っており、
そこでGCは行っているのです。が、直りません。
109に書いたとおり、大量の読み書き(+GC)が行われると直るようなのですが…。
gcは実機の実装の仕方が機種毎で違うとは思いますが、
一回GCかけるだけではお掃除が終わらず、2回3回かけなきゃならんということはあるのでしょうか…。
122 :
109 :2005/03/24(木) 17:42:37
>>120 D900、N900、P900ではとりあえず起こらないようです。
gcはまったくやっていないわけではないのですが、gcを行う場所を経過してもスローが直りません。
別スレッドはありませんし、processEventではキー情報を見てるくらいで軽いです。
一番あやしいのはずっと裏で鳴らしているBGMかもしれません。
なり終わったらStopし、再度最初から鳴らすことでBGMとしています。
123 :
111 :2005/03/24(木) 17:49:14
レスありがとうございます
>>112 スレ違いでした、失礼しました
>>113 はい、取ってきた2つの乱数が偶然同じ時、添え字がどの乱数にも出ない時だと思います
>>114 ありがとうございます。i%50で、hoge[50]〜[499]までが入れ替わらないのが駄目なのでしょうか
>>115 >>117 プログラミングを辞めろということですか?そのつもりはありません。
これくらい自力でとかないと、コピペしかできないプログラマーになっちゃうよ。 と心配してるんだよ。
ん〜メモリが原因ってのはあってると思うんだが…正直、gcあんまりしなくていいアプリばっか作ってるからよくわからん;
>>123 ごめ・・114だけど言ってる意味が判らない。
君のソースを見たわけじゃないからi%50が〜って言われてても判りません。
ちなみにi%40ってのは間違いだって
>>116 にて訂正してるからね。
他の連中が君にプログラムやめろと言ってるのではなく
乱数や配列の操作はプログラムの基本中の基本。いわば掛け算の九九のようなもの。
そこがわからないと質問してるのだからもうちょっと基本部分から勉強しなさい
と言いたいわけ。質問する事は悪くないがもう少し自分で考えてみれば
判る部分だって事なのよ。
アドバイスとしてはプログラムが思い通りにならない場合、出来る限り
自分の手で配列要素がどう変化するのか紙の上で書いてみなさい。
500とかでなくていいから10とか小さい単位で。
実際にどう変化してるのか自分の手でやってみる、これトレースといって基本だから。
>>123 にて君は「添え字がどの乱数にも出ない時だと思います」という答えを出してる。
そこから考えを発展させれないならプログラマとしてはかなり厳しいよってこと。
全部の要素を最低でも1回は計算の対象にしたいなら計算に用いる2つの要素を
総てランダムでやるとダメ。なら片方はランダムじゃない数値を使えば・・っと発展させる。
>>122 むむむ・・・他の機種、しかもメモリが厳しい機種で問題なしときてるか・・。
BGM部分のプログラムは予想だけど問題なさそう。
多分、コンプリートイベント受け取ったら再生しなおすだけしかしてないっしょ。
気になるならMLDファイルを変更してみたり、完全に再生とめたりしてみることかな。
処理全体は遅くなってしまうが、デバックとしてフリーメモリを計測して画面上に常に
表示してみると遅くなったタイミングとあわせてメモリが原因かわかるかも。
でも断片化率はわからないから・・・見当はずれかも知れないな・・。
言ってる通りgcの動作内容は機種によって違うらしいな。詳しくないけど。
解放と確保を細かくやってる以上断片化は避けれないだろうけど・・・。
129 :
109 :2005/03/24(木) 18:56:14
>>128 おっしゃるとおり、BGMの処理はコンプリしたら再生しなおすだけです。
今日もこれからそれについてもっと調べないと…。
何かわかるかたがいらっしゃったら、アドバイスお願いいたします。
130 :
111 :2005/03/24(木) 19:33:23
>>124 誤解してすみませんc
>>127 成る程!ほぼ入れ替えることが出来ました!
実は、PerlとPHPを初めて半年で,配列の操作も関数で簡単にやってました。Javaは3週間しかしておらず、オブジェクト指向でう〜ん?という状態で、配列のことは頭にありませんでした。
良い話を聞けました。本当にありがとうございました。
131 :
98 :2005/03/25(金) 11:06:34
>>99 再起動したらうまくいきました、パスの更新がされてなかったみたいです。orz
ありがとうございました。
アプリを製作して公開したんですが、 SH900iのユーザーの方からダウンロードしたアプリが携帯のデータフォルダから削除できないとの報告がいっぱい来てしまいました。 削除しようとすると「削除できませんでした」とエラーが出るようです。 これはかなり致命的なバグだと思うのですが、みなさんこのような報告を受けたことありますか?
>>132 ない。
だがSH900はシステムのバージョンアップしてないならするように言ってみれ。
ファイル名とかADF内とかに特殊な文字とかあるのかもなぁ、そんなんじゃないだろうが。
>>132 逆に、SH900iでダウンロードできないっていう苦情が時々来る。
アプリケーションマネージャがクズクズっぽいね・・・orz
>>132 しかし、アプリ製作者に非は無いと思うな。
その苦情はメーカーだろう。
他の機種では動くのにSHだけ動かないとかしょっちゅうある。 ダウンロードできないって報告もかなりあった・・・
>>132 削除できないって苦情来た事あるよ。
アプリの名前に特定の文字が含まれていると、
削除もバージョンアップもできなくなるバグがあるらしい。
SH900iで再現確認した。
>>137 再現できたなら特定文字教えてホシイ
つか、削除できないって嫌がらせだな
SH900iでのjamの特定文字不具合については過去ログで詳しく報告が出てる
\(0x5C)を含むアプリ名が怪しいらしい 昔のスレで出てたのは「ゴルフスコア表」だとダウンロード出来ないという不具合 法則性が見つかりかけたけど、その後例外が見つかったんでまだ未確定だったと思う 差し支えなければアプリ名を教えてホスイ‥
141 :
137 :2005/03/26(土) 06:47:28
バグを踏んだアプリは AppName=藪の中 だった。 どの文字が駄目なのかまでは調べてない。
apre[i] = AudioPresenter.getAudioPresenter()でBGMとSEを再生していましたが、エミュではapre[0].play(); apre[1].play();としても両方再生されましたが、実記(N900iS)ではapre[0]がstopしてしまいました。 apre[i] = AudioPresenter.getAudioPresenter(isSoundEffect(i) ? 1 : 0) //SEはポート番号を1に,BGMは0に でポートを分けたところ、音質が激しく劣化し、,音割れまでしてしまいました。エミュでは普通に再生されました。 APIレファレンスのAudioPresenterの項目を見ると2つまでは同時再生できるようですが、どうしてこうなってしまったのですか?
>>142 Nでは、複数同時再生させるためにはmldデータ(というか元のMIDIデータ)が
制限事項を守っている必要がある。
詳しくはMFiToolsのNプラグインのマニュアルを読め。
mldはコンバートすりゃいいってもんじゃないからな。 ちゃんと考えてデータを作りなさい
145 :
142 :2005/03/26(土) 22:21:38
すみませんが、MFiToolsとは何ですか? ググりましたが、公式ツールというのは分かりましたが本体は出ませんでしたorz
>>145 コンテンツ・プロバイダやメーカーに配布されている
メロディーファイルの作成・編集ツールだったと思うが。
普通の人は入手できません。
複数のポートを使う時、FM音源のNに限ってはPsmPlayerではうまくいかないようですね。
>>146 落としてきました。N専用ツールがあったんですね。ありがとうございます。知りませんでした。
for Mfi/Phraseというのが見つからず今探しています
とりあえず、MIDIファイルを読み込んでmldで吐いてみましたが、中の人が何か操作しているようで、曲によっては(音割れはしませんが)元のMIDIとは違うものになってしまいました。自作の単純なものではたいした差はないのですが…
>>147 そうでしたか(´・ω・`)残念です。
iモーションのストリーム再生じゃない?
151 :
142 :2005/03/28(月) 10:50:21
APIリファレンスを見ていると、com.nttdocomo.opt.ui.AudioPresenter2の中に
setAttribute(AudioPresenter2.TRACK_ASSIGNMENT , 〜〜〜)
というのがあり、,N900は対応していたので使ってみたところ、
com.nttdocomo.ui.UIException
: Unknown media sound format が出てしまいました。
音声ファイル自体は今まで使っていたもの、
>>146 さんに教えていただいたソフトからコンバートしたもの、両方を試してみましたが駄目でした。MIDIファイル自体を使っても同じでした。
何が原因なのですか?
質問失礼します。 自作のiアプリで個人的なメモ帳と言うか収支表のような物を作っていて 使っているのですがスクラッチパッドにセーブしている容量は11,904byte。 約12kbあるわけですがコイツをアプリ以外の場所に格納する方法は無いでしょうか? やりたい事は、機種交換の際いままで記録したデータをなんとかして 新しい機種へ移行させたいと言う事なんです。 今までの入力を全部メモって手打ちでやり直す方法もありますが・・・。 かなり過去に方法は書かれていませんがJPEGなどに偽装して SDなどに記録する、もしくは呼び出すとかいう話題があったので そういった方法のやり方、もしくはサイトなど知ってる方居ませんでしょうか?
>>152 ネットワーク経由でどっかに書き出すのがいいんじゃないか?
バージョンアップならスクラッチパッドは消えないし。
サーバ側は、POSTで受けたデータをファイルに吐き出すスクリプトを
phpかなんかで書けばいいし。
>>153 やっぱりそうなっちゃいますかねぇ。
情けない話、CGIやPHPなどサーバー上で動くプログラムの
自作の経験は皆無でして…少々自信が無かったわけです^^;
とりあえずはPHPを勉強すべきみたいですね。
>>142 MIDI(SMF)で使用するチャンネルを、1〜8に制限しないとだめ。
ふつうはドラムが10番に割り当てられているので、どっか他のチャンネルを
ドラムにするなどの工夫がいる。
156 :
142 :2005/03/28(月) 13:01:51
>>155 なるほどそうでしたか…
実は、1〜18までフルに使っていました
なんとか丸め込むことにします。ありがとうございました
>>154 コピペする方法もありますよ。
コピーして貼りつけ(ペースト) 文字入力画面の、機能とか、メニューとかにあるはず
アプリゲットでアプリ削除できん、糞ゲーって書いてた香具師がいたw 作者ガンガレ
そうだそうだ。 削除できないのは作者のせいじゃないだろう… 作者はがんばれ
500KBフルに使って削除できないバグ?起こせばちょっとしたウイルス気分
>>142 >>155 ちょっと違う。
NのAudioPresenter2は、Phrase形式というMfiToolsじゃないと出力できないファイル専用
146のツールで作った物を使うにはAudioPresenter(port)じゃないとダメ
AudioPresenter2.TRACK_ASSIGNMENTというのは使ったことないけど、
適用できないなら対応しててもデータフォーマットとの組み合わせで使えないと考えるべき
164 :
デフォルトの名無しさん :2005/03/29(火) 15:54:05
質問させてください。 out = Connector.openDataOutputStream("scratchpad:///0;pos=" + clrPos); で、スクラッチパッドの領域を初期化しようとしているのですが、 エミュレーターで動かすとうまくいくのに、実機にiアプリをDLして動かすと、 『ソフトに継続動作できない障害が発生しました』とエラーが出て強制終了します。 ADF設定でAppTraceをonにすると、 message = Uncaught exception happened throwable = com.nttdocomo.ui.UIException throwableMessage = curClass = com/nttdocomo/ui/MediaDataImpl curMethod = use のメッセージが表示されます。 何をどうしたらいいのか分からないのですが、 どういう対処法を行ったらいいか教えてください。
とりあえずエラーメッセージをもう一度間違えずうつしなおしてくれ。
スクラッチパッド領域の初期化で、 何故MediaDataクラスや、useメソッドが出てくるんだ? まったく別なところでエラーが出てる余寒。
167 :
164 :2005/03/29(火) 16:23:07
説明不足で申し訳ないです。
>>165 出てくるエラーメッセージは上記のもので間違いありません。
>>166 このスクラッチパッドの領域初期化を行う前に、やってる処理として
1.iアプリからネットワークに画像を要求
2.サーバで画像生成
3.画像名を携帯に送信
4.画像格納用のスクラッチパッドの領域初期化
5.画像名を先にスクラッチパッドに格納する
6.受信した画像をネットワークから取得してスクラッチパッドに格納
7.スクラッチパッドに格納した画像を取り出して画面に表示する
この1−6の動きをさせようとしているのですが、4のところで上記の現象が起きます。
ちなみに4のを飛ばしても5で同じエラーが出ます。
MediaImageを使ってる?MediaDataだと非対応機種がある あと画像のURIか間違っているか
なんでMediaData"Impl"なんだろう
>>167 MediaDataImpl ってのがなんなのか分からない。絶対エラーメッセージうつしまちがえてる。
そしてこれは
>>166 も言っているように、スクラッチパッド初期化が原因のエラーではない。
君は絶対どこかで不正に use メソッドを呼んでいるはずだ。それが原因。
171 :
164 :2005/03/29(火) 17:30:18
>>168 MediaImageを使用しています。
画像取得先についても間違いはないです。
>>169 curClass = com/nttdocomo/ui/MediaDataImpl
私もなんでいきなりこれが出てくるのかが分からないので、
どこをどうしていいかもわかりません。(><)
>>167 で書いているように、4の処理を飛ばして5の処理をでも同じエラーメッセージです。
5で行っている処理は以下です。
in = Connector.openDataInputStream("scratchpad:///0;pos=" + getPos);
ちなみにエミュレーターiαppli Development Kit for DoJa 3.5で
当方の実機はP900iです。
>>170 DoJaAPIの中(端末ごとの実装部分)で起こってるんでしょ。
とりあえずさー、println入れまくって、例外が発生してる箇所を
絞り込んでくれ
>>164
単純に、closeせずに新たにopenしようとしてるだけじゃねーの
そのバグったアプリを見せて欲しいね。
内部の実装にPimplイディオムを使ってるんだろう>impl
...Implはフレームワーク内で使っているクラスです。
コード書く人が内部の詳細を知る必要はありません。
で、そこでエラーが出てるっていうんだけど、
>>173 が指摘しているように
オブジェクトの内部状態がおかしい希ガス。
スクラッチパッドをcloseし忘れていないか確認した?
多分closeしてないんだろう。 ソースにはclose()と書いてるけどそこに届く前に例外発生して、処理は続行。 その後の処理も例外発生しまくってるけどcatchが空なので何となく先には進めてしまう。 んで、最終的に画像の展開のところまで処理は辿り付いてるけど肝心のデータ内容は空、なんてオチだな。
178 :
164 :2005/03/30(水) 00:29:33
>>172-177 ご教授ありがとうございます。
今、そのあたりを中心にデバッグしてます。
〜ImplはエミュでstackTraceしたときに出てきたような… 4で例外がthrowされてるってどうやって調べたんだ? エクリプス使えばソースコード見ながらトレースできるのかな? よく知らんけど
質問させてください 画面が除々に暗くなるエフェクトを作りたいのですが、過去に3Dで黒いテクスチャを重ねていくという書き込みがあったのを思い出して、Textureのインスタンスを生成したのですが、そこからどうすればよいか分かりません。ヒントをいただけませんか。
いや、そこで止まるなよ。 公式に3Dについてすごく分かりやすく説明したPDFが置いてある。 それコピペで多分ことが済むはず。
>>180 Graphics3D
PrimitiveArray
あたりのドキュメントと、MascotCapsuleのマニュアルを読むといいと思うよ。
>>180 テクスチャでなくていいでしょ、黒のプリミティブで。
というか実際前スレで私も同じ質問して色々やってみたものの、
3Dは機種の速度差が酷く期待した速度は出ない奴もDシリーズなど特に。
早い機種では処理落ちすら感じないほど早いのだが。機種差激しいよ。
ちなみに黒のプリミティブを多数重ねるのではなく
減算処理でプリミティブの色を黒>白へ変化させることで画面効果は同じように出来る。
そして結局バグか仕様なのか判らなかったけど機種によっては画面端が
ポリゴンが表示されず1ドットだけ処理の対象外になってしまうこともあった。
>>184 低レベルの方が早いのは判るけど・・・そんなに変わるかな?
でもまぁ実質ブラックアウト関係は現状の機種では
差が出すぎてるって事を言いたかったんだけどね。
186 :
デフォルトの名無しさん :2005/03/30(水) 17:28:25
iアプリで外部jarを使いたいときは どこに配置するのが正しいのでしょうか? dojaのlibフォルダに配置してみましたが見つからないと でてしまいます
そもそも外部jarつかったアプリって実機で動くのか?
186はiアプリ以外で外部jarを使ったことがあっての発言なのか? それがビルド(コンパイル)時のエラーなら、パスを通す意味を、 実行時ならimportの意味を分かってないと思われ。 長くなるので説明はしないけど、使いたいclassは.javaでsrcに入れとけ。
189 :
186 :2005/03/30(水) 20:45:01
>>188 一応あるんですけどね、Dojaはクラスパス書かずに
動いてるので一般的なJavaプログラムと違うのかと思いまして。
基本的にはJavaでsrcに入れるのが一般的なんすかね
190 :
188 :2005/03/30(水) 21:37:15
>>189 >Dojaはクラスパス書かずに
んなことないだろ。ツールがパス通しててるから気にしなくていいだけだろ。
コンパイラはJ2SEのjava.exeなはずだから、コンパイル時の作業は同じはず。
普通のも携帯も別にsrcじゃなくていい。srcなのは分かりやすいから。あとツールの都合。
あと実行時もやってみりゃ分かると思うけど、
PC向けで外部Jarのクラスimportしたアプリを、外部Jar入ってないPCで実行してみ?
それで動いたら「携帯でも出来るっ」て言ってあげるよ。
191 :
180 :2005/03/30(水) 21:40:42
色々調べてみましたが、公式のサンプルソースがみつかりませんでした。 ちょっと混乱してきたのでとりあえずラスターオペレーションで誤魔化すことにします。 ご教授ありがとうございました。
192 :
デフォルトの名無しさん :2005/03/30(水) 21:57:53
本日DoJa-3.0をインストールしてみたのですが、 javaファイルを作ってビルドボタンをおすと、 javac: ターゲットリリース1.1がデフォルトのソースリリース1.5と競合しています。 javacの実行に失敗しました。 と出て、ビルドができません。 どうしたらビルドができるようになるのでしょうか。 SDKのバージョンは 1.5.0 です。
>189 src に入れるっつーか、 普通にメインのソースと一緒にコンパイルしれ、ってこと。 外部jarを端末に送らんと使えんやろ。 SDKのlibにjar入れても端末にダウンロードするjarには入らん。 >192 ぐぐりやがれ。
194 :
192 :2005/03/31(木) 00:15:50
>>193 ここに質問する前に一応検索はしたのですが、それでもわからなかったのです。
昔のスレにあったが、1.5じゃ動かない
>Jave2 SDK, Standard EditionVersion 1.3.1以外の動作確認はしておりません。
ってあるから1.3.1にしとくのが安心だが
196 名前:デフォルトの名無しさん[sage] 投稿日: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[sage] 投稿日:05/01/09 17:49:15
環境変数 JDK_PATH に、 JDK1.3.1 をインストールしたパスを設定したらいけました!
みなさんアドバイスありがとうございました〜。
>>191 ラスター使うってことはGraphics2かDoJa4.0以降辺りか。
Graphics2なら機種依存多いから気をつけなよ。
どっちにしろ質問時にどの機種を対象とした開発か言っておいたほうが良かったね。
>>186 外部Jarを使う事はできない。
携帯のJAVAは一般のJAVAとは当然違う。
開発ガイドにも書いてあるが最低限のモノしかつんでいない。
普通に考えてライブラリだけのJARを端末に送ることは出来ないし
出来たとしてもそれにアクセスする手段はない。
JARからJARを呼び出して一部利用することは原則として出来なく、
起動の引数を渡して現アプリを終了して新たなアプリを起動することしか出来ない。
公式にある開発ガイドの最初の辺りを一読することをお勧めする。
チラシ(ry 突然「最新版をインスコしてください」とか出てきて勝手にJAVA5がインスコされてしまったorz
198 :
186 :2005/03/31(木) 18:09:53
199 :
192 :2005/03/31(木) 21:01:16
>>195 レスどうもありがとうございました。
昨日自分でいろいろ試してみたのですが、
設定→sun.tools.javac.Mainを使用する
をオンにしてビルドすると、
注: sun.tools.javac.Mainは推奨されません。
とでるもののビルドは成功しました。
「推奨されません」とあると、危険なのではないかと思ってしまうのですが、
大丈夫なのでしょうか?
201 :
デフォルトの名無しさん :2005/03/31(木) 22:54:37
スクラッチパッドに書き込むにおいて 今までにデータを書き込んだスクラッチパッドの最後に続けて、 新たにデータを書き込むにはどうしたらよいでしょうか? 全書き込みは時間かかるので・・・
自分で管理
最後を知る方法はないので自分で管理 途中から書くことは出来るから全部書き込む必要はない
どっかでスクラッチパッド書き込みのサンプルでも探してこい。部下に言われたらぶん殴りものの質問だ。
>>206 つまりはスクラッチパッドをセクタ的に分けて管理しろってことですか?
そんなに立派なもんじゃない。 スクラッチパッド開くときに pos パラメータ使えってこと。 自分で管理
>>208 pos=定数*n
のnで個々のデータを管理するってことですよね?
これはデータの上限バイト数が決まってしまって避けたかったのですが・・・
やむをえないですね。
>209 それを先に言え。 っつーか、わかってんなら最初からブロックなりセクタで おとなしく管理してろ。
pos=定数*n にしなきゃいいじゃん。 可変個&可変長くらい簡単に管理できるだろ
もしかして書いたり消したりしまくりたいのか? その場合はちょっと頑張らないとダメだな
何故可変長管理すらできんのだ。 そんなことじゃメモリーマッピングとかできんぞ!
>>213 出来ないんじゃなくて、めんどくさいからなにやら
いい方法ないか?とかぬかしてると思われ。
スクラッチパッドの後から1バイトずつ読み込んで データの最後の位置調べればいい。 ま、遅くて使い物にならんと思うが。
バイナリデータの最後が0x00だったらどうするんだヽ(`Д´)ノ
最初の4バイトに最後の位置保存じゃだめなのか?
それだと、複数のデータを保存して、それぞれ大きさが変化する場合に対応できないから、 素直にセクタ管理した方が良いと思うけどな。
もう全部jarにぶちこめ。そんでもっと根本的なことに時間を掛けろ。
まあ、最近、APIがないと何もできない人が多いし。 例えばiモード関連の書籍しか見てないと、アルゴリズムという概念の存在を知らんかもしれん。
>>220 禿同
漏れが今陥ってる罠。
アルゴリズムを勉強しようとJavaのアルゴリズム本を読む
クラス構造体の定義を前提に書かれてるからiモードには適用できない。
概念自体を勉強しようとアルゴリズム本を読む
漏れはCを知らないのでそのまま使えない。
やっぱ素直にCを勉強してからiモードに帰ってくるしかないのかな?
ん? アルゴリズムは言わば処理手順の説明だから、それ自体は言語に依存しないぞ。 その処理手順をどう表現するかって段階になってCで書くかJavaで書くかという話になる。 と書いてから気付いたが、その解説本がアルゴリズム(処理手順)の説明にCを使って 書いちゃってる、ってことか…
223 :
デフォルトの名無しさん :2005/04/02(土) 18:52:48
初歩的な質問かもしれませんが ある処理中にボタンとかの入力を無効化する方法ってありませんか? 処理中にいろんなボタンを押して 処理直後にそのボタンの出力が一気に出てしまうため困っています。 誰かご教授お願いします。
処理中って boolean でも作って 処理中なら true 、処理中でなければ false になるようにして、 keyEvent のそれぞれの処理でそれを if で参照してスルーするのはだめか?
>221 そんなにまじめな「アルゴリズム」がないと 解決できない問題にぶつかっているのか? サイズの問題にぶつかってないうちなら まずクラスを使ってるものを適用してもいいとおもうんだが。
>>221 概念自体を勉強するんなら、PC用にJava2SEで書いて学べばいいんでない?
そこで学べたらiモード用に移行させればよかろう
227 :
デフォルトの名無しさん :2005/04/02(土) 19:26:33
>>222 そうやって本当にうまくいくかわからなかったのですが、
やってみます。
228 :
227 :2005/04/02(土) 19:34:09
>>222 できませんでした・・・orz
なんかためて一気に って感じで
229 :
227 :2005/04/02(土) 19:34:34
ageすいません
iモードのプログラムのサイズ制限は100KBであってますか? この辺詳しい資料はどこから入手できるのでしょうか?
>>230 最大容量はシリーズごとに違います。
資料はぜんぶDoCoMoが用意してるし、ググれば出てくる。
>>228 処理が終わった後も少しの間だけ処理中って事にしておくとか
233 :
デフォルトの名無しさん :2005/04/03(日) 00:51:37
自作のクラスをAPI化したい場合、みなさんはどうしてますか? つまりソースを見られたくないけど配布する場合なんですが。 abstract classにしてdoja_classes.zipあたりに 放り込みたいと思い、doja_classes.zipを解凍して comフォルダあたりの中に入れて、無圧縮zipで再びdoja_classes.zipにすれば 再びアプリは動くけど、自作クラスを利用すると 不正なクラスとなって墜ちてしまいます・・。 何か良い方法がございましたらご教授ください。
何をアホなことやってるんだ? コンパイル時の使用するclassの指定で、自作のクラス突っ込めばいいだろ。 まさかコマンドラインでのコンパイルも知らない奴が、自分のソースを見られたくないだなんてこと言わないよね?
>>223 この手の話題って定期的に出る気がするな。
processEventではgetKeypadState()の戻り値等を保存して 、
メインループではその変数を参照するようにすれば良いだけでしょ。
キーの押し下げエッジを検出したい場合は、
data |= getKeypadState();
で貯めておいて、メインループの最初で、
edge = (old_data ^ data) & data;
old_data = data;
data = 0;
とでもしておけば良い。
236 :
デフォルトの名無しさん :2005/04/03(日) 01:38:02
>234 イライラさせてすいません。 dojaツール上でビルドの設定やらでは実現可でしょうか?? コマンドライン以外では方法はありませんでしょうか?
Doja-4.0で開発する場合使用できるjarの制限が100k scratchpadが400KBまでですが、SDカードやヒープ領域にアクセスし データを永続化しておくことは可能なのでしょうか?
>>235 processEventとgetKeypadState()が同期していないのを逆手に取るって事か?
>>237 画像か音なら〜Storeクラスで可能
それ以外は無理
>233 SDKに入ってるクラスは端末に入ってねえっつの。 アプリのjarに一緒に入れなきゃ使えねえ。 言うほど俺も理解足りねえんだが、 DoJa のキットそのままじゃだめだろうなあ。 --------<ちらしの裏>-------- 「自作のクラス」なんて使えるだけ容量に余裕がある人間はいいよなー。 IApplication と Canvas で一杯だよ・・・。 あとそういうクローズドなクラスファイルは Eclipseで使いづらいから嫌いだ。 --------</ちらしの裏>-------- >237 メモリーカードは使えない。 ヒープ領域ってのはどういう意味だか分からない。 サーバーにでも送って保存しとけ。
>あとそういうクローズドなクラスファイルは >Eclipseで使いづらいから嫌いだ。 べつに問題なく使えるけど。
241 :
239 :2005/04/03(日) 03:12:07
>240 すまん。俺も偉いこと言えない人間でな・・・。
242 :
239 :2005/04/03(日) 03:16:45
って勘違いしてたらしい。吊ってくるわ・・・。
画像か音なら可能ということは、偽装化すれば問題なく 認識できるということですよね?
>>243 可能だと思うけど、扱える画像サイズの上限が機種毎にばらばらだし、
偽装の条件も違う可能性があるし、
かなり扱いづらいだろうね。
>>236 わかった。真面目に答える。
いわゆるエミュ&コンパイラーでは無理。
コマンドラインからやるしかない。batファイルでも一緒に配れ。
246 :
デフォルトの名無しさん :2005/04/03(日) 12:31:09
>245 わかりました。 ありがとうございます。
247 :
223 :2005/04/03(日) 13:13:19
>>235 なるほど。
どのタイミングでgetKeypadState()を入れるのか等手順を教えていただければ
幸いなのですが・・
もしくはサンプルコードとかあったらありがたい。
あのな。そろそろスレ違いってことに気づこうや。
>>224 でできないなんてありえないんだよ。
まあ、脳ミソ使わずにコピペできるコードが出てくるまで食い下がるつもりだろうな。 そもそもそんなもの存在しないのに。
>>247 そんなのAPIリファレンスに書いてあるだろ。
ソース出せっていうなら自分のソース出せっての。 それを修正したほうが早い。 大体キー処理なんて使うアプリによって内容違いすぎて サンプルと言われてもどのタイプなのかすらわからん。 押された瞬間のみ検知?長押しも使用?離された瞬間は? 1フレーム内で数回押された場合は?とか使うアプリによって 使い分けるだろ?容量が違う。 今時503なんて開発してる奴いないか・・・あの時代の アプリ作ってる奴はバイト単位で容量削減してたのにな。
processEventと数時間睨めっこしてきた方が良いと思うよ
drawStringで、エミュや機種によってY軸方向の位置がすこし違うみたいなのですが、どれでも同じ位置に表示させるには、drawStringの第三引数にFontのDescent分たせば良いのですか?
>>253 Ascentを足す方が感覚的にもわかりやすいかと。俗にいう上揃え。
その方法使わせていただきます!ありがとうございました
ちょっと脅しすぎたかな? 自分が初心者という自覚があり、初心者の質問だと思うなら ・なるべく情報を出す ・実機でのバグなら、実機名くらい書く を守ればいいんだが。
n504isとF2102vでは普通に起動するのに、 n900では起動しないのはなぜでしょう? 格別変な事はしてないと思うのですが・・・
(゚,_ゝ゚)
259 :
256 :2005/04/06(水) 21:45:45
わざとやってるとしか思えんorz
盛り上がって参りました〜〜〜!!って感じかw
>>259 落ち込むな!
約束通り実機名は書いているぞ!!
もういっこは書いてないがなw
262 :
デフォルトの名無しさん :2005/04/07(木) 12:03:15
最近DoJa3系をいじるようになったのですが、iアプリ連携に ついて質問があります。2つ(以上)のiアプリでデータの 連携をさせたいのですが、 1)共通のスクラッチパッドを読み書きできますか? 2)連携させたいアプリAとBがあるとして、AからBに BからAに引数を渡して起動させられますか?その場合 引数の最大数(個数、サイズ)はどのくらいまでOKですか? 3)Aは携帯にDL済みでBがまだの場合、AがBを起動 させようとした場合自動的にBをDLさせることは できますか? 4)iAppliToolでプログラムを組む時、AとBはそれぞれ 別のプロジェクトとして製作する必要がありますか? それとも単一のプロジェクトにまとめる必用があり ますか? 概念的なことばっかですいませんが、よろしくお願いします。
>>262 1. 不可
2. 可(最大16組、名前値あわせて255バイト)
3. やったことないからわかんね、けどイケるかも
4. 別プロジェクト
っていうかDoCoMoの資料やAPIマニュアル嫁
3は不可。 ただし「まだ落としてないよエラー」はとれるので、ブラウザを起動させてあげればいいんじゃないかな?
Eclipse(バージョン: 3.0.1)とDoja-4.0でiアプリを作っていたのですが、 Eclipse上では正常に動作するのに、サーバーにアップして携帯電話で起動させようとすると、 「ソフトに継続動作できない障害が発生しました」 と言うエラーが起きて異常終了してしまいます。 ADF/トラステッド動作設定のUseNetworkに「http」 spsizeは「130000」(取り込む画像サイズは120KBです) ADFのURLも設定しました。 プログラムの接続する部分は HttpConnection hc = (HttpConnection) Connector.open(getSourceURL() + "sp/test.gif",Connector.READ,true); (画像はjamファイルが置いてある所に「sp」と言うフォルダを作ってそこにいれています) 後はどこを直せばいいのか見当がつかなくなりました。 どなたかヒントをお願いします……
書き忘れました。 使用した携帯は「P901i」中の容量も充分余裕があります。
>>265 >>266 残念だが、その情報だけでは何とも・・・
とりあえず、AppTrace = on にして、何をしたときに何の例外で落ちて
いるのかをはっきりさせてくれ。
画像のダウンロード部分で落ちているのは間違いない?
あと、画像のサイズ(ファイルサイズじゃなくて表示サイズの縦横)は?
P901だと、たぶん320x320を超える大きさのImageは表示できない。
>>265 で、Connectorをopenする時に落ちるのは確定?そこを書いてるって事は。
>>265 一般的にはまりやすい注意点としては、
宣言だけして初期化してないString型等のオブジェクトにアクセスすると、
エミュでは動くけど実機で落ちるプログラムになるけどね。
その辺は確認した?
>>267 さん、ありがとうございます。
AppTrace = on にして見た所
「message=Uncaught exception happened throwable=java.lang.NullPointerException」
と出てきました。
あと、画像サイズは566×1084です。でも、一度に全部を表示させる分けでは無く、各部分を
g.drawImage(image,0,0,240,0,240,240);と言ったように用途に応じて使うようにしているのですが、
(一番広く使う時で240×240)
元の画像サイズ自体が大きいと弾かれるのでしょうか?
>>268 さん、ありがとうございます。
スクラッチパッドに画像が書き込めていない→画像が正しく収得できていない。
からココかなと素人考えで見当をつけてみただけです。あんまり長文を貼り付けるのも気が引けたので……
一応、HttpConnection hc = (HttpConnection)
以降はこうなっています。
hc.setRequestMethod(HttpConnection.GET);hc.connect();
int imgLength = (int)hc.getLength();InputStream is2 = hc.openInputStream();
byte[] byteData = new byte[imgLength];
is2.read(byteData);is2.close();hc.close();
OutputStream os = Connector.openOutputStream("scratchpad:///0;pos=1");
os.write(byteData);os.close();
>>270 Pは320x320が上限だったような気がするぞ。
>>270 P901iの最大画像サイズは320*320
さらに言えば画像のファイルサイズも100KBが限界。
画面サイズ以上というよりキャンバスサイズより
大きな画像は機種依存に引っかかりやすいので使わないが吉。
余談だが4.0で
HTTP受信データ150KBが最大の制限。
だが、なんのアプリかわからないがもし同じQVGAの機種、
つまりは505シリーズの3.0でも動作させたい場合は
HTTP受信データ20KBが最大の制限。分割しないとアクセスできないことも覚えておこう。
273 :
267 :2005/04/07(木) 16:45:29
>>270 あとは、それがどこで起こっているのかを突き止めてくれw
ちなみに、元の画像サイズが大きいとダメ。
320x320までです。
そして、一応。
ガッ
皆様の言うように、320サイズの画像をアップしてみた所、無事に落とせました。 画像サイズが原因だったようです。 プログラムのバグだと信じていて、画像サイズなんて気にもしていなかったので 皆様のアドバイスが無ければズット悩んでいたと思います。 本当に、ありがとうございました! ちょっと今泣きそうです。 ……今からまた画像サイズを分割しないと行けないのか……○| ̄|_ ちょっと今泣きそうです。
>>274 320*320も問題だが
100kb超えてるのが今回の原因だべw
そこ勘違いしないようになw
>>275 そんな制限は聞いたことがないんだが・・・<100KB
メールで送れるサイズの上限とごっちゃにしてないか?
>>274 読み込めない画像が来たらアプリが落ちる、ってのは立派な
バグだと思うぞ。せめて落ちないようにしとかないと。
>>276 ごっちゃにしていない。
320*320というのを一瞬で調べられる連中なら
同じく知っているはずだ。
320*320の情報と同じ場所にある情報だからな。
>>270 でもいいけどメモリ不足対策に256バイトずつ読みながら書く方法も
ってこっちのほうがシュールか・・・
281 :
262 :2005/04/07(木) 22:16:59
262です。263さん264さん回答ありがとうございました。
早速今日エミュ上で連携に挑戦してみたんですが、どうしても
別アプリを立ち上げることができず困ってます。すいませんが、
アドバイス願えませんでしょうか。特に、ADF の URL って所
で何を指定すればいいのかが分かってません。プロジェクトを
ビルドして出来るのは jam と jar だし、jam の URL を指定
して置いてもうまく動きません。
import com.nttdocomo.ui.IApplication;
public class jantitle extends IApplication {
private final String[] pstr = new String[3];// パラメータ引数用
public void start() {
pstr[0] = "
http://localhost/program2.jam " ;
pstr[1] = "arg1" ;
pstr[2] = "value1" ;
launch(LAUNCH_IAPPLI,pstr) ;
}
}
これを実行すると、
java.lang.SecurityException: Illegal i-application url
で止まってしまいます。なかなかネット上にも解説資料のない
分野で困ってます。先人のお知恵を拝借させてください。
282 :
262 :2005/04/07(木) 22:18:25
あ、ちなみにローカル環境で Apache 動かしてあり、 jam ファイルも jar ファイルもそこに置いてあります。
283 :
262 :2005/04/07(木) 22:32:08
262です。自己解決しました。 ダウンロードアプリケーションの設定に必要事項を記入したら 無事連携できました。お騒がせしました。orz
質問があります。 F901iCでスクラッチパッドからgifを読み込もうとすると 何十回かに1回くらいの割合で数十秒くらいロード処理が帰ってこない事があります。 例えば 画像1から画像10を読み込み→画像1から画像10を破棄、というのをたくさん繰り返していると とくに規則性の無いタイミングで突然処理が止まり、20秒くらい経過すると何事も無かったかのように復帰します。 (その時、画像はちゃんと読めています。) 似たような現象にあった方はいますでしょうか?
gc頻繁にしてるか?
メモリが増えたから最近の機種はそんなに時間がかかるのか
解決法は
>>285
サウンドの同期について質問です エミュレータでサウンド同期処理を試しているのですが AudioPresenterクラスのpause()とrestart()を繰り返すと 同期イベントが飛んでこないときがあるようです。 実機(N505i)で試したところ再現しないので エミュレータ固有の問題かなとも思うのですが 他機種でどう動くのか心配です。 この件で何か情報持ってる方、いませんでしょうか。
288 :
287 :2005/04/10(日) 13:57:29
完全に流れを止めてしまいましたorz
サウンド同期なんてあまり使わないから情報少ないのかな。
誰でも試せるようにサンプルをUPしておきます。
http://senbei.kt.fc2.com/i/syncSound.html 「ドレミー」と繰り返し再生するアプリで
[1]キーを押すと曲が停止、[2]キーで再開するようになっています。
エミュ上では[1][2][1][2]...と、なるべく速く10〜20回繰り返すとズレます。
実機(N505iのみで確認)では再現しません。
他の機種ではいかがでしょうか。
対応機種は505i以降です。
#AudioPresenter.pauseとrestartはDoJa3.0以降で基本API
興味のある方、暇な方、ソースも晒してあるのでどうぞ。
流れが止まったんじゃなくて、仕事として作成している人は土日までこのスレ見てないだけだと思われ。
まーもともとエミュのサウンド周りはmidi丸投げだし、動きは妖しいよな。
>>287 SH901iで試したけど全く問題なかったよ。
ちなみに、
>>290 と同じく俺もEMUのサウンド周りは一切信頼してない。
実機で落ちるバグを発見して、再生イベントが重なったりするのが原因だと解ったから、イベント発生を監視してbusywaitしたりbusyのままタイムアウトした場合命令を破棄させたり、そんな処理を組み込んだことがある。
結果、実機では全く落ちなくなるかわりにEMUでフリーズするようになった。
すいません、初歩的な事かも知れませんが、 Doja-4.0で作ったアプリは900iでは動作させられないのでしょうか?
上位のエミュでつくっても、その上位用のAPIなどを使っていなければ問題ないよ。
>>293 さん、ありがとうございます。
上位APIは使ってないです
(もしかしたらとDoja-3.5をインストールして動作させてみましたが、問題なく動きました)
何故か先方が900iで動かないと……
そして先方には901iが無く、コチラには900iがないと言う最悪の環境下……
泣きそうです( ´Д⊂ヽ
>>294 仕事でやるんなら実機を用意するのが当たり前
>>294 SpriteSetとか使ってる?
あと、900iとか901iとかじゃなくて、メーカ名も書いてくれれば
何かわかるかもしれん。
>>295 さん、仰る通りです……○| ̄|_
買い換えなきゃよかった……
>>296 さん、
SpriteSetは一つも使っていません。携帯の方は私の方はP901iです。
先方は「P900i」です。
298 :
287 :2005/04/11(月) 12:59:25
>>290 >>291 レス、ありがとうございます!!!
SH901iで大丈夫ですか。
やっぱりエミュの問題なんでしょうかね。
#確かにエミュの音周りはインチキ臭いところが多い。
もともと音関係は機種依存が強いから、仕方ないのかな。
他の機種で試された方も、報告して頂けると嬉しいです。
>>297 まずどのように動作しないのか聞け。
ダウンロードが出来ないのならADFの中に余計なもの設定してる可能性がある。
ダウンロード出来るなら特定の機種のみで落ちるのか、どの状況で落ちるのか聞け。
P900iで動きませんと言う情報だけではこれくらいしかアドバイスできん。
PCの話だがディスプレイの電源が切れてて画面が出ない!とか抜かす先方(実話)も
居るぐらいだからネットワーク設定を切っていないかとかもあわせて聞いてみろw
先方に機種変更をさせる
お客って「動かない」とか「フリーズ」って言葉好きだよね。 「どう」動かないのか。 「どの場面で」フリーズなのかを教えてくれなきゃさっぱりわかりません。
( ゚д゚)ノ ハイ!先輩方に質問デス! 以下のプログラムでスクラッチパッドから画像を呼び出そうとしているのですが、 D900iだけがエラーが出ます。その他の機種(900・901シリーズ)では問題なく表示できます。 表示しようとしている画像はjpg形式でサイズは5k〜20k MediaImage mi= null; mi = MediaManager.getImage("scratchpad:///0;pos="+getPos); System.gc(); try { mi.use(); rtn = mi.getImage(); } catch(UIException ue) { System.out.println("ue err_status = "+ ue.getStatus()); System.out.println("ue err_messa = "+ ue.getMessage()); System.out.println("ue err_string = "+ ue.toString()); } ここで返されるエラーは以下です。 ue err_status = 4 ue err_messa = Unkown media image format ue err_string = com.nttdocomo.ui.UIException: Unkown media image format D900だけって事は機種依存による物ですかね? D900の描画能力は悪いって言うのは聞くのですが・・・。
P900iを持っている知り合いに頼んで落としてもらったらちゃんと起動してるようです。
本気で分けが分りません。
>>299 さん。
プログラムそのものは起動するらしいのですが、
最初の起動画面でフリーズするらしいです。
>>300 さん
本当に。そろそろ先方の環境がおかしいのではないのかと段々不安に……
>>303 P900iってファームアップデートされてなかったっけ?
>>302 エラーメッセージの言うとおり。
しらねー画像フォーマット。だってことだ。
D900だけ別の画像をDLしていたりしないか?
D900だけJAMのスクラッチパッドサイズ指定が小さかったりしないか?
プログラム自体はあってる。
getPosの値などがD900のときだけ違うってことはないか?
とにかく些細なミスだ。
「こんな間違いはありえないよなー」と思ってるところこそ間違いになっている可能性がある。
>>303 DLしたアプリは同じものか?
「客がUPして、それが壊れてて動作がおかしい」なんて話はしょっちゅうだ。
P900iで動かないと嘆いていたモノです。 今、先方から「動いた」との連絡が来ました。 しかも本当にそれだけ。 データがおかしかったのか、先方の携帯がおかしかったのか一切釈明なし。 ちなみにデータは別に変えたわけではありません。 動いたのはいいが、理由を教えてくれ…… 俺の一日はなんだったんだ……○| ̄|_ もういやだ( ´Д⊂ヽ
FTPでUPするとき上書きしてなかった。 そんな理由だろう。
プログラムの途中で100!や5000C1000などの演算をしたいのですが 桁が大きくなりすぎて困っています。 対数を使えば解決できるんですがiアプリで対数演算は可能なんでしょうか? テイラー級数ではうまくいきませんでした
標準ではサポートしてないので テイラー展開でがんばれ
失礼致します。仕事では無いのですが、 自分のサイトでiアプリのゲームを初めて公開した者です。 900以降のシリーズ対象で、大抵の機種ではまともに動作するようなのですが、 F900iCで起動させた方から ゲームを進めて行っても画面が切り替わらない。との報告を受けました。 (メール画面など、他の画面を立ち上げると切り替わるらしいです) どうやらF900iC環境下でのみ発生する不具合のようなのですが、画面の再描写が上手く行われていないようです。 原因・対処法などご存知の方がおられましたらご教授願います。 (SH901i、P901i、P901iV、P900i、SH900i、N900iは正常に動作しているようです)
repaint()使ってるとか? 使うなら開発ガイドのrepaint()の説明を良く読んだ方が良いよ 代わりにpaint(g)とかやった方が楽だし確実だと思うが
>>311 その画面の切り替えって言ってる部分では何やってるわけ?
一定のタイミングで毎回起こるなら、通常描画を怪しむよりそこで何やってるのかが重要かと。
ん・ぱか工房にはF900は
「g.lock()した後、g.unlock()する前に、Dialogオブジェクトのshow()を呼ぶとフリーズする 」
ってのがあるけどフリーズじゃなさそうだしなぁ・・・。
切り替えってくらいだから処理が重いんだろうかなぁ・・・。
描画命令はどうやって呼び出してる?
repaint();で呼び出してるのらpaint(getGraphics());に変えてみるとか。
311です。 買った本にpaint()メソッドは画像ファイルを読み込む前に描画処理が呼ばれる時があると書いてあったので paint()メソッドは空のメソッドを書いてあるだけで描画はCanvasクラスの「getgraphics」でおこなっています。 Canvasクラスの中でメソッドを幾つか分けて、必要に応じてそのメソッドを呼び出しています。 もしかして私、根本的な部分で勘違いをしているのでしょうか?
>>314 勘違いってわけじゃない。参考書の類はそっちが多いね。
でも画像を読み込む前に描画されるってのは起動の一番初めに
GIF画像などを使わなければ良いだけだとは思うけど。
白い画面でクリアしてるだけいい。読み終わってから描画に使えば^^
詳しく調べてるわけじゃないけどCanvasのpaintメソッドにはこう書かれてる。
-----------------------------------------------------------------------------
引数で渡されたグラフィックスオブジェクトは、アプリケーションプログラマが
Graphics.dispose メソッドで破棄してはなりません。 paint メソッドの呼出し元が、
機種依存の処理をしたあとで dispose メソッドを呼び出して破棄します。
-----------------------------------------------------------------------------
この機種依存ってのが怖くてね。その方法を使ってないです。
getgraphicsでやってるってことは手動で破棄してるわけでしょ・・恐らく。
あと明示的にrepaintとpaintを使い分けれるってのもあるし、
便利だからこうしてるってだけかなw
やり方は間違ってないと思う なのでワカランw
>>315 さん。
ハイ。手動で破棄するようにしています。
私もCanvasのpaintメソッド読んでみました。
やっぱり機種依存の問題なのでしょうか。
F900iCだけじゃなく、F900iTでも同様の現象が起きていると報告がありますし。
F900i用にpaintメソッドで作り直そうと思います。
>>316 さん
間違ってないと言って頂けただけでも嬉しいです。
何せ本を片手に独学だけで作った初めてのアプリなので。
>>317 getGraphicsで描画するのは間違ってる
描画スレッドが一度getGraphicsしただけで
それを使いまわしてpaint()呼ぶという実装になっているなら
その実装では描画されないのは当たり前だろ
その本が言ってるのは、描画に必要なオブジェクトを別のメソッドで初期化するようにしている場合に、
paint()がそれ以前に呼び出される可能性もあるからちょっと気をつけろよ、ということ
320 :
318 :2005/04/12(火) 19:04:14
>>319 314を読む限りではgetGraphicsをオーバーライドしているように読めねぇか?
そうじゃなかったとしても
> 必要に応じてそのメソッドを呼び出しています。
この「必要に応じて」の部分についての仮定が誤っているんだろう。
ん・ぱかのやつは「一定間隔で」描画しているから問題ないわけだ。
317です。
画像の描写の仕方は
>>319 さんが貼ってくれたリンク先のようにしています。
(と言うかこの人の書いた本を片手に作ったので)
モチロン、適度なタイミングで破棄命令は入れていますが。
>>320 さん
作ってたのはドンジャラで、牌を捨てたり、新しい牌を積もったりする時に再描写するので
「必要に応じて」と書きました。
318さん、319さん、320さん、
誤解を招く意味が伝わりづらい文章を書いてしまって申し訳ございません。
ずっと使うんだから破棄する必要は無いんじゃないの? 素直に真似すれば良いと思う
俺もそう思う。 単一しか使用しないのなら最初に宣言してそれを使いまわすのが妥当かと…
325 :
324 :2005/04/13(水) 18:23:10
ごめん 直リンしてもうた・・・
前から話は出てたけど、901iで肩透かし喰らったからなぁ…。 902iに一応期待しておくか。
J-SH07〜V603SHまでの一貫した互換性、 並みの成果を期待する。
文字の太字表示をしたく、以下のコードを記述しました。 DoJa4.0では意図した通りに表示されましたが、 テストに使ったSH505iとF506iではどちらも文字サイズ以外変更されませんでした。 機種依存で太字やイタリックが使えないことがあるのは分かっていますが 本当に機種依存の為に表示されなかったのか、コードに間違いがあるのか分からない状況です。 以下のコードで内容に間違いがある、といことはありますでしょうか? Font f = Font.getFont(Font.FACE_SYSTEM | Font.SIZE_SMALL | Font.STYLE_BOLD); g.setFont(f); g.drawString("ABC", x + 5, y + 60 + f.getAscent());
先日、SH900i使ってる香具師から「ソフトに誤りがあります」 っていわれてダウンロードできないという報告があったので、 過去ログとかを参考にしつつ、ちょっと調べてみたんで報国。 下記の内容のJAMを oh.manco.jp という鯖に置いたらダウンロードできるけど、 同様のJAMを manco.jp という鯖に置くと「ソフトに誤りがあります」でNG。 JAMの内容はtelnetで直に吐かせて同一なのを確認した。 目に見える違いといえばドメイン名ぐらいしかなくて、 信じれない結果に目を疑った。
Content-type: application/x-jam AppClass = h PackageURL = ochinchin.jar AppSize = 29977 AppName = パンティ☆穿替 AppVer = 1.172 AppParam = 0 SPsize = 132132 UseBrowser = launch UseNetwork = http AppTrace = on LaunchByMail = any LastModified = Fri, 01 Apr 2005 18:06:08 LaunchByBrowser = any -------- 名前とかは晒せないので変更したけどコード的には似たような文字 アプリ名に0x5cは含まれていない SH901, SH506では問題は発生しないそうだ
>>329 HTTPサーバの種類やバージョンや設定が違ったりしないか?
>>331 アーキテクチャもシステムも同じもの
(じゃないとテストにならないからね)
httpdの設定などもCVSで同期がとれているのを確認してる。
JAMの内容もtelnetで直に吐かせて同一なのを確認した。
333 :
331 :2005/04/14(木) 16:18:48
つまりアレか?SH900iは、ドメイン名部分に「.」が2つ以上ないとダメ、っていうこと?
>>328 間違っていない。
どっちの機種も対応してない。
>>334 ありがとうございます。
テンプレの機種依存情報や、自分で調べた限りでは、
フォントに関する情報があまり無くどうしたものかと思っていました。
公式サイトの、機種依存命令対応一覧表を見よ。 ん?900以上ってまだ一般には配られてないんだっけ?
337 :
331 :2005/04/14(木) 17:02:23
ちょっと気になったので333について試してみたけど、そんなことはなかった。 somename.netとwww.somename.netで同じサーバ(Apache2)に繋いで、 同じパスのアプリをSH900iでDLして実行してみたけどどちらも問題なし。 なおAppNameには非ASCII文字を含んでない。
SHのバグ報告見てて、P503iの四月病を思い出したw
自作で太字にすれば何とかなるのでは? drawStringを2回呼んで2回目はx+1にする。 これで対応してない機種でも太字になるはず。
>>341 iアプリ
↓
iアプリ技術資料のダウンロード
↓
iアプリコンテンツ開発ガイド for DoJa-3.5各機種オプションAPI・拡張API実装状況
だよん。
PDFの中を、BOLD で検索してみ
iアプリ初心者です。 ソースを手書きで打ち込むのは流石にメンドイので、IDEを探しているんですが、何かいいのありません? 本に書いてあったforteがsunのページから見つからないし…。 ドコモのサイトに書いてあったSun ONE Studio 4も見つからない…。 できれば無料か高くても1万以下の開発ツールがほしいんですが、何かいいのありますか?
(´・ω・)つ[VC]
Forte は NetBeans, Sun ONE Studio は Sun Java Studio と 現在は呼ばれている。 Java の IDE で現在最もメジャーなのは Eclipse。
346 :
デフォルトの名無しさん :2005/04/15(金) 22:49:16
>>ソースを手書きで打ち込むのは流石にメンドイので、 じゃぁどうやってコード書くのよ。
デフォルトの開発環境だってボタン一つでビルドしてくれるんだから、 それでもいいんじゃないかねえ。 IDE に何を期待してるんだろう。
携帯Javaって、少しちゃんとしたもの作ろうとすると IDEなんてホトンド意味がなくなっちゃう気がするんだけど そこんところどうなんだろう?
デバッグには便利
>349 System.out.println でほとんど片づくから、 純正SDKでもEclipse でも変わらない。 まあ、デバッガが必要な程厳しいアプリ作ったことがないせいだが。
351 :
デフォルトの名無しさん :2005/04/16(土) 13:05:15
antが一番便利。 一度仕掛けを作っておけば、504i,505i,900i,901i,700iの全部のバイナリ 一度に作れるし。
>>351 普通バイナリは共通にしとくものだと思ってた…
容量が違うのにどう共通にしろと
うちはプロファイル毎に使える機能有効にしたりしてるから バイナリ共通は無理だなー。 ソース中の定数で切り替えてるから、ant 絡めてそれができれば 確かにいいが……。
355 :
デフォルトの名無しさん :2005/04/16(土) 16:20:40
{504i}, {505i,700i}, {900i,901i} の3つのグループに分けて 同じグループのものは共通にしている。 たまに、サイズの問題もあって、同じコードで動かしきれないものがあって、 それは別になる。 いちいち手でやると面倒だし間違えるから。 ant build_all で全部できるようにしている。
エミュ+jdbでデバッグできることを知ってる人はどのくらいいるのかな?
詳細きぼんぬ
オフィシャルのドキュメントのどっかになかったっけ? 使ってないけど。
359 :
356 :2005/04/16(土) 19:47:25
カレントがbinディレクトリだったらこんな感じ
doja_g.exe -debugger -debugport 9999 -u
http://your.domain/ -i YourApp.jam
jdb -sourcepath ../src -connect com.sun.jdi.SocketAttach:hostname=localhost,port=9999
doja_gの-uと-iは適宜書き換えて
ポイントはdoja_gの-debugportとjdbの-connectの指定の仕方ね
localhostに対してリモートデバッグしてるのよ
あと当然-gでコンパイルしないとし意味ナイから
Canvasの切り替えについての質問です。 あるCanvasをsetCurrentして、processEventで別のCanvasに切り替えて、さらにそのCanvasのprocessEventでもとのCanvasをsetCurrentするとキー操作を全く受け付けなくなってしまいました。 proceesEventもgetKeypadStateも全く反応しません。お手上げです、考えられる原因は何かありませんか?
書き忘れました エミュレータでは全く固まり、N900iSではprocessEventのみ動作しなくなりました
KEYDOWNで切り替えてないか? KEYUPで切り替えるようにしてみ
切り替えはどちらのCanvasもKEY_SOFT1を使っています。 KEY_UP等も色々試してみましたが、残念ながらいづれも結果は同じでした
おそらく
>>362 が言いたいのは
KEY_PRESSED_EVENT, KEY_RELEASED_EVENT
のことだと思われ
365 :
360 :2005/04/17(日) 13:26:09
失礼しました どちらも試してみましたが、同じ結果でした
コード晒して。もしくは一番単純なコードを書いてテストして。 2つのCanvasをprocessEventで切り替えるなんていうのは、 良くある実装でそれが問題になったなんていう話は聞かないのよ。 つまりDoJaやエミュや実機に原因があるんじゃなくて 360の書いたそのほかのコードが原因になっている可能性が非常に高い。
意図しないクラスのメソッドがイベントリスナだったとか、 原因はそのへんでわ?
368 :
360 :2005/04/17(日) 14:39:08
>>386 ちょい眺めてみたけど
スレッドの開始は run() ではなくて start()
ですぞ。
ほかに分かったことがあったらまたカキコしませう。
370 :
369 :2005/04/17(日) 16:09:23
StatusCvs#processEvent(...) が返却されず、無限ループから脱出できないのが 原因みたでつ。 StatusCvs#processEvent(...) の中で mapCvs.execute() しているけど、 mapCvs.execute() ではさらに run() を呼び出している。 run() の中は while ループで、この終了条件は doGraphics が false になった とき。 doGraphics を false にセットしてくれるのは、MapCvs#processEvent(...)だけど StatusCvs#processEvent(...) は返却されないので、 MapCvs#processEvent(...) は永遠に呼ばれない。 よって「キーを受付けない」という現象が起きる。 ・・・当ってた?
371 :
360 :2005/04/17(日) 16:37:39
ありがとうございます! こんなに詳しく教えて頂いて、嬉しい限りです! ループを1回に限定してみたところ、見事processEventが動作しましたw processEventが処理中だとsetCurrentしてもほかのクラスのprocessEventは呼ばれないのですね 本当にありがとうございました!
俺も
>>98 と同じエラー出てEclipse使えない
助けて下さいm(__)m
373 :
360 :2005/04/17(日) 17:58:25
すみませんが、もう一つ教えてください Canvasを切り替えるとき、一瞬画面がFrameのデフォルトの背景色になり、チラチラしてしまいます。 これを解決する良い方法はありませんか?
>>373 そういう時は大抵オマエが何か描いてるんだよ
良〜く描画のコードを見直してみろ
一番単純なところまで削るか
どうしても人に聞きたきゃ晒せ
375 :
360 :2005/04/17(日) 19:12:14
>>375 さっきと同じ問題だよ
sleep()のせいでC1.processEvent()を抜けないでしょ
processEvent()ではC2をsetCurrentしてタイマーを起動し
そのタイマーがexpireしたところでC1に戻すような実装に変えてみ
377 :
360 :2005/04/18(月) 00:23:56
実は、それはわざとやっています。processEvent内の処理がおわる前にキーを離すとどうなるのかと思いまして。 Canvasは正しく切り替わるので、一瞬白くなる問題とは関係ないように思います。ありがとうございました。
>>374 ヾ('A`)シ モチツケ、熱くなり過ぎだ
確かに373の説明じゃ不十分だが漏れは何となくわかった。
>>373 コンストラクタ内でsetBackground。これで解決するはずだ。
そもそもゲームアプリじゃsetCurrentなんて初回にしかしないからな。
殆どの香具師が気にした事ないんだろ。('A`)ノ ガンガレ。
379 :
341 :2005/04/18(月) 14:07:38
>>342 遅くなりましたが、教えて頂きありがとうございます。
しかしこれを見るとほとんどで実装されていないんですね(汗
評価待ちですが、339の方法でいこうと思っています。
>>379 うむ。実装されてないんじゃ。
>339の方法だが、何度も文字を書く分だけ重くなるのは注意な。
文字の描画は絵の描画なんぞより重い場合も多々。
381 :
360 :2005/04/18(月) 16:35:16
>>378 説明力不足ですみませんorz
普通はCanvasの切り替えはしないのですね。ソースがややこしくなるので分割したかったのですが…極力やめるようにして背景色指定もするようにします。
色々ありがとうございました
こんなので悩んでるの俺だけ?それとも既出? 過去ログとかその他いろいろ探してみたんだけどみつからず。 ・「〜」が表示できません。全部「?」になってしまいます。 (例) String ngstr = "〜123〜"; Dialog d = new Dialog(Dialog.BUTTON_OK, ngstr); d.setText(ngstr); d.show(); System.out.print(ngstr);← これでも "?123?"になる。 PCでwriteUTF作成したファイルを readUTFで読み出してもやはり同じでした。 以下のようにShiftJISのバイト列を変換すれば表示できるんだけど・・・ byte buf[] = {-127,0x60,0x31,0x32,0x33,-127,0x60, 0x0a}; ByteArrayInputStream is = new ByteArrayInputStream(buf); InputStreamReader isr= new InputStreamReader(is); BufferedReader bsr = new BufferedReader(isr); ... String str = bsr.readLine(); System.out.print(str);
ソースの文字コードは何にしてる? とりあえず\uff5eで代用することも考えてみ 「〜」は通常のUNICODEだと0x30XXあたりなんだけど、MSのは0xff5eなんだよね DoJaは後者じゃなきゃダメなんじゃなかったっけ?
383さん、どうもです。 文字コードは Eclipseのデフォルトのまま。 ソースのテキストファイルはShiftJISだけど、そういうことじゃないよね? 結局Dojaで「〜」を表す値が違うってことなんですかね。 PC側のJavaアプリで writeUTFしたファイルを表示したいだけなんだけど、 PC側の出力で「〜」をみつけたらその前になにかに置き換える必要があるということなのかな・・。
385 :
382 :2005/04/19(火) 14:16:57
383さんの情報で解決しました Thanks! 結局PC側ファイル出力で FF5E を 301Cに置き換えるようにしてうまくいきました。 Windows&Eclipse上で開発しているときは String str = "〜";じゃだめで、 String str = "\u301c";って書かないと駄目なんですね。
たしかjavacに渡す引数でコントロールされてるんだと思う。 普通に日本語のjdkをインスコした場合はデフォルトが cWindows31jだかになってるんじゃなかったかなぁ。
>>382 もう解決したみたいだけど、漏れもPerlでUTF8で文字列を
処理してたときに似たような現象に遭遇しました。
Unicodeの変換表が実装依存らしくて、互換性のないのが原因だった。
詳しくは↓のページ
http://www.debian.or.jp/~kubota/unicode-symbols-map2.html >たとえば、Shift_JIS における 0x81 0x60 (JIS X 0208 の 0x2141) は、
>Macintosh や GNU libc を用いると U+301C (WAVE DASH, 〜) に変換されますが、
>CP932 における同じ文字 (つまり、0x81 0x60 (JIS X 0208 の 0x2141)) は、
>U+FF5E (FULLWIDTH TILDE, 〜) に変換されます。
388 :
382 :2005/04/20(水) 17:13:22
「〜」のほかに「−」マイナス記号もひっかかりますね。 ほかの文字も対応しておいたけど使用頻度が低いので影響はなさそう。 JDKでのUnicodeも Windows と若干違うことは知ってたけど これとDoJaは同じだと思ってたけど、 微妙に違うととは盲点だった。 使ってるJ2SEは1.4.2.06だけど、古い 1.1.xとかともUnicodeのマッピングって違うんだね。
389 :
デフォルトの名無しさん :2005/04/20(水) 18:29:08
double型の値をスクラッチパッドに保存して、また読み込む、という
ことをやりたいのですがうまくいきません。
@double値を1000倍して3桁精度を確保しながらlong型にキャスト
Along値をシフトしながらスクラッチパッドに書き込む
Blong値にシフトしながらスクラッチパッドから読み込む
Cdouble方にキャストして1000分の1して元の値を読み込む
ってことをやっているのですが
どういうわけは元の値に戻りません。
スクラッチパッドへの入出力はただしく行われていて
32.767まではちゃんと元の値に戻せるのですが
32.768以上だと負数になってしまいます。
何が悪いのでしょうか?
ソース
http://49uper.com:8080/html/img-s/54308.zip
1. 数KBしかないんだからなにもZIP圧縮しなくても・・・ 2. iアプリでdouble型は使えない
393 :
デフォルトの名無しさん :2005/04/20(水) 19:22:58
めんどくさいから文字列のまま格納して読み込めば?
395 :
デフォルトの名無しさん :2005/04/20(水) 19:29:00
>>394 やっぱりそれしかないのかなぁ....
javaは符号ビットがCと違う動きするのかな?でも<<だしなぁ...
引き続き情報募集します
あ、ソースでシフトしてるところに入ってるキャストは
いろいろ試してる最中でつけたものなの消してください
後は小数点の上と下で分けてintで格納するってのは?
>>389 まずlongの読み書きは大丈夫なの?さらっとソース見た感じ何か複雑だけど・・。
CLDC1.1は触ったことねぇけど、キャスト時int扱いとかされてたりして・・
java.lang.Double.doubleToLongBits(double value) とか使ってみた?
シフトしながら書き込む。なんてことせずに、素直にwriteLongでいいのでは・・
399 :
デフォルトの名無しさん :2005/04/20(水) 21:16:01
あれ、DojaってwriteLong使えるんでしたっけ?
writeDouble使えないから使えないと思い込んでた
明日まずはLongで試しますアリガd
>>398
サポートしている変数の、書き込み読み込みようメソッドが無いなんてことあるかいw
すみません。 現在のiアプリと最新iアプリのバージョンチェックはどのような実装がベターなのでしょうか? 思いついたのは 1)バージョンを書いたファイルをサーバー上に置いて それを取得し、変数に格納しているバージョンと比較して 違ったら「ダウンロードしなおしてください」等のダイアログを表示して終了 2)ADFのAppVerを使う?(この方法が見つかりません) メジャーなやり方などがありましたら教えて頂けると助かります。
AppParamに書くのが一般的じゃね? AppVerを取得できれば、それが一番良かったんだけどねー。 今のAppParamにかかれているVersionと、起動毎にアクセスして受け取るVersionが不一致ならDLを促すとかでいいんでね。
けど、現在端末で動作しているアプリも更新させないといけないんだよね?
>>403 ありがとうございます。AppParamが一般的なんですね。
参考になりました。
>>404 動作しているアプリでのアップデートはちょっとやり方がわからないので
とりあえずダウンロードを促すだけということにしたいと思います。
>>405 505移行なら、アプリの中からUPDATEダイアログを呼び出せるぞい。
現在端末にあるアプリがそうなってないとどうしようもないけどね。
408 :
402 :2005/04/21(木) 19:26:51
>>406 またまた貴重な情報ありがとうございます。
505以上のものは対応するよう挑戦してみます。
409 :
デフォルトの名無しさん :2005/04/22(金) 19:15:37
最初にスクラッチパッドの読み書きをするプログラムを書いてみたらどうだろう?
>>410 前に簡単なメモ帳のようなものを作りましたけど、そのときはちゃんと動きました
ただ画像をスクラッチパッドに保存するコードを書くのは今回が初めてです
>>411 ちゃんとしました 277バイトの画像なので、余裕をもって300と設定してみましたが
catchの中はからっぽだし。 "scratchpad:///0; pos="なんていう書き方してるし。 だいたい for(int i = 0; i < IMAGE_SIZE; i++){ // データを読み出す buf[i] = is.read(); } って書いてる事自体が俺には理解不能。 その辺直したら動いたよ。 きちんと勉強し直してからの方がいいのでは?
ヘッダに整数値で情報置いてあるならともかく、gifだしな…。 サンプルはいくらでも転がってるんだし、まずコピペでやってみろとしか。
某サイトのは scratchpad:///0;[半角スペース]pos=〜 になってるけど、スペース入れると例外が起こるからね。 いろんなサイト(といってもそう多くないが)のサンプルを見ることをお薦めする。ガンガレ
DoJaに初めから入っているテトリスのソースを見ていたのですが、 Scoreクラスでハイスコアをスクラッチパッドに書き込むとき、 OutputStream out = Connector.openDataOutputStream("scratchpad:///0"); out.write((hi_score >>> 24) & 0xff); out.write((hi_score >>> 16) & 0xff); out.write((hi_score >>> 8) & 0xff); out.write(hi_score & 0xff); となっているのですが、 なぜわざわざ& 0xffを追加するのでしょうか? 0xffを二進数で表すと11111111だから、 & 0xffを入れても入れなくても結果は同じなのではないかと思うのですが。
417 :
416 :2005/04/24(日) 20:25:55
あげ忘れました。
>>416 の回答をお願いします。
OutputStream#write(int b) The 24 high-order bits of b are ignored. とあるが、上位24ビットは無視される仕様じゃないのか?
>>419 正直、そういうのを信用しないほうがいいよ。
仕様をぶっちぎってる実機なんていくらでもあるし。
サンプルのコードをそんなに気にするな。
422 :
416 :2005/04/24(日) 22:49:02
>>421 気にするなといわれると余計に気になってしまうタチなので。
そもそも一般に & 0xffをつけるのとつけないのでなにが変わるのですか?
423 :
422 :2005/04/24(日) 22:50:59
またあげ忘れた(^^;
writeの実装にゴミ(9ビット以上)を渡さない、ということが保証できるだけだろ まぁゴミがあったから問題になったという話は聞いたこと無いけどなぁ
425 :
422 :2005/04/24(日) 23:35:44
>>424 & 0xffをつけることによって9ビット以上がどう変わるのでしょうか?
気になってしまう性質なら、自分で調べろ。 ビット演算も知らずにプログラム組む気なのか。
これ以上はiアプリ関係ない Javaの質問スレ行け
428 :
422 :2005/04/25(月) 00:18:12
結局よくわからないままですが、 まあなんだか知らんが&0xffをつけないと9ビット以上が邪魔になる ということで理解したことにしたいと思います。 どうもありがとうございました。
わざわざビット演算子を使う必要もなかったり
>>422 もう寝たかもしれんが
&0xff をつけることによって 9ビット以上が 「寝る」。
つまり0になる。
つまり、 out.write関数に渡す前の時点で 完全な 8bit データとなる事が保証される。
素直にDataOutputStream#writeInt(int)使えと言いたいw
>>431 もともとは503用のサンプルだからな。
余計なクラスを使って容量を増やすわけにはいかない。
あのサンプルでそこまで切り詰める必要はないがw
>>422 理解できずに納得できるんなら、質問なんかするな!
もともとこの手のビット演算は、
iモード関係なく、プログラムの基本じゃないのか?
このぐらいのことが理解できないんだったら、
この先苦労するぞ・・・
>>433 そう熱くなりなさんな。
>>428 はビット演算わからないわけじゃなさそうだし。
>>428 お前さんの言う通りわざわざビット演算で消す必要はない。
実装されてるクラスが完全に動作すれば上位ビットは無視される。
で、なんで使ってるか?って疑問だがあくまで予想を答えると
安全性の向上が目的だろうね。
もともと503用だったソースなので実機もエミュも未完成の
状態でのサンプル開発かもしれない。今後(その当時)クラスに
手が加わる、もしくは実機によって動作が異なる可能性もある。
そんな時無駄に手間をかけないで済むようにするため。
容量もさほど食わない。念のためって奴でしょう。
あとはプログラマーの習慣とかもあるなw 結構ソースには癖がでるもんだ。 俺は昔ミスった経験から演算子順をわざと確定させるため ()を無駄につける事がおおいぜw確認の意味も込めてね。
てか、サンプルのテトリスってバグだらけだよな。
そもそも版権フリーではないテトリスを、サンプルにしていいのだろうかw
最近のはCarRaceだぞ?
>>438 いや・・・問題にってか質問にあったのはテトリスのソースだからなw
レースは関係ないべ今の話では
440 :
428 :2005/04/25(月) 19:08:34
ビット演算の知識は一応あるつもりだったのですが、
何か勘違いをしてるのかもと思っていたので
>>425 の質問をしたのですが、
言葉が足りなかったようです。誤解させてすみませんでした。
で、
>>428 と書きはしましたが、どうしても気になっていたので
今日学校で先生に聞いてきて、ようやく理解することができました。
&0xffをつけるのは9ビット以降を全て0にするためだったのですね。
上で回答してくれた皆様、どうもありがとうございました。
(´・ω・`) ナンカチカレタ
まあ、なかったことにして華麗に次の話題へ行きましょう。
RPG等で使うBGスクロールの処理を作ったんですが、N901iCではスムーズに 動くんですけどF900iCで動作させてみたら、とても耐えられる速度じゃあり ませんでした。。。 BG1チップ16X16のサイズとして、試しに以下のソースのような感じで 表示してみたところ、N901iCでは問題なくスムーズに動作。 F900iCだと超激重でした。 ・1画面分表示(240X240) for( i=0; i<15; i++ ){ for( j=0; j<15; j++ ){ g.drawImage( img, j<<4, i<<4 ); } } 皆さんRPG等の背景の描画には何を使っていますか? ちなみにSpriteにしても重かったです_| ̄|〇 ImageMapはまだ試してないんだけど、これ使えば早くなりますかね・・ 初カキコなので説明不足な部分があったらすいませんorz
Part何番かは忘れたけど、ここの過去スレに詳しくソース書いてある。 さかのぼって探してみるが良し。
446 :
444 :2005/04/26(火) 06:21:10
>>445 どうもです。
過去ログは見ましたが欲してる情報が見つかりませんでしたorz
スクロールの計算処理云々の問題じゃなく、drawImageが重い。。
これはもう900携帯の描画性能の限界でしょうか・・
あらかじめImageにマップを描き込んでっていう方法も、生成するマップ
のサイズがでかくてだめですし。。
ImageMapを使ったら若干早くはなりましたけどやはり重くて。。
FFとかF900iCでプレイした方いましたら処理速度どんなもんだったか
教えて頂けると助かりますorz
>>447 通りすがりの開発者だが読んでみた。
iアプリは10フレーム出てれば良い方だと思ってたんだが、一般の認識は違うのか?!
450 :
444 :2005/04/26(火) 10:38:05
>>447 ありがとうございます!
読んでたらちと試したい事が思いつきました。
感謝!!
>>448 俺は 505i以前→10固定 900i以降→10〜15可変 って感じだな。
453 :
444 :2005/04/27(水) 03:01:35
>>452 おかげさまで何とか動きました。
やってる事は結局差分描画なんですけどね。
画像の45度回転とかはどういう風に実現されてますか? sin,cosテーブル作ってgetPixelとsetPixelを使ってピクセル単位での移動しか無理でしょうか。。
drawImage でアフィン変換かけられるじゃん。
>>454 DoJaのバージョンによる
4.0以降は基本APIで可能
それ以下なら3Dで表現するか、
自力で回転させてやるか・・だがどれも重い。
あとあらかじめ回転した画像を用意するか、
起動時にその画像から回転した画像を
作成して保持してから使うかだな。
この方法だとアプリのメモリにさえ容量があれば
速度も出るが・・・メモリが問題だな。
>>455 >>456 ありがとうございました。
あらかじめ回転した画像を用意して対応したいと思います。
構想 8ヶ月 プログラム 3ヶ月 やっと完成したああああああああああああああああ この板が無かったら絶対100%挫折してた。・゚・(ノД`)・゚・。 皆さんありがとう<(_ _)>
正直、趣味でやってるとプログラム組むより 絵を用意する方がしんどい。
>>448 当たり前だが、機種と作り方次第。
滑らかさ最優先で組めば、条件次第では50とか33で回せる。
50出るようにしても、TFT液晶だとリフレッシュレートが追いつかないw
DoJa2.xに対応するアプリを作成しています。 画面切り替えで動作しない機種があり、悩んでいます。 現在の処理は、通常はCanvasクラスにて画面描画をし、 文字入力時のみPanelクラスにDisplay.setCurrentで切り替えています。 入力終了にTEXT_CHANGEDイベントを受けてCanvasに戻しています。 テストにはN2051・N2701・N2102V・F2102Vの4機種を使っています。 N系では問題なく動作しているのですが、F2102VのみPanel切り替え直後から TEXT_CHANGEDイベントが連続で発生し続けアプリが動かなくなってしまいます。 (TEXT_CHANGEDイベントの処理でリソースを全て使っている?) どなたか解決方法をご存知ないでしょうか?
「TEXT_CHANGEDイベントを受けてCanvasに戻して」いるあたりのコードをさらせ
463 :
461 :2005/04/28(木) 12:47:03
昨日からずっと悩んでいたのですが、なんとか自力で修正することが出来ました。 原因は、N系では文字入力確定後にしかイベントが発生しないのに対し、 F2102Vでは文字入力開始時にもイベントが発生していました。 N系では1回、F2102Vでは2回イベントが発生していたことでスタックがおかしくなっていました。
N900iでのみ通信エラーが発生して SPSize=409600にすると回避できるやつがありますが 過去ログを読むとN900iとP900iで発生するように書かれています。 この現象について同系機種であるN900iS、P900iVでも発生するのでしょうか。 何か情報を持ってる方いましたらヨロシクです
おそらく発生する。 原因はgcがダミーメソッドになっていることであり、それを同系機種への移行ごときで作り直すとは思えない。
>>465 速攻レスありがとうございます!!
発生する可能性が高そうですね...
ちなみに、gcがダミーメソッドというのは
「うっかりgcをダミーのまま出荷しちゃいました」
ってことなのでしょうか??
ポイントスプライトを表示したいのですが、テクスチャが歪んでしまいます。 UVの指定がおかしいのでしょうか?テクスチャの歪まない方法を教えていただきたいです。 環境 DoJa-4.0 Emulator ver.1.03 RenderSprite(Texture texture, int x, int y, int width, int height, int srcX, int srcY) { PrimitiveArray pa = new PrimitiveArray(Graphics3D.PRIMITIVE_POINT_SPRITES, Graphics3D.NORMAL_NONE | Graphics3D.COLOR_NONE | Graphics3D.POINT_SPRITE_PER_COMMAND, 1); int[] pointSpriteArray = pa.getPointSpriteArray(); pointSpriteArray[0] = width; pointSpriteArray[1] = height; pointSpriteArray[2] = 0; pointSpriteArray[3] = srcX; pointSpriteArray[4] = srcY; pointSpriteArray[5] = srcX + width; pointSpriteArray[6] = srcY + height; pointSpriteArray[7] = Graphics3D.POINT_SPRITE_FLAG_PIXEL_SIZE | Graphics3D.POINT_SPRITE_FLAG_NO_PERSPECTIVE; int[] vertexArray = pa.getVertexArray(); vertexArray[0] = x; vertexArray[1] = y; vertexArray[2] = 0; g3d.setPrimitiveTextureArray(texture); g3d.setPrimitiveTexture(0); g3d.renderPrimitives(pa, 0); g3d.flush() }
いやいやいやw そんなわけあるかい。 最初からやる気がなかったようにも見えるし、時間がなかったのかもしれない。 だがうっかりってことはないだろw
469 :
464 :2005/05/04(水) 13:40:26
>>468 本当にそんなわけないのかなあ。
っていうか本当にダミーなんですかね?
gcメソッドのテストって
なんか確認もおろそかになりそうな希ガス。
テスト担当者「gc()をコール...、エラー発生しないので合格!」
ダミーであることなぞ知る由もなかったり。
なんて、あるわけないし、あってはならないことですよね。
とは言っても、漏れの部下ならやりかねないなぁw
901iSがそろそろ出るわけだが、今回は DoJaのVerUPはないの?
もうVerUPしなくていいよ。 それより標準APIの速度をもっと上昇させてくれ。 アファイン返還なんて遅すぎて使えない
gc()はダミーメソッドじゃないよ。 ちゃんとメモリの解放はしてくれる。 ただ並べ替え(コンパクション)まではしないから巣が出来っぱなしになっちゃうだけだよ。
473 :
467 :2005/05/04(水) 15:30:23
妥協的自己解決です。ポイントスプライトではなくて三角形ポリゴンx2でやってみました。 int[] vertexArray = primitiveArray.getVertexArray(); int[] texCoordArray = primitiveArray.getTextureCoordArray(); int vi = 0; int ti = 0; // 右下 vertexArray[vi++] = x + width; vertexArray[vi++] = y - 1; vertexArray[vi++] = 0; texCoordArray[ti++] = srcX + width; texCoordArray[ti++] = srcY; vertexArray[vi++] = x + width; vertexArray[vi++] = y + height; vertexArray[vi++] = 0; texCoordArray[ti++] = srcX + width; texCoordArray[ti++] = srcY + height; vertexArray[vi++] = x; vertexArray[vi++] = y + height - 1; vertexArray[vi++] = 0; texCoordArray[ti++] = srcX; texCoordArray[ti++] = srcY + height; // 左上 vertexArray[vi++] = x; vertexArray[vi++] = y; vertexArray[vi++] = 0; texCoordArray[ti++] = srcX + 1; texCoordArray[ti++] = srcY + 1; vertexArray[vi++] = x + width; vertexArray[vi++] = y; vertexArray[vi++] = 0; texCoordArray[ti++] = srcX + 1 + width; texCoordArray[ti++] = srcY + 1; vertexArray[vi++] = x; vertexArray[vi++] = y + height; vertexArray[vi++] = 0; texCoordArray[ti++] = srcX + 1; texCoordArray[ti++] = srcY + 1 + height; こんな感じ。とりあえず歪まないが………何故四角形ポリゴンやポイントスプライトはこう描いてくれないのか謎です……
>>467 srcXとsrcYの役割がわからんけど、こうじゃないといかんのじゃないか?
pointSpriteArray[3] = srcX;
pointSpriteArray[4] = srcY;
pointSpriteArray[5] = width - srcX;
pointSpriteArray[6] = height - srcY;
実際はポイントスプライトを使ったことないが
test
>>473 その形に分割すれば歪まなくなるのか‥
描画アルゴリズムが変わったらアウト臭いけどw
あと、テクスチャの縦横サイズを2^nにすると歪まなくなった気がする
>>472 並べ替えしないようなら、
ゴミ集めとは言えない罠
何処の国の定義だろう?
gcがまったく無意味ならNやPはもうぬるぽ
>>479 それでもDQやFFが動いているわけだから、
ようは作り方なんだろうね。
>>480 DQやFFってSPをフルサイズにしてるわけではないのかい?
>>477 ガベコレとコンパクションは別物だ。
コピーGCとかだと両方いっぺんに行われるけど。
ぬるぽ
すいません、質問させてください。 doja3.5で開発したアプリが エミュレーター上では安定して動いているのですが、 N900iVでは処理ががたおちしています。 友人のSo506iSでは安定して動いているのですが…。 自力で考えてみたところ、バッファの拡大描画が悪さをしているようで、 バッファの拡大描画を止めてみたところ、安定して動くようになりました。 N900iVの方が性能は高いんじゃないのかな〜?なんて思っているのですが、 Fomaシリーズは拡大描画が苦手などあるんでしょうか?
485 :
484 :2005/05/07(土) 18:56:55
×N900iV ○P900iV 素で間違えた…、吊ってきますorz
FOMAからはSHが(大抵の処理で)最速。 PはNレベルまで急落。(というか、中身がほぼ一緒) Dは相変わらずアホ。 Fは505以降はF504のすばらしさが見る影も無くなった
487 :
484 :2005/05/07(土) 21:36:30
おお、ありがとうございます(`・ω・´)ゝ 自分、当時はiアプリ製作に全然興味なかったもんで、 あまり考えずにP900iVを買ってしまっていた…。 なんだかんだ言ってiアプリ作るの結構楽しいんで、 SHに買い替えようかな…? 弾幕系シューティング完成したんですが、 自分ドット絵ヘタレでして…orz なかなか公開出来ない俺orz
そうそう。SH901は急速にヘタれたので、性能を求めるなら900にしるw
どの機種でも動かしたいならわざと性能の低い機種を選ぶのも手
>>484 拡大なんかしたらそら遅いわ。
ちなみに、2D描画だけならSHよりもN/Pの方が速いよ。
>>486 900iシリーズの場合はそんな感じだが
901iシリーズではSHは3D描画以外ではN、Pに大部分で負けている。
>>488 一応ベンチでは多少結果が良くなっているが
他機種の向上に比べると微々たるもので画面も小さいこともあるしな。
もうすぐ発表のある901iSを待つのもいいと思うが。
結論 全部うんこwwwwwww
少なくともN901はうんこ
NTTドキュソの考えたDoja仕様自体がうんこ
BREWよりはるかにマシと主張してみる。
まあな
BREWってそんなに酷いの?勝手サイトで配布できないとは聞いたけど環境自体がクソ?
気にしなきゃいけないことが多いの CでWin16のアプリを書いたことがあれば難しくない でも一度Javaに慣れた体にはキツイのよね
上見て 暮らすな下見て暮らせ でもjavaしかできないなんてプログラマじゃないですぅぅぅ
>>497 ここで書くのもなんだが、本当にクソ。
1)APIが屑
わざと開発しにくいように設計したとしか思えない。
内部で勝手にリソースを確保するくせに、解放はプログラマがやんなきゃいけない
インタフェースとかあって殺してやりたくなる。
2)ドキュメントが屑
めちゃめちゃ数が多い上に整理されてないので、結局全部読まないといかん。
しかも、BREW自体のバージョンが上がったときにAPIリファレンスが更新されて
いない所があったりして、結局ヘッダファイルまで読まないと作れない。
3)実行環境が屑
どうにかこうにか完成させてみると、一部の実機では不具合が出るので、
回避するためのコードを書かされる羽目に。
4)検証が屑
わけわからんルールがいっぱいあって、それぞれ別のドキュメントに書かれている。
しかも提出してから結果が出るまで数ヶ月待ち。
#なのに大手だけ優遇。市ね。
501 :
デフォルトの名無しさん :2005/05/08(日) 23:24:26
>>1 )APIが屑
高校生が夏休みの宿題で作ったそうだが、本当に思えるところが凄い。
それにヘッダファイルもwindowsのハンガリアン記法で書かれていて見苦しい。
なんでそんな馬鹿な書き方するのか?
それ以外にも数限りなく屑なところがあって、コードが読めなくなる。
サンプルコードを読んでみるとわかる、汚くて読めない。
そういえば昔は変ったハードウェア向けはこんな感じだった。
10年ばかり退化した感じだ、これがqualcommの最新の技術というのは....
502 :
デフォルトの名無しさん :2005/05/08(日) 23:32:47
BREWが「最新技術」とかいってもてはやされているのは笑えるよね。 Windowsもあれだがそれでも100倍まし。
システムに数秒制御が戻らないだけで電源が落ちる。 ゲームのCPU思考とかで簡単にブチッ!
勝手ソフト配布できないってだけで BREWは糞だなぁと思う。
505 :
デフォルトの名無しさん :2005/05/09(月) 02:00:40
>>503 それは仕方ないわな。
あくまでも電話であって、本業をおろそかにできないから。
というか、BREWのカーネルのテクノロジーがノンプリエンプティブ(似非マルチタスク)で
テクノロジー的にWin3.1を大幅に下回るのが問題だw
かつての8bit OS OS/9でさえ、タイムシェアリング(プリエンプティブ)くらいサポートしていた。
506 :
デフォルトの名無しさん :2005/05/09(月) 02:01:36
iアプリ作ってみたいのですが、JAVAをいちから勉強してから作ったほうがいいんでしょうか。 それとも、初プログラムがiアプリでも問題無いですか?
CとかBASICとかやったことある? あるならいきなりでも問題ないんじゃね。
うちはiアプリから入ったけど全然問題なしだった。
>>508 BASICは昔、F-BASICでゲーム作ったことがあるくらいです。
Cは、すこーーーーしかじった程度。
プログラムはこんな感じでかかれてて…ってのが分かる程度です。
>>509 さんみたいな意見もあるみたいなんで、ちょっくらやってみたいと思います。
最終的には、ネット対戦可能なカードゲーム作ってみたいです。
いきなり目標高いな。 PHPとか作れないといかんから…。まぁJAVAが組めるようになれば、大抵の言語組めるよ。
>>497 BREWに比べるとDojaのエミュがマトモに見えるぐらい糞
BREWエミュ、アプリが落ちるときにエミュごと落ちるもんなぁ。ありえない。
>>510 志が高いのは素晴らしいが、悪いこと言わないからネット対戦部分は
かな〜〜っり厄介だからそれ以外から手をつけましょう^^
ネット対戦は通常のPCと違ってずっとオンライン状態ではない携帯では
かなり面倒な部分。パケ代もパケホー代でないと死ぬかもw
iアプリで一番厄介なのは機種依存!プログラムを理解してても
この部分で引っかかる事はかなりあるので、まず簡単な物から作って
自分の組み方で動くかどうか周辺の仲間なりに頼んで動かしてみる事お勧め。
ぶっちゃけプログラムが正しくても正常に動かないことが多数w
あと機種ごとの性能がまちまちと言うよりも落差が激しいのでそこも注意。
まぁ頑張れ!!
そんなに難しくない パケホなんか当たり前 それより鯖の性能
鯖の性能テラワロスwwwwwwwwwwwwwwwwwwwwwww
鯖の性能って…。一体なんの冗談だ
518 :
510 :2005/05/10(火) 17:54:42
>>511 最初は簡単なのから行きます。
文字表示とか、入力結果を計算して、表示するとか…
>>514 自分でもそう思います。ネットワークはまずは切って、それから構築していこうと思っています。
本屋でjava本読んできました。
jvmっていうものの上で動くんですね。
機種依存についても読みました。
j2meというものになりそうなので大変そう。
とりゃえずがむばります。
>>516-517 〇〇〇〇〇ンとか〇〇〇Cとかがいい例じゃないか。
専用鯖でさえ数日間落ちるんだから。
あ、そういやここ〇ー〇の社員見てるだろ。早くバグ取り・更新してね^^
>>519 一体510はどこのネットゲーム会社の役員なんだよw
所謂「携帯ネットゲーム」って、どれぐらいユーザーいるんだろうね。 大体は稼働初日に鯖が保たなくて落ちてる気がするが。
スレ違いかもしれないがJavaHz [ジャバヘルツ]ってドコへ消えたのかな・・。 久々に行ってみたらへんなページが表示されるだけで何もなかったぞい。 たま〜に行くと便利だったのになぁ。
>>524 俺もそれは気になってた。
去年の12月頭以降なんの音沙汰もない。
>>525 ん〜〜やっぱ消滅したのかなぁ・・・。
ってかそんな前から消息不明だったのか・・。
メーリングリストも死んだのかな?
527 :
525 :2005/05/12(木) 14:04:57
>>526 そのメーリングリストからのメールが12/4以降来てないんだよね。
528 :
デフォルトの名無しさん :2005/05/12(木) 15:33:15
質問失礼します。 900i 901i 700iシリーズのiアプリ上で使用できるフォーマット形式は、拡張子で言うと gif bmp png jpg 3gp mld となり、これが"全て"だと思っているのですが、他にありますでしょうか? 生まれてすいません。 よろしくお願いします。
>>528 質問は理解できるがそんなの知ってどうするのか疑問。
とりあえずそれが総てではありません。
3D関係のデータd4dとかその他もろもろがあります。
一応jarもあるかな。調べりゃまだまだ出てくるんじゃないかな。
釣りにしかみえないが… ヒント:png mid
png?
っていうか、拡張子なんてなんでも読めるんじゃねーの? 拡張子で中身判断してるわけじゃないでしょ。 っていうかPNGってなんだよ。読めねーよ。
有料着メロダウンロードサイトを作ったとき調べたけど 携帯はmld の拡張子を見てたな。 しかも、機種によって見る場所が違うもんだから ヘッダーのContent-dispositionと、cgiの名前(PATH_INFOだけど)と パラメタの最後と、全部に.mld つけたっけなw
534 :
528 :2005/05/12(木) 17:06:59
>>529 返答ありがとうございます。
人に説明するって難しいですね。。。
どう言えば伝わるのだろうか。。。
iアプリを制作する者がメモリを使用せず(また突付かれそうですが)、
そのまま利用できるファイルフォーマット形式が知りたいのです。
(cgi等のネット関係以外で)
例:
m=MediaManager.getImage("resource:///ore.gif"); ←そのまま
m=MediaManager.getImage("resource:///unko.3gp"); ←そのまま
m=MediaManager.getSound("resource:///ko.mld"); ←そのまま
d4dがそれ(どれ?)に抵触しないのであれば、そういうのを知りたいのです。
生まれてすいません。
よろしくお願いします。
535 :
533 :2005/05/12(木) 17:13:08
まあmldはMIMETYPEを、text/plain にしろという むちゃくちゃな仕様だったからそのせいもあるんだろうけど>拡張子を見てる text/plainにすれば、ウェブサーバ側の変更無しに ファイルが置けるからって理由なんだろうけどな・・・
mldって拡張子見てたのか。 ん?それっておかしくね? スクラッチパッド内のmldもきちんと読めるぜ?
537 :
528 :2005/05/12(木) 17:20:51
失礼しました。 BMP と PNG は無理なんですね。 なにせ、初心者なもので、、、
BMPはマスコットカプセルのテクスチャとして読めるべ。 とりあえず、目的を言ってくれ。 もっとも容量を削減できる画像フォーマットを探してる。とか。
読み込みのメソッドが用意されてるファイルフォーマットは? ってことかね
540 :
528 :2005/05/12(木) 17:49:53
>>538 返答ありがとうございます。
あー、そうなんですね < BMP
勉強になります。
っていうか、これは openInputStream では!?
そっか、質問の定義ではそうなるなぁ。。。
目的はキャリアが対応しているファイルフォーマットを単に把握しておきたいだけです。
なら画像はGIF、JPG 音はMLDと覚えておけばよろしい。 それ以外は使わん。
542 :
528 :2005/05/12(木) 17:51:47
>>539 そうそれ!
私には解説力が足らないなぁ。。。
生まれてすいません。
よろしくお願いします。
っていうか、 gif jpg 3gp mld これ以外無いですよね!?
543 :
528 :2005/05/12(木) 17:54:46
MediaManager.getImage() 〜 use()の流れで取得した画像って 不要になった際、きっちりとunuse()〜dispose()しないと後々ヒドいめにあうということを聞いたのですが、 これって本当でしょうか。 サンプルとか見ると、Imageオブジェクトはdispose()してるけど、MediaImageまでやってるのはあまり見なくて
ま、開いたもんは閉じとけ。
546 :
デフォルトの名無しさん :2005/05/12(木) 19:23:15
すみません。 質問なのですが。iアプリで電源ボタン(切ボタンの方) の制御みたいなものは行えないのでしょうか? iアプリを電源切ボタンで押されて、終了ダイアログから終了されたくないのですが… APIは見てみたのですが… 仕様なんでしょうか? 何かいいアイデアはないでしょうか?
>546 無理じゃないかねえ。 つか、そうでないとフリーズしたアプリ止める手段なくなるじゃん。
548 :
547 :2005/05/12(木) 20:17:06
フリーズしたら勝手にOSが止めるかもしれんけどなー。
電源ボタンで切られたら二度と起動できないようにしてやれw
ない。 そもそもそんなアーキテクチャは誉められたものではない プレステでもなんでもゲーム側でリセットボタン無効とかされたらぶち切れるだろ?w
>>546 普通に考えておかしな質問してるって気が付かないかい?
電源ボタンで終えられない作りができるとすると…
一度起動したが最後、バッテリーが切れるか抜くかしないと
止められないアプリ、なんてのが作れちゃ困るでしょ。
>>545 ありがとう。そうします。
Image取得後、すぐ捨てちゃっても大丈夫なのかな…ちょっと実験
電源終了でどんな不具合があるのか知らんし、何とも…。 スクラッチパッドに○○中フラグとか書き込んでおけば、 次に起動した時に「お前○○中に切っただろ。ぺなるちーな。」ってできるか?
555 :
デフォルトの名無しさん :2005/05/12(木) 23:28:42
>>554 そうすると電池が切れた時もペナルティか。
電池切れは流石に本人の責任としてくれよw
でもN900とかはちゃんと終了しないとスクラッチパッドに書いてくれない…
バッテリーを抜いてもなぜか止まらないアプリ……。(((( ;゚Д゚)))ガクガクブルブル
>>554 そこでセーフモードで起動するというギャグですよ。
そこでドラクエのセーブデータが失われたBGMですよ。
>>557 電池抜くと、スクラッチパッドに「書き込んだはずのデータ」が無効化されるんだっけ?
電源キー押しで終了ダイアログからやった場合は大丈夫だよな?
今N900で電池抜き試してみたわ。
スクラッチパッドへの書き込み無効化された…。
>>554 こういう方法でランキングの不正をはじいていたアプリが全滅だ…。
何か解決方法ない?
・サーバーでフラグ管理
・ゲームを始めたらTerminateして一旦強制的に保存(ユーザーめんどくさいだろ!)
・不正はじきはもうできない
どれだろう…。
・N900i非対応 まぁユーザーに再起動促すぐらいなら良いんじゃないか? 商用だと上の方から五月蝿く言われそうだが、不正されるよりマシだわな。
スクラッチパッドに書きこんだ後、終了しないでも フラッシュする、というかちゃんと書き込む機能ないの?
>>564 一番知りたいのはそれなんだが、聞いたことないな…。
>>563 1コマンド選ぶたびにリアルタイムセーブをするタイプのゲームはどうすんだw
>>552 みんなスルーしてるが・・・Image取得後すぐ閉じるとだめ。
その取得したイメージを使用しなくなった時に両方消すべし。
ただ機種によってはイメージを破棄したときにメディアイメージも消える機種ありなそうな。
tryでエラー取得しないと機種によっては落ちる。
>>564 ない。
>>567 N504が、Image破棄したときにMediaImageも消えるよ。
おかげでN504だけMediaImageの解放時にエラーになるんだよな。
さすが組み込み屋! ゲーム屋が心底困る設計を平然とやってのける。 そこにシビれる! あこがれるゥ! スクラッチパッドをすぐ更新しないのがヤヴァイって、 ゲーム開発経験がある人間が一人でもいれば、すぐ気づきそうなもんだがなあ。
570 :
デフォルトの名無しさん :2005/05/13(金) 17:33:10
ゲーム機じゃなくて電話だから フラッシュに書き込み寿命があるのを知らない一般人がアプリを作ったら…
一般人が長めにiアプリ使ってても、 そのアプリがしょっちゅう書き込みしてても 寿命は本体のが短かそうだなあ
フラッシュの書き込み限界よりさきに、世代が2〜3回変わって買い換えしてると思うぞ…。
といいつつ 俺が使用してる携帯はもう5年以上機種変してないわけだが
各機種の拡張API対応表みたいなのを載せているサイトってありませんか?
どこも公式にあります
どういうわけか、どこも茸のヌイグルミがほしい。
組み込みソフトのバグで、フラッシュガンガン書き換えて あっという間に限界に達して壊れるという事例があったのをご存知か?
>>575 DoCoMo公式を確認したのですが、それらしきものが見つかりませんでした。
拡張APIリファレンス、開発ガイド等を見ても
各機種の対応、非対応の記述はありませんでした。
申し訳ありませんが、URLを教えて頂けませんでしょうか?
>>579 対応表は開発者(コンテンツプロバイダ)向けの資料で見たことあるけど。
普通には入手できませんぞ。
>>579 >>2 のページの↓これ。4.0用はあきらめろ。
アプリコンテンツ開発ガイド for DoJa-3.5各機種オプションAPI・拡張API実装状況
gif画像を分割してImageに割り当てた場合に透明色を指定する方法はありませんか?
>>577 知らんわ。そういう問題に対処することと、
ストレージの動作を根本的に変えてしまうことはイコールではない。
無名なクラス com.nttdocomo.opt.ui.j3d#TransparentImage
おまえのバグを俺様に(ry
ウルウル目線でお願いしてくるおねーちゃん
589 :
510 :2005/05/15(日) 19:30:40
「てか、携帯のiアプリやらで、マジックできたらいいのになー。 パケット定額だし、画面も最近のは広いし。 カードデータはSDカードに保存してさ。 赤外線で、トレードできたりとか… よさげやない? 」 をコンセプトに思案してたのですが。。 iアプリの容量、オーバーしますかねこれ。 マジックというのは、トレーディングカードゲームの一種です。 ルールは結構複雑なのですが。。。 著作権とかあるので、汎用カードゲームプレイヤーみたいにしてカードデータをSDで差し替えるとか考えてたのですが 甘いですかねやっぱり。
>>586 TransparentImageは実装している機種が少なすぎるので使えないんですけど・・・
>>589 ルールコンフィグデータとカード画像データを保持して、
カードデッキのデータはウェブ上に保存とか…。
バグ取りと不正対策でいっぱいいっぱいになりそうだから、
いきなりそんなでかいプロジェクトやったら死ねる。
drawStringってなんでこんなに遅いんですかね?
ぬるぽってむかつくね。強制終了したのはお前のせいだ、みたいな。
実際ほとんどの場合はお前のせいなんだが・・
>>593 そりゃお前、アウトラインデータを参照しながら1ドットずつ色うってくれてんだぞ。
Image転送なんかよりよっぽど遅いわい。
なんでJavaの起動速度がこんなに機種によって違うんですか?
>>599 CPUの性能が違うから。
もしかしたら初期化のプロセスが違うのかもしれないが。
Dojaについて質問なのですが、Imageの分だけMediaImage変数を定義しないといけないのでしょうか? 例えば、Image im = new Image[2];と宣言してMediaImage mと宣言し mにリソース情報を格納し、im[0] = m.getImage();とした後に また再度mにリソース情報を読み込んでim[1] = m.getImage();として良いのでしょうか? 一応動くのですが、このように使いまわしていいか不安になったので教えて頂けませんでしょうか。
>>601 Image分だけMediaImage変数を定義はしなくても正常に動作する。
ただしアプリ内で大量に画像を扱う場合、
同時に使える量に限界があるので既に読み込んだ
Imageを破棄して新たなImageを読んで対処する場合がある。
この場合MediaImageを各Image分確保してない場合上手に
破棄できない場合がある。
画像の入れ替えを前提にしてる場合はその入れ替えの
可能性のあるImageにはMediaImageを保持しておく
事をお勧めしておく。読み込んで一切破棄しないなら
MadiaImageは定義しなくても良いと思われる。
604 :
600 :2005/05/16(月) 13:58:50
>>603 メル欄は気付いてたが、釣りか?これ。
くだらない質問だとは思ってたが。
無視して答えたまで。
>>601 MediaImageの実体が、どこかへ消えてしまってるぞ。
a = new String("うは");
a = new String("おけ");
とやったら"うは"のほうは補足できなくなってしまう。
Stringの場合は解放されるのが保証されているからいいが、MediaImageについてはその辺りブラックボックス。
ゴミとして残りつづける可能性を否定できないぞ!
>>602 さん
>>605 さん
ご丁寧なレスポンス、ありがとうございます。
GC頼りにしてたんですが、やっぱり怖い部分はあるみたいですね…。
容量のこととか気にしてましたが保守性のほうが大事なのでやはりMediaImageを
Image分だけ取得して安心感を買いたいと思います。ありがとうございました!
まぁ実際サンプルでもきちんとMediaImageを解放するように作られてるはず。 しかもどうせMediaImageなんてポインタなのだから、Image分だけ持ってい手も各4バイトしかメモリーを消費せん。 ガンガンつくれ!
608 :
デフォルトの名無しさん :2005/05/16(月) 18:31:30
スクラッチパッドについてよく分かりません。 どこに説明が書かれているのですか?
スクラッチパッドについての何がよく分からないのかよく分かりません。 どこに説明が書かれているのですか?
611 :
608 :2005/05/16(月) 20:21:46
すいません。 データを保存(・読み込み)する仕方が分からず、 検索したところスクラッチパッドを使うというのは分かったのですが、 スクラッチパッドの使い方が分からなくて質問しました。 スクラッチパッドの使い方というのはどこに書かれているのですか?
APIリファレンス読め。まずはそれからだ。
リファレンスを読んで駄目なら、サンプルソースを読めばいいじゃない。
DoJaそのものの説明pdfにサンプルがあるよ。APIリファレンスとは別の。
テンプラがあるんだからちゃんと見なさい。
>>2 に置いてあるから。
616 :
608 :2005/05/16(月) 22:59:22
150KB落とす。それを再生している間に次を落とす。
>>617 ありがとうございます。
実機などで試していないんで何ともいえないのですが、
MediaListenerで再生終了イベントを拾って、
次の150KB分のデータを再生、ってやろうとすると、
その間のギャップができないですかね。
やっぱり実機で試すしかないかなぁ・・・。
アプリで3gpファイルを再生させたいんですが Canvasに描画するにはどうすればいいのでしょうか? VisualPresenterでPanelにaddするとネイティブの 再生バーみたいなのでるのでイメージ部分だけを 表示したいのですが・・・。
動画に描画は、自前で実装するしかない。無理だと思うけど。
622 :
608 :2005/05/18(水) 18:07:38
いろいろ参考にして書いてみました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/412.txt 何がしたいかというと、スクラッチパッドに書き込むときはws()の引数に配列を指定して保存します。
読み込むときはstrという配列にスクラッチパッドの中身を入れるようにします。
試しにrs()で読み込んで、str[i]が空ならリストボックスに"から"という項目を作るようにしました。
そして実行したところ、"から"という項目は作られなかったのですが、項目をみても、何も書かれていませんでした。
str[i]の中身がいったい何なのか理解できません。
スクラッチパッドには、まだ何も書き込んでいないのでもちろん空です。(SPsizeは5000です。)
何が原因で、"から"という項目が作られなかったのか教えて下さい。
原因? if(str[i]==""||str[i]==null) このif文が真にならなかったから 以上!
>>622 if( str[i] == null || str[i].equals("") )
625 :
608 :2005/05/18(水) 21:00:58
>>624 ありがとうございます。
思っていたように出来ました。
626 :
デフォルトの名無しさん :2005/05/18(水) 21:41:48
放電アプリを作成中です。 内容は下記の通りです。 ・サウンド鳴動 ・バイブレータ ・バックライト ・赤外線(リモコン) ・画面チカチカ までやったのですが、TV電話かけっぱなしに勝てません。何を追加したらよいでしょうか? 今んとこ150分位ですが、90分までいきたいんです・・・
通信するとか
なんに使うのか果てしなく謎だが、とてもおもしろい試みだなw
消費電力と本体の発熱には密接な関係がある。 ずっとパケ通してると本体熱くならない? 消費電力でいうと無線通信が最強。
iモーション再生は? 画面チカチカ&サウンド鳴動とたいして変わらない可能性もあるが
マルチスレッドで延々と通信はデフォだろ
パケホ入ってないと死にそうだな
携帯電話に使われているリチウムイオン電池って メモリー効果がほとんどないらしいから、 わざわざ放電させる必要はないのだよ。
しかしだんだん使える時間が短くなっている・・・
635 :
626 :2005/05/19(木) 09:38:32
626です。レスありがとうございます。 お金がかかるので通信はしたくないと考えております。 ずーっとDLが一番簡単だと思うのですが。 ちなみに機能は 放電→計測→電源断→次回起動時に計測結果みたいな感じです。 メモリー効果は期待していませんが、30分位まで、作りこめばいろいろと用途があるかなと思います。
>いろいろと用途がある くわしく
エロい事に使う気だな・・・!
HttpConnectionを使って、getSourceURL()ディレクトリ内の
ファイルにアクセスするアプリを動かそうとしています。
(ここのサンプルです→
http://2php.jp/iapp/HttpConnection.html )
しかし、「con.connect()」の部分で下のエラーが発生します。
com.nttdocomo.io.ConnectoinException: Illegal header
どのあたりにミスの可能性があるでしょうか。
ご面倒ですが、アドバイスをお願いします。
ImageEncoderでJPEG以外に使えるフォーマットってあるの?
>>638 このページ、サンプルがいっぱい載っていてどのサンプルか「?」
なんだけど。
「Illegal header」って言われているんだから、GETとPOSTを
セットし忘れているとか、そんなあたりでわ?
>>640 ありがとうございます。
>>638 です。
一番下の「HttpConnectionのコードサンプル」というものです。
GETはセットしています。
con.setRequestMethod(HttpConnection.GET);
そこだけ書いて何をしたいんだ。
てきとーに一番したのプログラムを実行してみたけど 何だか con.setRequestProperty("Content-Type","text/plain"); を削除するといいみたい… なぜだ?
>>634 メモリー効果とは、関係ないっす。
寿命というか、使用による劣化どすな。
>>643 GETにボディなんてないのに、Content-Typeがあるなんておかしいからじゃないの?
>>636 予想
相方と自分が同時に大にイきたくなって先を越される。
携帯をちょっと拝見して、アプリを落とし起動。
「早くでねえとお前の携帯の電池あぼーんな!」
(゚∀゚)
たしかにGET要求にBODYがあるのはヘンだけど、 送らなきゃいいだけって気もするし、 HTTPの仕様だとどうなんでしょうね。
648 :
ゆー :2005/05/20(金) 07:59:49
はじめまして、ゆーと申します。 ぜんぜん、話題を変えてすみません。 現在iアプリを作成していますが、なんせ初心者なもので、手こずっています。 GIF画像をresourceから読み込む書式は、よく見るのですが MediaManager.getImage("resource:///img/***.gif"); TXTファイルからテキストデータを読み出す書式ってあるのでしょうか? 何とぞ、お力を御貸し下さい。 よろしくお願いします。
649 :
ゆー :2005/05/20(金) 08:00:47
はじめまして、ゆーと申します。 ぜんぜん、話題を変えてすみません。 現在iアプリを作成していますが、なんせ初心者なもので、手こずっています。 GIF画像をresourceから読み込む書式は、よく見るのですが MediaManager.getImage("resource:///img/***.gif"); TXTファイルからテキストデータを読み出す書式ってあるのでしょうか? 何とぞ、お力を御貸し下さい。 よろしくお願いします。
同じ。
偽装GIFでググれ。txt直接は無理。
というか、リソースに含めるならソースに含めてしまえばいいじゃない。 String STRTXT = "ここにテキストの内容";
Connectorにresource:スキーム要求することってできなかったっけ?
透過Gifが使えるのにスプライト機能があるのが意味わからん。
スプライトはそれだけじゃないからな
>>649 TXTファイルというのが何を意味してるか謎だけど、
単に文字列データをハードコーディングしたくないなら、
スクラッチパッドにに入れといて
使うときにbyte配列に取り出してString作ればいいんじゃないか?
俺もSprite使ったことないな。 接触判定可視設定以外に利点ある?
>>649 byte[] data = null;
String name = "ファイル名";
try{
DataInputStream dis = Connector.openDataInputStream("resource:///"+name);
data = new byte[dis.available()];
dis.read(data);
dis.close();
}
catch(Throwable t){
}
で読めたような。
え!?
>>657 drawSpriteSetでまとめて書くと速い機種がある
質問です。
http://www.geocities.jp/java_iappli/java94.htm ここのichat.javaってサンプル内に「wo_buffer.write("read");」って
部分があります。(このサンプル内ではreadという文字に意味はないですが、)
wo_buffer.write("name=foo&addr=bar")のように、「&」を入れると
「wo_connect.connect();」の部分で「com.nttdocomo.id.ConnectionException」
エラーが発生します。
なぜ&は使えないのでしょうか?
ShortTimerがマルチタスクボタンを押されると止まってしまいます。 これを回避する方法はありませんか?
ない。
復帰を検出して再スタート…って検出できなかったっけ? Vodaならできるんだけどなぁ
そもそも マルチタスクボタン押下=一時停止中になぜshorttimerが必要なのかと
>>665 一時停止中ではなくマルチタスクから再開した際に
ShortTimerが止まったままになるのでこれを回避したいんです。
おいおい。タイマーはRESUMEイベントの時に再開するのがお約束だろ。
>>667 そうだったんですか、ありがとうございました。
ドラクエ2が・・・
DQもFFもやったことがない
DQとDQNの違いが分からない
神の皆様にお伺いしたいです。 当方、Doja3.0プロファイル向けにアクションゲームなアプリを書いているのですが、 例によって実機とエミュとで挙動が異なる現象が出てしまいました。 手元のSH505iでは、getKeyPadState()でのボタン入力は同時に2つまでしか 受け付けて貰えないも同然の様子。 キーイン、リリースのイベント内で自前で入力情報を回収する様にしても やはり同じ挙動。 過去ログ(Part4)等を見る限りでは機種依存の動作みたいですし、 ある程度はゲームのデザイン側で対応することも考えてはいるのですが、 実際には斜め入力+弾発射みたいなことも受け付けるゲームもあるみたいで、 ソフト的に解決できる場合もありそうなものなのですが、どうやったものやら。 どなたか同じ様な経験された方、解決されている方、おられませんか?
>>673 携帯の方が同時に2つのキーまでしか受け付けてくれなかったような。
どうしてもやりたいなら、1379あたりを斜めキーにするとか。
オプションに「オートで弾発射」を追加する
676 :
673 :2005/05/22(日) 21:02:22
>>674-675 レスありがとうございます。
>オプションに「オートで弾発射」を追加する
正直なところ、これをデフォルトの動作にするくらいしか対応策を思いつけなかったのですが、
他の商用のシューティングゲームを見ていると、斜め入力中でも追加で「ボム」系の操作ができたり、
やはり3ボタン同時入力を受け付けているとしか思えないものがいるみたいで、悩んでいます。
UPPERLEFT や LOWERLEFT の様な斜め入力を1ボタンとして扱える機種はほとんどないみたいですし、
getKeyPadState() は3ボタン以上を扱えない、となると
processEvent() の中で受け取る Display.KEY_PRESSED_EVENT や Display.KEY_RELEASED_EVENT で
なにかしなければならないのだろうか、と考えたのですが、3つめのボタンが押された時点で、
それまでに入力されていた2つのボタンのいずれかに対して Display.KEY_RELEASED_EVENT が
飛んできてしまうため、具体的に何をしたものやら…という感じです。
そもそも十字キー部分で、斜め入力を基本とするのはいかがなものだろう? 上下左右キーがそれぞれ独立して離れているため、同時押しできない機種も多いぞ。
>>676 2キーまでしか携帯で取得できないと思っていた。
>他の商用のシューティングゲームを見ていると、斜め入力中でも追加で「ボム」系の操作ができたり、
やはり3ボタン同時入力を受け付けているとしか思えないものがいるみたいで、悩んでいます。
是非、具体的なゲーム名と3キーを受け付ける機種を教えてください。
679 :
676 :2005/05/22(日) 21:54:46
>上下左右キーがそれぞれ独立して離れているため、同時押しできない機種も多いぞ。
そうなんですよね…
とはいえ、ゲームなのでこればっかりは。
テストで使っているのは SH505i なのですが、こちらは逆に同時押ししやすい機種なので、
テンキー部分より、上下左右キーで操作する人も多いんじゃないかなという考えです。
テンキーの1,3,7,9には斜め入力相当の機能を割り振っているので、一応こちらで
逃げることも可能ではあるのですが。
>>678 >是非、具体的なゲーム名と3キーを受け付ける機種を教えてください。
いま手元にアプリと実機が無いので確認できないのですが、ケイブ社のシューティングゲーム類で
エスプレイド、首領プチ等が可能だった様に記憶しています。
エスプレイドはショットこそオートですが、特殊攻撃が別ボタンに割り当てられています。
また、移動に十字ボタンの斜め入力(これで2ボタン使っているはず)を使用している最中に
特殊攻撃のボタン(* か # 、もしくは 0 ボタン?すいません、記憶が定かじゃないです)を
入力しても、移動の妨げにならなかった様な…。
あまりに自然だったので、自分で作る側に回るまで、3ボタン入力不可ということに
気がつく事すらできませんでした。
680 :
デフォルトの名無しさん :2005/05/22(日) 22:11:40
>>679 キーの同時押しを取るのは無理なので、違う方法を考える。
例えば2のキーを押された後2のキーを離す前に4を押されたら1として扱うとか。
Display.KEY_PRESSED_EVENT と Display.KEY_RELEASED_EVENT の組み合わせ
で工夫する。
そしてresumeイベントで混乱する。 ダイアログとか出してとめればいいけどね。
682 :
デフォルトの名無しさん :2005/05/22(日) 23:01:24
その程度もできないか、出来なきゃやめとけ。
>>682 そいうことはやり方を提示出来る人間が言うもんだ
という定番の煽り
少なくともうちのクライアントは、数字キーでOK出してくれるよ。 だってSOがあるじゃなーいw
685 :
ゆー :2005/05/23(月) 08:02:38
ゆーです。 650〜658 レスありがとうございます。 メインソ−スを修正せずにデータテキストだけ 修正して、別々のアプリを作成したいなっと思っていましたので。 (できればスクラッチパッドを使わずに) とりあえずみなさんの意見を参考にトライしてます。 ありがとうございました。
686 :
デフォルトの名無しさん :2005/05/23(月) 19:56:50
音声のみの3gpファイルをゲームのオープニング音などに 使用したいのですが再生することはできないのでしょうか?
687 :
デフォルトの名無しさん :2005/05/23(月) 23:34:08
VisualPresenterクラスを使えば3gpを再生出来ますよ。
688 :
デフォルトの名無しさん :2005/05/24(火) 10:13:46
それだとネイティブのプレイヤーが立ち上がりませんか? 3gp音声再生中に画像を描画したいのですが。
689 :
デフォルトの名無しさん :2005/05/24(火) 10:34:50
ゲームアプリで3gp使うこと事態考えがおかしくないか? 3gpは容量が大きくなってしまうし、仮にサーバーから取得するにしても読み込みに時間がかかり実用的でない!
>>689 686じゃないが一般的な考え方ではそれが当然。
でもこれが商用アプリだと話は違う。
ドコモの特設ページに載せてもらう規準は
大容量・新機能を使っているの二つ。
内容はどうだって良いに等しいから無駄に容量を使ってるアプリが結構ある。
691 :
デフォルトの名無しさん :2005/05/24(火) 13:19:00
どうせならyouの3gpにvideoもputしてopeningmovieにしちゃいなよ
692 :
デフォルトの名無しさん :2005/05/24(火) 13:34:37
どうせなら3Dサウンド使うとか
693 :
デフォルトの名無しさん :2005/05/24(火) 14:31:18
こんばんは。 教えていただきたいことがあるので、質問させていただきます。 自分はDoCoMoのFOMA「SH901iC」を使っています。 最近友達も一緒に同じ機種に変えました。 友達の着歌を聴かせてもらうと… なにやら聴いた事のある曲ですが、DJのようにオリジナルアレンジされた感じの曲でした。 「それいいね〜。どこで取ったの?何かのRemix?」 「いや、自分で作ったんだよ〜。音楽CDあれば、自分の好きなようにイジれるよ。後はUPして携帯で落とすだけ。」 これはすごい。これは是非やってみたい。 と、思いその友人にやり方を聞いたのですが… いじわる?なのか。そうゆう性格?なのか。 もったいぶって全然教えてくれなくて…。 ですので、どなたかその自分で曲をアレンジ作成できるやり方を知っている方いましたら、どうか教えていただけませんでしょうか? よろしくお願いします。
695 :
693 :2005/05/24(火) 16:10:52
板違いでしたか! ご指摘ありがとうございます。 申し訳ありませんでした。
そりゃ、WAVあれば好きにイジれるだろうなぁ。 ソフトとテクがあるって前提だけど。タダじゃないけどな。 だからDTM板池。
DoJa4.0の開発ツールをダウンロードして、初めてiアプリを作ってみました。 なかなかに楽しかったですが、質問をさせてください。 今eclipseのプラグインを用いて開発を行っているのですが、 エミュレータの解像度が実機と大きく違っていて困っています。 私の実機は132x144なのですが、エミュレータだと240x240になっていて、 エミュレータも実機と同じか近いところまで持っていければと思っています。 DoJa4.0付属のエミュレータの解像度を変えることは出来るのでしょうか? ご存知の方、変え方を教えてください。よろしくお願いします。
698 :
デフォルトの名無しさん :2005/05/24(火) 23:11:41
>>697 DoJaの\lib\skinのdevice1,2のフォルダないのskin.confを開いてlcd_widh,lcd_heightの部分を修正すれば出来ますよ。
>>698 なるほど、ここに設定があったのですね。
エミュレータの縦横幅が変わったことを確認しました。ありがとうございました。
132x144ってP504iか何かだから、 DoJa-4.0とは大分違うんじゃない? 2.0の範囲で使えば問題ないんだろうけど。
とはいえ、eclipseプラグインが使えるのってDoja3.5のSDK以降じゃなかったっけ。 非対応のクラスや命令を使わない様、注意するしかないね。 俺的には解像度の指定もそうだが、倍率の指定を出来るようにして欲しい。 240x240をWXGAなんかに映した日には、小さすぎて実機の方が見やすいくらいだ。
>>700 俺の携帯はP504iですが、APIに気をつけて扱えば特に問題ないですよ。
手元には2.0のAPIをダウンロードしたので、実際にはほとんど気をつける場面はなかったです。
開発環境が用意されているのは大きいですね。
対応が面倒だから505以前のユーザーは全員 900以降のFOMAに買い換えてくれorz
>>703 それはわかるがwwwwww
うちなんて503も対応させられ・・・orz
そしてD900iに買い換える罠
いや、全員FOMAに移動してくれ。 んでDとPとNとFは避けてくれ。 半透明使えろよお前ら…。 Dは使えない。 PとNはrectだけ。 FはImageだけ(何故rectが使えないのだ?仕方ないから単色矩形Image作ってるよ!)
結局どれとどれがいいのよw
>>706 つまり皆SH90*にしろ、と?
個人で使ってる携帯はSHだけど
拡大回転系にクセがあった気がするなぁ
要はDoja氏ね
P504iの、Java以外の機能美にやられてしまったのですよ…。 液晶が壊れたときにわざわざ修理に出すくらいの愛着ぶりです。 でも今回作ってわかったけれど、容量30k以下などの制限は厳しいです
PCから保存したhtmlを携帯に画像としてminiSD経由で保存して iアプリで開けば通信料かからないよね。 こんなのできないかな。
>>711 DoJaからminiSDにアクセスするのは難しいね。やるなら偽装GIFかな。
あと内蔵ブラウザにそのHTMLを渡すことはできないから、自前でHTMLレンダラ作らないといけない。
まぁSHならPDFにしてドキュメントブラウザで開くという手も有るね。
アプリックスと提携して仕様を共通化する話無かったか? 今更やったってもう遅いと思うけどな。
714 :
デフォルトの名無しさん :2005/05/25(水) 13:38:30
そう言えば、503とかのエミュレーター出していた会社・・・i-jadegだっけ? もう、エミュレーター作らないのかな?結構、便利だった記憶があるんだけど
>>706 90xで半透明に使えるのは実質矩形のみなのか…。
FとSHは矩形Image、NとPはfillRectって感じ?
今作ってる奴の仕様変えないと…orz
全メーカー同一チップ使ってくれよ。 あと余計なカスタマイズもナシね。
>>716 無理ムリ。
携帯Javaみると、Wintelの互換性がすばらしく
感じてしまうw
最悪半透明はまあ勘弁してやるとしても、 いい加減グラフィックレンダラ統一して欲しいのは確か。 上限はともかく下限はそろえろ! あと、もう少しでいいからCPU性能は上げて欲しいかな… 505時代から実質変わってない様なもんだから、相対的に 新機種の方が性能落ちてる場合すらあるし。
アプリ作るほうのことは考えてないからな
>>715 SHは矩形もImageもいけるぞ。
SHさいこー。でもSH901iの遅さは最悪ー(なんで900より遅くなってんだ)
Dの場合は自前でgetPixelsとsetPixelsするしかない。
これ以上性能上げると電池が・・・ ってとこなんじゃないのかな ポリマーリチウムで容量アップ!
電池か…。今の状態でも充電しながらやるとホッカイロだしな。
まぁ確かにP504の機能美は神だったからな
Aクラスでスクラッチパッドに書き込んだ値がBクラスからは読み取ることが出来ませんでした。 これはスクラッチパッドはクラスごとに別々に管理しているということなんでしょうか?
単にちゃんとcloseしてないまま開いたとか、マルチスレッドで 変なアクセスの仕方してるとか、その類じゃないのかなあ。 例外飛んでないか、ちゃんと捕まえてみた? Exception.#oString()、Exception#getMessage()で IO関係の例外が飛んでいるのが発見できたなら、多分それ。
>>697 ADF設定のDrawAreaに132x144と書けばいい。
727 :
デフォルトの名無しさん :2005/05/25(水) 22:33:18
>>726 それだと機種ごとに違う文字サイズが反映されない!
skin.confで画面解像度と文字サイズを変更するのが一番!
機種ごとに違う文字サイズに対抗するには TINY と MEDIUM 以外使わないのがいちば(省略
JDK1.4でコンパイルしてproguard&jar&7zipして大体70Kのアプリなんだけど JDK1.5で(-source 1.3を指定して)コンパイル(以下略)したら約200バイト大きくなった どっちも実機では動くから問題ないんだけど、ちょっと気持ち悪い
7zipする前のクラスファイルのサイズはどのくらい違うの? あとJDK1.4と比べるんだから-sourceオプションも1.4の方が
ごめん1.4のデフォルトって言うかsourceオプション無しだと1.3なのね
>>730 当然モノによっても違うんだけど1Kバイトくらいかな
83->proguard->62後半->jarg->62前半->preverify->70->7zip->69
ってな感じ
> ごめん1.4のデフォルトって言うかsourceオプション無しだと1.3なのね
JDK1.5では -source 1.3 と -target 1.1 を明示的に指定しないと
コンパイルできなくなった、っていうことを言いたかっただけでつ(´・ω・`)ゴメンネ
ずっと夢中で作業してたんだけど気づいたらjarファイルが4メガもあったorz
おまい、少しだけのつもりがお椀いっぱいに増えるワカメ作っちゃうタイプだろ
>>733 藻前のメモリサイズに関する感覚はどうなっているんだw
40Kなら笑い話で済むが、百倍はいくらなんでもありえねぇだろw CVSの管理ディレクトリをjarに含めたままリリースしちまった漏れの言うことじゃないがorz
動画でも入ってるんじゃないかw
CVSはたまにgrepでウザッ!って思う それよりThumbs.dbをjarに(ry
あるあるw
エクスプローラで画像を見るのは素人
せめて.dbを作成しないようにちゃんとオプション切っておきなさいw
上司にthumbs.dbも提出するように言われました
その上司ハズレ
その上司はアホか? 「初見の時に3秒くらい時間がかかるだけですけど、本当に一緒に提出しますか?」 って聞いてやれ。
>742 オー人事 オー人事
746 :
デフォルトの名無しさん :2005/05/30(月) 16:34:02
赤外線リモコンアプリを作ろうとしたのですが、全く動きません。 とりあえず、何か出す所からはじめたいと思うのですが、ご教授いただけますでしょうか? public class sekigaisen extends IApplication implements ComponentListener { IrRemoteControl irc; IrRemoteControlFrame ircf= new IrRemoteControlFrame(); public void componentAction(Component source,int type,int param){ if(type==ComponentListener.BUTTON_PRESSED){ IrRemoteControlFrame [] frame1 = {ircf}; irc.send(1,frame1,10); } } public void start() { Panel panel = new Panel(); Button button = new Button("赤外線"); panel.add(button); panel.setComponentListener(this); Display.setCurrent(panel); irc=IrRemoteControl.getIrRemoteControl(); ircf=new IrRemoteControlFrame(); ircf.setFrameData(11,2,0,0); ircf.setFrameDuration(100); ircf.setRepeatCount(0); ircf.setStartHighDuration(100); ircf.setStartLowDuration(100); ircf.setStopHighDuration(100); irc.setCarrier(200 , 400 ); irc.setCode0(irc.PATTERN_HL,2,1); irc.setCode1(irc.PATTERN_LH,3,2); } }
>>749 APIの使い方よりも、
リモコンの送信データをどうやって入手するかを考えた方がいいかと。
あ〜ん♥
↓= →↑
なんとなくムカついた。 ドコモカップ東北の「iアプリWEB講座」の中・上級編が 第一時審査通過チーム通過者のみってどういうことだ?
ドコモカップ東北のページにあるWeb講座を見るのに、 中・上級編には審査通過者のみって制限があるってことでしょ? つーか、やる気のある人には見せてやればいいのに。 俺なら仕事で必要にでもならない限り見たくも無いよ。
その通り 何ケチケチしてんだか… 見たい人は沢山いるだろうに… 大体、1次審査通過するような人はある程度わかっているのでは?
なんだ、学生のコンテストの話か。
コンテスト自体はいいのだが講座を見られないのは アプリ製作者にとってはイタイね。 なんでそんな規制をかけるのかナゾ。
RPGとかである、8x8や16x16のセル表現で上下左右にスムーススクロールする 画面を作るとき、皆さんどんな風な実装されてます? Doja3.0以降用で、240x240を全機種共通の画面サイズとして考えているのですが、 画面下端(ないしは上端)はスコア表示とかで潰せるから、上下方向には8Pixelスクロールごとに 差分のセルを更新とかできるんだけど、左右方向のスクロールは、D系みたいに (っていうかDだけ?)Imageの最大サイズがCanvasのサイズ=画面サイズに制限されちゃってる 機種がいるおかげで、Image一枚をBG用に確保するだけじゃ収まらないし、 毎フレーム全セル描画なんてしてたら激しく遅くなっちまうので、差分書き換えが 当たり前なんだろうけど、あまりキレイな実装手段が思いつかなくて困ってます。 Graphics#copyArea()で移動量だけコピーする手は、内部で勝手に作業用のImageを 作るかなんかしてるのか、かえって遅くなるみたいだし。 セル描画専用にImage2枚を横つなぎとかにするかしないといけないのかなあ…。 そういう実装って一般的なのかなあ…。
>>757 こうですか?わかりません!メールとかが殺到するのを危惧してるんじゃないかな。
>>758 の質問はもうテンプレでFAQ入れた方がいいんじゃねえか?
つーわけで過去スレ読んでくれ。ご丁寧にソースまで出てるから。
できない機種がQVGAで限定するとD505i/iSだけなので、それをスルーするのが俺的一般実装
>>761 ですよねえ。でもそうもいかない場合は…orz
>>760 テンプラ作るので、場所教えてくださいましorz
ここのまとめサイトとかwikiとか作るってのはどうだろう
それ激しくナイス …●持ちの人、まかせた
iswebの垢に空きが出来たからYukiWikiでも入れようか?
YukiWikiだかPukiWikiだか知らんが、 情報サイトは出来るだけ多い方が助かる。
自分のプログラムが動いてる携帯の Dojaのバージョンを取得する方法ってある? もしかして、getProperty("microedition.platform") の、 機種名から地道に判定しないとダメ?
microedition.profilesでDojaのバージョン取得可能
突然勘に任せた質問! スクラッチパッド上にMLDやGIFデータを置く場合、 手前の方に置いた方が展開が速いなんて 機種は、この世に存在しちゃったりしますか!? 比較的しょっちゅう use() / dispose() するものほど 手前に置くのが究極奥義だとか、そういうの。
質問させてください。 P900iV実機で、AudioPresenter.play(n) を使い 音声を途中から再生させようと思っているのですが、引数が0以外だと全く音が出ません。 またpause()で停止したものもrestart()で再開できません。(例外も発生せず) 公式の実装状況の.pdfには[基本]となっているのに… 何か見落としていることがあるのでしょうか。 wav2mld(試用版)で作成したp211用のデータを使っているのですが、 もしかしてデータのせいってのはないですよね?
音声の途中再生には未対応。以上。
>>769 P504iで、Jpegを後ろのほうに置くと読み込みが遅くなる。
それ以外では聞いたことないな。
773 :
769 :2005/06/03(金) 09:39:42
>>772 サンクス
以前何かで聞いた記憶が引っかかってたんだ。
ていうか、普通に考えるとそうなること自体何か変な実装杉だよね。
P504iはスピード向上のために、いろんなところをBYTEで扱ったりしてたからね。 Imageが256*256までしかとれないのとかがそう。
240x240までしか取れないDに比べればッ!
Dはスルーの方向で。
かわいそうなD・・・
Dたん(;´Д`)ハァハァ
誰かD端末を萌えキャラ化してくれ
変形機能をつけて【でーすけ】にすればいいのかもな。
ガッ! ログ見たところ、SDカードのデータは読み込めないのか!? せっかく開発ツール類を準備したのに! P900iVのSDカード内に入れた3GPを連続再生する自作アプリを作ろうとした企みが 潰えてしまった(;´д⊂)
gifに偽装する手がないこともない。
783 :
781 :2005/06/03(金) 17:43:36
>>782 なんと!gifで偽装するならSDカード内のデータを読めるのですか?
DoPa3.5のAPIリファレンスの、com.nttdocomo.uiのどこを見ても、
java.awt.filedialogに相当しそうなクラスが見つからなかったので困ってますた・・
(メールやアドレス帳のデータは読めるみたいなので自分が見落としてるだけかもしれませんが。)
ImageStoreクラスなんだろうけど あれってSDのデータ読めるのかねぇ 使ったことないからわかんねw。 てっきり手動でSDから本体へ移行させてからかと思ってたw 方法は知らないけどGIFに偽装で埋め込んで そこからアプリ内で埋め込んだデータを 取り出す手法を過去から話だけは数回でてるな。 詳細な方法は出てないんだけどね。 ファミコンエミュが出た時、ROMデータの扱いで そんな方法でやってたらしいんだっけか? エミュ作る程の奴なら簡単なんだろうな・・。
Doja3.5で待受画像を作るアプリを作っています。 Image.createImage()で生成した240x320サイズのImageに、 描画を行ってからピクチャーに保存しようとしているのですが、 どうもうまく行きません。 createImage()で生成できるのは画面サイズまで、 みたいなことがガイドpdfに記載されてたので、 240x240にしたら大丈夫でした。 240x320サイズの画像を保存する 良き方法はないでしょうか?
>>785 二つImageをcreateしてくっつける
787 :
781 :2005/06/03(金) 20:20:47
>>784 今プログラムを使って実験してみたところ、本体メモリの画像フォルダは覗けますが
SDカードは覗けませんでした・・
これでは、たとえ音楽ファイルをGIFで偽装できたとしても、本体メモリのファイル容量制限(700KB)から
簡易プレイヤーとしての利用はちょっと無理ぽそうです。
・・・もしできるのだとしたら誰かが先に作ってそうなんでこういう結末の覚悟はしてましたが・・・
それだと240x320でエンコードできないから無理
>>787 画像フォルダ覗くのだって、エミュならできるが実機ではトラステッドiアプリ申請が必要では?
791 :
785 :2005/06/04(土) 01:53:52
>>786 >>788 >>789 レスありがとうございます。
MediaImage.getImage()したものにgetGraphics()は適用できないみたいだし、
やはり240x320サイズは難しいようですね。
792 :
770 :2005/06/04(土) 02:49:16
>>771 回答ありがとうございます。
P900iVとか別の機種とかwav2mldのバージョンとか関係なく、
AudioPresenter.play(int)は、音声(wavから変換したmld)の途中再生には対応しない。
…ということでよろしいですよね?
…開発マニュアルどこ見落としたんだろう…?
>>790 jamファイルに
AccessUserInfo = yes
って書いて
ユーザーが許可すれば大丈夫
Graphics.fillRect() DOJA2.0のエミュレータでは普通に描画できてるのに、 DOJA4.0のエミュレータだとばぜか描画してくれないんだけど何故? APIの仕様とか変わってるんですかね。
Doja4.0から、setColor系が扱うカラーが24ビットから32ビットになって、 上位8ビットにアルファ値を収められるようになった。 その関係で色が出なくなってるとか。 あとは例によってGraphics#getColorOfName()を忘れて Graphics#setColor()しているとか。 いずれにしてもGraphics#seColor系の使い方を見直してみるといいかと。
黒出そうとして Graphics#seColor(0); ってやると透明になっちゃうからな。気をつけるんだぞ。
__ __/ / | __ ── / ─ / / \ ○ | / | |  ̄ ̄/ ── __/ _/ / \ | / レ ─┴─ _/ /\___/ヽ /'''''' '''''':::::::\ . |(〇), 、(〇)、.:| | ,,ノ(、_, )ヽ、,, .::::| . | `,rェェェ、 ' .:::::::| \ |,r-r-| .::::/ ,,.....イ.ヽヽ、`ニニ´ーノ゙-、. : | '; \_____ ノ.| ヽ i | \/゙(__)\,| i | > ヽ. ハ | ||
Graphics#seColor() に適当な数入れるとエミュじゃ動くが実機で落ちる
……わざとやっているのか?
800
801 やおい(*´Д`)
GIF画像で製法とかサイズは同じなのに 使えるものと使えないものがあるのはなぜですかね?
エスパーきぼんぬですか
807 :
794 :2005/06/05(日) 20:49:27
>>774 見てふと思ったんだけど、もしかしてintよりもbyteの方が早かったりします?
>>808 どうだろ?
少なくともPCのVMはbyteより小さくても
内部ではintに変換して計算してた気がするが
byteよりintの方が高速な事実 intが高速というよりbyte使うと低速
811 :
デフォルトの名無しさん :2005/06/06(月) 02:08:44
byteの変数を算術演算、論理演算とかするとintで演算した後に intからbyteへの変換の命令が挿入される。それでサイズも速度も損する。 byteは基本的に配列としてだけ使うのがよいと思う。
>>808 P504が内部処理で行なっている部分はByteのほうが速いだろうが、
我々がアプリで組む上ではint使ったほうが速いよ。
>>802 一部のツールが吐き出すGIFは携帯で読めない。
例えばD-Pixedの古いバージョン。
GIFのフォーマットにはのっとっているのだが、携帯がそれに対応していない。
自前で研究した結果D-Pixedは
254データがあるよ宣言
254分のデータ列〜〜〜
254データがあるよ宣言
254分のデータ列〜〜〜
の繰り返しなのだが、普通のGIFは
255データがあるよ宣言
255分のデータ列〜〜〜
255データがあるよ宣言
255分のデータ列〜〜〜
となっている。
両方GIFのフォーマットには準拠しているのだが、携帯は後者しかサポートしていない。
何故D-Pixedが前者の吐き出し方をさせているのかは謎。
ケーたまの育児記録取れるアプリ無いの?
きんたまの精射日記?
816 :
デフォルトの名無しさん :2005/06/06(月) 14:40:03
お願いします、お助け下さい。 サーバーから画像ファイルを複数読み込み、 それをスクラッチパッドに書き込んでいます。 MediaManegerを使って画像を読み込もうとしたときに、 "scratchpad:///0;pos="+offset こんな指定をして読もうとすると一枚目は読めても 二枚目で、Unknown media image formatがMediaImageで出力されます。 これは、書き込み時点で間違っているのでしょうか? 読み込み時点で間違っているのでしょうか? ちなみに、読み込むときにoffsetを持っているので、offsetは間違っていないと思います。 二枚目のoffsetは一枚目のファイルサイズにしています。
817 :
816 :2005/06/06(月) 14:56:49
すいません。 ファイルサイズの取得が間違っていました。 ご迷惑をおかけしました。 offset値を加算していかないといけないのに、 まんまファイルサイズを指定していました。 申し訳ないです。
>>816 気にスンナ。非常によくやる間違いだ。
漏れも以前よく似たことをやらかしたorz
以前言っていたまとめの話だけど、簡単に作ってみた。 メル欄参照で。ログはPart1,2,3だけ見つかった。
>>819 乙。
漏れのアナルの処女あげる。
つ◎
俺の過去の悪行がさらされるのか!
どう更新すればいいのかわからない件
824 :
819 :2005/06/06(月) 21:51:13
>>820-821 !!??俺を童貞&包茎だと知っていて…
>>822 (・∀・)ニヤニヤ
>>823 Wikiのフロントページの使い方に書いておきました。分かりにくいですが。
その2ページ以外は編集できると思います。
826 :
825 :2005/06/06(月) 23:59:29
別の形式が良かったら知らせてくれー。
N/P端末の通信時のNoResourceのことなんですが、 スクラッチパッドめいっぱい取るのはいいとして、 別に使ってもいいんですよね?スクラッチパッド。 あとNoResourceが発生したあとって、回復できます? 自分のやり方がまずいのか、一度おきたらもう2度と通信できなくなっちゃうんですが…
質問なんですが901iシリーズって秒間何ポリゴンくらい描画できるんでしょうか。 とりあえずエミュで立方体を50個表示して回転させると処理落ちしたんですが… もちろん機種ごとに能力は違うと思うので最低スペック(DかFあたり?)が知りたいです。 当方に実機は1台もないのでorz
テストプログラムでもUPしてくれれば、実機テストの結果をレポるくらいはOKよ。
>>830 N901で800ポリ(tri)くらいは出てるのは確認した
けどライトやフォグつかったら1/3くらいにまで落ちるけどな
833 :
825 :2005/06/08(水) 01:06:55
HTML でアップしたんでよろ。
TextBoxの入力を数字としたいんですが、setInputMethod(TextBox.NUMBER) を使っても、TextBoxにローマ字が入ります。 数字入力が間違いなのでしょうか? TextBox tb = new TextBox("",12,1,TextBox.DISPLAY_ANY); tb.setInputMode(TextBox.NUMBER);
おれは今やつの機種依存をほんのちょっぴりだが体験した い…いや…体験したというよりは全く理解を超えていたのだが… あ…ありのまま 今起こった事を話すぜ! 『おれはやつのImageにdrawLineしたかと思ったら正しく描画されなかった』 な…何を言っているのかわからねーと思うがおれも何をされたのかわからなかった… 頭がどうにかなりそうだった…催眠術だとか超スピードだとかそんなチャチなもんじゃあ断じてねえ もっと恐ろしいものの片鱗を味わったぜ…」 Canvas#getGraphics() に対してのdrawLineは正しく描画されるのに、 Image#getGraphics() に対してのdrawLineが正しく描画されねえ。 なんなんだこの機種(D900i)は!! 誰か解決方法教えてくださいorz 意味もわからず、唐突に一部の直線が描画されないのです。
P900iでは正しく動作しました。エミュでもです。 毎回、同じ直線が、必ず描画反映されないのです。 しかもD901iだと正しく動きやがる!くそ!くそ! 具体的にわかったぞ。 grp.drawLine(163, 51, 174, 50); これをImage#createImageで作った画像に描こうとすると、無効化される!意味がわからねえ!
ほかにも大量に「盲点座標」が存在するっぽい。 欠けまくり。 これはもしかして、直線描画を自前で実装しろってことか…?
>>835 >>836 >>837 同一人物なんだろうが、余計なものばっかり書き込んで
肝心な情報が少なすぎるんだがな。まとめると
症状:createImageで作ったImageをgetGraphics()してそこへ
drawLine(163, 51, 174, 50);すると描画されない。
機種D900iにての不具合、エミュ・D901i・P900iは正常動作。
これだけか?あとで描いてある盲点座標ってのは別の話か??
createImage関係で真っ先に思いつくのはサイズはいくつでつくったんだ?
悪かった。同一人物だが、調査しながら書いてた上、最初に無意味なギャグを入れたのを大いに反省する。 盲点座標ってのは、 drawLine(163, 51, 174, 50); みたいに表示されない点のことね。 createImageは240*160でとった。
>>839 とりあえずこちらでも同じ症状が出ることを確認。
だが解決案はある。
drawLine(163, 51, 174, 50);
を
drawLine(174, 50, 163, 51);
に変更してみたら描画された。
Y座標の方向を変えただけなんだが・・・なんとなくw
通りすがりだが、 オレもY入れ替えれば描けるんだろうな、と思ったよ
だからDは放置プレイしろと何度も何度も
>>840 解決法はいいんだが、発動条件がわからない限り抜本的解決にはならない予感。
「下から上に描画しようとした時のみ」とかだったら判定できるんだが・・
Yを入れ替えて2開描画するってのはどうよ? 線の数が多いと遅くなりすぎるかもしれないけど…
Dには対応してません。と注意書きをつけるのはどうよ?
>>844 あまりと言えばあまりなアレ具合に、ちょっとびっくりだな(;´Д`)
それをやるしかないのか…。それでもダメな座標があったらどうしよう
基本的な事な気がするのですが 一つのPanelに追加したImageButtonは 別途Button_PRESSEDで開いたPanellには追加できないのでしょうか 下記エラーが出たので、そうだとは思うのですが 駄目と断っている文献が見当たらなかったため質問させていただきます com.nttdocomo.ui.UIException: Component already added to other Panel
>>840 DDAアルゴリズムの実装におかしな部分がある?
#今もDDAって使ってるんだよね?
直線描画なら普通DDAだろうね。 しかしなんだ、今更バグ出す必要がある場所なのか、そこは。 実は3D描画命令使ってて陰面消去されてるとか妙なオチなんじゃないだろうな。
Graphicsの中身が、Canvas用とImage用に分岐しているのはわかるが、 その差分を吸収して同じ結果にするのがGraphicsではないのか? toCanvasの実装者と、toImageの実装者が違う人だったんだろうかw
なんにしても、バグの出方が素人チックなのよね。 現場の惨状が目に見えるようだわ。
852 :
デフォルトの名無しさん :2005/06/09(木) 15:38:31
外部接続端子(充電するところ)に接続した機器から情報を引っ張ってくるAPIってありますか? 携帯アプリ板でも投稿させて頂いたのですがレスがないため マルチお許しください。
>>852 無視されてるんじゃなくて判らないからレスしない!ってのが多いかと。
俺もわからんw
そもそも接続する機器ってある?
軽快電話とか…か?
昔のGPSに無かったっけ?
iアプリのjarファイルの中にテキストをいれておいて実行時に読み込むことはできますか?
>857 もともとマルチって書いたあるじゃん。 >852 RS232Cっぽいけどアプリ側でどうやればいいか・・・
>>858 できる。
DataInputStream in = Connector.openDataInputStream("resource:///ファイル名");
あとはお好きに。
861 :
デフォルトの名無しさん :2005/06/11(土) 20:41:44
iアプリをデバッグする時にエラーメッセージを表示させたいと思い、Dialogクラスを用いたのですが、show()メソッドでダイアログを 18回以上表示させようとするとフリーズしてしまいます。現象を確かめるために以下のようなテストプログラムを実行しました。 (環境はWindows2000上のドコモ提供のエミュレータiappliTool for DoJa-4.0(FOMA) ver.1.03) error:0から表示が始まり了解ボタンを押していくとerror:16で了解ボタンを押したところでフリーズします。 error:17に移行しません。Dialogでエラーメッセージを出すのはそんなに珍しいとは思えないので 既出かも知れませんが、何か原因、対策が分かれば教えてください。(エラーメッセージを何百回出そうが固まらないようにしたいです) public class imodetest extends IApplication{ public void start(){ Display.setCurrent(new myCanvas()); } } class myCanvas extends Canvas{ static{ for(int i=0;i<40;i++){ error("error:"+i); } } public void paint(Graphics g){ g.lock(); g.drawString("Hello", 0, 15); g.unlock(true); } public static void error(String msg) { Dialog dlg = new Dialog(Dialog.DIALOG_INFO, "info"); dlg.setText(msg); dlg.show(); } }
Dialogが解放されてないんじゃないの?
Dialogが解放されていないと思い、error("error:"+i); の直後にSystem.gc(); を入れたりしたのですが同じくダメでした。Dialog解放の方法とかはあるので しょうか?
Dialogのインスタンスを1個だけ持つようにすれば? errorの中でnewするんじゃなくて、myCanvasのメンバに持たせて使いまわす。 もし今の作り方にこだわるんであれば、dlgに明示的にnullを代入→gcとやれば なんとかなるかもしれん。
例外吐かずにフリーズするってことは別の場所が原因な気がする…。
だねえ。 普通なら dlg を new してるあたりでなんらかの例外に捕まるはず。 最低限ぬるぽぐらいは出そうなもんだ。 class myCanvas extends Canvas{ static{ のあたりが解せないんだけど、何か書き忘れあります?
myCanvasのstatic メンバ変数としてdlgを定義・生成して、error()メンバ関数内 ではdlg.setText(),dlg.show(),ついでにSystem.gc()を行うようにしたのですが ダメでした。System.gc()なしでもダメ。 もとのようにerror()メンバ関数内でdlgを生成し、dlg.show()の直後で明示的に dlg=null、System.gc()を実行するのでもダメでした。 ちなみにerror()メンバ関数内でdlgを生成してもdlg.show()を実行しなければ フリーズはしません。(new Dialog(...)とdlg.setText(msg)は実行するという こと) Dialogの表示に関して何らかの制限があるのかな?
>>861 たしかにそのコードで症状でるけど、そもそもsetCurrentが行われていない状態で
GUI処理させるのはイリーガルなコードじゃないか?
ちゃんとsetCurrentが行われた後にダイアログ表示の処理をさせれば
フリーズはしなかったよ
class myCanvas extends Canvas{ static{ の部分には書き忘れはないです。この書き方はクラスの定義時(インスタンス の生成時ではないということ)にこのstatic{...}で囲まれた部分を実行する 場合の書き方です。このstatic{ ...}というやり方を使わないで、 myCanvas内に public void errout(){ for(int i=0;i<40;i++){ error("error:"+i); System.gc(); } } のようなメンバ関数を定義してこれをimodetestのstart()から呼び出しても やはりダメです。つまりstatic{...}が悪いという訳ではない模様。
>>868 あら、本当だ。うまくいきますね。今回のはテストプログラムなので元のでも
うまくいくか確かめてみます。
>>870 多分それでビンゴ。
Graphicsにlock()かけてる最中にDialog出すと固まる機種(P900だっけ)もあるけど、
それは今回関係ないだろうし。
>>869 > のようなメンバ関数を定義してこれをimodetestのstart()から呼び出しても
元のコードには幾つか問題があるよね。
868が指摘したsetCurrentもそうだけど
特にstart()の実行が終了しないようなアプリは
動作が保証されないんじゃないかなぁ?
そのerrout()を何かのキー操作やイベントで呼び出すようにすれば
大丈夫になると思われ
>>860 遅くなりましたが、ありがとうございます。
なんとか開いたみたいですが、readUTF()がいくらやってもうまく動かなくてお礼が遅れてしまいました。
ありがとうございました。
Panelが複数の場合、softKeyPressedとかってどうやってPanelがどちらに振られていることを判断するんでしょう?
>>874 事故レス
getCurrent()を使えばできます。ハイ
数年ぶりにiアプリ作ることになったんですけど最近はSPに格納するデータはJarにしておいてJarInflaterで取り出すのが普通でしょうか?
>>876 何を持って普通なのか?が疑問だw
JAR使うのは3.0以降なんだろうけど容量次第かと。
機種(P505など)によっては遅すぎたして、
処理内容によっては使い勝手が非常に悪い。
容量が少ないとか頻繁に読み替えするとかだと使ってないな。
漏れも使ったことないんだが、自前で圧縮伸長するよかよっぽどよさそうだとオモットッタ。 駄目なんすか? 例えば4KB程度の生データ(RunLengthあたりでも数分の一に縮む、 RPGとかのマップデータ)を簡単に展開して使うとか。
展開時に展開できるだけの十分なメモリがあいてれば良いと思うよ。 スクラッチパッドのサイズがどうしても足りない時とかは有効な手だし。
アプリで赤外線を受信することはできるのでしょうか?
一応送受信できるよOBEXだったかな?
>>880 つClientObexConnection
>>878 別に悪くないよ。ただ速度差が機種で凄いって事。
ダウン容量削減して速度を高速にしたい場合は
圧縮データダウン、保存せず解凍したのを保存、って手もある。
利点
ファイル容量削減。
スクラッチにデータ入れてもファイルネームアクセス可能(日本語不可)
欠点
機種によって遅い(P505は致命的に遅い)
メモリを多少多めに使うらしい??(未確認)
3.0以降のみでしか扱えない。
アドレスリストや分割ファイル生成するツール作ったりしてたけど、 JarInflaterなら管理が楽になりそうだなぁ。容量も若干減るようだし。 次からアプリ作る時は使ってみよう。
流れを読まずにひとつ質問。 「Image は dispose() しないと開放されない」 というのがある様子ですが、これは自分で Image#CreateImage() で作成した Image についても適用されますか? それとも、MediaManager#getImage() で確保された Image についてのみでしょうか? もし前者についても dispose() しないとならないとなると、 デストラクタが無い Java のクラス内で生成する Image については、自前で dispose() する関数を呼んでやらないとメモリリーク発生、なんてことになってしまうと 思うのですが…。 そんなことは特にありませんか?
n900iです。 バイブを指定するまでずっと動かし続けたいのですが、 1秒ごとに動いたり止まったりしてしまいます。 FFIIでは結構長く震えていたと思うのですが 何か方法があるのでしょうか?
興味あるか判らないがJarInflaterの動作テスト結果報告。 505のPとN:やばいくらい重い 506・900のPとN:505に近いくらい重い 700・901のPとN:重いけど実用に耐えうる速度 その他のdoja3.0が動く機種:快適 ちなみにiとかisとicとか末の言葉が変わろうと同じでした。 あ、重い重くないってのは体感速度です。 実際に速度計ったわけではないのであしからず。 ユーザーが多いPとNがダメってのはかなり痛い・・・。
ファイル数を少なくして圧縮の利点だけ活用しろ。そうすりゃPNでも速くなる
そこでLZ圧縮かBPE圧縮ですよ。
展開速度なんて誤差の範囲だと思うぞ。 と思う、SH900iの俺であった…。FF2とかテラオソス(´・ω・)
つか普通に JarInflater 使ってるけどな 要は使い方次第だ 圧縮・解凍をするタイミングをなるべく少なくするとか、 ユーザーの時間感覚のスキマをついて解凍するとかね
ベンチマーク欲しいな。 テキストデータとか、RPGのマップデータなんかはおあつらえなんで、 JarInflater使いまくりたいよ。 個々のデータは数KBでも、全部ベタで持ったらン十〜100KBになることなんてザラだし、 30KBの制約の中に、自前の伸張ルーチン仕込む余裕をひり出すのも一苦労。 1KBあたりn秒みたいな、簡単な目安があるといいんだが。
んぱかの人 ベンチ たのむ
>>894 実際に使ったことある?
JarInflaterはopenするときにデータ量によってドカっと処理が停止して
readするときはすいすい読み込める
だから頻繁にopen/closeするような作り自体はまず無謀
そしてopenしっぱなしだとメモリを喰う罠
まあ、ネイティブ機能を信頼するほうが間違いってこった。 こういうAPIは使わなければ使わないほど結果が安定する。
>>896 それはオープン時に一度内部で一括展開されて、
後は展開結果が参照される続けるだけってことになるのかな。
そりゃメモリも食うわいな。
いずれにしても、最初の読み込みでパケ量減らすために使うか、
ある程度まとまった量を一括展開するのにしか使わないのが
吉ってことかしら?
SH505で試してみた。
一度に扱うZipのサイズが巨大すぎないなら、十分現実的な速度で動くっぽい。
逆にある程度サイズが大きくなっちゃうと、目に見えて処理が固まっちまうので
>>894 的な使い方はありだけど、速度優先でいくなら、Zipに何でもかんでも
突っ込むんじゃなく、ある程度容量に損失出ること覚悟した上で、
少し細切れ気味のデータにして使うのがいいとオモタ。
ところで、場合によってはこの種の伸張ルーチンは自前で用意した方が
機種依存とかの揺らぎに振り回されなくていい気もするんだが、
ネィティブコードがJavaの展開コードに速度面で劣る状況ってあるのかな?
zip伸張ルーチンはネイティブで持ってるはずだから、普通に考えれば速いはずなんだけど、 zip自体の複雑さと、APIのオーバーヘッドが加味されてどうなるかッスね。 自前で圧縮・伸張するなら、8bit PC時代みたいにLZ77かBPEかな。
BPEってどっかにソース転がってたっけ?大昔CMagazineで読んだきりだから忘れちゃったよ。
D901iSはアプリ強いのか?
例のdrawLineバグがきちんと消えてるぞw<D901i
904 :
デフォルトの名無しさん :2005/06/19(日) 16:45:01
ねとらじって、どういうAPIで音を出しているんでしょうか? mldにエンコードして、AudioPresenterに食わせる?
>>905 んー本格創刊てことは今までネット限定の数量限定の販売だったのが
本屋に並ぶことになったかもしくはネット限定で数量無制限になったか
どっちかかなと思う…いやたんなる予想ですけどね
アドバイス頂ければ幸いです。 現在、メッセージを表示する時にタイマーを使用して 一文字一文字表示しています。ドラクエのメッセージのような感じです。 ex.こ(sleep)ん(sleep)に(sleep)ち(sleep)は、、、こんな感じです。 この間、SELECTボタンを押されるとまずいので、フラグを立てて、メッセージ表示中は 入力を不可にしようと思ったのですが、表示部分のコードを通過しても 実機ではまだ表示の最中ですが、表示部分のコードは通過しているので キー入力を受け付けてしまいます。 これはどうやったら回避できますでしょうか?
Timerを使う
>>907 ソースを提示していないから誰も的確なアドバイスはできない。
当てずっぽうで答える。
キー入力の判定と描画を非同期で処理しているとそうなる。
描画にrepaint()/paint()を使っているならやめて、
別のメソッドで描画するようにし、キー入力判定の処理と同期を取ればよい。
すでにそのようにしているなら、フラグを監視している場所(タイミング)が悪い。
sleep出た時にキー情報初期化すればいいじゃん
レスありがとうございます。 原因がわかりましたが、まだ解決できません。 描画中にキーイベントは一切processEventに入ってきていませんでした。 ただ、描画中にキーを押した分は、描画後に一気に流れてきます。(自前の描画関数だから?) てっきり描画中もprocessEventに来ているものだと思っていたのですが、、、 これでは、描画前にフラグを立てても、意味がありませんでした。 キー情報初期化とはどうやるのでしょうか? 描画後に溜まっているキー情報をクリアできたら、非常に助かります。。。
度々、恐れ入ります。 自前ではなく、repaint()に処理を書き込んだところ、 描画中も、processEventにてキー入力を拾うことができました。 自前で書き込んでる場合は、拾えず、 repaint()ないなら拾える。 まだまだ、勉強が足りないようです。。。ご迷惑をおかけしました。
913 :
デフォルトの名無しさん :2005/06/21(火) 13:00:39
その自前の描画関数のどこかにThread#yieldを挿入すればうまくいく希ガス
自前の描画って、processEvent()内で行なってないか? もしそうなら、描画が終わるまでキー入力は受け付けない。 (正確には受け付けないというより、バッファに溜まっていく) repaint()は別スレッドで描画されるから受け付ける。 ソース見ないとわからんが、たぶんこれが原因じゃないかな。
>>914 イベントで描画するとそうなるのか・・・ってか
普通イベント内は簡潔に短くってのが基本だろうw
根本的に組み方がまずいんじゃないのか・・・。
>>914 おもいっきりprocessEventの中で描画しています・・・
え、でも、例えば、メッセージを表示してSELECT押されたら、
二回目のメッセージを表示するときなんて、
if( Display.KEY_SELECT == param )
MyPaint();
こんなやってやりません?
これダメな例ですか?
>>916 それしかしないならかまわないが、基本的にダメな例じゃないかな。
キープレスイベントではグローバル変数にキー取得データを代入するようにすべき。
イベント内部ではキー関係以外でも呼び出される為余計な処理は入れないのが基本。
ゲームなんかで色々多岐に分岐する際そいう作り方だと
呼び出されるたびに無駄なメモリの確保やら色々されてしまい結果的に容量不足になる。
処理速度を安定させることも難しくなるし、根本的に作り直しをすべきだと思う。
>>916 >>917 の言うとおり。
processEvent()内で描画などの「重い」とされる処理をしちゃだめ。
プログラミングガイドに書いてあるでしょう。 ←重要
他に例えばスクラッチパッドのアクセスや通信もここに書いてはダメ。
「あまりやらない方がいい」ではなく「やってはダメ」と覚えて。
processEvent()はケータイ本体側(システム側)からユーザー入力などのイベントを
プログラムの動作とは非同期にプログラム側へ通知する役目を持つメソッド。
通知を妨げるような処理をやってはいけない。
やるのは、押されたキーの値の代入とか、フラグの上げ下げとか、その程度で。
919 :
918 :2005/06/21(火) 15:15:22
プログラミングガイドって 「iアプリコンテンツ開発ガイド for DoJa-xx 詳細編」のことね
勉強になります。 ありがとうございます。
921 :
デフォルトの名無しさん :2005/06/21(火) 22:38:29
ダウンロードテストをしようと思って アプリゲットに作者登録したんですが そっからどうしたらいいのかわかりません アップロードはできていると思うんですが どうしたらダウンロードできるんでしょうか? スレ違いだったらすいません
アプリゲットは使ったことは無いが・・・ ダウンロードする url はどこかにないのか? Vアプリ風なら、ダウンロードを通知する機能が あるかもしれないが・・・。
よくわからんが、登録完了通知メール来たの?
自分で作ったアプリをSDカードに転送して そこから携帯で実行することってできますか? カード持ってないんで・・・
出来たらみんなウハウハ
またそのネタか
doja3.0 3.5が入った状態で4.0をインストールしようとしたら 違うバージョンが入ってるということでエラーが出てインストールできません 複数バージョンを同居させたいのですがみなさんどのようにしていますか?
自己レス doja4.0からはプロファイルが選べるんですね 古いのをアンインストールして4.0からプロファイルを選ぶのが正しい気がしてきました
ウチのPCのは普通にDoja2.0 2.1 3.0 3.5 4.0 が同居しているのだが?
>930 っ[ 1.5OE 2.5OE ]
932 :
921 :2005/06/22(水) 22:23:57
>>922 >>923 わかりにくい説明ですいませんでした
勝手ながら自己解決しました。
お騒がせてスマソ
>921 どう解決したか書こうぜー。 誰かの参考になるからさー。
>>898 これが正解か知らんが、JarInflater開くのに必要なInputStreamは、
JarInflaterが作成された時点で閉じてしまっても問題ない。
イコール、JarInflater自体は作成時にJarを展開してしまう
=展開容量と機種によっては、がっつり固まってしまう、という俺理論。
合ってるかどうかはわからんちん。
でも小規模の単純なデータなら、自前で展開するよか大抵早いみたいだね。
Jar(Zip)の中に何でもかんでも詰め込みすぎない様にすればいいだけみたい。
935 :
921 :2005/06/23(木) 19:17:48
>>933 んじゃ一応書いときます
アプリゲットの作者登録をすると、ホームページエリアを貸してもらえるんですよ
そこで自分の作ったアプリをアップロード、ダウンロードするんですが
通常ならFTPってとこにjarファイルjamファイルを入れて
HTMLファイルを組み込めばいいはずの所を
bin.res.spなどが入ったフォルダを丸ごとアップして
test.hlmlなどというファイルも入れたりしてたのです
みなさんからすれば(゚Д゚)ハァ?なんでしょうけど
私はFTP.HTML共に初めてだったので、
わけがわからずこんなことになってしまいました。
こんなの誰かの参考になるかな・・・
936 :
933 :2005/06/23(木) 19:53:47
>921 アプリゲットの中の人には参考になるよ。 そういうところを強調しなければいけない、ってね。 スレ違いだがゲームチャンネルVは サイトの使い方が全くわからなかったよ。
937 :
デフォルトの名無しさん :2005/06/24(金) 01:21:49
JDKの違うバージョンを同居させて使うことはできますか? 例えば1.5と1.4とか・・・
させてるが、あんましオススメはしません。 つってもDojaを環境のまま使う分には大して影響しないけど。
アドバイス頂ければと思います。 現在RPGを作っていて、移動画面と戦闘画面で Canvasを分けています。 移動中から戦闘画面にsetCurrentで変更しようとすると、 戦闘画面用Canvasが表示するまで1.2秒くらいかかってしまいます。 これは、やはりCanvasを一つにしないと回避できないでしょうか? ちなみに、戦闘画面の方で背景色を変えるだけの処理でも 時間は同じでしたので、戦闘画面Canvasの処理が重いというわけではないようです。
申し訳ございません。 自己解決しました。 コンストラクタでスクラッチパッドにガンガン、アクセスしていました。 申し訳ございません。。。 スレ汚し、すいませんですm(_ _)m
941 :
デフォルトの名無しさん :2005/06/27(月) 23:04:25
すみません。ちと困った事があって質問します。
クラスPaletteを使用してイメージ画像のパレットを操作しようと
しているのですが、エミュレータ上ではうまくいくのですが、
携帯上だとなぜか全くうまくいきません。
RGBAの並びがエミュレータと携帯上だと異なるのでしょうか?
とりあえずは下記に詳細を記しておきます。
・イメージ対象はGIFフォーマットデータ
・イメージのパレットでの吸出し関数
PaletteクラスでのgetEntry関数
・RGBAの分解なんかは下記の感じで
int rgb = plt.getEntry(i);
int red = rgb&0x000000ff;
int green = (rgb&0x0000ff00)
>>8 ;
int blue = (rgb&0x00ff0000)
>>16 ;
int alpha = (rgb&0xff000000)
>>24 ;
・イメージのパレットでの設定
PaletteクラスでのsetEntry関数
・開発環境:Doja4.0
・携帯端末:SH901ic
>RGBAの並びがエミュレータと携帯上だと異なるのでしょうか? そうだよ。 エミュと同じなのは、900端末ではDだけだったような。 残りは全て16bitカラー。901は調べてない。 きちんとgetColorOfRGBを使うべし。
943 :
941 :2005/06/28(火) 00:48:51
>>942 なんと・・そうでしたか。
レス感謝です。早速手直ししてみます。
getColorOfRGBしないで直接ビット操作した日にゃあ なんてことない顔して実機で落ちるからな
まぁ不便な点ではあるよなぁ。 MIDPなんかは整ってるから楽なんだけど。
946 :
デフォルトの名無しさん :2005/06/28(火) 18:54:25
948 :
デフォルトの名無しさん :2005/06/28(火) 22:00:16
(゚∀゚)
950 :
デフォルトの名無しさん :2005/06/28(火) 22:56:15
初心者ですみませんが、スクラッチパッドにString以外のオブジェクトって書き込めますかね??
out.writeInt(int) out.writeLong(long) out.writeByte(int) out.writeBoolean(boolean)
おいおい、質問者はオブジェクトって言ってるぞ。
>950は、(初心者っぽくないが)シリアライズについて質問し、 >951は、シリアライズはないから自前で変数を1つずつ書き出せ、と遠回しに回答。 だったりして。
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < 次スレまだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | 愛媛みかん |/
iアプリってサスペンド取れないんだっけ? 毎フレーム取得してる時間がリジュームの時に更新されてたりされてなかったりして 非常に困るんでなんとかしたいんだが・・・ これってリジュームのイベントが来る前に何か動いてる時があるってことだよね?
>>955 それだけの情報ではなんとも・・・ソースも見れないし。
サスペンドって事は待ち受けアプリ???
その毎フレーム取得してるという時間をどのように扱ってるのか判らないが
なんならリジュームイベントの中で再取得して更新してやればいいんじゃない?
あ、俺もそれは思った。 Resume自体は取れるが、いつSuspendに入ったんだかはわからん希ガス。 今作ってるのが505以降用で、Doja3.5以降のATTRIB使えないんで、とりあえず FOLDING状態だけは見るようにしてるんだけど。
質問です。 iモーションをアプリ上で描画するときは、MediaManager#getImageでMediaImageを取得し、 Panel上にVisualPresenterを使って設置するわけですが、 Flash(swf)ファイルは同様にできないのでしょうか? 資料をざっと見てもそういう一覧を発見できず、ぐぐってもまったくHITしないようです 「swf MediaManager」
某フルブラウザ開発者さんですか? 無理ですよ。鯖側で展開しない限り。
>959 今リリースされてるフルブラウザの開発者なら、 そのぐらい知ってると思われ。 というか、そのぐらい調べられるっしょ。 っ[ i アプリコンテンツ開発ガイド for DoJa-4.0 〜詳細編〜 1.00 P88〜P89 ] 差別化のために Flash 対応しようとしたのかな? swf はフォーマットが公開されてるから、 あとは気合いと根性でがんばれ。
961 :
960 :2005/07/01(金) 00:20:35
Panel って書いてる時点でフルブラウザと無縁だって 気づこうぜ俺・・・。
962 :
デフォルトの名無しさん :2005/07/01(金) 04:57:51
main.java a.test.java というパッページ、及びクラス構成で、 a.test.java内で、 import main; としていますが、 iappliTool 3.5でコンパイルすると、 エラーとなってしまいます。 javacの実行に失敗しました ビルド開始(DoJaプロファイル : DoJa-3.5) C:\DoJa3.5\apps\20050629\puzzle\src\a\test.java:14: '.' がありません。 import main; ^ 原因として考えられることありましたら、 教えてください。
963 :
962 :2005/07/01(金) 04:59:51
import main; _______^ ←この位置に^があります。
964 :
962 :2005/07/01(金) 05:00:51
main のmの字のところに ^ があります。 度々すみません。
>>959 >>960 ありがとう。フルブラウザとはまったく関係ない人です。
Doja-4.0のほうにきちんと対応書いてありましたね。
3.0の方を見てたら、対応してあるはずのiモーションについてかかれておらず「公式資料で抜けがあるのかよ!」
とこっちにきてしまいました。
質問です。 ImageをGIFにする手段というのは用意されていないのでしょうか。 JPEGにする手段としてはImageEncoderというものを見つけたのですが、 「JPEGなど」といいつつGIFはサポートされていないように見えます。 自前で実装するしかないのでしょうか?
>>962 import main;ていらなくね?
いらないね。 デフォルトパッケージ内だから、暗黙のうちに解決される。 importつけるとエラーになる。
969 :
962 :2005/07/01(金) 22:26:06
main; だけでいいということですか?
ていうことです。 レッツチャレンジ。 でも、eclipseとかで開発した方が効率いいよ。 検索すると一杯引っかかってくるので、頑張って試してみて欲しい。
空気を読まずに質問させてください。 Dojaのエミュレータのキーアサインを変更することって可能でしょうか? スキンの設定は見当たるのですが、ボタンの対応設定はどこにあるのか… テンキーがないノートPCでの開発はキツイヨ…
>>971 俺もキーアサインできるなら知りたい。
doja.exeのパラメータ「-p」が怪しいのだが
色々試しても何も変らん。
JAVAで携帯用PCブラウザを作ろうと思ってるのですが何からしていいのやらって感じです。 とりあえず、どんな知識をつければいいか教えてください。
>携帯用PCブラウザ なにそれ? VNCみたいの?
975 :
◆GPsvCgD6Dc :2005/07/02(土) 04:16:32
フレームを使ったページや、ページ容量の大きいサイトを画像圧縮したりして携帯からでも観覧できるようにするブラウザを目指してます。
いまさら作るだけムダって気が。
ちょっとまて。技術系スレなのに「作るのムダ」って言い方はないだろう。
勉強にはなる。
>>975 まずHTMLの勉強じゃないか?
携帯アプリ初めてなら、まずは一つサンプルHTML作って ソースに埋め込んで、それを Canvas で描画だよな。 タグの解釈とかは抜きで。 画面が表示されるやつは、やっぱり嬉しい。 次はスクロールもさせないとな。 次はタグの解釈か?通信なんかどうとでもなるだろうし。 解釈して反映させて。 ハイパーリンクはフォーカスもあるから面倒かもな。 あとは画像。死にそうだな。 これでまずシンプルなブラウザはクライアント側完成。 次にサーバも作らないとな。 フレームとか、圧縮は後回し。 基本的にはプロキシサーバを作るようなもん? まずはスルーで端末に送って、 あとはタグの置換機能も必要か? 画像サイズも変更できるようにしないとな。 ここまできたら圧縮も簡単だな。 あとはフレームを実装すればできあがり、か? あー。まずは DoJa4.0 で作って、次は DoJa3.0&DoJa4.0LE に移植、 次に DoJa2.0 に移植ってな。 最後に広告枠つける。
>最後に広告枠つける。 ワロタ。重要だなw
980 :
◆GPsvCgD6Dc :2005/07/02(土) 11:17:14
なるほど〜。返答ありがとうございます。アプリ作るの初めてなんで苦戦しそうです。 とりあえず教本でも買ってこつこつやろうと思うのですが、おすすめの本はありますでしょうか? あとJABAのみ学べばいいのでしょうか?他に覚えておいた方がいい言語はあるんですかね。 質問ばかりですみません。
初めてなのに志が高くて大変結構。 とりあえずネット上にある初心者アプリサイトを見て、簡単なアプリ作ってみそ。
982 :
◆GPsvCgD6Dc :2005/07/02(土) 11:18:42
JABA×JAVA○ orz
HTMLなら多少理解しているのですが… とりあえず本屋行ってみます〜。
>>983 アスキーのFOMA本にテキストベースのHTMLブラウザが載ってた希ガス
985 :
962 :2005/07/03(日) 00:10:41
main; とすると、 'class' または 'interface' がありません。 main; ^ となり、 main; を書かないと、mainのメソッドを使っている箇所で、シンボルを解釈処理できません。 と出てしまいます。 962の補足をしますと、 同じソースなのですが、 環境によって、import main;がビルド通ったり、962のようなエラーが出たりします。
mainはきちんとpublicになってるか? 全てのjavaファイルが、同じフォルダにある状態でコンパイルしてるか?
>>962 > main.java
> a.test.java
> というパッページ、及びクラス構成で、
この部分が意味不明なのでまず確認したい。
src/main.java
src/a/test.java
と配置してるんだよね?
もしファイル名自体がa.test.javaで
src/main.java
src/a.test.java
と配置してるんだったらそりゃ不適切。
そして import main; なんて書き方はしない。
やりたいことは import main.java; だろ。
>>962 えーと、名前のあるパッケージに所属してるソースから、
デフォルトパッケージのクラスを使う術はありません。
昔は、
import main;
で行けたんだけど、JDK1.4からはJLSを厳密に解釈するようになって、
そうするとコンパイルエラーになるようになってしまった。
なので、解決策は、
- 全部デフォルトパッケージに配置する
- デフォルトパッケージに所属してるソースを、適当な名前のパッケージに移動させる
のどちらかしかありません。どちらも面倒だけど。
というわけで、
>>988 の
>やりたいことは import main.java; だろ。
は嘘です。騙されないようにしましょうw
_∧_∧_∧_∧_∧_∧_∧_∧_ デケデケ | ドコドコ < 次スレまだ〜? ☆ ドムドム |_ _ _ _ _ _ _ _ _ _ ☆ ダダダダ! ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ドシャーン! ヽ マチクタビレタ〜!!! ♪ =≡= ∧_∧ ☆ ♪ / 〃(・∀・ #) / シャンシャン ♪ 〆 ┌\と\と.ヾ∈≡∋ゞ || γ ⌒ ヽヽコ ノ || || ΣΣ .|:::|∪〓 || ♪ ./|\人 _.ノノ _||_. /|\ ドチドチ!
アスキーのテキストブラウザのソース流そうか?
999999999999999999999999999999999999999999999992
初心者にソース渡してもなあ・・・。 つか本買え。
タグの処理を全部携帯にまかすともっさりするような気がするんだけど まぁまだそこまで危惧しなくてもいい段階なのかな
996 :
デフォルトの名無しさん :2005/07/04(月) 05:38:30
うめ
997 :
デフォルトの名無しさん :2005/07/04(月) 05:39:41
998 :
デフォルトの名無しさん :2005/07/04(月) 05:40:00
梅
999 :
デフォルトの名無しさん :2005/07/04(月) 05:40:33
とめさん
1000 :
デフォルトの名無しさん :2005/07/04(月) 05:41:39
* + 巛 ヽ
〒 ! + 。 + 。 * 。
+ 。 | |
* + / / イヤッッホォォォオオォオウ!
∧_∧ / /
(´∀` / / + 。 + 。 * 。
,- f
/ ュヘ | * + 。 + 。 + このスレッドは1000を超えました。
〈_} ) | 次スレも…VIPクオリティ!!
/ ! + 。 + + *
http://ex11.2ch.net/news4vip/ ガタン ||| j / | | |||
――――――――――――
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。