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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   サーバ関連【CGI・FCS・XMLSocket etc】
     AMFPHPとAS3で連携:ByteArrayが型変換できない
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
neru330
Åê¹ÆNo.44357
投稿日時: 2010-2-3 7:36
半人前
居住地: 東京
投稿: 33
使用環境:
Mac OS X;Flash CS3;Flash Player 10;Firefox;
AMFPHPとAS3で連携:ByteArrayが型変換できない
書き込むのはひさしぶりですが、いつもコチラにはお世話になっています。

早速ですが、表題の件で現在かなり困っております。

1. AS3でByteArrayをAMFPHPに送信 -> PHPでDBにそのデータと登録番号を登録
2. AS3からAMFPHPにアクセス、データ一覧(登録番号とそのデータ)を取得
3. 取得したデータを表示

ということをしています。
問題のポイントは2.のところで起こっています。

取得したデータは複数あるためArray型で返って来ています。

//-----
private function loadedData(data:*):void {
dataList=data;


var dataId:int=int(dataList[0].id);//正常
var imgData:ByteArray=dataList[0].data as ByteArray;//null

//-----

こんなかんじで取得しているのですが、int型は型変換できているものの、imgDataがどうしてもByteArrayになりません。
asでキャストするとnullが、そのままつっこもうとすると
強制型変換できませんでしたのエラーが返ってきます。


いろいろ調べてみたところ、
・As3からのByteArrayの送信は正常に行われている
・PHPからはByteArrayとしてデータが送られている

ことは間違いないようなのです。
にもかかわらずキャストできないとは…

DB書き込みの際やAMFPHP独自の仕様?など関係するのでしょうか・

さんざんググったのですが不明です。
どなたかほんの些細なことでも良いのでお力を貸していただければと思います。
neru330
Åê¹ÆNo.44358
投稿日時: 2010-2-3 10:25
半人前
居住地: 東京
投稿: 33
使用環境:
Mac OS X;Flash CS3;Flash Player 10;Firefox;
Re: AMFPHPとAS3で連携:ByteArrayが型変換できない
あれから更に原因を絞り込んでみています。

とりあえず、ByteArrayデータがObject型としてしか取得できておらず、それを無事ByteArray型にできれば解決しそうな感じです。

以下のコードを試してみましたが、一部文字がバケてしまい、正常データではなくなってしまいました。

//-----------------------------
//ByteArrayインスタンスを生成
var imgData:ByteArray = new ByteArray();
//コピー元ObjectのバイナリデータをByteArrayインスタンスに書き込み
imgData.writeObject(dataList[0].data);
//-----------------------------

dataList[0].dataは正しいByteArrayのようなのですが…

引き続き、情報お待ちしております。

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

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