トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     iOSアプリパブリッシュで バグではないかと思うこと。
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
せいぞう
Åê¹ÆNo.48569
投稿日時: 2012-1-9 20:48
常連
居住地: 江戸川区の某所
投稿: 125
使用環境:
Flash CS5.5
Windows8 (64Bit)
Pentium Core i7
Memory 8GB
iOSアプリパブリッシュで バグではないかと思うこと。
こんにちは、Flash CS5.5を使って iOSアプリを作成していて発見したことを報告します。
下のスクリプトを見てください。

//TTは画面上のテキストフィールド
var myArr:Array = [1,2,3];

//チェックその1
if( -1 > myArr.length){
     TT.appendText( "  ");
}else{
     TT.appendText( "  ");
}

//チェックその2
if( 0 > myArr.length){
     TT.appendText( "  ");
}else{
     TT.appendText( "  ");
}

//チェックその3
if( 5 > myArr.length){
     TT.appendText( "  ");
}else{
     TT.appendText( "  ");
}

期待するアウトプットは です。
しかし、 ipa ファイルを作成し、iPhon4Sに インストールするとなぜかアウトプットは になっています。

PC上でのデバックでは そうなりません。 です。
Android で試しても、 です。
なぜか ipa ファイルにコンパイルすると 出力が違っています。
Array.length を 負の値と比較した場合に バグがあるのではないかと思っています。

基本的な部分だけに、(もしこれがバグなら)影響も大きいかなと思い投稿しました。もし第三者の方でごご確認頂ければ幸いです。
因みに私の環境は・・・ Windows 7 64Bit FlashCS5.5 です。

※PC上のデバッグでは現れないので、trace文は使わず、画面上の TT というテキストフィールドに出力させています。


----------------
□NAME : せいぞう
□URL : http://www.5th-trend.com/

うすあじ
Åê¹ÆNo.48570
投稿日時: 2012-1-10 10:33
職人
居住地: 東京都杉並区
投稿: 211
使用環境:
FlashCS5.5 ,MacOSX 10.6.8
Re: iOSアプリパブリッシュで バグではないかと思うこと。
iPhone用のアプリを開発中なので試してみました。

引用:
しかし、 ipa ファイルを作成し、iPhon4Sに インストールするとなぜかアウトプットは 正 誤 正 になっています。
PC上でのデバックでは そうなりません。 誤 誤 正 です。

こちらはMac版FlashCS5.5で作成、iPhone3GSでのチェックですが、同じ状況です。

一応、いったん変数にいれれば回避できました。
「 誤 誤 正」になります。

//TTは画面上のテキストフィールド
var myArr:Array = [1,2,3];
var myArrLen:Number =myArr.length;

//チェックその1
if( -1 > myArrLen){
     TT.appendText( "正  ");
}else{
     TT.appendText( "誤  ");
}

//チェックその2
if( 0 > myArrLen){
     TT.appendText( "正  ");
}else{
     TT.appendText( "誤  ");
}

//チェックその3
if( 5 > myArrLen){
     TT.appendText( "正  ");
}else{
     TT.appendText( "誤  ");
}
stop();


length周辺にバグがありそうですね。


----------------
うすあじ(twitter)
うすあじFlash研究所
HSPセンター

野中文雄
Åê¹ÆNo.48571
投稿日時: 2012-1-10 10:57
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: iOSアプリパブリッシュで バグではないかと思うこと。
int()関数でキャストするといかがでしょう。
if( -1 > int(myArr.length)){

引用:
usuajiさんは書きました:
iPhone用のアプリを開発中なので試してみました。
こちらはMac版FlashCS5.5で作成、iPhone3GSでのチェックですが、同じ状況です。

一応、いったん変数にいれれば回避できました。
「 誤 誤 正」になります。

//TTは画面上のテキストフィールド
var myArr:Array = [1,2,3];
var myArrLen:Number =myArr.length;

//チェックその1
if( -1 > myArrLen){
     TT.appendText( "正  ");
}else{
     TT.appendText( "誤  ");
}
// ...[後略]...


length周辺にバグがありそうですね。


----------------
 

せいぞう
Åê¹ÆNo.48572
投稿日時: 2012-1-10 11:11
常連
居住地: 江戸川区の某所
投稿: 125
使用環境:
Flash CS5.5
Windows8 (64Bit)
Pentium Core i7
Memory 8GB
Re: iOSアプリパブリッシュで バグではないかと思うこと。
うすあじ 様、野中様、ご確認頂きありがとうございます。

当方の環境「iPhone4S」+「Windows 7 64Bit」+「FlashCS5.5 」で、両アドバイス共に「誤 誤 正 」と、期待する出力が得られました。
ありがとうございました。m(_ _)m


----------------
□NAME : せいぞう
□URL : http://www.5th-trend.com/

永井勝則
Åê¹ÆNo.48573
投稿日時: 2012-1-10 11:30
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: iOSアプリパブリッシュで バグではないかと思うこと。
iPhone DEV SDKというフォーラム(iOSのフォーラム)に似たような質問が投稿されています。
NSUInteger vs. int

それによると、iOSの仕様のようなことが書かれています、

//TTは画面上のテキストフィールド
var myArr:Array = [1,2,3];

// -1は3より小さいので、結果は誤になるはず


// 出力は正
var num1:int = -1;
if( num1 > myArr.length){
     TT.appendText( "正  ");
}else{
     TT.appendText( "誤  ");
}


// 出力は誤
var num2:Number = -1.0;
if( num2 > myArr.length){
     TT.appendText( "正  ");
}else{
     TT.appendText( "誤  ");
}


// 出力は誤
if( -1 > int(myArr.length)){
     TT.appendText( "正  ");
}else{
     TT.appendText( "誤  ");
}

// 出力は正
if( -1 > uint(myArr.length)){
     TT.appendText( "正  ");
}else{
     TT.appendText( "誤  ");
}


ActionScriptが実際にどのようにiOS用に変わっているのか分からないので、想像でしかありませんが、iOSの仕様が関係しているのかもしれません。


----------------
永井勝則:
himco.jp :

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops