CLDC+MIDP+携帯電話用Javaスレッド part 3
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG質問でも議論でも何でもこい、と。
前スレ:
CLDC+MIDP+携帯電話用Javaスレッド part 2
http://pc5.2ch.net/test/read.cgi/tech/1070858996/
過去スレ
携帯JAVAのスレッド
http://pc2.2ch.net/test/read.cgi/tech/1011977260/(DAT落ち)
--
Java一般に関しては:
【初心者】Java質問・相談スレ51【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1091770298/
NTT DoCoMoのiモード携帯電話用Java(iアプリ)については:
iモード携帯電話用Java(iアプリ) Part 6
http://pc5.2ch.net/test/read.cgi/tech/1091286071/
>>2-5あたりにリンク集
0002デフォルトの名無しさん
NGNGhttp://www.google.co.jp/
Java 2 Platform, Micro Edition (J2ME)
http://java.sun.com/j2me/
Reference Documentation(仕様書やAPIリファレンス)
http://java.sun.com/j2me/docs/
J2ME Wireless Toolkit
http://java.sun.com/products/j2mewtoolkit/
EZアプリ技術情報
http://www.au.kddi.com/ezfactory/tec/spec/ezplus.html
Vアプリ技術情報(Vodafone Developers Support Site)
http://www.dp.j-phone.com/dp/
0003デフォルトの名無しさん
NGNG乙。
AUのPhase3.0対応のエミュレーターまだ〜?
まぁ、出ても激遅で使えんのでしょうが。
0004デフォルトの名無しさん
NGNG噂によると出ていることは出ているらしい。
ただ、Phase3.0自体こけたも同然の仕様なので、一般には配布されてないそうな。
あうと契約を結んだベンダーにはこっそり配布されるらしいが、
遅い早い以前に描画がメチャクチャでどーしよーもないとか……
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGhttp://www.dp.j-phone.com/dp/
↓
http://developers.vodafone.jp/dp/
Jぽんが残るのはUAくらいか。
0007デフォルトの名無しさん
NGNGpublic SpriteImage(byte[] data)
で指定するdataってどんなフォーマットなんでしょうか?
ezアプリプログラミングガイドみても
http://www.mascotcapsule.com/toolkit/kddi/
2Dスプライとについてはここみろって書いてあるのに
リンク先には3Dの情報しか見つからない
0008デフォルトの名無しさん
NGNGこちらのほうをつかってください。
【初心者】Java質問・相談スレ51【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1091666193/l50
Javaスレッドについては、案内用のwikiもあるので
次スレッドをたてるときのリンク先としては、こちらのほうがいいかもしれません。
http://www.wikiroom.com/java/
また、よろしかったら携帯用Java関連スレッドのテンプレなどにも、
どうぞ、このwikiをご利用ください。
0009デフォルトの名無しさん
NGNGそのサイトの「MascotCapsuleツールの配布」→「Micro3D Tools (Win専用)フリー」→
「マニュアル」欄の「2Dスプライト プログラミングガイド」をダウンロードすれば多分解決。
0010デフォルトの名無しさん
NGNGそろそろUAからも消えるらしい・・・
0011デフォルトの名無しさん
NGNGありがとうございます
Windows BMP なんですね
0013デフォルトの名無しさん
NGNGStorageConnectionを使って作ったInputStreamでInputStreamReaderを作るとなんか変です。
ちゃんと文字が読めません。(System.out.printlnすると□ばかりに化ける)
開きたいファイルをそのままjarに入れておいて、getResourceAsStreamから作ったInputStreamだとちゃんと読めます。
原因何かないでしょうか。JSCL1.2対応のエミュで実行しています。
StorageConnection conn = (StorageConnection)Connector.open( "file://"+textfile);
InputStream in = conn.openInputStream();
//in=getClass().getResourceAsStream(filename)だと読める
InputStreamReader reader = new InputStreamReader( in, "SJIS");
char[] buf = new char[8192];
reader.read(buf);
System.out.println( new String(buf));
0014デフォルトの名無しさん
NGNG"file:///ms/"+textfile
とやるんじゃない?
001513
NGNGいや、パスが違うとかそういうレベルじゃないです・・・
InputStreamReader使わずにInputStreamから直接byteで読み込んでStringに変換するとうまくいってるわけです。
素直に、InputStreamReaderを回避するしかないんだろうか。。
001614
NGNGだってtextfileやfilenameの文字列が具体的に書いてないから分からないじゃない。
0017デフォルトの名無しさん
NGNG文字エンコーディングがおかしくなってそうだけど。
なんでだろ。
忘れてなけりゃ、あした調べとく。
001813
NGNG元のテキストはShift_JISです。
getResourceAsStreamから読む場合やInputStreamからbyte読んでnew String(byte[],String)する場合は
SJISコンバータで読めてます。
new InputStreamReader(InputStream)の方のコンストラクタ使ったりUTF-8コンバータにしたりもしてみたんですが
やっぱダメでした。デフォルトのエンコーディング指定だとSJIS指定時と同じ感じに、UTF-8の場合は完全に化け化けな文字になりました。
InputStreamからbyteで読み込んで変換する方法でうまくいってるんで、とりあえずこっちで対処することにします。
0019デフォルトの名無しさん
NGNGeasyでもきつい。
故意に死んで球かせぐ必要あり?
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNGHelloWorldプログラムみたいな、明らかにふざけてるだろ、っていうプログラムは審査に引っかかりますか?
あ、公開ではなくテスト領域の方へのうpです。
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNGJADとJAR(MANIFEST)がマッチしてかつ必要な情報書き込まれてるか
機械的にチェックするだけなんで
エローワールドでもハローC#でも通りまする。
0024デフォルトの名無しさん
NGNGFTPで必要なファイルをアップロード
→機械的なチェックのみ。
→作者宛にダウンロードのためのURLがメールで送られてくる。
これにかかる時間はだいたい30秒。
002517
NGNGおそくなってごめん。
StorageConnectionから生成したInputStreamで、InputStreamReaderを
生成すると、やはり文字エンコーディングがおかしくなってるね。
解決策は、InputStreamReaderを使わない。ってことになる。
0026デフォルトの名無しさん
NGNGおお、サンキュです!
機械チェックだけだったんですね。早速登録してみます。
002713
NGNGどうもありがとうございます。
やはり再現しましたか・・・ここはInputStreamからbyte読み込んで処理することにします。
余裕があれば実機でも試してみることにします。
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG以前、C4でACanvasを使ってゲームを作っていたのですが、
同様の手順でP5対応のアプリを作成したら、ものすごく遅くなりました。
P用にSpriteCanvasを使用するよう変更しても、遅いままです。
Sprite機能を使わず、drawImageで過去座標キャラを背景で消し、
書き直すという処理にしたら速度が出るようになりました。
一般にP5でのSprite処理は重い物なのでしょうか?
それとも効果的な使い方があるのでしょうか?
0032デフォルトの名無しさん
NGNGどうやってやるんですか?
探してもそれらしいものが見当たらないのですが。
0033デフォルトの名無しさん
NGNG拡大縮小はできるんでしょうか。
資料読んだところ、90度単位でしか回転できなさそうですが……。
ひょっとしてMicro3Dで板ポリ作って表示しなきゃいけないのでしょうか?
0034デフォルトの名無しさん
NGNG90度単位の回転と左右反転のみだね。
拡大縮小もなさそう。
というか、8*8固定だし。
003533
NGNGそのようですね。
ezplusのPhase3.0でならSplite2Dでできるようなんですけどねぇ。
ありがとうございます。
0036デフォルトの名無しさん
NGNGCreateProcess:
c:\jdk1.3.1\bin\javac -encoding SJIS -g:none -d
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses -bootclasspath
c:\J2MEWTK\lib\midpapi.zip;c:\ezplusTools\Tools\KDDI-P\kddip.jar -classpath
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\src\HelloWorld.java error=3
とか出てきてKJXが出来ないんですけれども理由がわかんないです。。。
0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNGimport javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet implements CommandListener{
Command exitCommand;
Display display;
public HelloWorld(){
display = Display.getDisplay(this);
exitCommand = new Command("Exit",Command.SCREEN,2);
}
public void startApp(){
TextBox textbox = new TextBox("HelloWorld","Hello World!",256,0);
textbox.addCommand(exitCommand);
textbox.setCommandListener(this);
display.setCurrent(textbox);
}
public void pauseApp(){}
public void destroyApp(boolean unconditional){}
public void commandAction(Command command,Displayable screen){
if(command==exitCommand){
destroyApp(false);
notifyDestroyed();
}
}
}
0041デフォルトの名無しさん
NGNGcompile start...
c:\jdk1.3.1\bin\javac -encoding SJIS -g:none
-d C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
-bootclasspath c:\J2MEWTK\lib\midpapi.zip;c:\ezplusTools\Tools\KDDI-P\kddip.jar
-classpath C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\src\HelloWorld.java
build failed. exception:java.io.IOException: CreateProcess:
c:\jdk1.3.1\bin\javac -encoding SJIS -g:none -d
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses -bootclasspath
c:\J2MEWTK\lib\midpapi.zip;c:\ezplusTools\Tools\KDDI-P\kddip.jar -classpath
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\src\HelloWorld.java error=3
0042デフォルトの名無しさん
NGNGc:\J2MEWTK\lib\midpapi.zip
ほんとにこんなもんあるけ?
0043デフォルトの名無しさん
NGNGあります・・・
それを解凍して中身をみたら
com
java
javax
ってフォルダが入っていてその下にいろいろ入ってました。
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG全てのフォルダを確認しながら設定しました。
それでも動きません。。
javac path c:\j2sdk1.4.2_04\bin\javac
jar path c:\j2sdk1.4.2_04\bin\jar
preverifypath c:\WTK104\bin\preverify
other after process path java -jar c:\ezplusTools\Tools\CmdTool\KJXArchiver.jar -c
%PROJDIR%\bin\%PROJ%.jad %PROJDIR%\bin\%PROJ%.jar %PROJDIR%\bin\%PROJ%.kjx
class path C:\WTK104\lib\midpapi.zip;c:\ezplusTools\Tools\KDDI-P\kddip.jar
0046デフォルトの名無しさん
NGNGパス貼られても確かめようないぞなw
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNGプロジェクトの設定も直さないとダメぽ。
0049デフォルトの名無しさん
NGNG�@パスは間違えるな!
�Aプロジェクト名はエントリのクラス名にしとけ!
�B環境を直すときはデフォルトの環境だけでなくプロジェクトの環境も直せ!
�Cパスは間違えるなってば!
できたべ?>>45
0050デフォルトの名無しさん
NGNGプロジェクトは最初から作り直しました・・・・
compile start...
c:\jdk1.3.1\bin\javac -encoding SJIS -g:none
-d C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
-bootclasspath c:\J2MEWTK\lib\midpapi.zip;c:\ezplusTools\Tools\KDDI-P\kddip.jar
-classpath C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\src\HelloWorld.java
build failed. exception:java.io.IOException: CreateProcess: c:\jdk1.3.1\bin\javac
-encoding SJIS -g:none -d C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
-bootclasspath c:\J2MEWTK\lib\midpapi.zip;c:\ezplusTools\Tools\KDDI-P\kddip.jar -classpath
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses
C:\ezplusTools\Tools\CmdTool\project\HelloWorld\src\HelloWorld.java error=3
0051デフォルトの名無しさん
NGNGデフォルトの環境は直したけどこのプロジェクトの環境は元のまま
ちうことだべ。
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNGすいません。でも動きません(ノД`)ノ
KJXのコンソールに出力されたメッセージです。。。
C:\ezplusTools\Tools\CmdTool>c:\j2sdk1.4.2_04\bin\java -jar CmdTool.jar
java.io.IOException: CreateProcess: c:\jdk1.3.1\bin\javac -encoding SJIS -g:none
-d C:\ezplusTools\Tools\CmdTool\project\HelloWorld\tmpclasses -bootclasspath c:
\J2MEWTK\lib\midpapi.zip;c:\ezplusTools\Tools\KDDI-P\kddip.jar -classpath C:\ezp
lusTools\Tools\CmdTool\project\HelloWorld\tmpclasses C:\ezplusTools\Tools\CmdToo
l\project\HelloWorld\src\HelloWorld.java error=3
at java.lang.Win32Process.create(Native Method)
at java.lang.Win32Process.<init>(Win32Process.java:66)
at java.lang.Runtime.execInternal(Native Method)
at java.lang.Runtime.exec(Runtime.java:566)
at java.lang.Runtime.exec(Runtime.java:428)
at java.lang.Runtime.exec(Runtime.java:364)
at java.lang.Runtime.exec(Runtime.java:326)
at jp.co.aplix.micro.toolbar.model.Project.exec(../src/model/Project.jav
a:322)
at jp.co.aplix.micro.toolbar.model.Project.access$100(../src/model/Proje
ct.java:13)
at jp.co.aplix.micro.toolbar.model.Project$Builder.run(../src/model/Proj
ect.java:373)
0054デフォルトの名無しさん
NGNG<tool>のdefault env...が全体の環境、
<Project>のedit envがこのプロジェクトの環境だべさ。
もうちっとだ。ガンガレ
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG大変ありがとうございました、助かりました!
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNGPhase3エミュは一般にも一瞬だけ公開されましたよ。一般でも一部の人は持ってます。
確か携帯アプリ板でちょっとだけアップしてくれた人もいました。
エミュの速度はVodaのP5エミュと大差ありません。安定性はVodaのほうが上な気がします。
でも、KJX作成ツールからダブルクリックでエミュに行けるのが便利です。
遅いPCでやると画面の更新が変になって崩れます。
0060デフォルトの名無しさん
NGNGttp://eseuta.mine.nu/
0061デフォルトの名無しさん
NGNG0062名無しさん@Vim%Chalice
NGNGデータにアクセスしてNullPointerExceptionとなります。
読み込み完了まで待機したいのですがどうすればいいのでしょうか?
au Phase2.5です。
0063デフォルトの名無しさん
NGNGimg1に画像読み込み;
while(img1==null){ }//空ならずっと何もしないで繰り返す
どっかでこういうの見かけて、ずっと真似してるんだけど、これで効果あるのかな?
0064デフォルトの名無しさん
NGNGより堅い手を使うとすれば適当なオブジェクトでsynchronize掛けるとか。
まぁ、Phase2.5機なら、「読み込み中」「描画中」のフラグで管理しても
問題ないと思うが。
0065デフォルトの名無しさん
NGNGそれとも違う話かえ?
>>62の画像は
ほったらかしてからアクセスすると見れる画像なわけかい?
読み込み自体失敗してないかい?
0066デフォルトの名無しさん
NGNGと言うファイルがあってmainclass.javaでは
public class mainclass extends MIDlet {
public void startApp(){
subclass_1 s1 = new subclass_1(this);
Display.getDisplay(this).setCurrent(s1);
}
public void pauseApp(){}
public void destroyApp(boolean b){}
}
とやってsubclass_1を動かしています
そしてsubclass_1からsubclass_2へ画面の制御を完全に移したくて
subclass_1のコマンドアクションでCurrentに表示されるクラスを変えたいのですが
public void commandAction(Command c,Displayable s){
if(c==next){
subclass_2 s2 = new subclass_2(this);
Display.getDisplay(this).setCurrent(s2);
}
}
とすると
シンボルを解決できません。
シンボル: コンストラクタ MainMenu (Intro)
場所 : MainMenu の クラス
MainMenu m = new MainMenu(this);
javax.microedition.lcdui.Display の getDisplay(javax.microedition.midlet.MIDlet) は (subclass_1) に適用できません。
Display.getDisplay(this).setCurrent(s2);
となってしまいs2のクラスを表示できません、どうすればいいんでしょうか・・・
0067デフォルトの名無しさん
NGNGmainclassで呼んだgetDisplay(this)のthisはmainclass、
subclass_1のコマンドアクションで呼ばれたgetDisplay(this)のthisは
subclass_1が入っておる、と。
そりゃーJavacも悲鳴あげます。
mainclassを入れてあげて。
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNGえっとMIDPのインスタンスのappをthisに入れたら動きました
subclass_2 s2 = new subclass_2(app);
Display.getDisplay(app).setCurrent(s2);
ちゃんとコンソールにでるjavacのメッセージを確認します。。。。
ありがとうございます!
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGTVチューナー+アプリ作成しやすい奴。
0072デフォルトの名無しさん
NGNG広いディスプレイと打ちやすいキーボードがあれば、
あとはソフトウェア次第なんでどうでもいい。
あ、メモリは1GBね。
0073デフォルトの名無しさん
NGNGIOException例外が発生して
詳細メッセージはout of service とだけ出ます。
これって何がいけないんでしょうか?
サンプルのソースでやってみてもどれも同じエラーが出てしまいます。
どなかた分かる方ご教授下さい。
0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGJ2SE 1.4.2_04
JSCL 1.07.00
WTK 1.04 preverifyのみ利用
.jad ファイルのMIDlet-Network は Y になってます。
0076デフォルトの名無しさん
NGNG何のサンプル?
公式と手持ちの本のconnectionまわりのサンプルを
いくつかP5とc4のエミュで
試したけど失敗した例ないわ〜
公式マニュアル概要編によればout of serviceは
ネットワークサービスに問題がある場合とあるから
LAN環境とか串がどうとか、接続先とかそのあたりのことが問題なのでは
と妄想したけど。
ちなみにJSCL 1.07.00って何型の端末用?
0077デフォルトの名無しさん
NGNG知り合いから貰ったもので元々なんのサンプルかは分からないのですが
極めてシンプルなサンプルでただテキストフィールドに
入力されたURL(JPEG,PNGのファイルを指してる)に繋いで
その画像ファイルを表示するだけのものです。
URLはhttp://localhost/1.pngとなってます。
なのでhttpサーバー起動してます。
試しにブラウザからこのURLにアクセスするときちんと表示されます。
LAN環境はWWWへはNATで繋いでいて
ファイアーウォールは使わず串も通してないです。
>ちなみにJSCL 1.07.00って何型の端末用?
P4型です、JavaDoc開いた時のブラウザのタイトルバー見たら
1.07.00 とあったので、あ、これかと思って書きました。
0078デフォルトの名無しさん
NGNGHTMLタグを表示するだけのよくあるやつだけど、
Apach入れてテストしてみたが問題なく動く。
ほんとに動いた実績のあるサンプルなんかね〜?
抵抗なければサンプルまとめてアップしてほすぃ。
このへんとかに。
ttp://namihei.zone.ne.jp/cgi-bin/up/upload.cgi
0079デフォルトの名無しさん
NGNGすいません、質問しておいてなんなのですが
ちょっと諸事情あってアップは出来ないんです。
本当に特別な処理はなく
HttpConnection hcon = null;
hcon = ( HttpConnection )Connector.open( "http://localhost/1.png", Connector.READ );
と普通にオープンしてByteArrayOutputStreamでバッファに書き込み
Image.createImageでイメージを作成、表示してるだけなんです。
ただApachと聞いてちょっと思い当たる節があるのですが
マニュアルのどこかにApach以外のサーバーとの接続保証はしない、
とあったような・・・
ちょっとApach試してみます、どうもです。
0080デフォルトの名無しさん
NGNGエミュレータはプロキシを使用しない場合は通信したいサーバのIPとポートを
JTProp.datのProxyとProxyPortに設定しておかないと通信できなかったような
気がしたけど、試してみましたか?
0081デフォルトの名無しさん
NGNGまぁこれあげといたから
これが動くかまず試してみるべし。
動くなら環境には問題ない、と。
0082デフォルトの名無しさん
NGNGtempIはInteger型。
byte[] b = (tempI.toString).getBytes;
というコードで、
シンボルを解釈処理できません。
シンボル: 変数 toString
位置 : java.lang.Integer の クラス
byte[] b = (tempI.toString).getBytes;
^
compile failed
エラー 1 個
と、エラーが出てしまいます。
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import java.lang.*;
import java.util.*;
を読み込んでいるのですが、なにか足りないものでもあるのでしょうか?
コンパイルはezアプリ用のcmdToolを使ってます。
0083デフォルトの名無しさん
NGNGプロパティじゃなくてメソッドだから
byte[] b = (tempI.toString()).getBytes();
じゃなくて?
0085デフォルトの名無しさん
NGNGvodafoneのC4、P4型(JSCL 1.0)でResourceOperatorで取得した画像データを
Imageクラスに読み込む方法を知りませんか?
MediaPlayerでは表示した上に描画できないようなので何か別の方法を知りませんか?
0086デフォルトの名無しさん
NGNGちょっと前にオレがjavadocを熟読した感じでは、たぶん無理。
StorageConnection使え。。
ん〜、でも今読んでみた限りは、
データフォルダ上のJPEGをImageに変換できないような気がする。。PNGならできると思う。
つーことで、JPEGデコーダ頼んだ。
Image->JPEG(data[])はImageEncoderで
データフォルダ->JPEG/PNG(data[])はStorageConnectionで
PNG(data[])->ImageはImage#createImageで
↑素人のオレがJavadoc眺めて想像しているだけで、ホントにできるかどうかは知らん。
008785
NGNGStorageConnectionはJSCL1.2からなのでC4、P4型では使えないです。
データフォルダからデータを取得するのはResourceOperatorしか無さそうで、
ResourceOperatorのデータはMediaPlayerでしか扱え無さそう。
何か方法は無いでしょうか?
ちなみにJSCL1.2でStorageConnectionを使えばデータフォルダのJPG、PNG
のどちらでもImageに読み込めます。
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG方法は無い。
JSCL 1.0 の時代には、そのようなことは想定されていなかった。
0090デフォルトの名無しさん
NGNG保護されているファイルを読み取って送信するとか、そういう用途に使えないようにするため。
0091デフォルトの名無しさん
NGNGg.drawString("ガッ",0,40,g.LEFT|g.BOTTOM);
>>89
画像データの上に描画して表示したいだけだったら、MediaPlayerのpaintをオーバーライド
すれば実現できないのかな?
0092デフォルトの名無しさん
NGNGどうもC4・P4ではできそうにない。
それに近いことをしてるアプリって存在するのだろうか。
0093デフォルトの名無しさん
NGNGjavadoc見たけどC4型のMediaPlayerはCanvasからの派生ではないので無理。
P4型はできるかもしれない…
0094デフォルトの名無しさん
NGNGネットワーク上のファイルに書き込みだよね?
うまく書き込めないんんだけど
なぜかわかる人いる?
環境は
MIDP1.x系全般のエミュ、
ローカルサーバで実行して
レスポンスコードは200
hc = (HttpConnection)Connector.open("http://localhost/test.log");
os = c.openOutputStream();
os.write(data);
os.close();
res = hc.getResponseCode();
hc.close();
0095デフォルトの名無しさん
NGNG((((;゚Д゚))))ガクガクブルブル
0096デフォルトの名無しさん
NGNGごめんよかったら教えてちょ
0097デフォルトの名無しさん
NGNGサーバーにHTTPリクエストを送ってるんでしょ?
「ネットワーク上のファイルに書き込み」は
サーバー側の仕事。
0098デフォルトの名無しさん
NGNG009986
NGNGまぁオレには関係ないか・・
>>87
ちょいと裏技になるんだが、
ACanvas(SpriteCanvas)でのフレームバッファの転送は、
ACnavas(SpriteCanvas)が画面として設定されていないときにもできる。
つまり、com.j_phone.media.MediaPlayerを画面に設定しつつ、
裏でflush(drawFrameBuffer)とかすれば重ねて表示できる。
まぁ表示したところで、表示後ごにょごびょしたものをImageなりbyteなりで取得できないんで、
>85 の目的のお絵かき用には使えないと思う。
0100デフォルトの名無しさん
NGNG20x20のチップ敷き詰めてループまわすと
FPS10で限界チック。
早くするために君ならどうする?
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNGチップをでかくする。
0104デフォルトの名無しさん
NGNGpublic class 001 extends MIDlet {
static MIDlet current;
/** コンストラクタ */
public 001() {
current=this;
main canvas=new main();
Form form=new TextFieldForm();
Display.getDisplay(this).setCurrent(canvas);
Thread thread=new Thread(canvas);
thread.start();
}
/***main.java
class main extends Canvas implements CommandListener, Runnable {
public void commandAction(Command c,Displayable s) {
if (c==soft2) {
Display.getDisplay(this).setCurrent( from );
repaint();
}
}
}
0105デフォルトの名無しさん
NGNG/** テキストフィールド(フォーム) */
class TextFieldForm extends Form implements CommandListener {
public void commandAction(Command c,Displayable s) {
if (c==soft2) {
Display.getDisplay(this).setCurrent(canvas);
repaint();
}
}
}
でmainからTextFieldFormへの切り替えはできたのだがその逆ができない・・
教えてエロイ人!
0106デフォルトの名無しさん
NGNGTextFieldFormクラスの
Display.getDisplay(this).setCurrent(canvas);
のcanvasってどっから来るのさ。
0107デフォルトの名無しさん
NGNG書き換え忘れです・・・。
そこの部分をなんと書けばいいのだろうか・・・
0108デフォルトの名無しさん
NGNGのthisがそれぞれ何を指しているか考えれば誤りに気付くと思う。
0109デフォルトの名無しさん
NGNGDisplay.getDisplay(001.current).setCurrent(form);
Display.getDisplay(001.current).setCurrent(canvas);
にしたところ、thisのところのエラーは無くなったけど
setCurrentのところが分からない・・・
0110デフォルトの名無しさん
NGNGformとcanvasのインスタンスはどのクラスが保持しているのか考えてみて。
0111デフォルトの名無しさん
NGNG基本的なJavaの決まりごとをおさらいするのも必要だと思うよ。
よくわからないまま動いても応用きかないから
つまづいてばかりでかえって遠回りかも。
あわてずにガンガッテ。
となっち(○´ー`○)さんがおっしゃっています。。。
0112デフォルトの名無しさん
NGNGせっかくJSCL1.2で携帯内部データが使えるようになったのに
VSCL2.0からは使えなくなってしまうのでしょうか?
0113デフォルトの名無しさん
NGNGpublic String setHTTPConnection( String service, String dat, int len )
{
String url = "http://localhost/test/test.php&dat=";
HttpConnection con = null;
InputStream in = null;
try{
con = (HttpConnection)Connector.open(url,Connector.READ,true);
con.setRequestMethod(HttpConnection.GET);
in = con.openInputStream();
int length = (int)con.getLength();
if(length<0) {
ByteArrayOutputStream _o = new ByteArrayOutputStream();
byte[] buf = new byte[len];
int t = 0;
while((t=in.read(buf))!=-1){
_o.write(buf,0,t);
}
_o.close();
str = new String(_o.toByteArray());
}else{
byte[] buf = new byte[length];
in.read(buf);
str = new String(buf);
}
} catch(Exception e){}
return str;
}
0114デフォルトの名無しさん
NGNGサーバーのphpで処理をして返り値を取る関数を作りたいのですが
httpに接続が全く出来ません。。。
ADFのOtherKeyWordには
MIDlet-X-AllowURL-1: http://localhost/test/
と設定してあります。
どなたか有効な対処法ご存知でしたらお願いします。
0115デフォルトの名無しさん
NGNG0116113
NGNGcon = (HttpConnection)Connector.open(url, Connector.READ, true);
の時点で
java.lang.NullPointerException
が帰ってきてしまいます。
サンプルどおりに作ったんですけども・・・
0117デフォルトの名無しさん
NGNGまずその「DB」が何の略語かはっきりさせれ。
脊髄反射で「データベース」の略語と思いそうだが
いくらなんでもJDBCドライバ同梱してDBとやりとりするようなアプリを
携帯向けに作るとは思えんし。つーかJ2MEで使えるのかJDBC。
0118デフォルトの名無しさん
NGNGCDCなら聞いたことあるが、CLDCはしらんな。
0119104
NGNGmain canvas;
を追加したらコンパイル出来たのだが切り替わらない・・・。
うーむよく分からない・・・・
誰か教えてくれぇー・・・・
0120デフォルトの名無しさん
NGNGなっち(○´〜`○)は
あなたのためになるのか悩みながらも
>>104のソースに手をいれました。
ソースは長いので
切り替え処理と関わりのない部分をはぶき、
ラウンジに貼り付けました。
自分のソースとの違いを
他の人がしてくれたレスを見ながら
考えてみてください・・・
ソースに自分なりにコメントをつけたりすると
理解の役にたちます。
ガンガレ。超ガンガレ。
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=206
0121M
NGNGpublic static MIDlet mid;
public test(){
Display.getDisplay(this).setCurrent(new TestCanvas("0"));
}
class TestCanvas extends Canvas implements Runnable, CommandListener{
public TestCanvas(String pt){
mt_Select = pt;
}
TestCanvas a1 = new TestCanvas("1");
Display.getDisplay(test.mid).setCurrent(a1);
}
細かい処理は削らしてもらいましたけど、
今、a1 への表示切替で困っています。
Display.getDisplay(test.mid).setCurrent(a1);
が悪いのは何となくわかってるのですが、
どのように書けば良いかわかりません。
どなたかヘルプお願いします。
同じようなネタあったけど...(汗)
エラーは...
Uncaught exception java/lang/NullPointerException
at com.jblend.display.DisplayManager.getDisplay(+13)
at javax.microedition.lcdui.Display.getDisplay(+4)
destroy Old Emulator....
By M
0122デフォルトの名無しさん
NGNG}
0123デフォルトの名無しさん
NGNG>>121
class TestCanvas extends …{
…
TestCanvas a1 = new TestCanvas(…);
}
クラス定義の中で自分自身を生成しちゃってるのがダメ。
a1はTestCanvasクラスの定義の外でnewして引数で渡すなり何なりして。
0124104
NGNG特になっち(○´ー`○)さんアリガト!(´▽`)
0125デフォルトの名無しさん
NGNGtest.midにtestのインスタンスをセットする文が見あたらないが
ここへカキコするときに省略しただけ?
0126デフォルトの名無しさん
NGNGって書いてもガッされないのは仕様ですか??
0127デフォルトの名無しさん
NGNG>88-91
0128デフォルトの名無しさん
NGNGJavaの入門書とか読まないで
MIDPはじめちゃうものなのかしら。
0129M
NGNGpublic static MIDlet mid;
public static TestCanvas sc1;
public test(){
SetCanvas sc1 = new SetCanvas("1");
mid = this;
Display.getDisplay(this).setCurrent(new TestCanvas("0"));
}
}
class TestCanvas extends Canvas implements Runnable, CommandListener{
public TestCanvas(String pt){
mt_Select = pt;
}
Display.getDisplay(test.mid).setCurrent(test.sc1);
}
変更かけてみたんですけど、やっぱりうまくいかないようで...
ご教授をお願いします...m(._ .)m
by M
0130デフォルトの名無しさん
NGNG厳しいこと言うけど、現時点の知識でソースをいじくり回しても無駄でしょう。
先にJavaの基本的な文法や構文の書き方を修得してください。
変数の有効範囲とかが理解できてないようだから、仮に今の問題を解決
してもらってもこの先何度もつまずくと思う。
0131デフォルトの名無しさん
NGNG急がば回れ。
まずはJavaの基礎からだ!
がんばれ
0132104
NGNG/*main.java*/
static int test=0;
/*TextFieldForm.java*/
textField=new TextField("Test",main.test,150,TextField.URL);
のとき、main.testの値を変えてもテキストフィールドに反映されません。。
テキストフィールドを更新?するにはどうやったらいいのでしょぅか?
0133デフォルトの名無しさん
NGNGAPIリファレンスを熟読してくれ
0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNGimport java.net.*;
と言われたが
携帯のjavaにはjava.net.URLEncoder
ってないのか?
無いのならURLエンコードする方法はないのか??
0136デフォルトの名無しさん
NGNGKDDIプロファイルのAPI docをご覧あれ。
0137デフォルトの名無しさん
NGNGただ、そこから出てくる困難を俺らに押し付けるのはハッキリ言って迷惑。
困ってる人は助けてあげたいけど、何ていうか努力の跡が見えん。
実際に、1時間ぐらい分かりやすい説明考えて教えてやっても
五分くらいで「できました!でも次は〜が・・」みたいな奴がいる。
しかもその五分を「いろいろやってみたけど」とか言いやがる。
相手の時間より自分の時間を大事にするような奴は最低だと思うが・・。
>>104
まず、TextField( String , int , int , int ) はおかしくねーか?
とりあえず textField.setString( "NEW_TEXT"); とかやってみ。
>>129
104で、ものすごい近い事やってるとか思わなかったか?
0138デフォルトの名無しさん
NGNGcom.j_phone.io.URLEncoder
これかのぅ
0139デフォルトの名無しさん
NGNGちょっとITmediaの妄想入ってるのかも。
http://hobby6.2ch.net/test/read.cgi/appli/1093130008/294
なっち(○´ー`○)デシタ
0140デフォルトの名無しさん
NGNG> JSCLはオプション扱いとなるため
>112 の話とつながったか。
つまり、JSCLはいったん全部葬り去られる可能性大か。んで、MIDP2.0へと。
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNGVアプリエミュレータ(P5)を直接起動する方法が
分かりづらくて結構手こずってしまった・・・。
とりあえず
「emulator.exe -classpath ○○.jar
-Xdescriptor:○○.jad」
で直接起動できる事は分かりましたが、
これで起動すると、アプリで描画する領域が
Vアプリエミュレータの携帯ディスプレイ領域
からはみ出してしまいます。(エミュレータ側の
Displayサイズ設定が変わってしまうから?)
何かいい解決策はないでしょうか?
0143なっち(○´ー`○)
NGNG3D関係はないのかな?
結局は国内外の各キャリアが
それぞれ独自にAPI追加したんじゃ
国際標準の迫力にかけるねぇ
0144なっち(○´ー`○)
NGNGemulatorは起動されたディレクトリに
参照できるmachine.profileが存在しない場合に
デフォルトの設定で起動されるみたいなので
こんなバッチファイルで起動するのはどうでしょか・・
[run.bat]
copy C:\V-appli_SDK_121\bin\machine.profile
C:\V-appli_SDK_121\bin\emulator.exe -Xdescriptor:test.jad
正当な手段は>>146が教えてくれる見込みです。
0145デフォルトの名無しさん
NGNG情報サンクス!
少し邪道な手段ですが、machine.profileを
あらかじめemulatorを起動するディレクトリに
コピペして解決しました。
0146デフォルトの名無しさん
NGNGMobile 3D Graphics API for J2ME がオプション規格としてあるそうな。
J2ME Wireless Toolkit 2.2を落としてみるといろいろデモが入っているよ。
0147なっち(○´ー`○)
NGNGお〜・・・・そうなのね
さっそく落として見ます
0148デフォルトの名無しさん
NGNG起動時のフラッシュ(っていうのかな?タイトルロゴみたいな) が「最前面」で表示されるのどうにかならないですかね。
起動が遅いんで、その間ブラウザを見ようとしても「最前面」にしつこく出てきて、
しかもキーのフォーカスも奪っていくものだから、起動完了するまで待たされる罠。
OS:Windows2000
JDK:J2SDK 1.4.2_05
エミュレータ:P5型の最新
オレだけかな、この現象?
0149なっち(○´ー`○)
NGNGWinXP、AthlonXP 2200+(1.80GHz)、256MB RAM環境だと
スプラッシュウィンドウの表示は1秒未満だから気にならないみたい。
>>142のまねっこするか、パソコン買い換え・・
>>146
Mobile 3D Graphicsのサンプル見てみました。
エミュで見る限りは重い感じだけど
オプションも導入すれば
大抵のことはMIDP2.0で出来ちゃうってことだね〜
0150デフォルトの名無しさん
NGNGスプラッシュウィンドウってそういうもの(それが当たり前)だから放っておくしかない。
起動が遅いアプリ(Vエミュに限らず一般的に)が、起動完了まで画面に何も出ないと
ユーザーは「あれ?起動してるのかな?固まってるのかな?」と不安になるので、
ただいま起動中ですよ、の印代わりに1枚絵の画面を出しておく。
そしてアプリ本体が起動すれば消える。
これがスプラッシュ(ぱしゃっと水がはねる→現れてすぐ消えるの意味)ウィンドウの役目。
アプリの作りでスプラッシュウィンドウからフォーカス外せたり最前面から後ろへ回せたり
できないようにしてあるなら、ユーザーはどうしようもない。
0151デフォルトの名無しさん
NGNGスプラッシュウインドウでしたねw
やはりどうしようも無いんですねぇ--;
我慢します。ありがとうございました。
0152デフォルトの名無しさん
NGNGその記事は妄想ではないですよ。
アプリは国内外問わずに流通されるようになる。のかなぁ。
0153デフォルトの名無しさん
NGNGただ、ライブラリがMIDP準拠のとか、
Vオリジナルとか出来ちゃって動作検証で泣くカモ知れない。
1Mアプリやるからには定額制導入するだろうケドも、
テスト面倒と思われ。
0154なっち(○´ー`○)
NGNG国際標準である意味が曖昧になるよね。
完全準拠であうとがんばってくれたら
市場活性化すると思うんだけど。
あうはどうなんだっけ、Javaとは決別の方向性なのかな。
0155デフォルトの名無しさん
NGNGにあるような JSRが導入されれば、互換性もある程度は保証されるかも。
でも、今年でる端末に互換性を求めるのは難しいかも...。
0156デフォルトの名無しさん
NGNGアプリ目的でキャリア換えする人は少ないから、BREWがよっぽどこけない限り、
JAVAを積極的にやろうとは思わないはず。
BREWにして困るのはCPだけだし。
0157なっち(○´ー`○)
NGNGdocomoはDojaで制約がないので好きにできる。
auはBREWでパフォーマンスを追及できる。
VodafoneはMIDP2.0とJSRで自らに足かせ。
・・・ん?
0158155
NGNGと好意的に解釈しなくちゃ。
同じアプリを世界中にバラまけるようになるはずだし...。
0159デフォルトの名無しさん
NGNGcon = (HttpConnection)Connector.open(url);
この時点で例外が投げられるってのはどういう場合に考えられますか。
ADFの設定の
MIDlet-Network: Y
MIDlet-X-AllowURL-1: http://localhost/
は書いてあります。
ブラウザでURLにアクセスするとちゃんと見れます
0160デフォルトの名無しさん
NGNG例外の内容を書かないのはなぜ?
0161デフォルトの名無しさん
NGNGcatch(Exception e){
System.out.println("HTTP接続に失敗しました");
System.out.println(e);
HTTP接続に失敗しました
java.lang.SecurityException: access denied
0162デフォルトの名無しさん
NGNG例外の内容を書いたのに答えが無いのはなぜ?
0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNGブラウザから全く同じアドレスで確認できる
ADF設定は上に書いたとおりに行っている
その上でエラーになるので質問をしているんです。
0165デフォルトの名無しさん
NGNGこの意味判ってる?
MLでも聞いてるみたいだが‥
0166なっち(○´ー`○)
NGNG例外を教えてやったんだから
答えろって態度はおかしくないかい?
実行環境すら書いてないし。
例外が
java.lang.SecurityException: access denied
とわかっていれば、
この場合はezplusエミュで
MIDlet-X-AllowURL-1属性とマッチしないホストへ
接続を試みているのではないか、
早い話、接続先のURLがおかしいのではないか、
なんて見当もつけられるけど。
0167デフォルトの名無しさん
NGNGauならPhaseいくつか、vならC4型かP4型かP5型かとか書かないと
回答者も困ると思うんだが。
>>159を見てもそれがわからん。
>MIDlet-Network: …これはvでは書くがauでは書かないもの。
>MIDlet-X-AllowURL-1: …これはauでは書くがvでは書かないもの。
と俺は認識してるんだが、回答できる人はこれを見て何の端末か分かるもんなの?
0168なっち(○´ー`○)
NGNG>>159だけだとエミュとしか。
定義されてない属性をつけてはいけないわけではないから
WTKすらありえるし。
>>161の情報があればこの場合に限っては
接続先がlocalhostなので普通に考えたら
ローカルサーバを接続先にしたエミュ。
Vの場合MIDlet-Network: Y が設定されてない場合に、
auの場合MIDlet-X-AllowURL-n: で指定されていないホストの場合に、
SecurityExceptionを吐き、前者は指定済みなので後者の可能性が高い。
auが通信に対応したのがPhase2以降とどこかに書いてあったので、、、
結論:多分phase2以降のezplus Emulatorじゃないかなぁ?
とかかなんとか推理はできるけど、
無駄な過程だし回答が不正確で遅くなるだけと思いますわん
0169デフォルトの名無しさん
NGNG同じ香具師かどうかはわからんが
>>166 多分正解
>>168 ezplusらしい。ナイス勘
0171159
NGNG通信の方はなんとかなりました。
大変ご迷惑をかけたことをお詫びします
実行環境はphase2のezplus Emulatorです・・
0172159
NGNGtool→default envのotherkeywordだけしか設定してなかったためです
project→edit envの設定したら動きました。。。
0173なっち(○´ー`○)
NGNGとりあえずよかったね。
0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNG紹介しているサイトが存在したのか・・・。
ないものだとあきらめてからマジで嬉しい。
0176なっち(○´ー`○)
NGNGさかきけいさんが書いてるやつ?
0177デフォルトの名無しさん
NGNGうん、そう。
J2SEとVodafoneの日本語版リファレンスは
持ってたけど、MIDPのは持ってなかったから
ゲットできてよかったあるよ(○´ー`○)
0178デフォルトの名無しさん
NGNGありがたいことです。
0179なっち(○´ー`○)
NGNGせっかく話題に出たので
有名かつ既出とは思うけどリンク張っとくね
日本語によるMID ProfileのAPIリファレンス
ttp://godwood.allnet.ne.jp/vioret/midpapi/
0180デフォルトの名無しさん
NGNGwgetとかでローカルに保存しとけばイイ
0181なっち(○´ー`○)
NGNG0182デフォルトの名無しさん
NGNGMIDP2.0に乗り換えるかな。
0183デフォルトの名無しさん
NGNG携帯電話/PDA向けのJava環境に関して、MotorolaとNokiaがSunを
無視してIBMにすりよるらしい。しかし携帯でRCPするってことは
SWTだけじゃなくてJFaceまで動かすつもりなんだろうか。
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNGezplusの2.0でアプリを作っているのですが
aクラス→bクラス→cクラス
↑
↑ ここで再生している音楽を調整したい
ここで音楽を再生
この場合aクラスからbに移るときはMIDlet本体ごと渡しているのでカレントも完全に移動しています
cクラスからaクラスで再生した音を操作したい場合はどうすればいいのでしょうか
たとえば再生を停止したり、ボリュームを調節したり
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG>この場合aクラスからbに移るときはMIDlet本体ごと渡しているのでカレントも完全に移動しています
説明がまるで意味不明なんだがMediaPlayerBoxのインスタンス(mとする)を
オブジェクトa,b,cからいじりたいってことか?
だったらa,b,cでmの参照を保持するのが妥当だろう。(多分>>186で言ってること)
a,b,c,mを包含するオブジェクトxを用意してそこで制御するって案もある。
ていうか別にこのスレ向きの質問でもないような気が。
0188なっち(○´ー`○)
NGNGインスタンスを渡せない複雑な家庭の事情でもありまっするか?
操作するためには、なんらかの形でインスタンスを渡す必要は
あるんではないですかね。
コンストラクタが長くなって嫌だというのであれば
○専用のデータ保持クラスを用意して渡したいものはまとめて渡す
○abcがDisplayableで
必ずMIDletのインスタンスを渡しているというような設計なら
MIDletの中でMediaPlayerBoxを宣言・生成してやる。
○専用の初期化メソッドで渡す。
○staticでなんとかかんとかする。
というとこですかねぇ
結局は渡すわけですけど。
ひねってあまり珍妙なことをすると実機でトラブルかも。
0189デフォルトの名無しさん
NGNG英語版見てから日本語版見たほうがいいよ。日本語版は情報が欠落しているから。
0190デフォルトの名無しさん
NGNGプログラミングガイドで見つけれなかったけど、バンドルアプリで赤外線リモコンやってるみたいなんで。
できるときは、どこに資料がありますか?
同様に、VodafoneのVアプリで赤外線通信できますか?
0191190
NGNG0192デフォルトの名無しさん
NGNGezplusを続行できません
となって起動できません
ソースを元に戻して再アップしてみたのですがそれでも動きませんでした
0193デフォルトの名無しさん
NGNGとっぴんぱらりのぷぅ。
0194デフォルトの名無しさん
NGNGそもそもEZアプリ(Java)が使える機種の中に
赤外線通信機能を持った機種がない。
0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNGスレ違いになりますが、BREWアプリだとできますか?
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNGスレ違いって分かってるなら面倒でもそっちのスレへ行って。
ttp://pc5.2ch.net/test/read.cgi/tech/1076511398/
0200デフォルトの名無しさん
NGNGすでにそっちでも質問してるんですが・・・
0201デフォルトの名無しさん
NGNGあっちで質問していればここで聞いてもいいってもんじゃないだろ
0202デフォルトの名無しさん
NGNG単なるマルチポストかよ。
0203デフォルトの名無しさん
NGNG話それちゃうけど、
オレの場合は、すべてのインスタンスへの参照を記憶する専用のクラス(インスタンス)を作って、
そいつへの参照を全員が知ってる、っていう形で適当に仕上げちゃうことがあるなぁ。
勝手に操作されちゃ困るほどの規模のアプリ組んだことがないからこそなせる技ではあるけど。
0204なっち(○´ー`○)
NGNG共通して参照するデータをまとめて扱うのって
むしろ定跡なんじゃないかなぁ。
ゲームのプログラムとか読んでると
ポコポコそういう構造体でてくるでそ。
メモリとかサイズ節約できるなんて副作用もありえるし
MIDPでは積極的にやった方がいいのかなってチラっと思いましたワ。
0205デフォルトの名無しさん
NGNG0206なっち(○´ー`○)
NGNG0207203
NGNG某ビューア5クラスドス
0208なっち(○´ー`○)
NGNGMIDletとCanvasだけで我慢するので誰か雇ってください。
0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNGそんな容量の余裕はありません。
あと、クラスを定義しないからオブジェクト指向ではない、というわけでもありません。
0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNG仕事でやってる人誰もが容量で苦しんでるわけじゃない。そこら辺勘違いしないで。
iアプリの30KB制限のやつでもクラス3つ4つ定義してたりする。
結局作るものによる。(それを言っちゃぁおしめーか)
0213デフォルトの名無しさん
NGNG0214203
NGNG状態変数やらフラグやらが山盛りあって、
状態をそこら中でチェックしまくりで、
しかも変数名が2文字とか、
そんな世界なんだろうか。。。
keyPressedの中身が5重ifとかで、
「横に長いディスプレイほすぃ」とか・・・
変数名が10文字から2文字に変わったとしても、
ちっさなpngファイル1つで埋まっちゃう。
ゲームアプリは、しょせん
グラフィックデザイナ>>>(越えられない壁)>>>プログラマ
とか。
0215205
NGNGそこを削りたければProGuardとかオブファスケータ
噛ませればいいだけだから気にしてないでつ。
メソッドを手動インライン展開するのも可能な限り最後の手。
でも、
>状態変数やらフラグやらが山盛りあって、
>状態をそこら中でチェックしまくりで、
これはそのたうりです、はい。漏れがヘボなだけってこともありえるがOTL
> keyPressedの中身が5重ifとかで、
これはキープレス・キーリリースのイベントハンドラでは
それこそビットフラグ立て下ろしするだけにして、
必要なときにフラグ見て処理、で何とか片付けてますた。
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNGメソッドのインライン展開などは、Eclipseにやらせなさい
グラフィックデザイナっていうか、ドッターも、圧縮のこと考えて点打つ必要あり。
メモリ割り当てに関しては、プログラマの方が発言権が強いし。
ようするにゲームアプリ・ビジネスアプリ関係なく
金出す人・旗振り役 >>>(越えられない壁) >>>>しもじもの手動かす人
0218なっち(○´ー`○)
NGNGキー入力の話なんだけど
すぺて押下状態チェックで済ませてるの?
つまり、いついかなる状況でもキーを離すと
フラグが倒れて、押していると立っている感じ?
自前リピートチェックというか。
あんまり上手に説明できないけど。
0219デフォルトの名無しさん
NGNG> いついかなる状況でも
んなわけないだろ。
0220デフォルトの名無しさん
NGNG実は前任者のソース使い回しだからあんまし理解できてないんだけどw
Pressのときは「押された」フラグを上げる。そのとき「押し離し」フラグは下げる。
Releaseのとき、「押された」フラグを下げて、「押し離し」フラグを上げる。
で、実際にキーの状態で処理を分けるときは、
・押したor押しっぱなし -> 「押された」フラグを見る
・押したけど押しっぱなしではない -> 「押し離し」フラグを見る
てな感じですた。あと、「離し押し」フラグとかもあったけど使わなかったので忘れた(爆)
あ、RepeatはPCのキーと一緒で最初のPressのワンテンポ後に発生するので
「押しっぱなし」の判定には使えないっす。
0221なっち(○´ー`○)
NGNGああ〜「押し離し」は離したときに反映されるわけだね。
やっぱりリピートタイミング制御できない以上
みんなだいたい同じような処理してるのかな。
キーイベントとポーリングの折衷式というか。
0222デフォルトの名無しさん
NGNGやっとJPEG画像(データフォルダ内)を
表示するところまで作れました。JAVA自体
触るの初めてなので、ここまで作るのにかなり
時間を使ってしまった・・・。しかしJPEG画像は
表示されたのですが、QVGAサイズの画像を
表示させると、もろに携帯ディスプレイから画像が
はみ出してしまいます。
Imageファイルを携帯のディスプレイサイズで表示
する簡単な方法はないでしょうか?
0223なっち(○´ー`○)
NGNGjadに
MIDlet-Application-Range: 0,0
記述してますかいな?
0224222
NGNGはい、記述しています。
というかこれ、エミュレータ側のDisplaySize設定が
240×260の場合なら、画面いっぱいにQVGA画像が
表示されるということですか?
しかしどちらにせよ、「MIDlet-Application-Range: 0,0」
を記述していても、記述していなくても見た目変わらない
ように見えるのですが。
0225デフォルトの名無しさん
NGNG> MIIDlet-Application-Range: 0,0
の記述は確かに、エミュには関係しないな。実端末で影響する。
いわゆるQVGAサイズとは240*320(W*H)のこと。
画面サイズは240*260なので、はみ出して当然。
Javaから扱える画面はQVGAマックスではないので注意。
0226222
NGNGエミュでは「MIIDlet-Application-Range: 0,0」の
記述は関係しないのですか。謎は全て解けました。
Javaから扱える画面はQVGAマックスではないのは
もちろん知っていましたが。
情報ありがとうございました。
0227デフォルトの名無しさん
NGNGphase2.1
です
0228デフォルトの名無しさん
NGNGたとえば
app1からthread1 thread2を開始させる
そしてthread2を停止してthread3を開始。 みたいな。
0229なっち(○´ー`○)
NGNGrun()を抜けた状態が安全な停止にあたるので
実装したrun()の最後で
次のスレッドを開始すればいいんでないですかね。
CLDC/MIDPにstopに類するメソッドは定義されていないと思う。
ついでにスレッド違いでゴンス。
参考
ttp://www.gimlay.org/~javafaq/S019.html#S019-P6
0230デフォルトの名無しさん
NGNGオレも、他のスレッドを直接停止させることはできない、ってどっかで見たような気がする。
thread2は常時自分が生きるための権利を表すフラグをチェックしつつで、
app1がthread2を生かすためのフラグを下げて、
てな感じで対処すればいいと思う。
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG(ノД`)ノ
0233なっち(○´ー`○)
NGNGEZアプリ(Java™)プログラミングガイドの
5−2(3)ではアカンの?
ttp://www.au.kddi.com/ezfactory/tec/spec/ezplus.html
0234なっち(○´ー`○)
NGNG0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNG空白に変換されて表示しまうのですが、どうすれば良いでしょうか。
同じソースコードでvodafoneの601SHでは改行が反映されて
表示されました。
問題の部分のソースは、
textbox =new TextBox("コピー",stringdata,200,TextField.ANY)
Display.getDisplay(aapaste).setCurrent(textbox)
stringdataは、改行入りstring型データ(5文字×5行程度)
例)
hogehoge
aaaaaa
bbbbb
って入れたはずデータが、「hogehoge aaaaaa bbbbb」と
改行がすべて空白になって表示されます。
0237なっち(○´ー`○)
NGNG例)のデータってどうやって入力してるの?
Phase3のエミュだとエスケープシーケンスで
普通に改行されて表示されるけどん。
なお、実機依存の話だと
なっち(○´ー`○)には
手のほどこしようがありません。
0238236
NGNGテキストファイルから読み込ませてます。
kjx作成ツールと一緒についてきたエミュレータ上では、
問題なく改行が表示されています。
もしかしたら実機依存の問題かもしれません。
0239デフォルトの名無しさん
NGNG確かに改行できない実機はいくつかありますよ。
A5403CAでも改行できなかったから、その後継(?)の5407も同様かも。
ちなみに5403では文字入力画面に入る際に、
使用できない文字があるのでスペースに置き換えます
とかいうダイアログがでて置換されます。
自分の場合、頻度の少ない記号(~とか)を改行文字の代わりに使ってます。
byteデータの段階で改行コードに当たる数値を代替記号のコードに入れ替えて
その後でStringに変換して使ってます。
実際の改行を含んだデータにしたい場合は逆の操作で。
結局入力画面では改行されないので解決と言えるかはわかりませんが・・。
0240なっち(○´ー`○)
NGNGまぁ効いても同じことかな。
0241デフォルトの名無しさん
NGNG0242236
NGNG返事遅くなりました。ありがとうございます。
やはりカシオ機の機種依存ですか。レスを読んだ後、気になったので、
実機を貸して貰って、テストしましたが、上に書かれているように
「使用できない文字があるので、、」となりました。
>>241
そうだったんですかorz
代替記号を使ってなんとかしてみるかなあ。
0243デフォルトの名無しさん
NGNGフリーの開発環境ってありますか?
前はJBuilderでしこしこ手書きしてたんですが。
ちなみにKDDIPです
0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNG配置も何も、上から順に並んでくだけなのに必要ないだろ。
0246デフォルトの名無しさん
NGNG同じアプリで動かす方法ってないですか?
0247なっち(○´ー`○)
NGNG誰かしら作ってそうだけど、自前で実装ですかな。
0248デフォルトの名無しさん
NGNGm3DPrgV_201.pdfにある
First3D.java
siba.mbac
siba.mtra
siba.bmp
siba_sphere.bmp
...はどこかでダウンロードできますか?
0249248
NGNGSDKに.javaファイル以外はありました!
.javaファイルはpdf見ながら打ち込みます。
0250デフォルトの名無しさん
NGNG……おーい。PDFって大概コピペできるの知らないのかー?
まぁ久々にタイピングの練習をしようってんなら止めないけどさ……
0251デフォルトの名無しさん
NGNG不便だろ。
0252248
NGNGどうにか助かりました。
0253デフォルトの名無しさん
NGNG自前で実装・・・
自分でそのソースを書くってことですか?
それともどこかからひっこ抜いてくるってことですか?
0254なっち(○´ー`○)
NGNGJ2SEのソースのぞいてみて。java/net/URLEncoder.java
0255デフォルトの名無しさん
NGNGレスサンクス
これでさらにimportに書かれてるやつもコピーすればいいのですか?
よく分からなくてスミマセン。。
0256デフォルトの名無しさん
NGNGと一応いっておく。
0257デフォルトの名無しさん
NGNG0258243
NGNGてがっきーから解放されてあまりの楽さにうつつを抜かしてました。
最悪コピペするかな…?
0259デフォルトの名無しさん
NGNGそのリスト表示する処理を作ろうとしています。
MIDPでListというクラスがあったので、使ってみた
のですが、リストの表示画面が白黒でショボイので
使い物になりません。
みなさんはリストの表示処理を、どんな方法で行って
いますか?自分でリストの文字列やカーソルを作成し、
描画をしているのでしょうか?
0260デフォルトの名無しさん
NGNG>使い物になりません。
と思ったら、自分で作れば良いだけのこと。
0261なっち(○´ー`○)
NGNG>これでさらにimportに書かれてるやつもコピーすればいいのですか?
てなことをやっていると
とんでもないサイズのライブラリが出来かねないので
あくまで参考にして自分で書き起こすのがよいのでは。
0262デフォルトの名無しさん
NGNG> 自分でリストの文字列やカーソルを作成し、
> 描画をしているのでしょうか?
やってますが何か?
0263デフォルトの名無しさん
NGNGやはりみんな自分でリストを作成していましたか。
僕も自分でリストを作成してみます。
0264デフォルトの名無しさん
NGNGネット上のBMP画像を取り込んで、
それをテクスチャに使うことは可能でしょうか?
0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNGC4型にて奇妙な現象が起こりました。
あるアプリダウンロードサイト(A)ではダウンロードできるのですが、
別のサイト(B)では落とすことができません。
最終的にはBのサイトにアップする必要があるので、困っています。
状況として、、、
・ほぼ同等の機能を持つP4、P5版のアプリはA・B両方のサイトから問題なく落とせる。
・C4版のJAR、JAD、レコードストアの合計サイズは50000バイト以下。(容量の問題ではなさそうです)
・ある端末ではダウンロード選択後、何も出てこない。
・別のある端末では、ダウンロード選択後に"JARが見つかりません"みたいなメッセージが出る。
(もちろん、JARファイルもJADと一緒にアップしました)
いったい何が原因なのでしょうか?
0267デフォルトの名無しさん
NGNGMIDlet-OCLが書いてないとおかしくなるような仕様変更があったとかいう話が過去ログにあったような気がする。
とりあえずこれ書いて再度テストしてみて。
MIDlet-OCL: JOCL-1.0.0
ちなみに、あるアプリダウンロードサイト(A|B))とか書かれても、
どうせ一般向けのは2つしかないんだし・・・
0268なっち(○´ー`○)
NGNG審査通知メール見る方がはやいね。
多分はじかれてるよ。
0269266
NGNG>267
それは書いてあります。
確認しました。
>268
アプリゲットはダウンロードできるほう(A)です。
週刊ゲーム&アプリLiveにアップしたものがうまくいきません。
追記ですが、他のC4アプリは問題なくアップ&ダウンロードできます。
0270デフォルトの名無しさん
NGNGどうにもアクションなどのMAPの書き方がわからないのですが
どなたか教えてもらえないでしょうか?
int[][] map={
{0,0,0},
//省略
{1,2,3}}
コンストラクタで画像の取得
画像の表示の仕方が不明…
public void paint(Graphics g){
int no;
for(int j=0;j<3;j++){
for(int i=0;i<3;i++){
no = map[j][i];
g.drawImage(img[no], 64*i,64*j,?);
}
}
こんな感じでやっていたのですが
0271デフォルトの名無しさん
NGNG基本的な枠組みはそれで合ってると思うんだが
何が問題なんだ?
0272270
NGNGコンストラクタ内の画像取得のところでミスをしていました
try{
for(int i=0;i<=8;i++){
img[i]=Image.createImage("/"i.PNG");
}
}catch(Exception e){}
としていてi.PNGしか読み込んでなかったです
お騒がせしました
0273デフォルトの名無しさん
NGNGレコードストアのsetRecordって、対象のレコード全体を書き換えるものなんですか?
1レコード内でデータを分割して、必要な部分だけ保存しようと思ってるんですが、
レコード用のバッファを別に用意しなきゃだめですか?
0274デフォルトの名無しさん
NGNG0275デフォルトの名無しさん
NGNGそういうことになるね。
俺がやってるやり方だと
byte[] rs_bufferで長さはレコードの長さだけ
んでこのrs_bufferにSystem.arraycopy()を使えば部分的なデータの書き込みは簡単にできる。
あとはrs_bufferを第2引数に指定してsetRecord。
他にいいやり方知ってる人いたら教えてくださいな。
0276273
NGNG勉強になりました。
ありがとうございます。
System.arraycopy()の使い方勉強しなくちゃ…
0277デフォルトの名無しさん
NGNGテスト中にどうも対応の仕方が不明な不具合が出てしまいました
【現象】
自作待ち受けアプリを待ちうけ設定にして携帯を閉じた状態にしておいて
アラーム、メール着信時に携帯を開くとアプリがうまく動作しない
着信を止めるとアプリがエラー終了する
着信が終わるのを待つとアプリが起動し正常動作する
ちなみに開いた状態で着信を受けたとき、閉じ状態でも電話着信のときは
正常動作します
同じような現象を確認したかたいらっしゃいましたら
回避方法を教えてください
0278デフォルトの名無しさん
NGNGVアプリってプリミティブ(点・線・三角とか)使えます?
開発ツールのJavadoc、サブクラスとかには入ってなかったのですが、
com.jblend.graphics.j3dにEZのm3dのを入れてコンパイルできたら
実は実機では動くとかってありますか?
今プリミティブだけでちょっとした3D作れないかと考えてるんですが・・。
モデリングツールとか手が届かないですし・・。
0279デフォルトの名無しさん
NGNGP4型、P5型、P6型、W型のどれ?
実機で確認していると思うんだけど、
どのメーカーのでも発生するの?
0281277
NGNGMIDlet-Resident: Y
↓
MIDlet-Resident: S
とすることで回避はできることがわかりました
が、私はP4,P5機種をターゲットで考えていたので
上記設定で問題回避することはできません...
0282277
NGNG仕方なくユーザーが任意の一時停止動作(閉じるor電源ボタン押下)
の場合はアプリを終了するようにしました
終了状態の場合開ける動作による復帰よりも早く
ネイティブの着信処理が走るため一応形としてはエラー終了がなくなりました
0283デフォルトの名無しさん
NGNG「エラー終了」って、要するに例外が発生して、それを捕まえてないってことでしょ?
なんか「エラー終了」って言葉使うあたりで例外ハンドリングの甘さが漂うんだけど。
0284デフォルトの名無しさん
NGNG大まかには
> アプリがエラー終了する
から、例外スルーで間違いないでしょ。
たとえば、アドレス帳登録されてないとこからの着信時は名前がnullになるとか。
0285デフォルトの名無しさん
NGNGhttp://www.crosslanguage.co.jp/webdic/webdic.htmlを利用するプログラムを作ろうと思ってるのですが、
http://www.crosslanguage.co.jp/webdic/[email protected]&word=萌え&lang=x&dic=BASE&magazine=yes
のようなURLで
c =(HttpConnection)Connector.open(url);
in=c.openInputStream();
byte[] data=new byte[(int)c.getLength()];
とすると、c.getLength()が-1になってしまいます。
urlを他のサイトに変えてみると問題なく動くのですが、
何がいけないのでしょうか?
0286デフォルトの名無しさん
NGNG画面を少しずつずらしていくものなのでしょか
0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNGDoCoMoの例だけど、参考になるはず。
http://pc5.2ch.net/test/read.cgi/tech/1091286071/258-262
0289デフォルトの名無しさん
NGNGサーバ側のContentLength設定次第なので普通に起こりえることだよ。
byte[] data;
int len = (int)c.getLength();
if (len == -1) data = new byte[256];
else data = new byte[len];
とでもすればいいかと。それでin.read()をループ。
>>286
RPGのマップのようなマス目単位の背景をスクロールさせるなら>>288のURL先へ。
1枚の長ーい背景をスクロールさせる場合は、その背景を適当な長さで分割しておき、
読み込み→ずらして表示→画像の端まで来たら続きを読み込み→…と繰り返していく。
0290277
NGNG例外処理をおろそかにしていたのでちゃんとやってみます
>>284
具体的には一時停止状態にする場合Threadを停止していないせいだと思います
とりあえず閉じ状態からの着信があった場合のイベント処理順番は
依然として不明のままです...
0291285
NGNG多謝 多謝!
0292デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG質問があります。
LISTのカスタマイズ(継承)の話が上であったと思うのですが、
javadocをみながら継承している流れを追ったりしてみましたが、
イマイチどう、カーソルやリストを作成すればいいのかイメージが
わきません。
LISTを継承して拡張するような方向で考えているのですが、
背景を変えたりすること自体がCanvasクラスでの方法しか思いつかず
四苦八苦しています・・・
ヒントをいただけたら幸いです
0295デフォルトの名無しさん
NGNGListなど、MIDPのUIクラスの描画は実装によって行われる。
つまり、実装依存であり、その描画内容などをプログラムから取得したり変更したりするすべはない。
0296デフォルトの名無しさん
NGNG0297294
NGNG分かりました。一から作成するほうで考えて見ます。
どうもありがとうございました
0298デフォルトの名無しさん
NGNGbyte[]に変換したいのはRecordStoreに保存したいからです。
0299デフォルトの名無しさん
NGNG前スレにそんな話題がでてた希ガス
0300デフォルトの名無しさん
NGNGビット幅気にしないのなら無理矢理キャストすればいい。
気にするなら、たとえばオレのやってるの
(int valueをtmpに入れる場合)
byte[] tmp = new byte[4];
tmp[0] = (byte)value; value>>=8;
tmp[1] = (byte)value; value>>=8;
tmp[2] = (byte)value; value>>=8;
tmp[3] = (byte)value;
0301298
NGNGありがとうございます。
これって符号もオッケイなんでしょうか?
一応±32000くらいまでを扱うつもりなので。
shortなので、
tmp[0] = (byte)value; value>>=8;
tmp[1] = (byte)value;
でやってみます。
ありがとうございました。
#とはいえちょっとしばらくは手がつけられなかったり…
0302デフォルトの名無しさん
NGNGMIDP2.0、とうとうボダで出るのか
0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNGintでやるのとlongでやるのだとやっぱり実行速度も
short > int > long
になるんですか?
0305デフォルトの名無しさん
NGNG32ビットWindowsなら理屈ではintが有利なはずだ(エミュでも多分そうだろう)が
0306デフォルトの名無しさん
NGNG0307298
NGNGint value=123123; //数字は適当
temp[0] = (byte)value;
value = value>>8;
temp[1] = (byte)value;
value = value>>8;
temp[2] = (byte)value;
value = value>>8;
temp[3] = (byte)value;
int a_value = ((int)temp[3]<<24) & ((int)temp[2]<<16) & ((int)temp[1]<<8) & ((int)temp[0]);
としてもa_valueと元のvalueが一致しないのはどこが悪いんでしょうか…
0308デフォルトの名無しさん
NGNGこれが悪いんじゃないの?
(temp[0] & 0xFF) とかやんないと駄目でしょ
byteの0xFF(10進で-1) をintにしたら0xFFFFFFFFだよね?
0309300
NGNGオレはこんな風に元に戻してる。
value = 0xFF&tmp[3] ; value<<=8 ;
value |= 0xFF&tmp[2] ; value<<=8 ;
value |= 0xFF&tmp[1] ; value<<=8 ;
value |= 0xFF&tmp[0] ;
もうちょっとマシな書き方がある気もするけど、
ビット操作好きじゃないからまぁちゃんと動けばいいかなと思ってる。
0310デフォルトの名無しさん
NGNGint が一番速い。
0311298
NGNGおかげさまで以下のようにし、無事動作しました。
public long bin2long(byte[] b){ long j=0;
j |= (long)((b[0] & 0xFF)) << 56;
j |= (long)((b[1] & 0xFF)) << 48;
j |= (long)((b[2] & 0xFF)) << 40;
j |= (long)((b[3] & 0xFF)) << 32;
j |= (long)((b[4] & 0xFF)) << 24;
j |= (long)((b[5] & 0xFF)) << 16;
j |= (long)((b[6] & 0xFF)) << 8;
j |= (long)((b[7] & 0xFF)); return j;}
public byte[] long2bin(long l){ byte[] b = new byte[8];
b[0] = (byte)(l >> 56);
b[1] = (byte)(l >> 48);
b[2] = (byte)(l >> 40);
b[3] = (byte)(l >> 32);
b[4] = (byte)(l >> 24);
b[5] = (byte)(l >> 16);
b[6] = (byte)(l >> 8);
b[7] = (byte)(l); return b;}
public int bin2int(byte[] b){ int j=0;
j |= (b[0] & 0xFF) << 24;
j |= (b[1] & 0xFF) << 16;
j |= (b[2] & 0xFF) << 8;
j |= (b[3] & 0xFF); return j;}
public byte[] int2bin(int i){ byte[] b = new byte[4];
b[0] = (byte)(i >> 24);
b[1] = (byte)(i >> 16);
b[2] = (byte)(i >> 8);
b[3] = (byte)(i); return b;}
0312デフォルトの名無しさん
NGNG未定
0313デフォルトの名無しさん
NGNG今StorageConnectionで外部メモリのテキストファイルを読み込もうとしてるのですが何度やってもエラーが出てコンパイルできません。
自分じゃあ分かりそうに無いし書籍探してもHttpConnectionのソースしか書いてないしでどうしようもなくなったんで
どなたかStorageConnection使ってテキストファイルを読み込む簡単なソース貼ってくれないでしょうか
あと、ついでなんで画像もHttp使うのしか分からないんで外部から読み込む簡単なソースお願いします。
なんか頼みばっかなんですがスンマセン宜しくおねがいします
0314デフォルトの名無しさん
NGNG>>13
0315313
NGNGで、今のソースが下の
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import java.io.*;
import javax.microedition.io.*;
public class CCanvas extends Canvas {
private String info="null";
public interface StorageConnection{}
CCanvas() {
}
0316313
NGNGもしかしてJ2ME Wireless Toolkit 1.0.4_01じゃ無理とか?
始める時にこのバージョンでやれって言われたのだが・・・
0317313
NGNG0318デフォルトの名無しさん
NGNGString hoge = new String(byte[])
って方法でいいんですか?
なんか方変換したいだけなのにnewするのに違和感があって。
Byte.toString(byte[0])+Byte.toString(byte[1])…
とかのほうがいいんですか?
0319デフォルトの名無しさん
NGNG>>13以降に続くレスも読んだ?そこでは結論出てるようだけど。
>>318
示した2つの方法で得られるものは違う。結果としては何が欲しいの?
byte[]に文字コードが入っててそれが示す文字列にしたいなら上の方法で。
byte[]1つ1つの要素が表す数値を数字としてつなげたいなら下の方法で。
それから>>318は基本的な理解が不足してる模様。
byteやintはプリミティブ型、対してStringはクラス。クラスを生成するには
Canvasなどと同様でnewするものだろう?
文字列を+でつないでいくのも内部的にStringBufferが生成されてaddが
行われているだけ。詳しくはCLDCのAPIリファレンスでStringのとこ読んで。
0320デフォルトの名無しさん
NGNGByte.toString(byte[0]) …こんな書き方のものはない。
0322デフォルトの名無しさん
NGNGパッケージ com.j_phone.io は存在しません。
って出るんだけどこれどうすりゃいい?
032313
NGNG>>313
> 何度やってもエラーが出てコンパイルできません。
だから、コンパイルができてないという状態だと思うんですが。。
だから13とは関係ないと思うんですが・・
classpathでstubclasses.zipを指定してないというオチでは?
>322も。
http://www.saturn.dti.ne.jp/~npaka/kvm/javapress/coolskiers/support.html
0324デフォルトの名無しさん
NGNG-bootclasspathでstubclasses.zipを指定してみたのだが
エラー: *.java を読み込めません。
エラー 1 個
って出る・・・・何故だ・・・。
0325デフォルトの名無しさん
NGNGコマンドラインそのまま晒してみれ。
0326デフォルトの名無しさん
NGNGC:\j2sdk1.4.2_05\bin>javac -bootclasspath c:\v-appli_sdk_121\lib\stubclasses.zip -g:none *.java
エラー: *.java を読み込めません。
エラー 1 個
0327デフォルトの名無しさん
NGNGコンパイルするソースもC:\j2sdk1.4.2_05\binに置いてるん?
それともカキコ用に適当なパス書いただけ?
まさかとは思うけどカレントディレクトリ間違ってない?
0328デフォルトの名無しさん
NGNGパスってjavac.exeが置いてあるとこじゃないの?
set path=c:\j2sdk1.4.2_05\bin\;C:\wtk104\bin;
てしたから始めはjavac.exeの場所じゃないと思ったんだが、c:\j2sdk1.4.2_05以外だとjavacが見つかりませんてエラーでたし・・・
えーと、パスはコンパイルするソースが置いてあるところなわけだな。
もう一回set pathからやり直して見る
0329デフォルトの名無しさん
NGNGが、試しにmyMIDletってのをコンパイルしてみたんだが
myCanvas.classとmyMIDlet.classってのが出来て、outputてフォルダの中に同名でサイズが違うのが出来た
んで、jar cmf MANIFEST.MF myMIDlet.jar -C output .
て実行したらMANIFEST.MFが見つからんとか
これって手書きで作成?
あと、コマンドラインでコンパイルするのとJ2ME Wireless Toolkitのビルドとどう違うん?
0330デフォルトの名無しさん
NGNGただ、環境変数PATHにjavac.exeの位置が入ってなくても
絶対パスで動かすんで無問題だったかな > Toolkit
後はコマンドラインだと手作業、Toolkitは一括でjarまで作る、くらいかな、違いは。
(手作業っつっても、バッチ作るなりそれこそant入れるなりすればさして手間はかからん)
MANIFEST.MFは手書き……だと思う。一回書いたらそうそう書き換えることもないっしょ。
033113
NGNGjad/MANIFESTの作成から、javac/preverify/jarまで一括でやってくれるんじゃなかったっけ?
オレも使ってないから知らん。
一回書いたらほとんど直さないから、手書きでいいと思う。
入門記事
http://www.itmedia.co.jp/mobile/0203/08/n_j1.html
0332デフォルトの名無しさん
NGNGWireless Toolkitだとcom.j-phone.ioは存在しませんってエラーになってビルド出来ない
コマンドラインでやればエラー出ずコンパイルできたけどjad手書きしてエミュで実行してみたら
MicroEdition-Configurationの項目が存在しません
ってエラー出てロード出来ん
jadの中身↓
MIDlet-1: FileSystem, FileSystem.png,
MIDlet-Name: FileSystem
MIDlet-Vendor: sun
MIDlet-Version: 1.0
MIDlet-Application-Range: 0,0
MIDlet-Network: Y
MicroEdition-Profile: MIDP-1.0
MicroEdition-Configuration: CLDC-1.0
MIDlet-Jar-URL: FileSystem.jar
MIDlet-Jar-Size: 1843
antっての使ったほうがコンパイルとかなの?
0333322
NGNGここに
(補足)
なお、J2ME WirelessToolkitを、コンパイル環境として使う場合は、
JSCLのライブラリ(stubclasses.zip)を解凍、CLDCライブラリも解凍して、2つを統合し
上記の「非圧縮zip」で圧縮すれば使えるそうです。
って書いてあるんで試してみます・・・。
これ出きればコマンドライン使わずにいけそうなので。
て、kjxでも同じかな…まあ試して見る
0334デフォルトの名無しさん
NGNGWTKのlibディレクトリのmidpapi.zipには当然ボーダ固有のAPIは含まれてないので
com.j-phone.*を使うようなアプリではコンパイルでエラー。
WTK使ってる限りは-bootclasspathの指定とかできないからstubclasses.zipを
midpapi.zipにリネームして置換してる。
au/docomoでコンパイルする場合は元のmidpapi.zipを使ってる。
0335322
NGNGだから、多分
stubclasses.zipにmidpapi.zipの内容が全部含まれてないからリネームだけじゃ駄目かと思う。
多分だから間違ってたら指摘よろ
・・・と、漏れはstubclasses.zipの内容をどうやってmidpapi.zipに統合しようか悩んでるわけだが。
>>13 & 他の人
stubclassesの統合でWirelessToolkit使ってjad/mfの生成できそうです
親切に教えてくれて多謝多謝!
WTK使ってコンパイル出きるようにがんばる
0336334
NGNG確かにmidpapiが全てstubclassesに含まれているわけではないが
midpapiのうちボーダの開発には不要なAPI(サポートしていない機能)が省かれている
だけのようなので、自分では単純にリネームしたものを使っている。
何ら保障するわけではないが、これで不都合は起きていない。
ちなみに2つを統合するならこれでOK
1.midpapi.zipとstubclasses.zipを解凍する
2.midpapi側を全てstubclasses側に上書きコピーする
3.stubclasses側を無圧縮zipで固めて、midpapi.zipにリネームする
はじめ自分はこれでやってたんだが、統合したもの(自分で作ったもの)を使うってのが
逆になんか気持ち悪くて今の方法(リネームして置換)に変えた次第。
0337デフォルトの名無しさん
NGNGgetWidth()をよく使うんですが、
これって起動してすぐにint width = getWidth()
とかしてその後は毎回getWidth()する代わりに、widthを使った方が
早かったりしますか?
0338322
NGNG統合したらWTKで今までcom.j-phone.io見つかりませんってエラー出てたの出なくなりビルドできました。
これでJSCL使ってもいけそうです
んで、JSCL使ったテストアプリを色々と試してみてるのだけど313と同じくStorageConnectionがうまく動きません。
サンプルソースがどこ探しても無いしHttpConnection使ったサンプルソースのHttpの部分をStorageに書き換えて試して見たが、ビルドエラー無いけどエミュで実行してみても読み込み出来ず。
ちょいとソース上げたので、見てやってもいいぞって人いれば間違い部分指摘して下さい
ttp://namihei.zone.ne.jp/cgi-bin/up/upload.cgi
の、21945
ちなみに読み込むテキストはV-appliエミュレータがインストされてるフォルダのbin内IntStorageの中に置いてあります。
0339デフォルトの名無しさん
NGNG保持してていいんじゃないかな。あくまで見やすさと記述の手間を省くという点で。
その程度で速さは稼げないから。
0340デフォルトの名無しさん
NGNG0341322
NGNG速さは稼げないけど、ファイルサイズが小さくなるのと見やすくなるって利点はある
・・・と思う
あ、でもアプリを使う機種が限定されてたりするなら値で入れといてもいいかもね
・・・多分
0342337
NGNG変数に代入する方で行きます。
ありがとうございました。
0343322
NGNGJSCL1.2.xの参考書でいいのとかあります?
手持ちの書籍じゃJSCL1.1までしか対応(書いて)してない(´д`;)
0344デフォルトの名無しさん
NGNGサンプルくらいDLしる
http://www.dp.j-phone.com/dp/tool_dl/java/emu.php
あと、JSCL1.2に関する書籍は聞いたことがないな。
どうせ消えるらしいし今後も出ないと見た。
0346デフォルトの名無しさん
NGNG前スレ36氏の発言KJXカッター
ezplusの実行形式KJXファイルを簡単にJADファイルとJARファイルに戻せる
↓
jarはzipと同じなので、適当なツールで伸張
↓
Java逆コンパイラ(沢山あるからググれ)にかける
と書いてあり逆コンパイラしたファイルのバグを修正してコンパイラすると
エラーが必ず出ます。
インターフェイスファイルが無いなどで
まぁ一回無視してclassファイル(12個)や画像ファイルをzip圧縮して
kjx結合君で無理やりkjxにしたのですが起動できませんでした
しかも通信機能がついているのに通信が無効になってしまいました
何か解決方法は無いでしょうか?
0347デフォルトの名無しさん
NGNGそれをgetRecordして表示させようとしているのですが、
どうもうまく表示できません。
どの過程をしくじっているのかなかなか把握できないのですが、
Vエミュ(P4型)ではレコードストアの状況とかみれないのでしょうか?
あと、setRecordを使うことで、特定のIDに新規書き込みすることは不可能なのでしょうか?
0348デフォルトの名無しさん
NGNG逆コンパイルした*そのままの*ソースはコンパイル通る?
通らなかったらその逆コンパイラが腐ってる可能性があるから別のを探そう。
起動できないetc.はそれを確認・対処してから考えましょう。
通信が無効ってのは……kjx作るとき元のと同じMANIFEST.MF使ってる?
0349347
NGNGどうやらOPEN時点ですで引っかかっていたみたいです。
で、いろいろ検討して、レコードストア処理をしているサンプル探してきて
実行すると、ちゃんとしているものなら *.rmsというデータができること
を発見し、そこから調べていった結果。MANIFESTと.jadの問題だったようです。
MIDlet-data-sizeは登録しておいたと思ったんだけど、、動いてるものから
コピペして書き換えたら処理できるようになりました。
setも既出のものしかできないこともわかりましたので・・・
お騒がせしました。
0350デフォルトの名無しさん
NGNG逆コンパイラはDJ Java Decompilerで逆コンパイラしたファイルを
そのままコンパイラしようとすると
「シンボルを解釈処理できない」
と出ます。
一度.classを読み取り.javaにしたファイルをそのまま.classに戻す時点で
このエラーが出ます。
また他の.classを読み取り.javaにしてまた.classに戻そうとすると
「このファイル名はpulicです宣言ファイル名.javaで宣言しなければなりません」
と出てしまいます
やはり逆コンパイラが腐っているのでしょうか
MANIFEST.MFは同じものを使っていますMETA-INFというファイルに納めてあります
0351デフォルトの名無しさん
NGNGあとMANメッセンジャーでご指導して頂ける方は指導希望と書いてくれませんか?
0352デフォルトの名無しさん
NGNGとりあえず逆コンパイラをjadに変えてやってみましょ。
ttp://kpdus.tripod.com/jad.html
0353デフォルトの名無しさん
NGNG甘 え る な
0354デフォルトの名無しさん
NGNGJ2ME Wirless Toolkit でビルドを行ったのですが、
com.j_phone.* は存在しません。と出てしまいます。
com.j_phone一式がインストールされてないということと思いますが、
その入手先と、設定方法を調べていますが、どうもみつかりません。
教えていただけますと助かります。
0355デフォルトの名無しさん
NGNGJ2ME Wirless Toolkitのバージョンは、1.0.4です。
VアプリのP5型の開発をしております。
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNGttp://java.cocolog-nifty.com/blog/2004/03/
を読んで、JSCLのインストールを
試してみたところ、次のようなエラーが出てしまいました。
----------------------
ERROR: native methods should not appear
Error preverifying class com.jblend.graphics.j3d.ActionTable
com.sun.kvem.ktools.ExecutionException: Preverifier returned 1
Build failed
----------------------
意味がよく分からないのですが、ネイティブメソッドを使ってはいけない。
と出ているようです。ネイティブメソッドは使用していないのですが、
何故こうなるのでしょうか?
0358デフォルトの名無しさん
NGNG自分じゃアプリ作れないけど改造だけなら出来そうとか思ってるんだろうな・・。
そもそも逆コンパイル自体グレー的(おそらく他人のアプリだとして)な行為なのに、
コンパイル等の仕組みを良くわからないまま手を出して「腐ってる」は無いだろ。
「シンボルを〜」とか「〜で宣言しなければ」なんて超基本的なことで、
少し自分でソースチェックすれば解決できそうなもんだけどな・・。
たぶんそのアプリの作者がサイズ削減かコード閲覧回避のためオブファスケータ使ってて、
その時ファイル名と異なるクラス名が付いたから、とかじゃないかとか思うけど。
まぁ逆コンしたものであるかは別にして、ソースがコンパイルできるかどうかの問題だから
ソースとBuild設定さえ見れたらアドバイスできるが、他人のなら無理だな。
とりあえずアップできるソースならアップして、他作なら許可もらうか直接聞いたら?
0359デフォルトの名無しさん
NGNGJConnector.class を入手したのはいいのですが、
どこに置けば良いのでしょうか?
分かる方いらっしゃいますか?
0360デフォルトの名無しさん
NGNGJConnector.classってなんだ?
0361346
NGNG確かにおっしゃる通りです。
一応eclipseで逆コンパイラしてソースを見てみると
たくさんエラーが表示されますね
おそらくコード観覧回避目的だと思います。
企業のアプリなんでアップや直接聞くことはできませんが
一からJAVAを勉強し直して自分でコンパイラできるようになり
アプリを制作できるようになりましたらまた挑戦してみます。
>>353
甘えもありますが、板をあまり質問で汚したくなかったので
そのような書込みをしました。
0362デフォルトの名無しさん
NGNG今、純MIDP2.0 のみ( VやAUのクラスを使用しない )でアプリを作っています。
で、今行き詰まっているのは
ランチャーのように『アプリA』 から 『アプリB』や『アプリC』 を呼ぶことは可能か?
という事についてです。
別スレッドということではなく、あくまで別アプリを呼ぶという事で。
他のアプリを呼ぶ事自体が非常識なんでしょうか?
セキュリティ上ダメかな・・・と、少し諦めてはいるのですが
可能ならば容量制限などを気にせず作れるかな〜と思っています。
『そんなの普通にやってるコトだよ!』とか『できるワケね〜だろ!』といった
内容でもよろしいので、ご意見下さい。
0363デフォルトの名無しさん
NGNGアプリAに終了命令出して、アプリBとかCに開始命令出せればいけるかも
でもレコードストアのデータとかは引き継げないから結構使いにくいかもね。
0364デフォルトの名無しさん
NGNGMANIFST.MFにMIDlet-1, MIDlet-2とか書いて、
1つのjarの中に複数のMIDlet詰めることはできたと思う。
そういうアプリの場合、起動時に詰め込んである複数のMIDletから(ユーザが)アプリを選んで起動できる。
レコードストアを共有できるかどうかはシラネ。MIDPのドキュメント読んで。たぶんできると思うけど。
でも、今のケータイ向けのアプリでは一般的には使われてないっぽいけど。
0365362
NGNG>>363さん
別アプリって認識できるのかな?
でも、やってみますね!
>>364さん
大変勉強になります。
1つのjarに複数のアプリが入れられるとは思いませんでした。
レコードストアに関しては、早速、印刷して読み込んでみます。
>でも、今のケータイ向けのアプリでは一般的には使われてないっぽいけど。
通信速度もメモリも拡大している最近では、複数に分けてみようってのは
イマイチな考え方なんですかね・・・(泣
やはり別jarパッケージの起動は無理っぽいのかな〜。
やれる事は全部やってみて、引き続きがんがってみます。
みなさん、ありがとうございます。
0366なっち(○´ー`○)
NGNG廃止されたような気がしたけどどうかな。
0367デフォルトの名無しさん
NGNGMIDlet Suite内のMIDlet間の連携は無理です。
選択画面を経由した手動の切り替えのみ可能。
ってのが建前。
それからレコードストアは共有できる。はず。
0368デフォルトの名無しさん
NGNGMIDlet Suite 中で同じレコードストア名を使用すると、同じデータを参照できます。
アプリケーション間連携がないのは、セキュリティリスクの低減と、
設計モデルの問題ですね。
0369デフォルトの名無しさん
NGNG一つのレコードに複数のデータを設けて、split出区切る方式を
考えて、やってみたんですけども、
メソッド split(char) は型 String で未定義です。
でコンパイルが通らないです。j2sdk1.4.2_02です。
split使えないなんて事はないと思うんだけど、、
ご教授いただけますでしょうか・・
try{
rs = RecordStore.openRecordStore("frends",true);
byte[] b=rs.getRecord(1);
String rec =new String(b);
rs.closeRecordStore();
String nlist[ ]= new String[1];
nlist = rec.split("|");
}catch (RecordStoreException e){
feno =9999;
fname = "ERROR;";
}
0370369
NGNGメソッド split(String) は型 String で未定義です
になってますね。さっきはパラメータに'|'を送ろうとしてたので、
Charだったみたいです。
0371デフォルトの名無しさん
NGNGそのエラーメッセージの通り。
Stringクラスにsplit()というメソッドはない。
0372デフォルトの名無しさん
NGNGパッケージ化するたびにメモ帳でJAD開いてにMIDlet-Networkを追加するのが面倒です
この作業をしないで済む方法ってないですか?
0373デフォルトの名無しさん
NGNG俺はWireless Toolkit使わずにバッチファイルでパッケージしてる。
0374デフォルトの名無しさん
NGNGttp://www.wakhok.ac.jp/~oota/vappli/
0375デフォルトの名無しさん
NGNGパッケージ化のたびに項目消える方がヘン。
マニフェストファイルの方に書いてないってオチでは。
0376372
NGNG初心なこと聞いちまったぽい。
0377デフォルトの名無しさん
NGNG現在、JPG画像を表示させるP5向けのアプリを作っています
しかしImage.createImateして、drawImageで表示させても何故か減色されてしまいます。
アプリでは256色までしか扱えないのでしょうか?
それともJPGはの表示は特別な方法があるのでしょうか?
教えて下さい
よろしくお願いします。
0378デフォルトの名無しさん
NGNGアプリは何で実行してるの?実機?エミュレータ?
256色の制限なんてあったっけ?
0379377
NGNGP5用のVアプリエミュで実行してます。
256色で制限されてるのかはよく分からないのですが、256色に落として保存した画像みたいに年輪みたいになって表示されてしまいます。
0380デフォルトの名無しさん
NGNGそんな感じに表示されるけど、実機では問題なし。
0381377
NGNG実機で試してみますね。
ありがとうございました。
0382377
NGNGそれは解決したのですが、また問題が出たので質問です。
エミュでは展開出来たのですが、実機では40k以上の画像等のファイルはエラーが出て表示が出来ませんでした。
テストには602SHを使っていて、601SHならPNGの展開サイズが最高で512kまでと書いてあったのでいけると思うのですが…。
それと、MIDlet-OCLをJSCL-1.2.2に設定しておくと602SH/601TのP6型以外で起動不可になりますか?
質問ばかりで申し訳ないのですが、よろしくお願いします。
0383デフォルトの名無しさん
NGNGcatch(Exception e){
while(DeviceControl.getDeviceState(DeviceControl.KEY_STATE) > 0) //キー入力があるまで無限ループ
0384デフォルトの名無しさん
NGNGcatch(Exception e){
Graphics.setColor(0,0,0);
Graphics.fillRect(0,0,240,240);
Graphics.setColor(255,255,255);
Graphics.drawString(""+e.toString());
while(DeviceControl.getDeviceState(DeviceControl.KEY_STATE) > 0) //キー入力があるまで無限ループ
}
0385デフォルトの名無しさん
NGNGx,y,アンカーを脳内で入れといてください。
それと追記
例外とかの文だと長すぎてはみ出す可能性が高いんで
20文字目ぐらいでString#substring()使って文字列を区切って描画したほうがいい。
0386デフォルトの名無しさん
NGNG確か40KBより大きいファイルは扱えなかったような気がする。
0387デフォルトの名無しさん
NGNG40KBより大きい画像とかのファイルをSD経由で読み込んでみ?
エラーで表示されない
勘違いだったらスマソ
0388デフォルトの名無しさん
NGNGこのアプリで40kb+の着メロ再生できるから開く方法はあるっぽいな。
0389382
NGNG>>383-385
コード追加してみましたが、getDeviceState(int)をstaticコンテキストから参照することはできません。
と出てビルド出来ません…。
すんません、自力じゃ分かりませんでした…。
>>386-387
SDカードにアプリで読み込もうとしていたファイルを入れて開こうとしたところ、「40Kを超えるファイルのため再生できません」と出ました。
40K以上の着メロも同様のエラーで無理みたいです。
0390デフォルトの名無しさん
NGNGどんなAPIで40KB超えのファイルを開こうとしてる?
StorageConnection#openInputStream()
でなら、40KB制限なんて引っかからないと思う。
FileUtility
は使ったことないのでシラネ、
FileUtility#play
は、「ネイティブアプリケーションで再生します」とか書いてるから、
ネイティブの制限(SHなら40KB/Tなら64KB)の制限を受けるんじゃないかな。
0391デフォルトの名無しさん
NGNGちゃんと調べた訳じゃないけどStorageConnection#openInputStream()の仕様で制限掛かってるならエミュでも開けないと思うし、
何か機種独自の仕様かなにかに引っかかってるんじゃないかな
それ以外のAPIは使ったことないし知らん
ちなみに漏れの602SHでもStorageConnection#openInputStream()で画像読み込んだら例外出て開けんかった。
もしかしたら
ttp://potter.s5.xrea.com/vappli/doc/P5/com/jblend/media/jpeg/JpegData.html
もしくはttp://potter.s5.xrea.com/vappli/doc/P5/com/jblend/media/png/PngData.html
これ使えば開けるかもピープ限界まで開けるかも
漏れの考えも間違ってるかもしれないから分かる人よろ
0392391
NGNGJpegPlayerとかはttp://potter.s5.xrea.com/vappli/doc/P5/com/jblend/media/MediaImageOperator.html
このMediaImageOperatorってので使うぽい
間違ってたらすまそ
0393382
NGNG>>390
ファイルの取得はボーダのサンプルを流用してやってます
まず、byte[] data=read(ImgURL+".png")で呼び出して
(長いので必要そうな所だけ。)
conn = (StorageConnection)Connector.open(url);
InputStream is = null;
ByteArrayOutputStream baos = null;
try {
baos = new ByteArrayOutputStream();
is = conn.openInputStream();
byte[] buff = new byte[(int)conn.getLength()];
int readed = -1;
while ( (readed = is.read( buff )) != -1 ) {
baos.write( buff, 0, readed );
return buff;
}
}
…catch/finallyなどが続く
最後のreturnでbuffの中身を呼び出し元に戻して、viewImg=Image.createImage(data,0,data.length)で画像にしてます。
多分これでいけてると思うのですが…ここに問題無ければ他の部分かな…。
>391
棒打のサンプル見てみますね。
0394デフォルトの名無しさん
NGNGヒープの問題。
0395デフォルトの名無しさん
NGNG参考までに聞きたいが、
このソースで実機で40KBより小さいサイズの画像は問題なく読めてるの?
0396382
NGNG0397デフォルトの名無しさん
NGNGピープは1200kぐらいあるはずだからよほど大きくない限り読めるはずだろ
0398デフォルトの名無しさん
NGNGエミュ確認のみ。
0399デフォルトの名無しさん
NGNG0400デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG240×320がOKだったとかいわずに、Image作成前と作成後でヒープ残量はかってみ。
long memory = Runtime.getRuntime().freeMemory();
他キャリアで悪いがPhase3エミュでcreateImage(100,100)で20KB程度、
つまり1画素あたり2B使ってる計算。これでいくとヒープ2MBの機種で100万画素まで、
大体QVGA(320×240≒8万)の10倍程度が限界。もちろん画像のみの話だけど。
そのJPGがそれ(QVGA×10)を超えてないか確認してみそ。深度深けりゃもっと小さいが。
0404デフォルトの名無しさん
NGNGbyte型のデータをint型に変換するのってどうすりゃいいの?
直接代入しただけじゃあたりまえだが無理だった(´д`;)
0405390
NGNG少なくとも500KB超えたファイルもいけてる。
やっぱ、Image作るところかbyte確保するとこ(byte[] buff = new byte[(int)conn.getLength()];)で
ヒープ不足で引っかかってる気がするんだが。
いずれにしても、どこでどんな例外が出てるかを確認するのが先決だと思う。
>>404
直接代入できますが。
0406デフォルトの名無しさん
NGNG直接代入しようとすると互換性のない型って出てビルド出来ん
んで、検出値がbyte[]で期待値がintになってる
解釈違いかなあ
0407デフォルトの名無しさん
NGNG配列じゃない変数に配列が代入できるわけないだろ
どういうことがやりたいんだ?
0408デフォルトの名無しさん
NGNG393のソース流用したんだけど、int spfdata = read("file:///mc/spf/sound.spf");
ってすると「互換性のない型」ってエラーが出る。
さてどうしたものか…。
0409デフォルトの名無しさん
NGNG>>393のソースを参考にread()ってメソッド作ったんなら戻り値はbyte[]型でしょ。
(byte[] buff = new byte[〜]; で return buff; なんだから)
それをint型で受ければエラーは当たり前。byte[]型の変数で受けなきゃ。
0410デフォルトの名無しさん
NGNGこんなソースになったけど駄目っぽい…。
2箇所エラーがあるみたいです
すいません、よろしければおかしい所の修正お願いします。。。
player=PhrasePlayer.getPlayer();
byte[] spfdata;
spfdata = read("file:///mc/spf/sound.spf");
int spffile = spfdata; //ここで「互換性のない型」エラー
data=new Phrase(spffile); //ここで「シンボルを解決できません」エラー
track0=player.getTrack();
track0.setPhrase(data);
track0.play();
0411デフォルトの名無しさん
NGNG>int spffile = spfdata;
だから、なんでbyte[]型をint型に代入しようとするのさ。
しかもPhraseのコンストラクタでint型を引数に取るものはない。
無意味な int spffile = spfdata; を書かずにspfdataを引数にすればいい。
0412382
NGNG0413デフォルトの名無しさん
NGNG遅くなった。
どっかでint型のデータを引数として渡せとか書いてあったのが頭の端っこにあったからかなり勘違いしてたっぽい。
spfdataを直接渡してやればちゃんと再生できました。
ところで、2種類の音を再生して、片方の音だけループするようにしたいのだけど
ループの処理は常に再生されるか確認して停止してたらまた再生させる って処理でいいのかな?
0414デフォルトの名無しさん
NGNG「なんとか」じゃなく、何が原因だったか知りたいぞ!
0415382
NGNG残量は表示させてたのですが取得する場所が悪かったみたいでちゃんと計れていないのが原因でした。
0416デフォルトの名無しさん
NGNG「ピープ」って……なに?
0417デフォルトの名無しさん
NGNGところで、配列にデータが入ってる場合だけ処理したいんだけどデータが入ってるか調べるのってどうするの?
if(str[0] != null)
で合ってるのかな?
0418デフォルトの名無しさん
NGNG「配列にデータが入っている」という意味がいまいちよく分からんな。
String[] strについて、そもそもstrがnullなのか、
strの要素が1個以上はあるけどその要素がnullなのか。どっちかいな。
String[] str = null; // この時点では前者
str = new String[3]; // この時点では後者
0419417
NGNG配列にjar内のテキストを読みこませてるんだけど、中身の無いテキストと中身があるテキストで処理を振り分けたい。
かなり分かりにくいな・・・・
0420デフォルトの名無しさん
NGNGString[] str = new String[100]; とかしただけなら str[0]〜str[99] == null;
そこに byte[] b = 〜 ; str[ 0 ] = new String ( b ); とすると str[ 0 ] != null だわな。
こういう感じならif( str[0] != null ) 〜 とすればいいんじゃない?
str[0]=new String( new byte[0] ) の場合も !=null ( str[0].equals("")==true )になるよ。
自分の場合、配列初期化直後 for(i=0;i<str.length;i++)str[i]="";
でそれぞれの要素も初期化して if(str[i].equals("") ) 〜 とかやっちゃう。
結局、未初期化(=null)かそうでないか、空の文字列(="")かそうでないか、
どっちの判定をやりたいのかを明確にした方が吉。
別に if( str[0]!=null && str[0]!="")〜 でもできなくは無いと思うが。
0421417
NGNG空の文字列とか入れて初期化すると(="")ってことかな…
だとすると空の場合実行するってのは
if (str[i].equals("") ) {
処理
}
でいいの?
0422デフォルトの名無しさん
NGNG空文字("")とnullは別物だぞ。
String[] str; // この時点ではstrはnull
str = new String[10]; // この時点でstrは実体あり、str[0]-str[9]はnull
for(int i=9; i>=0; i--){
str[i]=""; // ここでstr[0]-str[9]はnullでなく""(0個の文字からなる文字列)を指す
}
""に特別な意味を持たせるのかnullに特別な意味を持たせるのかは、
アンタのアプリの中身次第。
0423417
NGNGちなみに421に書いたやり方で解決できました。
かなりさんきゅうべりーまっち
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNGそれらをバッチファイルなりMakefileなりbuild.xmlから呼び出して使うことは普通に出来る。
実際、公式のビルドツールにも、ビルド手順をバッチファイルへ書き出すコマンドあるし。
0426デフォルトの名無しさん
NGNGあるから、別にSunのじゃなきゃ駄目というわけでもないよ。
0427デフォルトの名無しさん
NGNG4M程度のテキストファイルを一行ずつ読み込ませるにはどのようにすればいいのでしょうか?
一旦ファイルを読み込んで配列データにしてからなら一行ずつ表示させることは出来るのですが、ファイルから直接一行ずつ読み込むのが出来ません。
そもそもそのようなことが可能なのでしょうか?
0428デフォルトの名無しさん
NGNG1バイトずつ読んで改行文字のところで自分で区切る。
0429427
NGNG具体的にどのような処理にすればいいのでしょうか?
初歩的なこと聞いてすいません。
0430デフォルトの名無しさん
NGNG\nならバイト値で10のハズ。
try{
InputStream is=getClass().getResourceAsStream("/data.txt");
ByteArrayOutputStream os=new ByteArrayOutputStream();
String[] str=new String[1000];
int line=0;
int data=data = is.read();
while (data != -1){
os.write(data);
if(data==10){
str[line++]=new String( os.toByteArray() );
os=new ByteArrayOutputStream();
}
data = is.read();
}
is.close();os.close();
}catch(Exception e){}
でいいと思うけど。String配列を可変長にするにはVectorでもつかえば・・。
厳密にはWindowsの改行は\r\nで13,10だけど\rが残ってもたぶん大丈夫。
というか4Mのテキストってドコに存在できるわけ?そういう意味では不可能だと思う。
0431デフォルトの名無しさん
NGNGと出るんですけど、何の設定が間違ってるんでしょうか?
0432デフォルトの名無しさん
NGNG書いて有る通り
「クラスパスまたはブートクラスパス」
の指定が間違っとるのと違う?
0433デフォルトの名無しさん
NGNG4MBのテキスト全部はヒープに収まらない。内部データ構造にもよるが500KBあたりが限度(V601T/V602SH)
どうしても読みたいなら、メモリに全展開しない方式を考えた方がいい。
もちろんSDカードか本体のデータフォルダから読み込む。
あと、Javaは内部処理がすべてUnicode(たぶんUTF-16)なので、
文字コードとバイト数の違いに注意。
ちなみに、ケータイのプラットフォームはMS932でなくSJISっぽい。
絵文字はどうなるのか知らん。
>>430
ByteArrayOutputStream使ってないので何ともいえんが、
一文字ずつ処理するとたぶん読み込みが激しく遅くなると思う。
自前バッファでの環境だと、8192byteごとに処理するとエミュ・実機とも一番読み込みが早かった。
実装により多少前後すると思うが、1K-10Kくらいをまとめて処理した方が早くなると思う。
あと、読み込み中(ストリーム開いてる途中)にOutOfMemoryErrorがでると、
StorageConnectionが使い物にならなくなってしまうという現象に悩んでる。
ExceptionでなくErrorなのでどうにかなるもんではないという結論でいいんだろうか。。
つーことで、>427 ガンガレ
0434427
NGNGソースまで書いていただいてありがとうです。
ちなみに4MのテキストファイルはSDカードに入れてます。
>>433
500KB程度で限界ですか…ピープ制限って結構厳しいですね。
全展開せずに開くとゆうことは、
例えば開こうとしてるファイルが100バイトだとすると、
50バイトから100バイトの範囲を読み込む、みたいな処理にすればいいのでしょうか?
えと、それで、悪いのですがもう一つ質問です。
外部(SDメモリとか)に保存したJARファイルからリソースが読み込めると聞いたのですが、可能でしょうか?
それなら、JARファイルはZIPと同じ圧縮だと聞いたのでZIPで圧縮して拡張子をJARに変えて使えばPCからファイルを送るときに楽な感じなのですが・・・。
0435433
NGNG> 50バイトから100バイトの範囲を読み込む
改行で折り返すんだから、たとえば1画面に収まるバイト数は一定でない。
だから、メモリに展開せず必要になったときに常時読み込むような処理を書くのはめんどい。
> 外部(SDメモリとか)に保存したJARファイルからリソースが読み込める
拡張子とかファイルの中身に制限はないので、(厳密にはjpz/pnzとかSD書き出し時.hufの保護されたファイルは読めない)
ZIPだろうがjarだろうがlzhで独自解凍処理組み込もうが何でもかまわん。
何がやりたくてどう楽なのかは知らんが。
理論的には、外部ファイルを解釈するインタープリタ作れるかもな。NESエミュもその一種に該当するか。
ところで、質問ばっかでアンタがどこまで理解してどこまでできてて何をやりたいのがよくわからんのだが。
最初の質問 >427 は >430 ですべて解決してるし。
StreamTokenizerみたいなのが欲しいだけ?もちろんそんなものはJ2ME/MIDPにはないけど。
0436430
NGNG>>433
なるほど。軽いファイルばかりでしかやってなかったので特に遅さは感じなかったけど
確かにある程度まとめたほうがよさそうですね。
僕は4Mでも全部開くつもりでソース書いてしもたけどやっぱ一部のみしか使えないよね。
じゃあ430のように1バイトずつ読んで\n探すより、例えば100KB分のバイト列読んで
その分を一度文字列化してindexOf("\n")、substringとか使って区切ったほうがいいかも。
その場合は行の途中から始まったり今何行目なのか分からなかったりだけど。
小説みたいに読めればいいならそれでもいいと思うが、きっちり行を意識するとすれば
例えば100B読んで途中で切れた行の先頭が95Bなら、つぎは95から100B読むとか。
0437デフォルトの名無しさん
NGNGえみゅれーたしか見つかりません。
0438デフォルトの名無しさん
NGNGコンパイラ自体はJ2SEのjavacでよろし。
ただし最新のを使っていけるかどうかわからんから
ボダの公式サイトをもう一辺よく読んでらっしゃい。
0439417
NGNG436みたいな感じで100KB文のバイト列読んで〜 って感じでいってみます。
ZIPから読もうとしてたのはリソースファイルが結構な数あるのでカードに転送する時、一つのファイルだけ転送すればいいので楽になるかなと思ったからです
ちょいと色々試してみますね。
0440デフォルトの名無しさん
NGNGダウンロードHTMLの記述の仕方がイマイチよくわかりません
いいサンプルとかありましたら教えてください
0441デフォルトの名無しさん
NGNGby Vアプリ普及委員会
0442デフォルトの名無しさん
NGNGiアプリのpos=みたいにopen位置を指定できないの?
0443デフォルトの名無しさん
NGNG他の音源での同時再生は不可能でしょうか?
0444デフォルトの名無しさん
NGNGArraysクラスが使えないようで、他の方法を探っています。
みなさんは手作業でソートを行なっているのでしょうか?
つかっているクラス、メソッドがあれば教えてください。
0445デフォルトの名無しさん
NGNGVアプリはコンテンツアグリゲータのサーバでしかDLできませんので、
とりあえずアプリゲットとかその辺に作者登録して指示通りにやるべし。
そのDLサーバがそうだというなら話は別だけど、どうせ自サバかレンタルでしょ?
>>442
storageというかInputStream作るんだから
InputStream.read(byte[] b, int off, int len)
使ったら?
>>443
Phraseはmmfとpcmを合成して音源鳴らすんで、コレも単音源と言える気がする。
合成が必要な分、負担を減らすための和音数削減だと思うし。
解決にはならないでしょうけど、SmafPlayerとHVは同時に鳴らせたよ。
>>444
getBytes()とかでバイト列作って先頭から比較していく。そうすっと文字コード順に並ぶ。
入れ替えは String tmp=str[i]; str[i]=str[j]; str[j]=tmp; って感じの手作業。
0446デフォルトの名無しさん
NGNGttp://www.adyada.com/
0447デフォルトの名無しさん
NGNGセーブする際にレコードIDを指定してい保存したいのですが
もし1〜5までのレコードIDを使ったとして、1に保存されてないのに2に保存することは不可能でしょうか?
0448デフォルトの名無しさん
NGNGsetRecordとaddRecordの違いをふまえよ。
0449デフォルトの名無しさん
NGNGレコードIDが指定出来るのはsetRecordだけだから既にあるIDしか指定出来ない
だから1に保存されてないのに2に保存は無理
IDが指定したいのなら、
起動時にレコードIDの5が存在するか調べて存在しない場合は空のデータをaddして5まで作成する
でもそうするとデータが存在することにはなってるから読み込んだときに何も保存されてない訳だからエラーになるだろうな
こんな感じに処理すれば指定は出来るけどどうやって処理するのかは知らん。
誰か追記してくれ
0450デフォルトの名無しさん
NGNGどんな仮定で何を聞きたいのか意味不明。
0451447
NGNGユーザーがセーブした順番通りにデータを並べたいのです
言葉だと自分でも何言ってるのか分からないので自分なりに説明してみます
[セーブ1空]
[セーブ2空]←ここにユーザーがセーブする
[セーブ3空]
[セーブ4空]
これで、読み込む際に
[セーブ1空]
[セーブ2入]
[セーブ3空]
[セーブ4空]
このように表示させる為に、RecordIDで順番を整列しようと思ってるのです
分かりにくくてすいません。
0452450
NGNGこんな処理手順でどうかな。
・アプリの初回起動時に保存データをnullとしたレコードを4つ生成する(IDの1〜4)。
・ユーザーの要求に従ってID1〜4の任意のレコードに保存する。
(レコードはすでに4つ存在しているのでどれでも指定できる)
・画面に表示する際は、レコードID1〜4を順番に読み出していき、
nullなら空、nullでないならデータありと判断して表示処理する。
0453447
NGNG初回起動時かの判断ってどうすればいいでしょうか?
私が思いつく限りでは毎回、
起動時にRecordStoreを開いてtry文でID4を読み込みエラーをキャッチしたら1〜4にnullを書き込む方法ですが
この方法で大丈夫でしょうか
0454デフォルトの名無しさん
NGNG判定をしたいのですがどうすればいいのですか?
0455デフォルトの名無しさん
NGNGKeyPress用フラグとKeyRelease用フラグを用意して、
それぞれのイベントで立てたり倒したりする。
で、判定時にはそのフラグを見て処理。
が定石だと思うのですが如何か。
0456447
NGNGString moziretu = null;
byte[] savdata = moziretu.getBytes();
と、してfor文かなにか使ってsavdataをaddRecordで4回書き込めばいいのかな・・・
0457447
NGNGString moziretu = null;
ではなく、
String[] moziretu = null;
と言う配列データです。
0458450
NGNGレコードストアの有無を気にせずとりあえず読み込みモードでオープンする。
RecordStore rs = RecordStore.openRecordStore(〜, false);
rsがnullなら初回、nullでないなら2回目以降、と判断できる。
初回起動だと判断したらレコードストアを新規作成する。
以下は考え方なので、実際にはtry-catchとかやってくれ。
//レコードストアを新規作成モードでオープン
RecordStore rs = RecordStore.openRecordStore(〜, true);
//内容がnullのレコードを4つ作成する
for (int i = 0; i < 4; i++)
rs.addRecord(null, 0, 0);
//クローズ
rs.closeRecordStore();
この時点で空のレコード(保存内容がnullのレコード)が4つできてる。
>>452や上記の考えではレコードの内容がnullかどうかで"空"か"入"かの区別と
しているが、nullの代わりに「"空"を示すデータ」をrs.addRecord()のところで
保存しても構わない。やりやすいように変えてくれ。
0459デフォルトの名無しさん
NGNGちょっと解決策というわけじゃないんだが、アイデアがあるなら一度やってみてはどう?
456や457を見る感じ、ある程度分かってるみたいだし、書けなくは無いと思うけど・・。
レスが来る前に結果出せると思うし、駄目だったらその時細かく聞けばいいと思うが・・。
個人的な考えかも知れんが「null」を使うのはあまりよくないと思う。
417〜423でも書いてたけど文字列なら「""」の方がいい気がする。
キッチリ if( str[ i ] == null ){ 無い時 } else { 有る時 } と毎回やればいいけど
ウッカリすると「ぬるぽ」が発生しかねない希ガス。
たとえば457を例にして
mojiretu[ 0 ] = null; → byte[] data = mojiretu[ 0 ].getBytes(); で「ぬるぽ」。
byte[] data = null; → addRecord( data , 0 ,data.length ); でも「ぬるぽ」。
となると
if( mojiretu[ i ] == null )rs.addRecord( null , 0 ,0 );
else { byte[] data=mojiretu[i].getBytes(); rs.addRecord(data.0,data.length);
みたいにする必要がある。
「""」なら読み書きは変える必要が無く、空入の区別が必要なときだけ
if( mojiretu[ i ].equals( "" ) ){ 無い時 }else{ 有る時 } でいい。
0460447
NGNGコンパイラとVアプリエミュで試してみるとちゃんと動きましたが、実際に保存出来ているのか謎なので
念の為意見お願いできますでしょうか?
catch{}はtry{}が実行出来なかった場合に実行するとゆう意味だと私は思っているので問題はないと思うのですが…。
try {
RecordStore rs = null;
RecordStore.openRecordStore("test",false);
if (rs == null) {
rs.closeRecordStore();
RecordStore.openRecordStore("test",true);
for (int r=0;r<6;r++) {
rs.addRecord(null,0,0);
}
rs.closeRecordStore();
} else {
rs.closeRecordStore();
}
} catch (Exception e) {}
testと言うレコードストアにIDを6まで作っています。
0461450
NGNG>>458の最後に書いたけど、>>459が示したようにnullを用いずに
空文("")をもって「データなし」とするやり方も、もちろん普通にありだ。
ただ、
>「null」を使うのはあまりよくないと思う。
からではない。これはアプリによる。
保存するデータがユーザー入力の文字列だったりする場合、もし空文("")
で初期化していると、そこが未使用のレコードなのか、ユーザーが何も
入力しなかった文章を保存したレコードなのか、区別が付かない。
そういうアプリではnullで初期化するとよい。
ここでもnullの代わりに適当な文字列をもって”空”の印にすることもできるが
ユーザーがその文字列を絶対に入力してこないという保障はないので、
その可能性を心配するくらいなら、やはりnullで初期化するのが妥当だろう。
>>447はどんなデータを保存するか質問内容からは分からなかったので
>>458の最後はあのような書き方をした。
また、「レコードのデータの初期値としてnullを使う」と自分で分かってて
決めていれば、自然とヌルポを意識したコードを書くから過度に警戒する
必要はない。というか慣れの問題。
0462450
NGNG>RecordStore.openRecordStore("test",false);
オープンした戻り値をrsで受けなきゃ。
>if (rs == null) {
>rs.closeRecordStore();
rsがnullなのにrs.〜();とメソッド書いたら、これがヌルポだ!
ここでchatch(〜){〜}へ直行するハメに。
0463447
NGNG初めに
int selectdata = 1;//これにユーザーが選んだ番号が入る
String[] data;//これに書き込む(読み込んだ)配列データが入る
を宣言してるものとします
// *初回に空レコードを作成する
try {
RecordStore rs = null;
rs = RecordStore.openRecordStore("test", false);
if (rs == null) {
rs.closeRecordStore();
rs = RecordStore.openRecordStore("test", true);
for (int r=0;r<6;r++) {
rs.addRecord(null, 0, 0);
}
rs.closeRecordStore();
} else {
rs.closeRecordStore();
}
} catch (RecordStoreException e) {}
// *セーブ
data[0] = "1個目のデータ";
data[1] = "2個目のデータ";
data[2] = "3個目のデータ";
try {
RecordStore rs = RecordStore.openRecordStore("test", false);//初回で既に作成されているのでfalse
byte[] b = data.getBytes();//dataをバイトに変換(合ってる?)
rs.setRecord(selectdata, b, 0, b.length);
rs.closeRecordStore();
} catch (RecordStoreException e) {}
0464447
NGNG// *ロード
try {
RecordStore rs = RecordStore.openRecordStore("test", false);
byte[] b = rs.getRecord(selectdata);
data = new String(b);//バイトを配列に変換(変換方法分からず)
rs.closeRecordStore();
} catch (RecordStoreException e) {}
こんな感じで書いてみたのですがコンパイラが
byte[] b = data.getBytes();の部分でシンボルを解決出来ません
data = new String(b);で互換性のない型。
と言ってきます。
解決出来ませんのエラーは何故か分かりませんgetByte();ってのがあったはずですし…。
互換性のない型はどうやって配列に直すのかが分からないからです。
多分このエラー以外は間違い無しだと思うのですが…
0465450
NGNG>byte[] b = data.getBytes();の部分でシンボルを解決出来ません
配列の要素を個別に扱わないと。
String[] data; としてるんだから byte[] b = data[0].getBytes(); などとなる。
ところで、ズラーッとソース貼るのもなんなので、テキスト形式のファイルで
どっかのアップローダに上げた方がいいかもしれんよ。
0466450
NGNGboolean existed = false;
//レコードストアの存在確認
try {
RecordStore rs = RecordStore.openRecordStore(rsName, false);
if (rs != null){
existed = true;
rs.closeRecordStore();
}
}
catch (Exception e){ existed = false; }
//レコードストアが存在しない場合→新規作成
if (!existed){
try {
RecordStore rs = RecordStore.openRecordStore(rsName, true);
for (int r = 0; r < 6; r++) rs.addRecord(null, 0, 0);
rs.closeRecordStore();
}
catch (Exception e){}
0467447
NGNG次から長いの貼るときはアップロード使いますね。
ふむふむ、配列の要素個別に扱わないといけないんですね。
とゆうことは配列に3つの要素があるのでIDは今の3倍必要になりそうですね…。
レコードストアの初期化はこっちのほうが短くて綺麗ですね
if(!existed)ってのは初めてみたのですが「trueでなければ」てことですかね?
ソース書き直してみます
0468デフォルトの名無しさん
NGNGP6エミュも出てる。
http://developers.vodafone.jp/dp/
2004/10/08 更新情報
Vアプリ開発ツール
・V-appli Emulator(P6型)Ver1.0
・V-appli Emulatorサンプルアプリ(P6型)
・ユーザーズガイド(P6型)
・Eclipse連携マニュアル
を追加しました。
2004/10/01 更新情報
Vアプリ技術資料
・概要編 Ver.1.0.5
・開発編 Ver.1.0.3
・メディア編 Ver.1.0.2
・シリアル制御編 Ver.1.0.2
・Tips編 Ver.1.0.12
・Vアプリ端末情報 Ver.1.0.11
を更新しました。
・新機能導入の手引き2004
〜P6型端末編〜 Ver.1.0.5
・APIリファレンスJavadoc版(P6型)
を追加しました。
0469デフォルトの名無しさん
NGNG0470447
NGNGソースはこんな感じです
// *ロード
try {
RecordStore rs = RecordStore.openRecordStore(rsName, false);
for (r = 0; r < 5; r++) {
byte[] b = rs.getRecord(r+1);
if (b == null) {
rsDate1[r] = "ぬるぽ";
} else {
rsDate1[r] = new String(b);
}
}
rs.closeRecordStore();
} catch (Exception e) {}
for文使って1〜5のIDに入っているデータを読み出して、ifでbがnullの場合は"ぬるぽ"を代入してるのですが
drawString(rsDate[0],〜)で表示させても何も表示されません。
0471450
NGNGif (b == null) を if (b.length == 0) として。
0475デフォルトの名無しさん
NGNGサンクス。
ITMediaあたりでニュースになってなかったから気づかんかった。
まぁ先がないJSCLですが。
0476デフォルトの名無しさん
NGNGその部分におかしな所はないと思う。表示できないなら表示部分を疑ってみて。
例えばrsData[0]がnullとか""の時がありうるのか、その時はdrawするのか、
単に背景色と同色で描画とか、画面外にdrawとか、後に上書きしてないか、とか。
コンストラクタの段階で適当な文字列 rsData[0] = "てきとー"; とかで表示を確認して
レコード読み取り後どう変わったのかを確認するといいと思う。
あと、エミュで実行するなら、tryでエラーが出てないかの確認のため
}catch(Exception e){ System.out.println( e.toString() ); }
とかした方がいい。特にレコード関連はコード以外にもエラー原因があるし。
0477447
NGNGe.toString()でエラー書き出したらrsDate1[0]に何も入ってないのが原因だった。
byte[] bなんで、if(b==null)じゃelseになってしまい、bに何も入ってないのにrsDate1[0]に代入して表示させてるからぬるぽ
ところで、open〜close内でgetRecord();を何度かに分けて使ってるんだけど、
2回目のgetRecord()でデータがちゃんと読み込めてないみたいなのですが
open〜closeを3回に分けて書くと正しく動きました。
もしかしてopen〜close内でgetRecord()は一回までって制限ある?
0478476(459)
NGNGだ〜か〜ら〜、e.toString()したらエラーの原因が分かるでしょや。
メッセージの意味が分からんならそれを調べるか聞くかしなっせ。
ソースが470+471のままなら(違うなら言ってね)、r=1の時何が起こってるか、
いっそ一行ごとにprintln使ってどの行まで行けてるか、ifでどちらに飛んでるか、
めんどうでも細かく調べてみることをオススメ。理解への近道。
やはりnullかどうかが面倒になってきそうだからもう一度459を奨めてみるテスト。
なんなら保存したいデータの変数が分かればsaveとroadメソッド書くよ。
あと細かいけど
・getRecord() なんてメソッドは無い。
・rsDate1て、日(date)は関係無いだろ。
・所々敬語を混ぜるくらいならいっそ全部普通語のほうがいいと思う。
0479447
NGNGe.toString()でエラー書き出したらnullPointerExceptionになってたってことを書いたのですが・・・。
原因は空(null)のrsDate1[0]をdrawStringさせようとしたからです
これはif(b.length==0){}で空の場合は適当に文字列代入させることで解決出来ました
getRecord()はレコードストアの指定IDからバイトデータで読み込むやつ
確か、byte[] getRecord(int recordID)
rsDate1[0]はString rsDate1[]って配列データの要素で
date=日じゃなくてデータ=dataを間違ってdateにしてた。
0480476
NGNGnullをdraw、int id、data、そんなことは分かってた。
今回の問題は
>getRecord()でデータがちゃんと読み込めてないみたいなの
でしょ?じゃあソコでe.toString()使おうとか思わなかったの?
使ってたけど何もメッセージが無いなら、一つだけ読んで終わるようにしてたんだろ。
ソース変わったなら言って、と書いたが何も無いってことはそのままか。
じゃあ470の最後のcatchでメッセージをださせてみて。
0481447
NGNGすまんちょっと勘違い
getRecord()でデータがちゃんと読めてないと思ってたのは、
>>466のをID10まで作成するようにして使ってたのを途中で20変えたが既にレコードは存在するのでIDが追加されずに読み込もうとしたのがエラーの原因だった。
コンパイラもエラー吐かないしエミュでe.toString()使ってもNullPointerExceptionって出るしでgetRecord()でちゃんと読めてない物だと思ってた
けどそれは妄想でIDが追加されてないのが原因だったと・・・。
0482デフォルトの名無しさん
NGNGP5型のエミュが「fail prepareApplication」と出て動作せずに困っています。
ただ、サンプルの実行は出来るので実行ファイルを作成する段階でなにかミスを
していると思うのですが、C4、P4と手順が違うところってあるのでしょうか?
0483482
NGNG0484デフォルトの名無しさん
NGNG調べてみるとintValueで変換出来ると書いてあったので試してみたのですがシンボルを解決出来ませんと出てしまいます。
byteデータをintに変換するにはどうしたらいいのでしょうか?
0485デフォルトの名無しさん
NGNGbyteデータではなく、byte[]でした
byte[] bytes;ってな感じに書いてますがint number = (int)bytesとしてもコンパイル出来ませんでした。
0486デフォルトの名無しさん
NGNG>コンパイル出来ませんでした。
あたりまえです。こちらへどうぞ。
【初心者】Java質問・相談スレッド54【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1096548618/
0487デフォルトの名無しさん
NGNG超初心者の俺でも分かるぜ (エッヘン w
0488デフォルトの名無しさん
NGNGVアプリ開発ガイド[Tips編]によれば、SH系でネイティブ連係機能を使う際はkeyReleasedイベントでやれとのことですが、
ソフトキーによるcommandAction処理の場合はどうすればいいんでしょうか。。
TextBoxで気にせず素直にcommandActionでネイティブ呼び出すような処理を書いたら、
次同じソフトキーを押したときのイベントが起こりませんでした。
おそらくCanvasでkeyReleasedでやれと書いてあるのと同じ理由によるんだと思います。
(Pressedイベントでネイティブに遷移するとReleasedイベントが処理されないから、次ボタンを押した際はPressedが起こらずReleasedのみ起こる)
仕方ないので、commandActionでは処理したいことをやるためのthreadを別に立ち上げ、
ユーザがボタンを放してReleasedイベント処理されたかなと思われるくらいの時間threadにwaitかけてそれから処理するように仕組んだんですが、
なんか回りくどいですし、ユーザがボタン押しっぱなしでwait時間切れしたらそもそもこんな処理入れる意味がないですし。。
0489デフォルトの名無しさん
NGNG>>311
0490デフォルトの名無しさん
NGNGフレーズ再生を共通のプログラムでC4型、P4型、P5型問わず
動作させたいのですが、C4型のcom.j_phone.amuse.PhrasePlayerに対し
com.jblend.media.smaf.phrase.PhrasePlayer
とパッケージ名が異なるためコンパイルさえ通りません。
jar中にcom.j_phone.amuse.PhrasePlayerクラスを掘り込んで
機種判別してクラスを使い分ける方法を考えたのですが、
どなたか実際に動かしたかたおられますか?
0491デフォルトの名無しさん
NGNG携帯電話の側面についているボタンやオーディオリモコンのボタンのキーイベントを取得する方法ってあるんでしょうか?
携帯を閉じたまま、イベントを発生させたいんですが、何かいい方法あれば教えてください!!
0492デフォルトの名無しさん
NGNGEZアプリ(Java)でカメラ制御を行おうとしているのですが、
エラーが出て困っています。誰かご存知の方がいましたら教えて下さい。
以下、サンプルコードです。
PhotoConnection conn = ( PhotoConnection ) Connector.open("photo:");
conn.setMode(PhotoMode.MOBILE_MODE);
PhotoContent photo = ( PhotoContent ) conn.capture(false);
byte[] data = photo.getData();
conn.close();
kjxへのコンパイルは正常にいくのですが、エミュレータで起動すると
「ALERT: Cannot load class com/kddi/id/CameraConnection」
と出てしまいます。コンパイルは出来るので、プログラムは間違っていない
と思うのですが、何が駄目なのでしょうか?
よろしくお願い致します。
0493デフォルトの名無しさん
NGNG自己レスです。
エミュレータが3.0に対応していないためみたいです。
実機では動きました。
0494デフォルトの名無しさん
NGNGGraphicsUtil.drawRegion()が遅すぎて使い物にならなくて困っています。
どうにもならないのでしょうか?
0495デフォルトの名無しさん
NGNGhttp://homepage1.nifty.com/marukun/java/vapp.html
> →GraphicsUtil.drawRegion()の処理がエミュレータでのみ著しく重いという事みたいです。
0496デフォルトの名無しさん
NGNGコレは以前のエミュのようにデバッグ情報を出すにはどうすればいいでしょうか。
0497デフォルトの名無しさん
NGNG前にVアプリでテキストボックスを利用しているアプリを見たような気がするのですが、
Vアプリにはテキストボックスは無いのでしょうか?
参考になるサイトなどご存知の方居ましたら教えてください
0498デフォルトの名無しさん
NGNG参考になるドキュメント→>>2
テキストボックスはプログラマ各々が自作するものなのか、用意されているものなのか。
といった携帯アプリを作るJavaの構成が理解できてないってこったな。
0499デフォルトの名無しさん
NGNGhttp://godwood.allnet.ne.jp/vioret/midpapi/javax/microedition/lcdui/TextBox.html
0500名無しさん
NGNG実装し直そうとおもいます。
resフォルダに入れたファイルを読みたいのですが
openDataInputStream(ss);あたりでエラーになるのですが
どうすればいいのでしょうか?
とりあえず画像ファイルはcreateImageで代替えできるのでいいのですが
バイナリだとやり方が思いつきません
エラー
java.lang.ClassNotFoundException: com/sun/midp/io/j2me/resource/Protocol
at javax.microedition.io.Connector.openPrim(+99)
at javax.microedition.io.Connector.open(+15)
at javax.microedition.io.Connector.open(+6
javax.microedition.io.ConnectionNotFoundException: The requested protocol does not exis
環境
j2me_wireless_toolkit-2_1_01-windows.exe
JSCLと関係ないとおもうのですがわかりません
解決策をおしえてください
よろしくおねがいします。
0501500
NGNGimport javax.microedition.io.*; import javax.microedition.midlet.*;
import javax.microedition.lcdui.*; import javax.microedition.io.*;
import javax.microedition.rms.*;
try{
//byte buf1[] = new byte [0x3000];
//String s = "resource:///";
//String ss;
//int buf_p=0;
//for( int i = ReadCount; i < 13; i++ ){
//try {
//ss = s+i+".png";
//DataInputStream _in = Connector.openDataInputStream(ss);
//buf_p = _in.read(buf1);
//_in.close();
//
//} catch (IOException x) {
//game_mode = -2;
//break;
//}
//image_back[i] = Image.createImage(buf1, 0, buf_p);
//ReadCount++;
//}
String str;
for( int i = ReadCount; i < 13; i++ ){
str = i + ".png";
image_back[i] = Image.createImage("/" + str);
}
}catch(Exception e){
}
0502494
NGNGありがとうございます。
実機では普通に動くのは知っていました。
エミュレータが遅すぎて困ってるんです。
正直デバックが苦痛です。
エミュレータで普通に動かすにはどのくらいのマシンスペックが必要なのでしょうか?
ちなみに私の環境は
P4の2.53GHz、メモリ512MB、OSは2000です。
0503名無しさん
NGNGどちらでも動作する50Kbyte未満のJAVAアプリ(jadはMIDlet-OCL: JSCL-1.0.1で定義)も
別々に登録される事になるんですか?
0504デフォの名無しさん
NGNGこれは
url = "jar://mc/test/test.jar/test.png";
connector.open(url, Connector.READ);
とすれば開けるのでしょうか?
開発ガイドには jar://ファイル名+リソース名 としか書いてなかったもので・・・
知ってる方居ましたら宜しくお願いします
0505504
NGNGurl = "jar://mc/test.jar/test/test.png";
でした。
SD内の、test.jarの中のtestフォルダ内のtest.pngを指定しています
0506488=495=499
NGNG全部で動かそうと思うとC4型用のAPIのみで作る必要がある。C4のAPI使えばP4/P5でも動くと思う。
機種のライブラリを判別して個別処理させるんなら、判別法がTips編の1.12に載ってるね。
>>491
閉じるとVアプリは一時停止する仕様だから閉じたままは無理。
継続型待ち受けアプリならいけるかもしれんが、P6型ではこのタイプのアプリは廃止されたそうな。
開いたままでもかまわんなら、キーコード表示するデバッグ用のアプリを端末に入れて、
押したキーとキーコード対応を自分で解析すれば何とかなるかもしれん。
もし解析した場合はキーコード情報の報告ヨロ
>>500-501
jarの中身のファイルをストリームで開くのはClass.getResourceAsStreamを使うのが一般的じゃね?
Connector.openとかのURL部分に何が指定できるのかオレは詳しくシラネ。
0507488=495=499
NGNG普通にっていわれても、アプリでどんなけの処理をしたいかによるから一概にはいえんと思うが。
1回の描画で40*40のImageを使って(使い回して)Canvas#paintのGraphicsに400回ほどdrawRegionを呼んで転送するアプリをオレは書いたけど、
エミュで特に動作速度に不満はなかったなぁ。Time取得して描画前・描画後の差分取ったら0.1秒以下だった、おおむね30-40msecほど。
Pen4 2.4CGHz/1GB/Win2kSP4
あと直接関係ないが、>P4 という表記は紛らわしいのでやめた方がいいと思われ。。
それと、エミュでなく実機でのみの話だと思うが、少数のImageだけ使った方が高速処理できるそうな(新機種手引P6型端末編2.3.3より)
>>503
オレはアプリLive使ってないので知らんが、ページ構成見る限りそう取れるよねぇ。
直接アプリLiveサポに聞いてみたらどう?
アプリゲットの方は、全部で動くアプリの登録は1回でOK
>>504-505
該当箇所(概要編4.6)読んだが、自分でWebからダウソ・RecordStoreに保存したjarファイルにアクセスする場合って前置きがあるが。
SDカードにアクセスするためにはStorageConnection使う方法しかないとオレは理解してるんだが。
で、誰か >488 もおながいします。。
0508488=495=499
NGNG> Pen4 2.4CGHz/1GB/Win2kSP4
+VアプリエミュP5型
あと、文章が横に長くなってしまってスマソ
0509デフォルトの名無しさん
NGNG>TextBoxで気にせず素直にcommandActionでネイティブ呼び出すような処理を書いたら、
> 次同じソフトキーを押したときのイベントが起こりませんでした。
ここが問題点の核心なんだが2行目がイミフメでコメントできない
ソフトキーでのTextBox呼び出し処理自体は書いたことあって普通に動作してる
0510488=495=499
NGNGCommand登録したTextBoxで、ソフトキー押されたときにネイティブ連係する機能
(具体的にはStorageConnection使ってファイルを保存する操作、
保存時に上書き確認メッセージがネイティブ側で表示される)
を用意した場合で、
TextBoxに遷移→ユーザがソフトキー押す→commandActionイベント通知→保存処理を実行
→保存確認メッセージ(ネイティブ)→ユーザがOK→TextBoxに戻る→ユーザがもう一度ソフトキー押す
→イベントが通知されない・commandAction呼ばれない
となります。さらに続けてもう一回ソフトキーを押すと反応します。
ネイティブ連携しない機能をcommandActionで呼ぶ場合は問題ないです。
TextBoxをCanvasに、ソフトキー(Command)イベントをkeyPressedイベントに
置き換えた場合の説明がTips編(SH53/V601SH箇所)に説明されてますが、
この場合はkeyPressedではなくkeyReleasedでやれと書いてあります。
でもcommandActionイベントはボタンを押したタイミングで起こり、
またボタンを放したタイミングはイベント取得できないので、
同様の回避法は使えません。
で考えたのが >488 後半のThread使った回避法で、
要はユーザがボタンを放すタイミングの時にネイティブ機能が動いているといけないということなので、
ユーザがボタンを押してから離すまでの時間くらいwaitでずらしてから機能を呼ぼうということをしてます。
でも何か根本的解決ではないので、別の回避法やってたり同様の現象で悩んだりしている人がいないかどうかが確認したいんです。
0512509
NGNG1つめ。
keyReleased()で処理すればうまく行くと思うのであればcommandAction()を
keyPressed()とkeyReleased()に分解すればいい。
やりたい処理(ファイルアクセス)をcommandAction()ではなくkeyReleased()に書き、
commandAction()からはkeyPressed()とkeyReleased()を呼び出す。
これで見かけ上はソフトキー押下が数字キー同様のkeyPressed()/keyReleased()
に反応しているかのようになるのでドキュメントの条件を満たしたことになる。
…なーんて、これじゃ回避策になってないね。スマソ
0513509
NGNGcommandAction()内で重い処理をしていることがズバリ原因なので、その点を変更する。
システムからのイベント通知を受け取るcommandAction()/keyPressed()/keyReleased()
といったメソッド内では、画面描画、通信、ストレージアクセスといった重い処理を
してはいけない。
これらのメソッド内ではフラグ操作や、パラメータをとあるメソッドに送り付けるだけの
処理にとどめる。そしてメインの処理ループでそのフラグなり何なりを監視しておき、
反応があればメイン処理の中で、指定の重い処理を行うようにする。
>ネイティブ連携しない機能をcommandActionで呼ぶ場合は問題ないです。
このことはcommandAction()内で重い処理を行わないからこそと言える。
0514490
NGNG確かにP4のstubclasses.zipにはcom.j_phone.amuseパッケージが
含まれておりました。
com.j_phone.amuseAPIを使用してみたいと思います。
回答いただきありがとうございました。
0515504
NGNGConnector.open("jar://mc/test/test.jar/test.png", Connector.READ);
とURLの部分のみ変更を加えてみたのですが
NullPointerExceptionが出て動かないみたい
URL変更前はfile:スキームで正しくファイルが読めていました。
ちなみに読み出そうとしてるtest.pngは空ソースだけのプロジェクトを作って、RESフォルダにtest.pngを入れた状態でjar化したものです。
どなたかSDのjarからリソースを読み込むのに成功した人居ませんでしょうか
0516488=495=499
NGNGちなみに、C4のAPIで使えなくなってるやつとして、
ResourceOperator ResourceOperatorManagerのクラスがV601SHから削られてるんでそこだけ注意。
他はたぶん大丈夫と思う。
>>514
StorageConnectionの説明部分ではfileスキームしか記述がないから、一般にはできないんじゃないかな。
公開ドキュメント見ていってるから、実は非公式にできるんですよとかいう話ならこれ以上は何もわからんけど。
なので、イースの場合は自前でjarを解凍してるんじゃないかと推測。
もしくは、jarという拡張子だけど、実は中身はpngなどのリソースを単純にバイナリレベルでつなげただけのものとか。
>>512-513
どもです。
やはりcommandActionの中ではフラグあげるなり別スレッド立てるだけにしてすぐに処理を返し、
やりたいことは、立ち上げたスレッドなりフラグを参照する別スレッドなりでやれという方針しかないですね。
0517デフォルトの名無しさん
NGNGhttp://www.itmedia.co.jp/mobile/0203/15/n_jjava2_2.html
ITmediaのこのページにある待ち受けアプリのサンプルを、
J2ME Wireless Toolkit 2.1 でパッケージを作り、
V-appli Emulator(P5型) Ver.1.0 で実行させると、
"ALERT: unable to load class com/jblend/net/j2me/http/HttpException"
というメッセージが出て実行されません。
何がいけないのでしょうか?
stubclasses.zip は V-appli Emulator と同じものを使ってBuildしています。
よろしくお願いします。
0518デフォルトの名無しさん
NGNGこれでしょ。拡張子に制限あるからね。
0519デフォルトの名無しさん
NGNGCanvas.GAME_A〜Canvas.GAME_Dのどれかだと思うんですけど
0520デフォルトの名無しさん
NGNGそのページのソース確認してないんだけど、インナークラスはちゃんとjarに入れたの?あとpreverifyも
0521519
NGNGCommandクラスを使って、個別に登録するんですねf^^;
0523504
NGNGイースで使われているjarを解凍しようとしてみるとエラーが出て無理でした。
どうやらバイナリレベルで繋げて、自前で解凍してるみたいですね
urlの部分をjar://file://mcとしてみましたがこれも駄目のようです。
開発ガイド9にdeflate圧縮データの復元とゆうものがあったのですが全体を展開するみたいなので使えない…。
そこで、バイナリレベルで繋げて自前で解凍する方法を使ってみようと思うのですが
どのように一つのバイナリにすればいいのやら…
解凍の部分はプログラムにxからyバイトまでが〜.pngとゆうファイルで…と記載されてるのでしょうか
0524デフォルトの名無しさん
NGNG順に読み込むだけなら、
ファイル数
ファイルサイズ1
ファイル1
ファイルサイズ2
ファイル2
ファイルサイズ3
ファイル3
・・・
でいいんじゃね?
0525デフォルトの名無しさん
NGNG「結合」とかで検索!
0526デフォルトの名無しさん
NGNG画像は適宜結合してなるたけファイル数を減らして、
jarのファイルエントリを縮めるのは定石だと思ってたんだが
世間一般ではそういうことしないのか?orz
0528デフォルトの名無しさん
NGNG各ファイルを読み込んで、それをObjectOutputではき出して、プログラム内で連結して、ファイルに出力して、jそれをar拡張子にしちゃえば?
そんな単純な話じゃないか・・・
0529デフォルトの名無しさん
NGNGhttp://hp.vector.co.jp/authors/VA012735/applet/dropcol.htm
とてもきれいなんだけど、これを携帯に移植できるかな?
画像のピクセルを編集できないといけないみたいだけど。
0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNG文字列比較でequalsIgnoreCaseを使いたいのですがコンパイルしたときにエラーが出て困っています。
ソースはこんな感じになってます
String[] str= new String[5];
str[0]= "abc";
if(str[0].equalsIgnoreCase("abC")){}
0532デフォルトの名無しさん
NGNG秒間1フレームとかになるかもしれん。
0533デフォルトの名無しさん
NGNGCLDC+MIDPにString#equalsIgnoreCaseはないけど。
toLowerCase/toUpperCaseはあるからそんなに苦労はしないと思うけど。
0534デフォルトの名無しさん
NGNG日曜プログラマなのでそんな面倒なことはしません。
ユーザのパケ代に響いてもシラネ。
>>523
tarなんかの非圧縮でファイルを固める仕様が参考になるんじゃないかな。
で、こんな話がありますが、関係するのはJBlendの中の人だけってことでいいんですよね?
ITmediaモバイル:J2MEに脆弱性。携帯電話のJavaアプリに影響
http://www.itmedia.co.jp/mobile/articles/0410/23/news013.html
0535デフォルトの名無しさん
NGNG自力でequalsIgnoreCaseクラス作ってしまいました…。
0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNGNokia DCT4はjblendなのか??
http://secunia.com/advisories/12945/
アプリ起動直前にバイトコード検証が行われるんだけど、そこに脆弱性があって
ネイティブのコードが実行される恐れがあるとか
0538デフォルトの名無しさん
NGNGそんなこと言ってるのは大方drawRect()と比べて幅と高さが1ドットずれるー
とか、リファレンス読み違えて勘違いしてる人なんじゃない?
0539デフォルトの名無しさん
NGNG0540デフォルトの名無しさん
NGNG可能かも?
だが、棒打のアプリは公開する時に解析されるから公開は無理
0541デフォルトの名無しさん
NGNGJBlendもSunのリファレンス元に作成されているから同じ脆弱性が発生している。
Nokiaで同じ問題が出ている理由は、元が同じだから。
0542デフォルトの名無しさん
NGNGすれば良いのですか?
調べても1つしか読み込む方法が見つからないので、分かる方
ご教授お願いします。
0543デフォルトの名無しさん
NGNG自前でなんとかするしかないんじゃないかな?
\n区切りでString配列を返す関数とか作って。
0544デフォルトの名無しさん
NGNGなるほど。つーかずいぶん詳しいな
> Nokiaで同じ問題が出ている理由は、元が同じだから。
って事は、JBlendでは既に知られている脆弱性だったって事か?
0545デフォルトの名無しさん
NGNGJSCLには無いようなので他の方法で同じ処理をしようと思うのですがどのような処理をすればいいのでしょうか…
0546デフォルトの名無しさん
NGNG機種によってはホワイトアウトにならないヤカン
0547デフォルトの名無しさん
NGNGcom.j_phone.util.ImageUtil#createMaskedImage使えば、
マスクパターンの細かさを段階的に変えていって疑似半透過できるかも。
まぁP6以降だが。
GraphicsUtil#setPixelでピクセル単位でいじればもっと柔軟に対応できるが、
たぶん >530
0548デフォルトの名無しさん
NGNG範囲を指定して色を足していくような処理も重いですか?
例えるとx1,y1からx50,y50までの範囲の色にピクセルごとにr,b,g+100足して表示するとか…。
そんな処理がしたいのですが…
0549デフォルトの名無しさん
NGNG505以降なら、MascotCapsuleを使えば全機種いける。
0550523
NGNGそもそもdeflate圧縮ってzipの圧縮方法であってますよね?
これ使って指定したファイルだけ取り出す方法あれば嬉しいのだけど。
0551デフォルトの名無しさん
NGNGVectorクラスに順次放り込んで最後にString配列へcopyInto()して終わり
0552デフォルトの名無しさん
NGNG範囲が凄く小さいなら大丈夫
>>549
プリミティブ描画で簡単に出来ますな
加算、減算、平均?の3通りしかないけど、ホワイトアウト程度の単純な処理なら問題なし
>>530
機種によっては、drawImageには対応してるけどfillRectには非対応だったり
使い物になりませんw
0553デフォルトの名無しさん
NGNGRandomクラスを使う羽目になって、ふと疑問に思ったんですが
java.util.*;
ってimportできるんですね。しかもj2seで使えるAPIとはかなり違うみたいですね。
例えば、Math.Random()メソッドは使えないだの、RamdomクラスのnextFloat()メソッドは使えないだの、他いろいろ。
ここら辺についてはどのAPIリファレンスを参照すればいいんですか?
JSCLとCLDCには載ってなかったです。
0554504
NGNG>>528さんが言っているObjectOutput使って複数のファイルを一まとめにしてしまおうと思ったのですが
これは
1.纏めるファイル名をlist()か何かで配列に収める
2.手動で適当にファイル(txtとか)を作成して拡張子をjarしておく(binarry.jar
3.一つ目のファイルをbyte配列に読み込む
4.ObjectOutputでbyte配列を3のファイルに書き出す
てな感じで初めに作った配列分、3〜4を繰り返せばいいと思うのですが
ソースはこんな感じでいいのかな。。。
ObjectOutputてのが意味不明なので指摘お願いします…。
String[] files=new String[ファイル数]//ファイル数
for(i=0; i<files.length; i++){
...
...//目的のファイルを読み込む部分
...
byte[] b;//書き込むデータのbyte配列
conn = (StorageConnection) Connector.open("file://mc/binarry.jar");
os = sc.openOutputStream();
ObjectOutput out = new ObjectOutputStream(new FileOutStream(os));//この辺りから意味不明
out.writeObject(data, b);
out.frush();
out.close();
os.close();
conn.close();
}
0555504
NGNG読み込む時は
conn = (StorageConnection) Connector.open("file://mc/binarry.jar");
os = sc.openInputStream();
ObjectInputStream in=new ObjectInputStream(new FileInputStream(si));
byte[] b=("filename")in.readObject();//目的のファイルをbinarry.jarから読み込む
in.close();
os.close();
conn.close();
あとはgazou = Image.createImage(b, 0, b.length);で適当に使う。
読み込む時に554で作成したファイル中の目的のファイルを指定出来ると思ってるんだけど妄想?それとも出来ます?
エミュレータでファイルを一まとめにしたの作って、実機でファイルを取り出して使うような使い方がしたいんだけども…不可能かな
0556デフォルトの名無しさん
NGNGJavaのサブセットはJ2ME。主にCLDC、MIDP1.0のリファレンスを参照のこと。
携帯アプリ向けJavaは浮動小数をサポートしてないとか
例えばStringクラスなどでも使えるメソッドが限られているとか
基本的なところが理解できるはず。
0557デフォルトの名無しさん
NGNGありがとうございます!CLDCに載ってました!
私が読んでいたのはMIDPの方でした・・・。
なるほど、浮動小数をサポートしていないということですか
0558デフォルトの名無しさん
NGNGcanvasにしているクラス外からrepaint()を使いたいのだがコンパイラがstaticじゃないと吐く
public static int paint(Graphics g)にしたら今度は
このstaticメソッドはCanvasからのインスタンス・メソッドを〜 とか出る
ようするにcanvasクラス外からrepaint()使うのは無理ってこと?
0559デフォルトの名無しさん
NGNGCanvasのサブクラスにrepaint()呼ぶだけのpublicメソッド定義すればいいじゃん。
0560デフォルトの名無しさん
NGNG俺の中では559、あんた天才
0561デフォルトの名無しさん
NGNGで、Canvasのサブクラスにrepaint()呼ぶだけのpublicメソッド定義は出来たんだけど
別のクラスから呼び出すとエラーでる
Canvasのソースは public String repaint2() { repaint(); return null; }
呼び出してるところのは myCanvas.repaint2();
エラーは 型canvasからのメソッドrepaint2()はstaticではありません。
repaint2をstaticにしてみるとCanvas側でエラー。
なんとかしてくれ…。
0562デフォルトの名無しさん
NGNGえーと。
その「別のクラス」に、Canvasのサブクラスを参照するフィールドを作って、
Canvasのサブクラスのインスタンス生成したときにそれをフィールドにセットして
後はそのフィールドのインスタンスのrepaint2()を呼べばいい(はずなんだ)が。
(このときrepaint2()はstaticにしちゃいかんですよ)
しかし、Javaの基本をもう一度おさらいした方がいいかも……
0563デフォルトの名無しさん
NGNG>>562 サンクス
0564デフォルトの名無しさん
NGNGいざ使おうとcanvas外のクラスから使ってみるとエラーになってしまいました。
色々と書き換えてみたりしたのですがどうやっても直りません
ソースは以下のようになってます
/* midlet */
public class msc extends MIDlet {
public msc() {
cvs canvas = new cvs(this);
Display.getDisplay(this).setCurrent(canvas);
(new Thread(canvas)).start();
}
...startApp()とかが続く
/* cvs */
public class cvs extends Canvas {
private MIDlet midlet;
cvs() {}
cvs(MIDlet midlet) { this.midlet=midlet; }
public void run() { shori.exet(); }
public void paint(Graphics g) { ... }
...略
/* shori */
public class shori {
private static cvs cv;
public shori() {}
public static String exet() { cv=new cvs(); ... }
...略
0565デフォルトの名無しさん
NGNGえーと……やっぱし、Javaの基本、クラスとは何でメソッドとはどういうもので、とかを
もう一辺やり直した方がいいと思う。
例えばメソッドがstaticってのはどういう意味なのか、何故staticなメソッドから
そうでないメソッドが呼べないのか、全然分かってないのでは。
とりあえず、
・cvs#run()でshori.exet()を呼んでるが、それなら単に
cvs#run()でrepaint()を呼べば済む話では?
・shori.exet()でcvsの新しいインスタンスを作っているが、
それがmscのコンストラクタで生成したcvsのインスタンスと
* 全く関係のない、縁もゆかりもない別物 *だということは分かってる?
0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNGそれで一回やってみそ
0568デフォルトの名無しさん
NGNGオレも、クラスとインスタンスとstaticについて理解し直すとこからやり直した方がいいと思う。
Javaの基本というか、オブジェクト指向の基本だし。
その調子だと、privateとpublicの違いについても怪しいな。
0569デフォルトの名無しさん
NGNGごめん
学校で習った程度だから漏れの知識ショボイ
クラスとは何でとかも習ったけど小学生相手にリンゴが一個あって〜とかと同じレベル
>>566-567
言ってる部分を消してみるとエラーでエミュが落ちることは無くなった
けどが描画されない・・・
0571デフォルトの名無しさん
NGNG実機では問題ありません。サーバー側のログを見ると
実機では
con = (HttpConnection)Connector.open("http://aaa.jp/"+net);
のうちのnetの部分だけをGETしているのに対し、エミュレータからだと
http://から取得しようとしている、という違いがあります。
エミュレータがわの設定の問題なのか、サーバーの設定なのか通信関係の知識がないためにわかりません。
一応403の意味はググってしらべました。
それからサーバーは自宅サーバー(win)です。
0572デフォルトの名無しさん
NGNGMIDletとCanvasとshoriの関係ってどうなってんの?って話。
端末はアプリ実行時にMIDlet生成しようとして、通常MIDlet内でCanvasを生成して
実際の処理はCanvas内で完結するように作ると思う。
第3のインスタンス(shori)をCanvasで生成して、そいつからCanvasに再描画させるなら
cvs(MIDlet midlet) { this.midlet=midlet; }
と同様に、shoriの中に
shori(Canvas canvas) { this.canvas=canvas; }
としたら、このコンストラクタ後
canvas.repaint();
で出来る。もちろんこれだけではないが、MIDlet(msc)とCanvas(cvs)の関係と同様に
Canvas(cvs)と処理役(shori)の関係を作ればいいってこと。
>>571
報告乙。え?質問なの?
0573デフォルトの名無しさん
NGNG403の意味より…
0574564
NGNGコンパイラでエラー出ないし実行も問題ないんだけど
/*cvs*/の所でshori2(shoriとはベツ)のメソッド使用すると
型shori2からのstaticメソッドmethod(String)にはstaticにアクセスして下さい
と警告が出る
shori2.method(String)からstaticを取ると警告は出なくなるけど、shoriがエラー。
実行出来てるし問題はないと思うんだけどかなり気になるのでたいさくあれば教えて下さい
0575デフォルトの名無しさん
NGNGもう分かったから晒せる範囲でソース*全部*晒せ。
いつの間にか最初は影も形もなかったshori2が出てきてるじゃないか。
この分だと「実は……」でshori3、shori4が出てきそうで付き合い切れん。
(まぁ、携帯相手に6個もクラス作ってる余裕は普通ないはずだが
それを言ったら、そもそもクラスは2つまで!!が定石なはずだし)
0576564
NGNGソースは
/*cvs*/に、
shori shori = new shori(this)
shori2 shori2 = new shori2(this)
が増えてて、cvs()[}が消えてる
/*shori*/は
static Canvas canvas;
が増えててコンストラクタがpublic shori(Canvs canvas){shori.canvas=canvas}
に変わってる
/*shori2*/は単純に受け取った文字列を無限ループで表示するメソッドがあるだけ
コンストラクタはshoriがshori2に変わってるだけで同じ
んで、メソッドが一つあるだけ
public static String testt(String str){
try{
...draw関係...
canvas.repaint()
while() ;
}catch(...){}
そんで、cvsからshori2のtestt()を呼ぶと警告がでる
呼んでる場所は/*cvs*/のshori.exet()の次の行
shori2testt(moziretu);
0577デフォルトの名無しさん
NGNG……対策はただ一つ。
藻前さんがもう一度Javaの入門書をきっちり読んで理解すること。
それが嫌なら、警告が出続ける事実を甘んじて受け入れろ。
ちなみに「なぜか知らないけど付けたor取ったら動くようになった」って理由で
メソッドにstatic付けたり取ったりしてるようでは「入門レベルなら理解してる」
とは言えない。
0578デフォルトの名無しさん
NGNG近道は無いよ
----------------------------
次の方ドーゾ
0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNGシリアル制御してんじゃないの?
その手の話はほとんど知らんのであくまで憶測だが。
0581デフォルトの名無しさん
NGNGttp://developers.vodafone.jp/dp/tool_dl/java/tech.php
それっぽいのあるけど、pdfの中までみるのはめんどい。
0582デフォルトの名無しさん
NGNGwhile(true)でループ中にユーザーがソフトキーを押すと
ユーザーからの操作を受け付ける画面を出し、初めの画面に戻ってしまわないように
while(true)で操作があるまでループし続けるようにしているのですが、
両方で交互にrepaintが実行されて画面がチカチカと元の画面になったりユーザーから操作を待つ画面になったりします
そして少し時間が経つと元の画面に戻ります
戻ってきたところまではいいのですがそのまま固まってしまいどの操作も受け付けなくなってしまいます。
使用エミュレータはP6です
Threadを使用したプログラムでソフトキーを押した場合の処理はcommandAction内に書いてます。
どなたか解決策ご存知の方居ましたらご回答宜しくお願いします
0583デフォルトの名無しさん
NGNG呼び出し元のwhile文の中にソフトキーが押された時にだけThread.yield()を実行するようにして
ソフトキーを押した時に実行されるwhile文をfor文に変えてg.drawString("i="+i,0,0,Graphics.LEFT|Graphics.TOP)
としてみたのですがiの数値は増えて表示されるもののどの操作も受け付けませんでした
0584デフォルトの名無しさん
NGNG「されて」じゃなくて、そうなるようにプログラムを組んでるんだよ
そうならないようにプログラムを書けば解決
あと、Thread.yield()の意味を勘違いしてるヤカン
0585デフォルトの名無しさん
NGNGソフトキーを押した時の画面が出ている状態では元の画面でrepaintされないようにしてソフトキーの画面のみrepaintするようにしてみました
がチカチカと元の画面に戻ったりソフトキーを押した時の画面になったりします。
Thread.yield()の使い方間違えていたみたいなので消しました。
すみません
0586デフォルトの名無しさん
NGNGCanvasはデフォでダブルバッファリングされてるから、
repaintが非同期に呼ばれるだけではちらつくことはあり得んと思うんだが。
情報が小出しなんであくまで想像だが、
SpriteCanvasによる画面への転送は、
たとえSpriteCanvasがDisplayableに設定されてないときにも行えるから、
SpriteCanvasの描画と「ユーザーからの操作を受け付ける画面」の描画が
交互に行われてちらついているんじゃないかな。
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNG587さんの言っているsetCurrentで
ソフトキーを押した時に画面を切り替えることは出来ましたが
呼び出し先で操作を受け付ける画面を描画しても、コンパイラでは問題無しなのですがエミュだとまったく描画されませんでした。
そこで呼び出し先のクラスのextends Formを消してみるとコンパイルエラーになってしまいます。。
0589572
NGNGせやから急に「extends Formを」とか出すな。消したら〜とかまるで分かってない証拠。
564にも言ったけどインスタンスの関係をハッキリさせて。
どうせソフトキー押した時とかの処理がキッチリできてないから
「元の画面でrepaintされないように」が裏目に出て再描画されてないんじゃない?
とりあえずボタン押しで確実に処理がされているかどうか分からないなら
一行ずつSystem.out.println挟んでどの行まで実行されてるか確認してみたら?
確実に再描画の行が実行されているはずなのに画面変わらないとかはその後。
素早く確実で楽に解決したいならソース丸ごとあげてくれ。
0590588
NGNG過去に画面切り替えの質問があったので、
工夫すればもしかしたら動くかもしれないと思いやってみたのがFormです
コンパイラのエラー出さなくなりましたが目的の動作はしませんでした。
int flag=0;としておいて、
ソフトキー押した時にflag=1;にして
初め表示している画面でif(flag=0) repaint();などしてみたのですが効果ありませんでした。
どのような動作にすればいいのかよく分からなくなってきたので
一旦コンパイラがエラー出さなくなった状態に戻してソースをzipであげておきました
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=130
素早くなくてもいいんですけど
確実に解決したいのでよろしければ適当に修正してもらえれば幸いです
0591デフォルトの名無しさん
NGNG564と同一人物かよ!って別にそれはいいんだけど、
これがどうなるといいんだっけ?普通に画面の切り替えは問題なさそうだけど。
むしろやろうとしてる事がわかるならエラー有るままのほうがやりやすかったかも。
0592デフォルトの名無しさん
NGNG近道は無いよ
----------------------------
次の方ドーゾ
0593デフォルトの名無しさん
NGNG>>590
あんま分からんケド一応見てみたが
試しに動かしたらcommand_actionのコンストラクタで呼び出してるmenu ()が実行されてない
cmdMenu押した時のdisplay.setCurrent(command_action);の行をcommand_action.menu();に変えると画面がチカチカした感じになる
590の言ってるのはこれじゃないかと思った
このチカチカするのをなくしたいと。
質問の意味勝手に妄想したケド合ってる?
まあ合ってた所でどうすればいいか俺にはわかんね
0594586
NGNGソース見させてもらったが・・・愕然とした。
こりゃ、アドバイスで何とかなる範囲じゃないと思う。
現在画面に設定されているのはどのDisplayableなのか、
今生きているThreadはどれなのか、
どのThreadがどの処理を行っているのか・行うべきなのか、
このへんを意識しないととんでもないものができあがるぞ。
つーことで、>592 に同意。
Javaの書き方というよりかは、JavaAppletなどのイベント指向を理解した方がいいと思う。
とりあえず動くだけでいいなら・・・とかアドバイスしようと思ったけど、
こんなもんをリリースされちゃかなわん。。
コンストラクタ処理をwhile(true)でブロックしたり(sleep()時に例外出てる模様)、
無駄にcvs(=Canvas)をThreadとして走らせたりしてるし、
Formを画面表示してるのに文字を(Currentな画面でない)cvsに書いてるし。
0595572=591
NGNG同一だと思ったのはCanvasにcvsなんて名前つけてた部分だけど、間違ってたらスマソ。
確かにそうすりゃチカチカするね。
つーか、
冷静にソース見たらmenuでwhileループがマズイ。
メインのスレッドがmenuをずっと続けるのでcommandActionとかをやるスレッドが無い。
new Thread した奴はせっせとrunメソッドでループを続けてるだけ。
つまり2本のスレッドがwhileループに入ったままになる訳だ。
最初に「時間が経つと元に」ってのは、あんまりループ続くからフリーズとかだと。
って書いてる途中に594に先越されてしまったけど、確かに勉強は要る。
勉強したくないならあんまりややこしいことに挑戦しないってのも手かも知れんけど。
0596593
NGNG事実漏れは2年間も学校でjava習ったがオブジェクト指向のおの字すら分からんねーし。
未だにコピペコピペで普段使うところ以外ワカンネ
どうせ理解したって質問するような事(ネットにサンプルが流れてない)するんだったら今後使う可能性低いから覚えるだけ無駄
理解しろ言う前に質問受ける側はなんでもいいから適当にソース修正してうpしてやるのが一番かと。
そんだけ言って何もしないのは格好悪いのでうpしておいた
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=131
んであげてから気づいたから訂正
dispchange.javaのコンストラクタにあるthread_B.start()を消して
最後のほうにあるthread_A.yield()をThread.yield()
んでその次の行にthread_B.start()を追加
これで一応動きはするが画面切り替え時に一瞬白くなる
つーかこれであってるかも分からん。
警告orエラー出てないから問題はないと思うが誰か見てくれ
あと画面が白くなるのなんとか出来る人修正きぼん
0597593
NGNGこれだとcvsから別クラスのメソッド呼んで実行してる時にmenu押しても両方でrepaint呼ばれちゃうよ
勝手に別クラスって妄想入れたけどあってたりするかな
回避方法ワカンネので誰か分かる人よろ
別クラスとか言ってるけど何も知らない人が勝手に妄想した単語並べてるだけなんで適当に解釈してやって下さい
0598572
NGNGttp://sterdust.net/upload/upload.cgi?page=Download&dir=&sort=date&filename=souce572.lzh
変更箇所には//572と記述
僕の経験上スレッドでループさせたりさせなかったりはフラグを使うのが普通。
canvasとcommandでisRunningフラグ作って、画面切り替えタイミングでフラグ変更。
あとstartAppでやる事消したのと、yieldさせてないのと。この辺は好みかも。
切り替わる時白くなるのは仕方ないと思う。EZエミュでは起こらなかったけど。
どちらの状態でもGraphicsに描画するなら描画は一つのCanvasに任せて
2つ以上のクラスでoffImgの内容を変えるだけにしてsetCurrentを避けると吉。
ttp://sterdust.net/upload/upload.cgi?page=Download&dir=&sort=date&filename=souce572_2.lzh
で、やってみたのが上。もう修正するなんてものじゃなくなってるけど。
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNGPhase3 or Notだけでいいので知るほうほうってないですか?
0601588
NGNGあげて頂いたソースを参考にこちらのアプリに組み込んでみたところ、思い通りの動作をさせることが出来ました。
画面が切り替わるときに白くなるのはこちらのエミュレータでは起こりませんでした。
返事が遅くなってしまいましたがありがとうございました
0602593
NGNGソフトキーが押されると、
今やってる処理を強制終了(?)させて処理させるところを移動させたいのだけど、
どうすればいいかな?
多重ネストからの脱出ってのは見つけたけど、
これだとbreak文とラベルの記載してる場所が違うと動かないぽい気がするので・・・。
実験もせず書いてるので「出来るに決まってるヴォケ」とか「こんな方法がある」とか、
あと「あんたの説明意味不明」とかでもいいので適当に突っ込んでください
0603593
NGNGソフトキー押した時にフラグ立てて、
強制終了(?)させたい所にifでフラグ立ってたらbreakするとかだと場所が多くて、
今どこの処理やってるのか分からないから記載個所が多すぎて対処しきれない。
main(){
while(true){
//ここ
for(...){}
...
この後もfor文やらwhile文がずらずら。
...
}
}
commandAction(...){
if(c==softkey){}//←ソフトキーが押された時に上の「ここ」ってとこに処理を移したい
}
かなり意味不明な書き方になってるけどこっちの文章力が無いから勘弁
とりあえず、「ここ」って所にソフトキーを押した時に移動したいわけ。
0604デフォルトの名無しさん
NGNGキミも>>578>>592かな…
0605デフォルトの名無しさん
NGNG0606デフォルトの名無しさん
NGNGまぁいわゆるgotoがあるプログラムは構造がダメだという例に当てはまるからイクナイと思う。
0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG厳密には、setMaxSizeで127*1024なら大丈夫、128*1024でアウトとなってます。
コンストラクタやsetMaxSizeでの指定→問題なし
128KB以下のStringをsetStringで入れる→問題なし
入れたTextBoxをDisplayに設定→問題なし
設定されたTextBoxで決定押して編集開始→開くとなぜかまっさら(文字数制限が0文字までになってる)
キャンセルするとsetStringで入れた文字に戻ってる、決定すると当然まっさら文字が入力される。
エミュで問題起きてなく実機(V601T)で問題起こってるんで、おそらく機種依存の現象だと思うんですが。
もし何か情報あればお願いします。。
(時間あれば私の側でも実験してみます)
0609デフォルトの名無しさん
NGNG画面サイズが最大で147*147までにしかならないのですが、
QVGAサイズを表示させることはできないのでしょうか?
0610デフォルトの名無しさん
NGNGPCの液晶でも24bitカラーなのに、携帯で32bitなんてあえりえねーだろ。
つーか普通16bitだし。
VRAMの制限でねーの?
0611デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNGPhase3.0対応エミュが必要。
Phase3.0対応アプリを開発する必要があるなら、
どっかからか入手できるはず。健闘を祈る。
0614デフォルトの名無しさん
NGNGConnectorのAPIの代わりに、ベクターで配っているJConnectorを
使用しないといけないんだけど、何度やってもclassファイルが壊れている
って、wiressToolでコンパイルする度言われる。。。。
だれか、経験者いない?
0615デフォルトの名無しさん
NGNGWEEK_OF_MONTHが解決できませんと出ます。
月の何週目かを取得することはできないのでしょうか?
0616デフォルトの名無しさん
NGNG複雑な式にもならんから自力で計算すれ。
0617デフォルトの名無しさん
NGNGVアプリ、ezアプリの場合ってどうなってるの??
0618デフォルトの名無しさん
NGNGez -- あらかじめjadに記載したサイトのみ
V ---オフィシャル登録必要、端末内リソース利用と併用しちゃいけない。
0619デフォルトの名無しさん
NGNGおお、サンクス
オフィシャル登録って有料なんだねorz
0620デフォルトの名無しさん
NGNG0621デフォルトの名無しさん
NGNGVodafoneの携帯用のアプリを作っているんですが、
「import javax.microedition.lcdui.Canvas;」または
「import javax.microedition.lcdui.*;」を記述しても、
その他いろいろimportしても、
「getGraphics()」メソッドが使えません。コンパイルエラーが出てしまいます。
「paint()」メソッドとかは現時点のプログラムで使えているんですが。。。
「javax.microedition.lcdui.Canvas」の中には、「getGraphics()」メソッドは
存在していないのでしょうか?
そもそもgetGraphics()を使おうと思ったのは、paint()メソッド内や、
paint()メソッド内から呼び出すメソッド以外でdrawString()などを使いたかったんですが、
それをする場合、getGraphics()を使う以外に方法はあるのでしょうか?
0622デフォルトの名無しさん
NGNG質問はそれからだ。
0623デフォルトの名無しさん
NGNGで、getGraphics()を使わない汚い方法を思いつきました
(インスタンス変数として作っていたGraphics型の変数(g2とする)に
paint()内で「g2 = g;」とやっておいて、プログラムの頭でrepaint()を呼ぶ)。
他の方法をご存知の方、ご教授くださいませ。
やっぱり、携帯に電話がかかってきたりして画面が壊れた時のために
画面描画はすべてpaint()内とその中から呼ばれるメソッドでやってたほうが
いいんでしょうなあ。スプライトも使ってるのでそれとの共存とか、
その時のゲーム内の状態(ウインドウを開いているとか)ごとの処理とか、
はあ〜〜めんどそう。
0624デフォルトの名無しさん
NGNG>>553
>>556
0625デフォルトの名無しさん
NGNG意味不明
> はあ〜〜めんどそう。
ストレスたまるだけだから止めたほうがいいよ
0627デフォルトの名無しさん
NGNGFloating point result not allowed
com.sun.kvem.ktools.ExcecutionException: Preverifier returned 1
と言ってきてコンパイル出来ない。
浮動小数点の結果がどうとか言ってるっぽい感じなんだけどエラーの意味わかる人居ます?
0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNGImage img_back;
Graphics gra_offs;
/** Canvasクラスを継承したクラスのコンストラクタ等で取得 */
Image img_back = Image.createImage(width, height);
Graphics gra_offs= img_back.getGraphics();
protected void paint(Graphics g) {
gra_offsに対して描画
gra_offsからgにオフスクリーン転送
}
>>627
MIDPでは浮動小数点は使用できない。各携帯メーカーの拡張APIを使うか
それが嫌なら整数を100倍や1000倍にしてアプリで工夫するべし。
0630629
NGNGimg_back = Image.createImage(width, height);
gra_offs= img_back.getGraphics();
こっちね。
0631627
NGNGvfはFixedPointで使えるようですけど、+はadd()に置き換えたりしないとだめ?
0632621
NGNGサンクスです!
俺の言葉が足りなかったみたいです。
俺の欲しかった Graphics型は、paint(Graphics g)の方で、
g.drawString() とか g.drawLine() とかするやつのほうです。
これら drawString() やdrawLine() を、repaint() を呼んでpaint()内(やそれ以下のメソッド)でやる以外に
paint()の外でできないかなあ、と思ったのでした。
「i アプリ」を以前に作ったとき、インスタンス変数(クラス内の各メソッドの外で宣言する、staticナシの変数)に
コンストラクタで「g = getGraphics()」とやって、それ以降は、
オーバーライドするpaint()内ではいっさいなにもせず(空ブロック { } のままにしておく)、
いろんなメソッド(スコア表示・キャラ表示・背景表示などのそれぞれの各メソッド)で描画が必要になったら
前述のインスタンス変数にて g.drawString() とか g.drawLine() とかやっていたんです。
昔のBASICプログラムがいつでも画面描画ができていたので、そのノリで。
「電話がかかってきた時などの割り込みで壊れた画面を元に戻す」ということを考えていない設計でした。
その、「i アプリ」作成時に俺が使っていたgetGraphics()は 「i モード java」のCanvas クラスにあるんですが、
他の java には無いのかもしれません(626さんが見せてくれた方も違うみたいです)。
「i モード java」以外のjavaでは、「drawString() や drawLine() をしたいときは paint()内とその中から呼ぶ
メソッドでしかやってはいけない」という設計なのかもしれません。それはそれでよい方針なので、
私もそのような設計がなされたものに今作っているやつを作り変えていこうかと思ってます。
私の621の書き込みに「i モード java で以前使っていた CanvasクラスのgetGraphics() 」という記述が
抜けていたため、622,624さんをはじめ、みなさんに手間を取らせてしまいました。
どうもありがとうございました。
0633627
NGNGFixedPoint型では<が未定義みたいなんですが、
ifで判断を行う場合はどのようにすればいいでしょうか
整数部のみを取得して比較するのが一般的でしょうか?
0634デフォルトの名無しさん
NGNG(゚Д゚)ハァ?
Javaには演算子のオーバーロードなんて機能はありませんが?
0635デフォルトの名無しさん
NGNG>>vfはFixedPointで使えるようですけど
自分で言ってるこの点でFixedPointがボーダフォンの拡張APIだと分かってよ。
もっかいJSCLとMIDPの違いを確認してね。
0636デフォルトの名無しさん
NGNGその方法でアプリ作りましたよ。
ドコモからau&vodaの移植で描画周りを作り直す時間がなかったのでそのまま移植するためにそうしました。
auとvoda版も同時移植なのでほぼ3キャリアのソースが同じですみました。
vadaは当然スプライトは使用していません。
描画がシビアでなけれなこの方法はソースの管理がしやすいのでいいと思います。
0637623
NGNGそうですか。俺は今Vodaにスプライト使ってアプリ作ってるんだけど、
スプライト使わない方法に変えたほうがいいのだろうか。
「まるくん」という人も「スプライトの方が遅い」とか自分のHPで言ってたしなあ。
以下は蛇足です。
スプライト使うと、例えば着信があったとき、「アプリ再開」にすると画面が真っ白に
なるんですよ。戻ってきたときに仮想画面(BGを貼り付けたり、g.drawStringで直接書かれる画面)
を白クリアしてるんだろう。
このへんは「着信などの割り込みがあったら、仮想画面全体を書きなおす」とかに
すればいいのだろうが。
で、スプライトを使わない方法で画面描画をやってたら、割り込み後に画面を戻すのも
システムがやってくれるのかなあ、なんて想像してます。
0638636
NGNG着信とかのイベントが発生した場合は、pauseApp()に処理が通るのでこの中で全画面の再描画要求を出します。
システムのダイアログが出た後はcanvasの画面を復帰してくれないので自分で復帰させてやらないといけません。
0639623
NGNGなるほど。システムは、「”自分が書く部分を退避させておいて、それを最後に戻す”とかせずに、
”書きっぱなしで終了する”」わけですね。問題のあるシステムだなあ。
サンクスです!さっそく試してみます。
0640デフォルトの名無しさん
NGNG試してみたいんだけど、このツールがいいよってのがあったら教えて欲しいです
0641デフォルトの名無しさん
NGNG今は以下の方法で速度を一定に見せかけていますが、
paint()にかかる時間が変動するとその分速度が狂うし、
sleepで必ず処理が待機する分、ゲームや描画の処理が損してるような
気がします。
while(true){
try {
Thread.sleep( 100 );
} catch( InterruptedException ie ) { }
repaint(); //ゲームの処理と描画
}
皆さんはどのように処理しているのでしょうか?
0642デフォルトの名無しさん
NGNGあくまでも参考程度に
単純に、
while(true){
Thread.sleep(100);
repaint();
}
じゃ駄目なのか?
それがだめならタイマー使えば正確に測れる
0644デフォルトの名無しさん
NGNGせいぜい識別子を1文字にするとかそんなレベルでしかできないと思うんだけど。
0645デフォルトの名無しさん
NGNG>難読化ツール
ProGuardってのがフリーで使える。
ttp://proguard.sourceforge.net/
>644
携帯の場合、読みにくくすることより、まさにその
>識別子を一文字にする
ことで、classファイルが縮むことに意義があったり。
0646デフォルトの名無しさん
NGNGそれだと処理にかかる時間が考慮されない予感。
long drawtime = 0;//前に描画した時間
long nowtime = 0; //毎回取得する時間
で
nowtime = System.currentTimeMillis();
if(100 <= nowtime - drawtime){
drawtime=nowtime;
ここに処理
}
とかで良いんじゃないかな。見にくくてスマソ。
0647デフォルトの名無しさん
NGNG0649デフォルトの名無しさん
NGNG0650デフォルトの名無しさん
NGNGP5型(JSCL-1.2.1)から追加されたGraphicsUtilクラスの
drawRegionメソッドをP4型(JSCL-1.1.1)で利用したいと思います。
P4型SDKのstubclasses.zipをP5型のものに上書きし、
コンパイルはできたのですが、P4型エミュレータでは
unable to load classes エラーになってしまいます。
上位のSDKで追加されたクラスを利用するにはどうすればよいのでしょうか。
0651デフォルトの名無しさん
NGNG上位のSDKで追加されたクラスは使用できるのでしょうか?
0652デフォルトの名無しさん
NGNGstubclassの名の通り、SDKのクラスには実際のコードが含まれていない。
実際のコードは実行環境側にあるので、不可能。
0653デフォルトの名無しさん
NGNGありがとうございます。とんちんかんな質問でした。申し訳ないです。。。
それでは、P4型で読み込んだ画像(png)を90度回転させたり、上下左右反転
させたりするにはどうすればよいのでしょうか?AppletだとPixelGrabberで
ピクセル取得して入れ替えて表示させたりしているのをみつけたのですが。
クラスを自作するとしたら、どのようにすればよいですか?
0654デフォルトの名無しさん
NGNGVアプリは作ったことないが、その為にボーダではスプライトがあるんじゃね?
スプライトが嫌なら前方向に回転させたpngを用意するとか。
0655デフォルトの名無しさん
NGNG0656デフォルトの名無しさん
NGNGだけど、Graphicsクラス上でピクセル単位でいじれるのはP5からなので、
P4でやろうと思うと、
>654 のスプライトか、PNG解析クラスを自作するかくらいしかないんじゃないかな。
0657デフォルトの名無しさん
NGNG0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNG0660656
NGNGんなことぐーたら考えてる間に、90/180/270回転した画像くらい用意できてしまうわな。
>653
どう対処するかは、どんなアプリをどういう形で配布するのが目的かによるんじゃないかな。
特に制約ないなら「P5以上です」と割り切れるし、
ゲーム配布ならスプライトにしてしまった方が楽だし、
とりあえず完成させるのが先ならPNGを4種類回転分だけ用意した方がいいし、
似たようなアプリを今後大量に作らなきゃいけないのならPNG解析クラスを作るのにも意義があるし。
0661デフォルトの名無しさん
NGNGエミュだと遅すぎて途中で止まったようになってしまう
これ実機だとちゃんと動いてくれたりする可能性ある?
0662デフォルトの名無しさん
NGNG0663デフォルトの名無しさん
NGNGPNG解析の方は、もう少し勉強してから挑戦してみます。
みなさま、ありがとうございました。
0664デフォルトの名無しさん
NGNGエミュの速さは
EZphase3対応エミュ>Vアプリエミュ>(壁)>配布中のEZエミュ
ですのでPhase3対応を探すかMIDP1.0のみで作ってVエミュで試すとイイデスヨ。
止まるのは大概メモリ不足関連。デカイのつめば少しはマシかも。
0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNGどこでみれるか教えてください。
0667デフォルトの名無しさん
NGNG例えば、画面の切り替えなどで徐々にブラックアウト。
現画像捨てて取得。
徐々にブラックイン(?)という処理で
ブラックアウトとブラックインしたいのですがどうすれば良いのでしょうか?
使えそうなメソッドとかUtilも無さそうです。
元々基幹系をやっていたもので畑違いのDisplayやらThreadに白黒させながらやってます。
どなたか教えていただけないでしょうか?
後>>179の日本語APIリファレンスが開けないのですがこちらの在り処もご存知でしたら教えていただけないでしょうか?
0668667
NGNG元々はImageUtil.adjustBrightnessを使用して以下のようにやろうとしてみたのですが
//タイトル画像を描画
Image logoImg = Image.createImage("/logo.png");
for(FADEIN_COUNT = -5; FADEIN_COUNT < 1; FADEIN_COUNT++){
GraphicsUtil.drawRegion(g,
ImageUtil.adjustBrightness(logoImg,FADEIN_COUNT),
0,
0,
logoImg.getWidth(),
logoImg.getHeight(),
GraphicsUtil.TRANS_NONE,
0,
0,
screenWidth,
screenHeight,
0,
GraphicsUtil.STRETCH_QUALITY_NORMAL);
sleep(70);
}
IllegalArgumentException、Imageオブジェクトが immutableで出来ないと言われました。
もし宜しければmutableなImageオブジェクトとはどんなものかも知りたいです。
0669デフォルトの名無しさん
NGNGEZphase3対応エミュで動かしたらサクサク動いてます
どうやら(壁)にぶつかってたようで・・・
ただphase2.5機種の性能が(壁)より上であって欲しい
>>665
DrawImageだけだとEZphase3対応エミュはそのVエミュより倍以上はやい
でもVエミュの方が実機に近いし設定いじれて便利
0670デフォルトの名無しさん
NGNGimmutable, mutableの違い
http://j2medevices.com/documentation/midp1.0/javax/microedition/lcdui/Image.html
adjustBrightnessが使えるの、今んとこV602SHだけっぽいよ。
詳細は新機能導入の手引き2004 P6型端末編あたり。
0671デフォルトの名無しさん
NGNGなにかお薦めの本ありますか?
0672667
NGNG有難うございます、ファイルやネットワークからの画像データからcreateImageした場合は
不変となってしまうんですね。
一旦オフスクリーンに書き出すなどしてみます。
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNGつなげたい機械があるんですが
0675デフォルトの名無しさん
NGNGまぁ673の言う通り、Javaの基礎をきっちりやっておいて
それからこれかな つ ttp://www.amazon.co.jp/exec/obidos/ASIN/4774114707/qid=1101486261/sr=1-1/ref=sr_1_2_1/249-8361732-8347509
0676デフォルトの名無しさん
NGNG早くvodafone 3G メガアプリの予習したい。
0677673
NGNGこれくらいしか本がないってのがつらいんだよなぁ。
1. Javaの文法とか学ぶ
2. JavaAppletなどでイベント指向を理解する
3. MIDPの動作モデルを理解する
てな流れがいいと思うんだが、ここでいう3にあたる親切でいいサイトなり本なりがほとんどないし。
知ってるとこではこれくらい。http://www.saturn.dti.ne.jp/~npaka/midpbook/index.html
>675 の本はオレも持ってるが、これは比較的親切に書かれてる本だと思う。
でもちょっと古い(特に「J‐PHONE KDDI完全対応」が)
>676
オレは聞いたことがない。
洋書ならAmazonで「MIDP 2.0」で5つ引っかかったが。和書はヒットなし。
Javadoc片手に独学でやった方が早い気がする。
0678デフォルトの名無しさん
NGNGありがと
0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNG0681デフォルトの名無しさん
NGNGvodafoneでブラウザアプリが禁止されてるというか、認められてない理由を概略でいいのでご存じの方教えてください。
なんの理由なんでしょうか?
グーグルで自分で調べてみたしたが「ブラウザ アプリ 禁止 vodafone」とかの条件でやってみても
ブラウザアプリが禁止だという記事が出てくるだけでその理由にふれたものが出てきません
0682デフォルトの名無しさん
NGNG定義は?
0683デフォルトの名無しさん
NGNGttp://www.itmedia.co.jp/mobile/articles/0410/07/news006_2.html
0684デフォルトの名無しさん
NGNGhttp://ac-admin.appget.com/open_kiyaku.htm
アプリゲット・配布が禁止されている特定の種別のアプリケーション(Vアプリ作品)
によると
「パソコンでいうインターネットエクスプローラのようなもの」
らしい。「ようなもの」ってなんやねん、というツッコミはアプリゲットの方へお願いね。
>>681
理由は表には出たことはないと思う。
auの「Opera搭載機でOpera経由のはパケット定額対象外」
てな形に持っていけるようにするための事前の釘さしだと思うけどね。
0685デフォルトの名無しさん
NGNGhttp://ja.wikipedia.org/wiki/%E3%83%90%E3%83%BC%E3%83%AB%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E3%82%82%E3%81%AE
0686681
NGNG>理由は表には出たことはないと思う。
>事前の釘さしだと思うけどね。
返レスありがとうございまた。どうりでグーグルで出てこないはずです。
正々堂々と言えないvodafoneにとってのせこい理由が想像出来ました。
jigブラウザと定額を組み合わせるとキャリアのゲートウェイは大量のデータが通過するのに、利益はjigが持っていくというシステムを
容認することになり、キャリアにとっておもしろくないことは確かですね。
コンテンツビジネスへ収益構造の比重を移したい時に、よそに利益を盗られる、アプリが迂回路になることをふせいでいるのでしょうか
auは認めているといっても、無くなっていく運命のJava機だけで、他の多数のBREW機種では利用不可能ですから・・
0687681
NGNG0688デフォルトの名無しさん
NGNGオフグラフィックスに画像や文字などを描画してからまとめて回転したいのですが
drawRegionだと画像のみの回転しか行えず困っています
何か方法はありますでしょうか
無茶な方法でもいいので、分かる方返答下さい
0689デフォルトの名無しさん
NGNGjigブラウザの作者がインタビューで
「vodafondはブラウザアプリが禁止されているから断念した」」
って答えてたからね。
0690デフォルトの名無しさん
NGNGオフグラとセットでオフイメージ作ってるんじゃないの?とか言ってみるテスト。
Image offImg = new Image( width,height );
Graphics offGra = offImg.getGraphics();
0692デフォルトの名無しさん
NGNGAccess denied というエラーが起こりCGIにアクセスができません、、、
どうすればいいんでつかね?
0693デフォルトの名無しさん
NGNGこう変えてみろ。
× どうすればいいんでつかね?
○ アドバイスを受けたいんですけど、まずどんな情報を示せばいいですか?
0694デフォルトの名無しさん
NGNG使用言語:V-appli Emulator for JSCL 1.2.1 Ver.1.0.0
エミュレータ:V-appli_Universal_JSCL1_2_1[V-appli Emulator(JSCL1.2.1)ver.1.0
開発ツール:Sun ONE Studio 4 update 1. Mobile Edition
0695デフォルトの名無しさん
NGNGそのCGIはPCでアクセスできることを確認した?
あと、Port80以外はアクセスできません(vodaの制限)
0696デフォルトの名無しさん
NGNG>>80
0697デフォルトの名無しさん
NGNGMANIFEST.MFないしjadファイルに
MIDlet-Network: Y
が記述されているか確認してみて。
0698692
NGNGOKでした。
>>696
>エミュレータはプロキシを使用しない場合は通信したいサーバのIPとポートを
>JTProp.datのProxyとProxyPortに設定しておかないと通信できなかったような
>気がしたけど、試してみましたか?
通信したいサーバのIPは設定に組み込みましたが、
JTProp.datのProxyとProxyPortというのがよくわからないのでお教えください、、。
>>697
足しましたが無理です、、、。
ワイヤレスキットのエミュレータなら動くんですが、
V-appli_Universal_JSCL1_2_1だとはじかれてしまいます、、。
0699デフォルトの名無しさん
NGNGApacheのerror_logもあぷしれ
0700692
NGNGだけですが、、
0701デフォルトの名無しさん
NGNGApacheからjava.lang〜なんて出るかYO!?
おまいはもっかい
MIDlet-Network: Y
を付けるとこからみなおしてみ。付けてからビルドするんやで。
そんでCGIとか言う前にtxtをGETするとこからやってみ。
0702デフォルトの名無しさん
NGNG念のため聞くけどボーダフォンのMACSサーバーにアプリアップした?
コンテンツアグリゲーターのサーバーだと端末の設定によってSecurityExceptionが出るぞ。
コンテンツアグリゲーターによってはネット接続アプリすらアップできないけど。
0703692
NGNGApacheは使ってませんです、、、。
普通のサーバです。
Sun oneで、Midlet属性を付加するやり方が不明です。
jadファイルに無理矢理書き込んで実行とはまた違うんでしょうか?
>>
MACSサーバとは何でしょうか?
ググってもそれらしいものが、HITしないのですが、、
0704デフォルトの名無しさん
NGNGワケワカラン
0706デフォルトの名無しさん
NGNG「Apacheじゃないです。KCNのホームページスペースなんです」Σ(゚Д゚)
「ホームページスペースなんです」「ホームページスペースなんです」「ホームページスペースなんです」
今後の展開から目が離せません
0707デフォルトの名無しさん
NGNGttp://developers.vodafone.jp/dp/tool_dl/java/tech.php
Vアプリ開発ガイド[Tips編]のP61
Vアプリ開発ガイド[概要編]のP96〜P103、P127
をよく読んだ方がいいと思う
0708デフォルトの名無しさん
NGNGユーザーホームページは、
Apache/1.3.31 Server at www1.kcn.ne.jp Port 80
って出るから、Apacheみたいだが
なんつーか、要するに>>707だな
0709692
NGNGそうですか、、、アパッチ、、、
ポートは80なので問題ナシですよね?
>>707
読みました、、、が、
jadファイルやマニフェストファイルへのmidlet属性の付加の仕方がわかりません。
マニフェストファイルへ書き加えても、ビルドしたあとのXMLファイルのようなもの(Sunoneで拡張子.adContent)を見る限り、
どうやらmidlet属性がうまく乗っていない状況だと思います。
P5エミュでテストを行ってまして、技術資料を見る限りではCGIまわりの設定は間違っていないと思われます。
よろしくお願いします。
0710デフォルトの名無しさん
NGNGってやるとSecurityExceptionがでる。
で、jadの設定でなにか設定すれば動くと思うんだけど。
なんて設定すればいいか教えてくれ〜
0711デフォルトの名無しさん
NGNGあきらめてjadファイルを手で直せ
0712デフォルトの名無しさん
NGNGこれじゃいかんのかい?
0713701
NGNG698-701の流れで703はオカシイだろ。知らんなら先言え。
あとApache、CGIの前にtxtで試せ言ったじゃん。どうせJADだと思ったけど。
J2MEのKToolBarならProject>Settings ...のUser Definedで
AddでkeyにNetworkで追加した後ValueにY書けばいいハズ。
オイラはKJX作成ツール使いで、SunOneとかエエもん使った事ねぇや。
>>710
EZかVか?つか、Vなら file://〜 だよな。
EZは勝手アプリでは例外無くアウト、って感じだと思う。
0714デフォルトの名無しさん
NGNGサーバがMIMEタイプでapplication/Javaを吐かないのが原因とかそんなとこじゃないかな。
とりあえず、localhostにサーバ立てて実験しる。
サーバのたて方すらわからんのなら、HTTPConnectionするアプリはあきらめた方が無難だと思う。
0715692
NGNG画面はちらつくわ、、すぐ応答なしになるわ、、、orz
昨夜本屋などをかけずりまわり〜自転車のカゴがへっこんだりもしましたが、、
やっとマニフェストの追加のやり方がわかりました!!
JARレシピうんたらでJARファイルを細かく設定できるみたいです。
しかし、、、
アーカイブ時にmidletやらが入ってるjarとのつながりがなくなってしまい、
NoClassDefounderrorです、、、orz
とりあえず動かすとこまでがんばってみます!!
0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNGEZアプリ Phase3のセキュリティA機能(データファイルの読み書き)は、
Phase3エミュで動作確認できますか?
0718デフォルトの名無しさん
NGNGIBMのにはついてきた。Sunのにもあったような気もするが忘れた。
0719デフォルトの名無しさん
NGNGEclipseプラグイン公開されたね。
うれしいよ。
0720デフォルトの名無しさん
NGNGってJAD側の属性なのにビルドで悩むもんなの?
もれも >>701 の言う通りtxtで試すべきだと思う
って遅いか・・・まあがんがれ
0721692
NGNGで、こんなエラーが出ます、、、
お助けを、、、
"起動中" 中に内部エラーが発生しました。
java.lang.NoClassDefFoundError: org/eclipse/ui/externaltools/internal/variable/ExpandVariableContext
com.zentek.eclipse.vappliemulatorplugin.LaunchConfigurationDelegate1.launch(LaunchConfigurationDelegate1.java:78)
org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:569)
org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:720)
org.eclipse.debug.internal.ui.DebugUIPlugin$6.run(DebugUIPlugin.java:892)
org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)
0722デフォルトの名無しさん
NGNG見事な亀感棒ですな
0723デフォルトの名無しさん
NGNGってことだから調べれば出てくんだと思うわけです
ヒロツです
0724692
NGNGありがとうです。
0725デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNGさてないよ
0727デフォルトの名無しさん
NGNGリモートデバッグでエミュに接続後、エミュが不定期に落ちる・・・
なんとかならんの?それとも俺だけ?
0728692
NGNGスタイルボールドにしても見た目が変わりませぬ、、、
0729デフォルトの名無しさん
NGNGEclipse3よりもWSDD(WCTME)5.7.1のほうがいいんじゃないかな。Eclipse2.1.3
ベースになるけど、P6プラグイン自体Eclipse2.1.3向けだしこっちのほうが
いい気がする。一見英語版ぽいけど中身は国際化されてる。
http://www-6.ibm.com/jp/domino02/NewAIS/aisextr.nsf/ByLetterNo/SWA04114?OpenDocument&ExpandSection=1&highlight=0,IBM,workplace
体験版
http://www14.software.ibm.com/webapp/download/product.jsp?s=p&id=DVDE-634P22
通販
https://www.airbitway.com/meng/cps.php?site=airppcpc&req=131_01_01&CID=3AP007002
0730デフォルトの名無しさん
NGNG実機で見てないけどエミュだと変わらないみたいだ
機種依存しそうな部分だから気をつけたほうが良いかと
0731デフォルトの名無しさん
NGNG基本的にCanvasで画面展開するアプリを作ろうとしているのですが、
メールアドレスの入力をしてもらう必要があります。
この部分だけ、Formを使わないといけないのでしょうか?
Canvasに入力欄を作ることはできないでしょうか?
今はMIDletを制御するだけのクラスと、Canvas拡張クラスで作っています。
画面展開などはCanvas拡張クラスのPaintにパラメータを渡すことで済ませています。
0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNGMIDP1だけだと、TextField/TextBox使うしかないね。
もしくは、Canvas上でFepまで作ってしまうか。
>732
3Gから。っっっと思う。
少なくとも一般にはまだ公表されてないハズ。
0735デフォルトの名無しさん
NGNG"ADFの内容に問題があります。"
とはねられてしまいます。
jadはKToolbarで作ったものです。
どこがいけないのでしょうか?
MIDlet-1: Resident, Resident.png, Resident
MIDlet-Jar-Size: 253426
MIDlet-Jar-URL: Resident.jar
MIDlet-Name: Resident
MIDlet-Resident: Y
MIDlet-Vendor: Me
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
0736デフォルトの名無しさん
NGNGVenderが短すぎる・・かな?3か4バイト以上じゃなかったっけ?
0737デフォルトの名無しさん
NGNG「JARのファイルサイズが、制限の204800バイトを超えています。」
でした。
stubclasses.zip の中身を削除することってできるんでしょうか?
0738デフォルトの名無しさん
NGNGstubclassesの中身削ってもアプリサイズは減らないよ。
・・まさかjarに同梱しちゃってるの?
0739デフォルトの名無しさん
NGNG世の中ひれーな、おらワクワクしてきただ。
0740デフォルトの名無しさん
NGNGVFXとか言う聞き慣れないプロファイルらしい。
P6とかと根本的に違う物なヨカーン。
0741デフォルトの名無しさん
NGNGKToolbar の作る
C:\WTK21\apps\Project\lib\
にstubclasses.zipを置いてビルドすると、
できたjarの中に入ってます...。
stubclasses.zipで検索しましたが、扱いについての説明は見つかりませんでした。
ばかな質問かもしれませんが、どうしたらよいのでしょうか?
よろしくお願いします。
0742739
NGNGoutputというフォルダ内にpreverifyしたファイルがあるとして、
MANIFEST.MFを同封する場合のコマンド
jar cfm appName.jar MANIFEST.MF -C output .
stubclasses.zipは、中に宣言だけの各クラスファイル(JSCLライブラリ)が入ってる。
ケータイやエミュは、そこで宣言されたクラスをVM内部に持っている。
だけどJ2ME標準のライブラリではないため、
コンパイルを通すためにstubclasses.zipをclasspathに追加するという使い方をする。
0743738
NGNG確かにKToolBarには追加する機能なかった気がする。
基本は742の方法(参考書とかも確かこう)なんだけど
オイラはkjx作成ツールを使ってる。詳細は綿100号さんのサイトで。
最近ではEclipse2.1.3とか使うのもオススメ。
0744デフォルトの名無しさん
NGNGKToolbar で作ったjarの中から、com、java、javaxフォルダを削除して、
新しいサイズをjadに書き込む...
というやり方ではまずいでしょうか? 一応エミュレーターでは動作しました。
0745デフォルトの名無しさん
NGNGbuild.xmlは一回書けば大抵のプロジェクトで使い回せるし
(jarの名前なんかは*.propertiesに書いて外に出しておけばOK)マジお勧め。
0746デフォルトの名無しさん
NGNG参考になるやり方がいろいろ出てる。
0747738
NGNGとりあえず動けばマズイ事はないと思うけど、やっぱ面倒でしょ?
エラー見つかってソース書き換えるごとにそれって・・。
いかに楽するか、がプログラミングなので、面倒なのはツール任せ。
・・とか言ってantの用途をEclipseプラグインのガイド見て知ったオイラはヘボグラマ。
0748739
NGNGオレはMakefile使ってやってるけど、
今時Makefileじゃねぇ。。。
一応このへん組み込んで、ソース改変→make→jadのサイズ更新までやってくれるようにしてる。
ProGuardも組み込もうと思ったけど、これは断念した。オレの限界だ。
javapp http://denchu.jp/java/
javaupd http://homepage1.nifty.com/marukun/java/vapp.html
0749デフォルトの名無しさん
NGNGmake使ってないけど、オレはbatでやっている。
で、商用だと同じアプリでも様々なバージョンを出力する必要があるので最近はスクリプトでmakeのようなことをやっている。
Javaなのにプリプロセッサは必須なんだけど、Eclipseとかで開発するとその辺ってどうなんだろう?
0750デフォルトの名無しさん
NGNGかけることも出来るし、いかようにも。
0751デフォルトの名無しさん
NGNGへー、そうなのか
漏れはmakeで全部やってるが、規模が大きくなってきたんでそろそろエクリプスに移行したい‥
0752デフォルトの名無しさん
NGNGgoogleで検索してみて。俺はeclipse + makeね。
make, antのスレもこの板にあるよ。
0753デフォルトの名無しさん
NGNG>>750 プリプロセッサ使ってみたいからポインタ教えて。enumが使えるなら明日にでも乗り換える。
0754デフォルトの名無しさん
NGNGちなみにまずclにかけてプリプロセスした後一旦jarにまとめ、(ProGuardに掛けるには一度jarに
まとめないとめんどいのだ)それをProGuardにかけて削り混んだ後
再度リソースと一緒にjarにまとめて謹製ツールでkjxに仕立てるところまでフルオート。
ふる、ふる、ふる、むーーーん……いや、何でもないんだうわなにわqwdfんhl
0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNG>3Gから。っっっと思う。少なくとも一般にはまだ公表されてないハズ
>>740
>VFXとか言う聞き慣れないプロファイルらしい。
>P6とかと根本的に違う物なヨカーン。
というとはiMonaのような一般投稿アプリでは、MIDP2.0対応にしばらく時間がかかりそうだということですか?
じつは携帯板の一部では簡単に対応出来るような電波飛ばしてる人がいるので
確かめたいのでお聞きしました。公式ではなく一般投稿アプリに関してです。
0757デフォルトの名無しさん
NGNG方針は次の二つのうちどちらか。
1. ビルド制御を全てantでやる。
2. ビルド制御を全てEclipseでやる。
1. はgoogleでeclipse antで検索すると出てきそうな気がするから
省略。Eclispeの自動ビルドと保存時のビルド実行をそれぞれ無効に
しておくことを忘れずに。
2. は、
http://help.eclipse.org/help30/topic/org.eclipse.platform.doc.user/gettingStarted/qs-96_non_ant_pjs.htm
http://help.eclipse.org/help30/topic/org.eclipse.platform.doc.user/gettingStarted/qs-93_project_builder.htm
あたりを参考に、JavaProjectのビルダー設定でコンパイルの
前処理・後処理を行う新規ビルダーをそれぞれ作成、
Javaビルダー(要するにコンパイラ)の前後に追加する。
デフォルトでは新規に追加したビルダーは自動ビルド時に
無効になっているから直しておくことを忘れずに。
1と2の折衷案として全部build.xmlに書いて、ビルダー設定に追加、
build.xml以外のビルダのチェックを外すというのもあり。
0758デフォルトの名無しさん
NGNGhttp://k-tai.impress.co.jp/cda/article/news_toppage/20667.html
によるとシャープとNECはJSCL、VFX両対応らしいので
P6とかも普通に動きそう。
0759デフォルトの名無しさん
NGNG0760デフォルトの名無しさん
NGNG今仕事が立て込んでるので手が空いたらチャレンジしてみたいと思います。
0761デフォルトの名無しさん
NGNGどうやってbyteにすればいいんですか
0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNGんー。それは難しいな。MIDP1.0の範疇では無理だね。
VodafoneのP5,P6アプリならGraphicUtil#getPixelを使って1ドットずつ読み込むしかない。
ただし激重いよ。
auはちょっと分からない。
0764デフォルトの名無しさん
NGNG適切なご解答ありがとうございます。
0765デフォルトの名無しさん
NGNGauにもPhase3でExtensionGraphics#getPixelがあるけどV同様激重。
しかも約2Byte/pixだからQVGAで150KB。デカ過ぎるし保存にも時間かかるよ。
情報は落ちるが一度jpgにエンコードして保存した方がいいかも(QVGAで約10KB)。
au,Vともカメラ操作できる端末ならミュータブルなImageをjpgバイト列にエンコ可能なはず。
0766デフォルトの名無しさん
NGNGオープンソースのJava開発環境「NetBeans IDE 4.0」正式版が公開
NetBeans 4.0では、モバイル機器用開発キットのJava 2 Platform Micro Edition(J2ME)と、
8月に公開の第1ベータ版では非対応だったJava 2 Enterprise Edition(J2EE)にも対応。
モバイル機器からWebアプリケーションまで、広範なプラットフォームが開発対象とされている。
前バージョンの3.6で全面的に書き換えられたIDEのウインドウシステムにも改良が加えられるなど、
更なる生産性の向上も図られている。
0767デフォルトの名無しさん
NGNG検索すると氏のページばかり表示されるのだが。
0768デフォルトの名無しさん
NGNGなどで透明度のある線を書くことができますか?
0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNG難しいですね。
速度重視でないなら、バックスクリーンをバイト配列なんかで保持し、
自分で演算して、アルファブレンディングするしかないです。
・・・考えるだけでも嫌ですね(^^;
0771デフォルトの名無しさん
NGNGmain クラス、canvas1 クラス、canvas2 クラスがあります。
main で
Display.getDisplay(this).setCurrent(canvas1);
として canvas1 を表示します。
つぎに、canvas1 で
Display.getDisplay(main).setCurrent(main.canvas2);
としてcanvas2が表示されることを目論んでいるのですが、
main シンボルを解決できないとなってしまいます。
どうすればよいのでしょうか? お教えください。
0772デフォルトの名無しさん
NGNGmainの参照をcanvas1に渡してるか?
0773デフォルトの名無しさん
NGNGやはり、
コンストラクタか何かで明示的に渡す必要があるのでしょうか。
main クラスをこのようにしたら、大丈夫かと思ったのですが。
public static main midlet;
public Main() {
midlet = this;
canvas2 = new Canvas2();
Display.getDisplay(this).setCurrent(canvas2);
...
}
0774デフォルトの名無しさん
NGNGgetDisplay()のパラメータはMain.midletじゃないのか?
0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNGpublic static main midlet;
public Main() {
midlet = this;
canvas2 = new Canvas2();
Display.getDisplay(this).setCurrent(canvas2);
...
}
コンストラクタがMainってことはクラス名がMainかな
と思いきや、midletの型がmainなのはなぜ?
0777デフォルトの名無しさん
NGNGありがとうございます。
クラス名はMainで、main はMidletクラスの変数のつもりです。
実は、
J2ME/MIDP でケータイ IM をつくろう
http://sdc.sun.co.jp/news/200303/ktaijava.html
の中にある、
http://sdc.sun.co.jp/news/200303/improve030303.zip
ソースを真似してみたつもりなのですが...。
0778デフォルトの名無しさん
NGNG速度気にしないならgetPixelでピクセルごとに色取り出して選択色と加算しながら
始点から終点まで点を打っていくっていうのもアリだと思う。
drawArcとかの代わりにはならんかもだが、3Dでプリミティブに透過でつけて
通常のCanvas上に平行投影したらいけそうな気もする。
>>777
クラス名がmainが変数名なら
public static MIDlet main; だよ。
[修飾子] [修飾子] クラス(型)名 変数名 の順だ。
この時点でクラスと変数ごっちゃになってるから他(canvas1とか)も同じ事して
「シンボルを解決できない」のは当然だと思う。
何が言いたいかって言うと、「画面遷移以前の問題」。
0779デフォルトの名無しさん
NGNGまず、Javaを勉強しろってこった。OJTだけだと余計なところで
躓いて、結局非効率だ
0780デフォルトの名無しさん
NGNG777の返答は誤りでした。 そうではなく、
public static Main midlet;
の書き間違いでした。 キャピタライズしてなくて誤解を与えたかもしれませんね。
意図はそのまま、midlet が変数です。
javacは通るので、そこまでの間違いは犯していないつもりです。
0781デフォルトの名無しさん
NGNG省略している箇所が多くあります。
/* メインクラス */
public class ImproveMIDlet extends MIDlet implements CommandListener{
public static BuddyListCanvas listCanvas;
public static ImproveMIDlet midlet;
protected void startApp() {
midlet = this;
listCanvas = new BuddyListCanvas();
......
それから、各所でこのように画面遷移が行われています。
ImproveMIDlet.setCurrent(ImproveMIDlet.listCanvas);
ここで、ImproveMIDletの参照が得られるのはなぜでしょうか?
どこで参照を渡しているかが見抜けません。
よろしくお願いします。
0782デフォルトの名無しさん
NGNGImproveMIDletの参照が得られるのではなく、listCanvasの参照が
得られるんだよ。それはpublic static宣言しているからだ。
同様に、midletの参照を得たけりゃ、ImproveMIDlet.midletでOK。
お前は最初で、mainしか渡してなかったじゃねーか。
それじゃどのmainか解らないから、シンボルが解決できない。
staticとして宣言してるメンバなら、クラス名.メンバ名でシンボル解決する。
それこそ、Javaの基本だろ。
0783778
NGNGシンボル解決しなくてもjavacって通るっけ?
正直に言うとこのスレだけで「canvasの切り替えが出来ない」とかいう奴が2,3人いたので
それ読んだ上でのその質問なのか、というか、
読んでないと思うし、同様に理解してない雰囲気が文面から感じる。
普段ちゃんとソース書いてりゃココでそんなミスしない。
「〜をマネした"つもり"」で「省略してます」とか言われても予想できない。
けど、そんな複雑なのを参考にする意味があるカイ?簡単なのでためそうよ。
一番は自習だが、どうしてもってんならソース全部さらせ。
0784デフォルトの名無しさん
NGNGMIDletクラスとDisplayクラスを混同しているようでは、
>それから、各所でこのように画面遷移が行われています。
> ImproveMIDlet.setCurrent(ImproveMIDlet.listCanvas);
↑こういうのも信用できんわけだが。
0785デフォルトの名無しさん
NGNGA5402S(au)でアプリを起動中に
KEYの処理を入れてないのにジョグダイヤルを回すと、
ジョグダイヤルの情報が残りその情報が終わるまで次の操作ができませんが、
いい解決策はないでしょうか?それともこれは内部的な仕様なのでしょうか?
0786デフォルトの名無しさん
NGNGttp://hobby7.2ch.net/test/read.cgi/appli/1090494378/657
0787デフォルトの名無しさん
NGNG質問1.現在実行中のJavaアプリケーション内から他のJavaアプリケーションを起動するにはどうしたらいいですか?
DojaのIApplicationクラスにあるlaunch()メソッドみたいな奴があれば嬉しいんですが・・・
質問2.実行中アプリからブラウザを起動する(あと、できればブラウザからアプリを起動するってのもほしい)
0788デフォルトの名無しさん
NGNG0789デフォルトの名無しさん
NGNG>質問1.現在実行中のJavaアプリケーション内から他のJavaアプリケーションを起動するにはどうしたらいいですか?
> DojaのIApplicationクラスにあるlaunch()メソッドみたいな奴があれば嬉しいんですが・・・
MIDP2.0(JSR118)ではそのような機能はサポートされていません。
>質問2.実行中アプリからブラウザを起動する
MIDlet#platformRequest()で可能です。
>(あと、できればブラウザからアプリを起動するってのもほしい)
これはMIDP2.0(JSR118)では、未サポートです。
0790デフォルトの名無しさん
NGNGうほっ
ありがとうございます!
0791デフォルトの名無しさん
NGNGEZアプリでキー操作音を消すにはどうしたら良いのでしょうか?
もちろん「マナーモードにしろ!」ってのは無しで。。
0792デフォルトの名無しさん
NGNG平常時からキー操作音OFFにしておく。
アプリでの設定は不可。(メーカーが特別に作ってたら知らんけど)
0794デフォルトの名無しさん
NGNG大昔の機種は出来ないんだよね
単にBGMが鳴ってるだけだったりしてw
0795デフォルトの名無しさん
NGNG複数行のテキストファイルを1行毎読み込んで表示させたいんですが、
Vアプリの場合、BufferedReaderクラスのreadLine()メソッドってな
いんでしょうか?
0796デフォルトの名無しさん
NGNGなっちは元気にやってるんだろか、最近見ないね
0797デフォルトの名無しさん
NGNGCLDC1.0+MIDP1.0+JSCL1.2.1にBufferedReaderは含まれません。
0798792
NGNGうん、まぁ確かにあるのかもしれない。
公式のテトリスでマナー中でも音が鳴ってどうやったら出来るか疑問だった。
多分 DeviceController あたりを使うのだろうと思うけど一般に公開されてない。
ファイルの読書みたいに公式アプリのみで可能な事だと僕は理解してる。
もし一般アプリで音無しが有ったならその作者に聞いてみて。
・・って書いてしまったけど、もしこのスレで詳しい方いましたら補足・訂正お願いします。
0799デフォルトの名無しさん
NGNGjava.util.Calendar#setTimeInMillis(long millis)
はCalendarインスタンスへの時刻設定で、
ひょっとして端末の時刻を変更することはできない?
HTTPアクセスして自動的に端末の時刻を合わせるなんてアプリを思いついたんだが、
できなさそう。
0800デフォルトの名無しさん
NGNGひょっとしなくても、そのとおりです。
Systemには現在時刻を取得するメソッドはありますが、設定するメソッドはありません。
0801デフォルトの名無しさん
NGNGjadファイルの日本語(UTF-8)が化けてしまうんですが、
文字化けしないようにできないでしょうか?
0802デフォルトの名無しさん
NGNGそれくらいのツール、javaでさくっと作ればいいのでは?
0803799
NGNGどもです。やはり無理ですか。
時刻合わせホントにめんどいんすよね、Javaから設定できれば楽なんですが。
いっそのことauに機種変・・・
>>801
jadupd
http://homepage1.nifty.com/marukun/java/vapp.html
0804デフォルトの名無しさん
NGNGVodaのサンプル集にAnt Taskが入ってる。
0805801
NGNG0806デフォルトの名無しさん
NGNG0x系の待受けアプリを作成しているのですが、
週刊ゲーム&アプリLiveの
ダウンロード通知で"JResidentMIDletが必要"エラーが出てしまいます。
5x系のときは、このAPIを使用して作成しましたが、
0x系では、com\j_phone\midlet\ResidentMIDlet.class が存在しないために、
JResidentMIDlet を使用することができないと思っています。
どうしたらよいでしょうか?
よろしくお願いします。
0807デフォルトの名無しさん
NGNGビジネスが具体的に一般向けのやつとどう違うのかは知らんが、一般人でも見られるとこからの情報だと、
JSCL1.0ではそもそもResidentMIDletがないので、
DeviceControl#setTelephonyListenerとか使って
TelephonyListenerをimplementsしたクラスを登録するしかないと思う。
0808デフォルトの名無しさん
NGNGそうですよね。
もちろん、そのように作成したら、
"JResidentMIDletを使用して作成する必要がある"
と言われるのですよ…。
おかしいですよね。
0809デフォルトの名無しさん
NGNGEmulator boot-up timeout.
とでて落ちるのはなぜでしょうか?
0810809
NGNGttp://homepage1.nifty.com/marukun/java/vapp.html
ここによるとファイアーフォールが問題だったようです。
0811デフォルトの名無しさん
05/01/17 00:28:11アプリ内で使いたいのです
0812デフォルトの名無しさん
05/01/17 08:15:57ttp://www.amazon.co.jp/exec/obidos/ASIN/4774117293/
0813デフォルトの名無しさん
05/01/18 07:28:31Vアプリにて、3D表示するアプリを作っていまして、
現在はエミュレータ上で動作を確認したアプリを、実機にてテストを行っておりますが、
class ファイルと同じ場所にあるリソース「a.mbac」を読み込もうとすると、複数のエラーが発生してしまいます。
1.
f = new Figure("/a.mbac")
を実行すると、例外「IOException」。
2.
f = new Figure("a.mbac")
を実行すると、例外「java.lang.RuntimeException: Constructor: Could not create」。
なお、3Dデータは、以前にiアプリで作ったモノを流用しています。
0814813
05/01/18 07:30:22img = Image.createImage("/0.png");
などで読み込めております。
0815デフォルトの名無しさん
05/01/18 18:13:03mbacってアクションじゃないのか?
0816一念発起
05/01/18 21:47:08右も左もわからず、どうやって開発環境を作ったものかもわかりません。
現在の私の環境は、
JDK1.5
Eclipse3.0.1
です。
V601T用のアプリを作りたいので、JSCL1.2.2をインストールしましたが、
この後、なにを導入すべきなのかを教えてください。
または、詳しい文献等がありましたらご紹介願います。
0817デフォルトの名無しさん
05/01/19 00:18:01http://developers.vodafone.jp/dp/
とりあえず、ここにあるPDF読む。
それだけで、ビルドの方法はわかる。
ちなみに、自分で解決する能力がないなら、
資料と同じバージョンの環境を使うこと。
0818デフォルトの名無しさん
05/01/19 00:28:14iアプリ用のmbacって,Vアプリで使えないんじゃなかったっけ?
Vアプリ用のmbac変換ツールを使って作りなおす必要があるとか
どっかに書いてあった希ガス
0819816
05/01/19 00:42:19それも、とりあえず片っ端から読もうと思って、最初に「概要」をダウン
ロードしてみたんです。
そしたら、冒頭に「CLDCとMIDPを熟知していることを前提とする」ような
ことが書かれていたので、読むのを断念しました。
それでもPDFにある通りにインストールを続けてたんですが、バージョン
の違いからか、どうも上手くいかなくなってしまい、困り果ててこちらに
お世話になったという次第です。
できることなら、いままでの環境を残したいと思い、私と同じ環境で開発を
進めている方の声でも聞ければと思ったのですが・・。
一度消さないとダメなんでしょうか?
0820デフォルトの名無しさん
05/01/19 04:01:38あなたの場合は消さないとダメ。理由は>>817が言うとおり。
ここから先は余計なお世話になるが…
816はJava言語やオブジェクト指向についてもよく知らない様子だから、
アプリ製作以前にまずそれらを参考書とかで学んだ方がいいかもしれない。
今は多分Vアプリ開発資料のどれを読んでもチンプンカンプンだと思うから。
このスレでもことあるごとに出てくる言葉、それは「急がば回れ」。頑張ってくれ。
0821816
05/01/19 09:58:44一応(ほんとに一応ですが)、実務経験もありです。
そこで「さぁはじめよう」と思い、 Vアプリ開発ガイドに目を通したら
「CLDCとMIDPを熟知していることを前提とする」とあったもので、少々面食らって
しまった訳です。
使い慣れたEclipseを使いたかったんですが、とりあえずは
・JDK1.3
・J2ME Wireless Toolkit
・JSCL1.2.2
だけでやってみようと思います。
疑問なのですが、皆さんは一番最初はどうやって始められたのでしょうか?
Java言語についての知識ははじめからあったのだろうとは思いますが・・。
あと、登竜門となるサイトや文献があったら教えてください。
0822デフォルトの名無しさん
05/01/19 10:53:44CLDC、MIDP:Sunが出してる資料を一通り読んだ
携帯アプリ:キャリアが出してる資料を一通り読んだ
あとは経験と勘と努力と根性
まともな実務経験があるなら、MIDPとVアプリの仕様を勉強すれば作れるでしょ
サイトはhttp://www.saturn.dti.ne.jp/~npaka/とか
0823デフォルトの名無しさん
05/01/19 12:43:49vodaのエミュレーターが出たときに速攻で落としていろいろ実験した
0824デフォルトの名無しさん
05/01/19 13:41:39とりあえず環境を整えて作ってみたいなら綿100号さんとこがお勧め。
ttp://homepage1.nifty.com/cotton100/ →Java(TM)アプリ はじめのいっぽ
議論とかはここかSINSEN http://www.sinsen.org/top.html のBBS。
JDKは1.5から大きく変化した(と思う)から、1.4か1.3の方がたぶん無難。
Eclipseは2.1.3でないとダメっぽい。(3.0.1で説明どおりやると実行時にエラー)
2.1.3と2.1.xの言語パックを使うといいよ。
オイラの経験は
Java: Web用のゲームアプレットの本一冊買って、5個分ぐらいのソース自分で打ち直し
MIDP: んぱか工房の人が出してる本買って(発行日くらいに)、5個分ぐらい(略。
で、その後ぐらいからサンプル改造しつつ理解していった。今も少し流用しながら。
まじめにオブジェクト指向についてとか勉強したのは後の話。
昔はそうでもなかったと思うけど、携帯アプリの制限がなくなって来たら
オブジェクト指向をキッチリ意識しながら書いた方が保守とか楽でいいと思う。
0825デフォルトの名無しさん
05/01/19 17:56:26SHやNは対応しているのかと思いこんでたけどだめだね
属性の設定キーでもあるのかな
今まで作ったVアプリも、JSCLで拡張された機能をはずして
動くようになったけど、これじゃ機種変更しなきゃよかった
個人にも、メガアプリの仕様やライブラリを
公開して欲しいな。無理かな?
0826816
05/01/19 20:24:15レスありがとうございます。
紹介していただいたサイトも非常に勉強になります。
なんとか「HelloWorld」と表示させることはできるようになりました。
要するに環境ができたというだけの話ですが・・。
で、今日はいろいろやっていて一つわかった事があります。
それは、JSCL1.2.2 は JDK1.5 では動作しないっぽいということです。
エミュレータを実行させてたら、1.4か1.3を使えというエラーがでました。
昨日インストールが上手くいかなかったのもそのせいでした。
やはり、初心者は初心者らしく素直に資料にあるとおりにやらなきゃダメですね。
0827820
05/01/19 21:55:42失礼しました。
>皆さんは一番最初はどうやって始められたのでしょうか?
Vアプリの前にiアプリ開発、その前にVC++での開発経験があった。
iアプリの時は簡単な本を1冊読んで携帯アプリの構造をつかんだら
VC++のアプリを移植していくようなイメージで試行錯誤。
キャリアが用意したドキュメント(いわゆる開発ガイド)はしっかり読んだ。
APIリファレンスは必要に応じて。
0828デフォルトの名無しさん
NGNG今はないここ。http://jp.appget.com/pc/dev_tips/ (WebArchiveにもなかった)
で、挙動のよくわからんとこを理解するためにMIDP/JSCLのドキュメントを読みあさることになった。
とりあえず、MIDPについて慣れるところから始めるのがいいと思う。
Hello, Worldアプリをケータイ上で動かす手順まで理解したとこで、
PDA向けのMIDP解説でもいいから利用するのがいいと思う。
↓のドキュメントを手玉にとれるようになるまでは、JSCL拡張APIにはあまり手を出さない方がいいかも。
http://web.sfc.keio.ac.jp/~t03790kn/javadoc/MID%20Profile%20docs/index.html
0829デフォルトの名無しさん
05/01/20 11:17:590830813
05/01/20 13:27:54遅レス申し訳ないです。
mdac 作成担当に変換データを作ってもらったら、素直に読み込んでくれました。
ご指摘ありがとうございました。
ただ、ひとつ疑問なのは、png データでは「/0.png」みたいに“/”をつけても問題ないのに
Figure などの3D系はつけると例外になるんだろう?
(そういう仕様だと言われれば、それまでなんですが…)。
0831デフォルトの名無しさん
05/01/20 16:22:47APIの仕様策定者か実装者に聞くしかないのでは。
3D系はSunとは関わりないしね。
0832816・821
05/01/20 17:24:15自分は面倒くさがり屋なんで、子どものころからプラモデルとかも説明書を読まな
いで作ってしまうタイプなんですが、それじゃあイカンと。
精進します。
今日は Eclipse + Ant を導入しました。
快適ですね。
Eclipse上でコーディングからビルド、実行までできてしまうとは・・。
824さんの言う通り、Eclipse3.0.1 では実行時にエラーが出ました。
仕方なく、2.1.3 にダウングレード。
ここで、また疑問なのですが、
ビルドまで Eclipse でできるということはもう J2ME Wireless Toolkit は必要
ないということでしょうか?
あと、昨日からずっと探しているのですが、MIDP の日本語版のドキュメントって
ないのでしょうか?
0833デフォルトの名無しさん
05/01/20 19:31:22さかきけい氏のページにあったんだけど、繋がらなくなってるな
http://godwood.allnet.ne.jp/vioret/
ちなみにこんな感じだった
http://web.archive.org/web/20040113080358/godwood.allnet.ne.jp/vioret/midpapi/
0834デフォルトの名無しさん
05/01/20 19:59:530835デフォルトの名無しさん
05/01/21 14:32:09preverifyが必要なので、Wireless Toolkitに含まれるツールはいるよ。
MIDPのドキュメントについては、「英語を読め」と。
日本語訳もあったけど、抄訳なので。
0836816・821・832
05/01/21 14:40:48それです。私の求めていたものは。
わざわざご自分のWebスペースにアップしてくれたのでしょうか?
ありがとうございます。
それをローカルに欲しいのですが、どうにかならないものでしょうか。
Web巡回ソフトなどで取得を試みたのですが、どういうわけか取れませんでした。
0837デフォルトの名無しさん
05/01/21 16:25:59あんた、ここ知らないの?
http://www.archive.org/
0838836
05/01/21 17:07:07Ant では検証は行われないということですか?
抄訳(かどうかはしりませんが)とはいえ、私が訳せば誤訳になりますゆえ。
>>837
知りませんでした。
たった今、ググって知りました。
0839デフォルトの名無しさん
05/01/21 20:37:15ホントに無くてもいいんじゃない?
でも他キャリアとかでは使うと思うし、別に持っておいて損は無いでしょ。
archive.orgは自分も知らなかったのでこの機に保存しときます。�dクス。
>>838
BASE HREFタグ先のさかきけい氏のサーバがダウンしているので、ローカルで開かない。
この部分とBODY下のarchive.orgのコメントとJavaScript削除すれば一応見れると思う。
何とかして必要なページ全部DLして、J2ME(WTK104)のdocs/api参考に階層作ればOK。
あ、あとHRFF先がさかきけい氏のアドレスになってる部分は相対アドレスに。
少々面倒くさいけど、自分で英訳しない分はるかに楽でしょ?
いくつかarchiveに無いファイルがあるけど、そこは我慢。
まぁ、エンジニアなら英語ぐらい読めたほうがいいんだと思いますが・・。
EZLIBで、サーバが止まった件で、不意にとまったんだけど氏が忙しくて直せてない
っていう状況だとかニュース欄で書いてたような気がします。
0840デフォルトの名無しさん
05/01/21 23:27:00iアプリで、PrimitiveArray と Figure を組み合わせた描画を行うアプリを作り、
とりあえずは思うとおりに動作しました。
今度はVアプリ用にソースを書き直したところ、Figure の座標がおかしいらしくてまともに描画されません(一応描画はされる)。
座標数値はすべてiアプリのものから変えていないのですが、問題ありでしょうか?
それと確認なのですが、iアプリで使用していた関数は、以下の要領で書き換えてやればVアプリでも
同じように動作するのでしょうか?
・PrimitiveArray → renderPrimitives で描画時に直接指定
・Graphics3D.setPerspective() → FigureLayout.setPerspective() // 視野角を指定して透視投影の設定
・AffineTrans.lookAt() → AffineTrans.setViewTrans() // 視点座標への変換
・Graphics3D.setViewTrans() →FigureLayout.setAffineTrans() // 視点座標へ変換した AffineTrans を設定する。
0841デフォルトの名無しさん
05/01/22 00:36:57Canvas#paint(Graphics g)内で
g.setColor(0x0000FF);
g.fillRect(0, 0, getWidth(), getHeight());
int c = GraphicsUtil.getPixel(g,1,1);
g.setColor(0xFFFFFF);
g.drawString(""+c, 10, 10, g.LEFT|g.TOP);
とやると"255"が表示されると思うんですが、実行してみると"248"と表示されてしまいます。
getPixelでは正確な値が取得できないのでしょうか?
0842841
05/01/22 00:58:21ttp://homepage1.nifty.com/cotton100/jphonejava.htm
にのってました。
0843デフォルトの名無しさん
05/01/22 01:12:39まじすか!
仕様が公開されるまで3Gに変えれんなぁ
0844デフォルトの名無しさん
05/01/22 10:13:10容量とか処理速度とか問題にならない?
Vアプリを外注したらif文だらけのコードがあがってきたんだが、
これって普通?
0845デフォルトの名無しさん
05/01/22 12:34:22何を外注したんだよw
328 名前:デフォルトの名無しさん[sage] 投稿日:05/01/22 12:14:46
>>326
classファイル1つにつき数百バイトのオーバーヘッドがでるから、サイズの点で不利。
if〜else if〜else ifってするよりもif〜if〜if〜って書いたほうがバイトコードは小さくなるから、
elseが付いていないなら良い仕事だと思っていいよ。付いていた場合は並。
0846デフォルトの名無しさん
05/01/22 14:16:47最近はpoorな環境での経験がある人が少ないのかな。
0847デフォルトの名無しさん
05/01/22 15:17:3550KBとかの頃ならともかく、今ぐらいの容量があるなら、もうelseまで削って
容量を稼ぐより、可読性を高めたほうがいいような気もする。
0848デフォルトの名無しさん
05/01/22 19:37:37http://pc5.2ch.net/test/read.cgi/tech/1102844217/326
326 :デフォルトの名無しさん :05/01/22 10:12:36
iアプリでポリモーフィズム使ってる人いる?
容量とか処理速度とか問題にならない?
iアプリを外注したらif文だらけのコードがあがってきたんだが、
これって普通?
0849デフォルトの名無しさん
05/01/22 19:45:550850デフォルトの名無しさん
05/01/22 20:39:25勝手アプリがダメな上に移植も面倒、アプリのラインナップも乏しいBREWはとっとと去ね
0851デフォルトの名無しさん
05/01/23 01:01:24int action = getGameAction(keyCode);
0852デフォルトの名無しさん
05/01/23 01:05:13Canvasクラスにおいてクリアキーが押下されたときの処理をしたいとき、
どうすればよいのでしょうか?
ひょっとしてクリアキー、スケジュール/メモキーなどの区別はできないんですか?
protected synchronized void keyPressed(int keyCode) {
int action = getGameAction(keyCode);
}
0853デフォルトの名無しさん
05/01/23 01:08:59auだと、クリアキー押したとき、keyPressedの引数には0が入ってくるので、それで判断。
いきなりgetGameAction()に渡すと例外キタ━━━━(゚∀゚)━━━━ッ!!になるのでちうい。
0854デフォルトの名無しさん
05/01/23 01:35:01>if〜else if〜else ifってするよりもif〜if〜if〜って書いたほうがバイトコードは小さくなるから、
そうなんだ。でもそれって実行速度は遅くなりそうだが・・・
0855852
05/01/23 01:41:22vodaのP5ですがクリア押したときのkeyPressedの引数は-2147483646となっているようですが、
この値で判断してしまってよいのでしょうか?
GameAction()に渡した後は0になりますがスケジュール・メモキーなどと区別がつかなくなってしまいます。
0856デフォルトの名無しさん
05/01/23 01:52:40仕様外なので、機種依存です。
0858デフォルトの名無しさん
05/01/23 11:31:01g.LEFT|g.BOTTOMだと表示されるのに・・・
0859デフォルトの名無しさん
05/01/23 15:17:480860デフォルトの名無しさん
05/01/23 15:41:02drawStringでVCENTERは機種依存だと思う。MIDPの本では使えないと書いてる。
EZの古いのでダメだった事有り。HCENTERは使えるはず。
ダメならフォント情報取得してズラシなされ。
0861840
05/01/24 06:23:12現在、iアプリで動作していた3Dワイヤーフレーム横回転するアプリを、Vアプリに移植してます。
で、回転の部分でうまく動いてくれません。
このアプリではフレームの他にフィギアもくっついて回転するので、AffineTrans#rotationY() などの関数を使用せず
Vector3D の X & Z 座標を三角関数で計算させた後に、AffineTrans#setViewTrans() を行ってます。
iアプリではフレームとフィギアは中心座標を基準として横回転しているのに、
Vアプリではカメラ座標を中心としてフレームとフィギアが横に移動(自分の周囲を回転)してしまいます。
どうも、iアプリとVアプリでは視点か参照点の扱いが違うような気がするのですが、そんな事ってありますかね?
それとも、何か別の問題点があるのでしょうか?
どなたか、ヒントでも教えて頂けないでしょうか?
0862デフォルトの名無しさん
05/01/24 10:46:44それ、フィギュアを回転させてるんじゃなくて、カメラを回転させてない?
0863デフォルトの名無しさん
05/01/24 15:19:47iとかVの経験無いんだけど、カメラ動かして物体の周りから見ようとしたら、
物体中心を原点に持ってきて、視点を原点中心に回転させ、視線を原点向きに
する必要があると思う。別に回転中心は原点じゃなくてもいいけど。
物体そのものを回転させるとしたら、視点視線固定して
物体中心を基準に座標を回転させればいいんだけど、
Figureだけならともかく、Primitiveと合わせた物体中心を求める必要がある。
で、オイラは物体中心に回転させる方法シラネ(自作ならできるかも)。
全部Figureで作って、アクションで回転させるとかするしかないんじゃない?
0864デフォルトの名無しさん
05/01/24 23:57:43いや、ローカルなマトリックスをかければいいだけだから
>>861
視点と方向が逆になってるだけじゃね?
0865デフォルトの名無しさん
05/01/25 12:03:500866デフォルトの名無しさん
05/01/25 12:54:05視点の方を動かす必要がある。
0867デフォルトの名無しさん
05/01/25 13:46:59メソッド無いけど
m03にx座標
m13にy座標
m23にz座標
で動かせる
0868デフォルトの名無しさん
05/01/25 15:01:52iアプリの AffineTrans#lookAt() と、
Vアプリの AffineTrans#setViewTrans() では、第2パラメータの扱いが違うかも。
iアプリでは注目点を指定するが、Vアプリでは視線ベクトルを指定するように
なってるんじゃないかな?
Vアプリは作ったことがないんで、BREW版のAPIからの推測だが・・・
0869861
05/01/25 20:29:45まじで!?
つうか、思い当たる部分が一杯ある…(汗)。
で、両方のJavaDoc 調べてみたけど…
Doja 3.0
position - 視点への位置ベクトルを指定します。
look - 参照点への位置ベクトルを指定します。
up - Upベクトルを指定します。
JSCL 1.2.2
position - 視点位置
look - 視線方向
up - 上方向
本当だ…、 視線“方向”じゃん(泣)。
という訳で、原因が分かりました。
862-868 の皆さん、ありがとうございました。
原因は分かっても、解決策はどうするかなぁ…。
とりあえずググッてみるか…。
0870デフォルトの名無しさん
05/01/26 01:14:11取得することはできますでしょうか?
phase3ではキーの押下状態はgetKeyState()で取得できますがこれをphase3未満で
実現するには、ソフトキーの離された瞬間が欲しいんです。
CommandListenerでは押された瞬間しかわからないんで悩んでいます。
0872デフォルトの名無しさん
05/01/26 04:53:35メソッド名が違う時点で変だけどw
0873デフォルトの名無しさん
05/01/26 11:01:44以前、日本語化したサイトが存在したのですが、みれなくなってしまいました。
0874デフォルトの名無しさん
05/01/26 11:27:23閉鎖しました。
がんばって英語を読んでください。
0875デフォルトの名無しさん
05/01/26 12:27:58>>833
0876861
05/01/26 13:30:39いや、全くその通りで。
レス書き込んで、いざ修正というところで気がつきました。
もう少し検証してから書き込むんだった…
(1週間ほど悩まされてきた現象だったので、解決の糸口を見つけた事で舞い上がってしまいました)。
// p - 視点位置
// l - 視線方向
// u - 上方向
setTrans(Vector3D p, Vector3D l, Vector3D u){
LWork.x = l.x - p.x;
LWork.y = l.y - p.y;
LWork.z = l.z - p.z;
trans.setViewTrans(p, LWork, u);
}
こんな感じで、関数作って対応させました。
本当に皆さんありがとうございました。
0877質問です!
05/01/26 20:28:52携帯用のJAVAアプリでボイスチャットを作成することって
原理上可能なことでしょうか?もし、そうなったら電話使わず
アプリを通してパケホとかで声のデータでやりとりできますよね?
せめて電話みたいなリアルタイムに近い快適さまでいかなくても、
5秒に1回ほど更新してサーバーに相手から来ている声のデータ拾いにいって
再生してってかんじで、トランシーバーみたいなかんじで
声のデーターのやりとりをサーバー経由で出来ないものでしょうか?
そういうアプリって作れます?
0878デフォルトの名無しさん
05/01/26 20:54:03少なくとも現時点では、、、
1.音声データを(アプリに)取り込む方法がない
0879質問です!
05/01/26 21:09:58さっそく、ご質問に答えていただき、ありがとうございます。
それではTV電話状態の音声抜きで画像のみとかは
可能ではないでしょうか?
0880デフォルトの名無しさん
05/01/27 01:29:42ケータイでできることが何でもAPIとして用意されてる
ワケじゃないからね。
具体的に,このAPIとこのAPIを組み合わせて
こういうことできませんか?って聞いた方がいいのでは。
ボーダだと,APIの組み合わせ次第では審査通らない
こともあるし。位置情報+通信とか。アドレス帳取得+通信とか。
0881デフォルトの名無しさん
05/01/27 05:02:43Vの場合だが、
・端末からサーバへの問い合わせ一方方向なので、定期的にチェックしにいくとしてもレスポンス的に不利。
・音声を出す仕組みは、現段階のAPIでは動的にSMAFデータを作る以外考えられない。
・音声を入力する仕組みは、音声認識させるしかない。音声認識パターン辞書をアプリないに持つ必要がある。
じゃ、がんがってね。
0882デフォルトの名無しさん
05/01/27 10:56:36TV電話にしろ、今のカメラの機能ってさ
カメラ呼び出し(アプリ中断)>端末のカメラ機能で撮影>(再開)写真取得
だからこれだけで10秒はかかるし、操作が面倒だと思うのでムリポ。
個人的な意見かもしれないけど、パケホだからって通信をしまくるのはどうかと思う。
もちろん自分で用意するサーバーの負担が大きくなるのもそうだが
現状では携帯端末とサーバーが直につながってるわけじゃなく、
キャリアのサーバにパケット送ってサーバ間でHTTP通信してるとかだと思うので
キャリアのサーバにも同じくらい負担が増える。ので、いずれ制限がかかる。
現状でもauのWINには1回/分の制限がある。さらに一日の総通信量にも。
もうちっと端末・通信環境が整うまで待つ必要があると思うよ。
で、その頃にはそれっぽいAPIも追加されてくるはず。
今はせいぜい文字チャットで1分強毎にチェックぐらいが精一杯っぽい。
0883デフォルトの名無しさん
05/01/29 00:29:14アプリの一時停止してから復帰すると、リソースから読み込んだ画像が「NullPointerException」になります。
まあ、ここら辺は仕様らしいんで仕方がないのですが、どのように復帰処理を実装するべきかと悩んでいます。
皆さんは復帰時に「NullPointerException」の対応ってどうされてますか?
0884デフォルトの名無しさん
05/01/29 00:49:15そんなのなったことない。
ちなみに公式で出してるけど苦情もない。
0885デフォルトの名無しさん
05/01/29 23:11:59サーバー側のプログラムはservletを使うしかないのでしょうか?
0886デフォルトの名無しさん
05/01/29 23:37:240887885
05/01/29 23:41:410888デフォルトの名無しさん
05/01/30 10:18:25待ち受けで同じ現象でたことある
俺の場合は一時停止するときに全部のリソースを開放して
復帰時に作り直すようにしていた
ちなみに待ち受けの場合でも
折り畳み一時停止→着信で自動復帰
などの特殊ケースのときしかこの現象は起きなかったので
通常のアプリで起きているならstartAppやコンストラクタの処理を見直した方が早いかも
0889デフォルトの名無しさん
05/01/30 16:40:54まじれす
ガッすばいい
0890デフォルトの名無しさん
05/01/30 22:29:410891デフォルトの名無しさん
05/01/31 00:07:44そこでつまづいているのはスレッドです。
表面上のことは分かっているのですが、本質的なことが何度本を読んでも分かりません。
たとえば、canvasを継承し、
Runnableをインプリメントしたクラスの
run()にrepaint()を書き込んだ場合、
二つのスレッドが同じ画像の描画を交互に描画しているのでしょうか?
自分は例えば、スレッドAで画像処理をさせ、スレッドBで通信の処理をさせたいのですが、
そういうことは可能なのでしょうか。
上記のようなことが理解しやすいお勧めの参考書があれば教えてください。
0892デフォルトの名無しさん
05/01/31 01:04:52とりあえずCLDCのAPIを読んでみて欲しいのだが
RuntimeのfreeMemoryとかtotalMemoryとかを使えばエエ。
>>891
他にrepaintを連続的に呼んでるなら知らんけど、無ければrunのだけ。1つ。
あと、repaintは再描画を要求するもので、実際描画するのはメインスレッド。
携帯アプリでは通信中停止するっぽいからそれは無理(多分)。
通信こまめに分割して描画・通信を繰り返すしかないと思う。
とりあえず参考書の前にGoogleとかで記事探ってみるといい予感。
0893デフォルトの名無しさん
05/01/31 03:35:08通信スレッドからrepaint()が呼ばれるのか?
通信中はそこでそのスレッドの処理が止まるんだから呼びようが無いと思うんだが
>スレッドAで画像処理をさせ、スレッドBで通信の処理をさせたい
可能だし、実際やってるアプリもある
0896883
05/01/31 18:58:02レスありがとう〜。
startApp でやっていた処理をコンストラクタに移して、
pauseApp が呼ばれたらフラグを立てて、
startApp で pauseApp がつけたフラグを調べてから、canvas 系クラスの復帰処理を実行するようにしました。
そしたら何故か直った…。
canvas 系クラスの復帰処理って、ただ return するだけの空メソッドなんだけどなぁ…。
もしかして、MIDlet 系クラスから参照をしてなかったから、最適化対象になっていたのか?
だれか、ここら辺に詳しい方います?
0897デフォルトの名無しさん
05/01/31 21:32:16JSCLまたVerUpしそうだね。
0898デフォルトの名無しさん
05/01/31 21:34:32その辺が絡んでるだけだと思いますよ
初期のみにしなければいけないことがコンストラクタに移動したことで
解決したのではないかと思います
0899883=896
05/02/01 10:56:45その通りでした。
一回の修正で何でもかんでもやろうとして、どこが解決に至った修正なのかが分からなくなってました
(static 宣言してあるクラス変数を、復帰時に null チェックしていたから回避出来るかと思っていました)。
コンストラクタはきちんと使わないとダメですね。
ご指摘ありがとうございました。
0900デフォルトの名無しさん
05/02/01 23:29:160901デフォルトの名無しさん
05/02/01 23:45:58エミュレータは無いし、実機はDoCoMoと違ってトレースできないしで原因がわからないのですが、
エラーは(下ソースの)1行目から出ている事だけはわかっています。
また、MIDlet-X-Storage-Sizeもkjx内に直接記述しました。
他に拡張ストレージに書き込む前にする事とかあるのでしょうか・・・?
public void writeStorage(byte[] buf) throws Exception {
StreamConnection con = (StreamConnection)Connector.open("storage:",Connector.WRITE);
OutputStream out = con.openOutputStream();
out.write(buf);
out.close();
con.close();
}
0902デフォルトの名無しさん
05/02/02 11:20:04out = Connector.openOutputStream( "storage:" );
でいけないか?
0903デフォルトの名無しさん
05/02/02 17:09:39原因が分からんことないでしょ。例外投げっぱなしにしてるからじゃない?
try〜catch時のExceptionをtoStringしてCanvasにdrawStringとかすればいいですよ。
ソース特におかしな所無いけど、「直接記述」の部分が気になる(どういう意味?)のと
単純に端末が対応してないとかってない?Phase3機でやってる?
あと エミュは探せばあるんじゃない?非公式に という発言はダメ?
0904デフォルトの名無しさん
05/02/02 19:43:19try{〜}catch(Exception e){System.out.println(e)}
しとかないと終了しちゃうんだよね
0905901
05/02/02 23:04:35試してみましたがだめでした・・・
>>903
W11Hを使用しているので機種は問題ないと思います。
「直接記述」は公式サイトからKJX作成ツールのPhase3対応版を使用して作成。
できたkjxファイルをエディタで開いて「MIDlet-X-Storage-Size: 204800」と追記しました。
また、try〜catchを使って例外を拾ったところ「java.io.IOException: cannot use」
と返ってきたのでやっぱり記述の仕方が悪かったんでしょうか?
ビルドするたびに毎回記述しなきゃいけないし・・・。
0906デフォルトの名無しさん
05/02/02 23:46:06MIDlet-X-Storage-Size: 204800 は*.jadに書くんだよ
あと200kもつかっていいんだっけ?
0907デフォルトの名無しさん
05/02/03 08:40:38なんでわざわざそゆことすんの?
kjxツールでKDDI独自の記述するときはOther keywordでしょ?
kjxファイルの頭の記述はjadなんだけど、jarの方にもMFに同じ記述があるから
MFファイルの方をチェックしてるのかもしれないよ。
ちなみに拡張ストレージは200k(204800)まではOK。
もしこの書き方がおかしい(多すぎ)時は起動すら出来ないと思う。
0908デフォルトの名無しさん
05/02/03 23:34:57僕はアプリを作るためにJAVA SEを少し勉強しました。コンストラクタ、メソッドなどのことは少しわかります。
もしよければ教えていただけますか?
0909デフォルトの名無しさん
05/02/03 23:42:30http://developers.vodafone.jp/dp/
0911デフォルトの名無しさん
05/02/04 13:35:54私もここのスレッドが800くらいのときに始めて、いろいろ叩かれながらも少しずつ
分かってきました。
909さんの指示する通り、ボーダフォンが出している技術資料などは見ておくといい
でしょう。
ただ、多分いきなり読んでも分からないと思うので、すこし慣れておく必要があると
思います。
現在、私がバイブルにしているサイトです。
J2ME工房
http://www.saturn.dti.ne.jp/~npaka/sorami/index.html
( TOPページは http://www.saturn.dti.ne.jp/~npaka/kvm/kvm.html )
SINSEN
http://www.sinsen.org/top.html
JavaDrive
http://www.javadrive.jp/j2me/index.html
( TOPページは http://www.javadrive.jp )
0912911
05/02/04 13:38:21今知りました。
ん・ぱか工房
http://www.saturn.dti.ne.jp/~npaka/index.html
でした。
0913デフォルトの名無しさん
05/02/05 13:02:280914デフォルトの名無しさん
05/02/05 15:42:510915デフォルトの名無しさん
05/02/06 00:59:23お前と俺とは同期の桜
0916デフォルトの名無しさん
05/02/06 17:33:150917デフォルトの名無しさん
05/02/07 01:31:17うん。
0918デフォルトの名無しさん
05/02/07 04:00:570919デフォルトの名無しさん
05/02/10 14:35:42皆さんは、クラスの配列のソートはどのようにしているのですか?
やはり手でやるしかないのでしょうか?
0920デフォルトの名無しさん
05/02/10 15:38:450921デフォルトの名無しさん
05/02/10 19:21:39どんどん減っていって0までいくとまた増える、が繰り返されるんですが、
どうすればよいですか?
0922921
05/02/10 19:24:14でガベジコレクションしてやらないといけないんですか?
0923デフォルトの名無しさん
05/02/10 20:58:12今の動作に問題なければ何もする必要ないよ。
gcで解決って問題ではない(実行されるとは限らん)が、多少は改善されるかもね。
スレッドが走ることでメモリが減らない、つまり動的にインスタンスを作らないのが一番。
0925デフォルトの名無しさん
05/02/10 21:46:33電池を消費しないようにするテクニックなどがあったら教えてください。
0926デフォルトの名無しさん
05/02/11 02:12:46やっぱりそうですか。
ソートくらいあってもいい気はするんですけどね。
クイックソートとか手で作るのだるいなぁ。
0927デフォルトの名無しさん
05/02/11 02:26:15まぁ、たかだか数百個程度の配列なら、どんな方法でも大差ないか。
>925
アプリ上は走りっぱなしのスレッドをなくせばすむけど、
そうしたとしても省電力になるかどうかは結局VM次第になるような気がする。
バックライト制御して常に消した方が効果は大きいような。
>924
ガベコレで回収しきれなくなったとかガベコレ時にスレッドが一時停止して困るとかでない限り無視でいいと思う。
回収しきれない→ヒープメモリを動的に使わないようにする
一時停止で困る→ガベコレタイミングを考えてgc()を実行
0928デフォルトの名無しさん
05/02/11 17:41:08描画を省くとけっこう違うよ。
あと、sleepだね
0929デフォルトの名無しさん
05/02/11 22:06:16リファレンス見たけど見つからなかったもので・。
0930デフォルトの名無しさん
05/02/11 23:17:56FileUtilityのplayでネイティブ側で再生するしかないかな。
0931デフォルトの名無しさん
05/02/11 23:49:43情報サンクス!
さっそく試してみます。
0932929
05/02/12 00:05:45動画が再生されるとこは見れないのですか?
0933デフォルトの名無しさん
05/02/12 00:40:19っていう判定はどうやるんでしょうか・・。
タイトル画面とかで毎フレーム描く必要ないですよね。
でも、一時停止させてからアプリに戻ると画面真っ白でかっこわるいし・・。
0934デフォルトの名無しさん
05/02/12 00:59:40>>638
にモロ書いてありました。失礼しました。
0936デフォルトの名無しさん
05/02/13 20:47:520937デフォルトの名無しさん
05/02/13 22:03:53に換えたいのですが、あれは本当になが〜い1枚絵をスクロールさせてるんですか?
どうやってやるんですか?
0938デフォルトの名無しさん
05/02/13 22:57:40取得したメモリカードのパス「"/mc/"」は、メモリカードの直下ではなく、
ピクチャフォルダ等がある「データフォルダ」を指しているのですか?
そうなると、メモリカード直下にある、「SD_VIDEO」フォルダ等に
アクセスする手段はないということでしょうか?
0939デフォルトの名無しさん
05/02/14 00:07:21うん。
0940デフォルトの名無しさん
05/02/14 00:24:22画面サイズの画像を複数用意し、常に連続する2枚をスクロールすれば
繋がってるように見えるはず。別にもっと大きな画像でもつなぎ目で2枚書けばいい。
とりあえずMIDPというよりゲーム作成系の記事探してみれ。
携帯アプリでの注意点としてはメモリ容量とImageのサイズ制限。
機種によるけど1枚絵は無理だと思う。
0941デフォルトの名無しさん
05/02/14 00:38:44ということは、SD_VIDEOフォルダ内の動画は再生できないと
いうことですか・・・。ああ鬱だ、氏のう。
0942デフォルトの名無しさん
05/02/14 11:26:33RPGのマップみたいに、タイルを敷き詰めて1枚の大きい画面にしる。
0943デフォルトの名無しさん
05/02/14 17:27:07Stringクラスのコンストラクタで
VodafoneP5の場合、どのようなエンコード方式に対応しているのでしょうか?
0944デフォルトの名無しさん
05/02/14 19:27:33通常のブラウザからのアクセスとを
見分けることってできるんでしょうか?
0945sage
05/02/14 23:22:20システムイベントから復帰する時にはpauseApp()を通るからこの中で再描画の要求を出します。
>>944
UserAgentを見れば確認できます。
UserAgentの機種名は携帯の型番とは違うので要注意です。
0946デフォルトの名無しさん
05/02/14 23:53:21http://web.archive.org使ってもindex.htmlのとこしか
見れません。
0947デフォルトの名無しさん
05/02/15 00:09:41他人が作った物を勝手にアップしていいとでも?
0948デフォルトの名無しさん
05/02/15 00:18:29やはりそれはいけませんよね・・・orz
0949デフォルトの名無しさん
05/02/15 00:52:480950デフォルトの名無しさん
05/02/15 01:07:230951デフォルトの名無しさん
05/02/15 06:22:47たぶんShift-JISとUTF-8だけ
0952デフォルトの名無しさん
05/02/15 11:25:460954943
05/02/15 16:28:10"SJIS", "UTF-8", "UTF-16"が使用可能でした。
但し"UTF-16"の場合はbytes[0], bytes[1]はBOMになってないと駄目なようです。
0955デフォルトの名無しさん
05/02/15 18:38:160956デフォルトの名無しさん
05/02/15 19:33:42んで、ez2のアプリってパソコンからは絶対無理?
0957デフォルトの名無しさん
05/02/15 20:50:25com.jblend.net.HttpUrlEncoder
>>956
あまりにも、な質問が少ないだけだと思う。
アナタもム版なんだから落とす側より作る側の発言してくれYO。
ez2.cgiの事ならわざわざcgi通さなければイイだけの話。
〜/ez2.cgi?xxx.kjx > 〜/data/xxx.kjx
>>946
右下に無断転載禁止って書いてたしね。連絡が取れればあるいは・・。
0958デフォルトの名無しさん
05/02/15 21:35:15URLに関してはそれでエンコードできるんだけど、データをポストするときに
フォームエンコードをしたいのにできなくて困ってる〜^^;どうやって
エンコしたらいい?
0959デフォルトの名無しさん
05/02/15 21:54:50わざわざエンコする必要ないでしょ
0960デフォルトの名無しさん
05/02/15 22:41:18いろいろ探したんですが・・・
0961デフォルトの名無しさん
05/02/15 23:02:15返答ありがとう^^
それでやってみたんだけど、受側のPHPがPOSTでデータがくるので
エンコされてると思うみたいでデータが壊れちゃうのよ。
どうしたらいい?
0962デフォルトの名無しさん
05/02/15 23:15:480963デフォルトの名無しさん
05/02/15 23:53:27新しめのPHPならphp://input
古いならHTTP_RAW_POST_DATAとalways_populate_raw_post_data
あとはググってチョ
0964957
05/02/16 00:02:58最初からそこまで言っておいてくれればもっと早く書けたんだが、
EZアプリからPHPに送る話ならSINSENの掲示板(1051)とかで出てたけど
リクエストデータのヘッダに明示的に示すといいらしい。
con.setRequestProperty("Content-type","application/x-www-form-urlencoded");
ちなみに963はPHP側で明示的に変更させない方法。
>>962
CLDCでは削除されてます。多分セキュリティ的な理由。
0965デフォルトの名無しさん
05/02/16 00:39:32わかりやすい回答、ありがとうございました!
おかげで何とかなりました^^
0966デフォルトの名無しさん
05/02/16 01:24:43普通に行けない?
何時の間にか行けるようになってたんだが…きのせいか?
ttp://web.archive.org/web/20040113080358/godwood.allnet.ne.jp/vioret/midpapi/
0967デフォルトの名無しさん
05/02/16 06:24:280968デフォルトの名無しさん
05/02/16 11:41:200969デフォルトの名無しさん
05/02/16 16:50:55もちろんそのまま使えるわけでなく、翻訳する手助けになるってことだよ。
0970デフォルトの名無しさん
05/02/16 21:43:14ダウンロードしたファイルが同じ名前だと保存不可
という不都合が報告されたのですが
この場合直す名前とは
jad&jarの方でしょうか?
それともMIDlet-Name:の方でしょうか?
また調べてみたところV801SAの不都合ぽいのですが他の機種でも起こりうるのでしょうか?
他のキャリアでは聞いたことのない不都合でしたので
0971デフォルトの名無しさん
05/02/16 21:56:22うぉぉボーダの公開ってめんでぇーーー
0972デフォルトの名無しさん
05/02/17 05:20:08MIDlet-versionをちゃんとかけっつーに。
0973デフォルトの名無しさん
05/02/17 12:28:05javaのEZアプリって今後利用できるんでしょうか?
(たとえばW21CAとか)
0974デフォルトの名無しさん
05/02/17 14:20:41BREW上のJAVAVMの可能性も低いです。
勝手系はFLASHに流れると思います。
0975デフォルトの名無しさん
05/02/17 15:45:38新興勢力はまだまだ力不足
がんばれ。超がんばれ。
0976デフォルトの名無しさん
05/02/17 16:28:26BREW上のVMの記事を見て「ひょっとして」と思いましたが、期待薄なんですね。
BREWはきついですね。本当にきつい。
二つ折り携帯の開閉をキャッチして、サーバーと更新する待ち受けアプリ
を作りたいんだけど、FLASHでは無理ですよね!?
0977デフォルトの名無しさん
05/02/17 17:54:00等のJPHONE独自のAPIを使ったアプリ作りたいんですが
batファイルかけやらEclipsでAntで実行しろやら
わけがわかんねーんだよ!!!!!
ということで手っ取り早くエミュレーターで実行できる実行ファイルを作りたい場合は
どうしたら良いんですか、教えてエロい人
0978デフォルトの名無しさん
05/02/17 18:08:20コマンドラインからjavac、preverify、jarと実行して手動でやれば?
0979デフォルトの名無しさん
05/02/17 18:17:52えっとですね
javac -bootclasspath C:\V-appli_SDK_121\lib\stubclasses.zip src\*.java
まずこんな感じでクラスファイルをつくればいいんですよね。。。。?
でpreverifyしなきゃいけないんですよね。。?
preverify -classpath c:\J-PHONE-SDK\stubclasses.zip src\test
みたいな感じでsrc直下にあるファイルに全部preverifyすればいいんですか?
で、これどっかから拾ってきたんですけど
jar cfm shisen.jar MANIFEST.MF -C output .
とかやればjarとMANIFESTが出来るんですかね。。。。
どうやってjarが生成されているのかがわからんのです
0980デフォルトの名無しさん
05/02/17 18:21:27てか、そんなのすら調べられない奴が、言語を使えるとは思えない。
ビルド方法を解説してるサイトくらいいくらでもある。
読め!
0981デフォルトの名無しさん
05/02/17 18:30:12やさしくおしえてくださいこのやろう!!!
0982デフォルトの名無しさん
05/02/17 18:34:400983デフォルトの名無しさん
05/02/17 18:35:42この先もっと大量に調べなきゃならないことが出てくる。
0984デフォルトの名無しさん
05/02/17 18:40:48ほんと実行ファイルが出来る環境が出来るだけでいいんです!!
0985デフォルトの名無しさん
05/02/17 19:36:30僕らが親切に教えた所で必要な手順変らないから説明内容は一緒だぞ?
とりあえず、どのサイト・ガイドを参考にして、どこまで出来たか、ぐらい書け。
僕のお勧めは綿100号さんのサイトで紹介してる、kjx作成ツール使う方法。
もしくはEclipseプラグインでもPDF通りにやれば出来そうなもんだが・・。
どっちにしろレスで説明できるほど薄い内容じゃない。
本当に分からない部分、極一部まで絞って質問してみれ。
今度1から分からないとかぬかすようなら完全無視。
0986デフォルトの名無しさん
05/02/17 19:39:42サウンドを流そうとすると曲の最後まで再生されずに曲が途切れ
てしまいます。サウンドのデータ容量が関係してるみたいですが、
詳しい原因を知りたいので、詳しい方教えてください
0987デフォルトの名無しさん
05/02/17 19:45:57にある開発ガイド読みなさい
はい終了
0988デフォルトの名無しさん
05/02/17 19:46:420989デフォルトの名無しさん
05/02/17 21:05:36う・・・。Nokiaのエミュレーターだと音は鳴るんですよねー。
実機で再生するとうまくいかないわけで。。。別のNokiaの端末
では同じ音でも再生されるわけで。。。誰か原因教えて
0990デフォルトの名無しさん
05/02/17 21:10:21こんな話題で次スレが始まると悲しいので。
0991デフォルトの名無しさん
05/02/17 23:54:51ちがうよぅ>>998
そしてワカラン。スマヌ
0992デフォルトの名無しさん
05/02/18 01:29:38それと質問。
auのQcelpを使って人の声を出すときに、どこかで自分の欲しい声を作ってくれるフリーソフトが有ったと思うんだが知ってる方はいらっしゃいませんか?
もしかしたらSMAFだったかも。
探しているのだが見つからない。
0993デフォルトの名無しさん
05/02/18 13:06:510994デフォルトの名無しさん
05/02/18 23:16:30当たり判定はどのように書かれてますか?他のはわかるのですが、当たり判定が全然わかりません!
0995デフォルトの名無しさん
05/02/18 23:27:44どの道スレ違いだ
0996デフォルトの名無しさん
05/02/19 00:07:470997デフォルトの名無しさん
05/02/19 00:21:29CLDC+MIDP の話をするところだろ。
>994
http://www.amazon.co.jp/exec/obidos/ASIN/4797327316/
これでも読んでろ。
0998デフォルトの名無しさん
05/02/19 00:43:150999デフォルトの名無しさん
05/02/19 00:50:231000デフォルトの名無しさん
05/02/19 00:51:2610011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。