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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   サーバ関連【CGI・FCS・XMLSocket etc】
     外部swfのFlashRemoting接続について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
Åê¹ÆNo.3861
投稿日時: 2004-2-14 20:04
外部swfのFlashRemoting接続について
メインのswf(main.swf)の一部のエリアに、loadMovieで外部swf(sc1.swf,sc2.swf,...)をロードする画面を考えています。

ことのきsc1.swfを単独で実行した場合は正常にFlashRemotingが機能するのですが、main.swfからsc1.swfを読み込んで実行した場合は動作しなくなります。
NetConnection Debggerで見てみるとサーバに対して処理実行命令が渡り、処理結果も正しく返されてきています。
ただ異なる点は単独で実行したときとの「ムービーURL」の値です。
sc1.swf単独で実行した場合はムービーURLが「sc1.swf」となっているのですが、main.swfから読み込んで実行すると「main.swf」に変わっています。
このことから処理結果がサーバから戻ってきてもsc1.swfが受け取れていないように思えます。
サーバ側処理(例えばmyService)実行時の命令
 connectionObject.getService("myService", this)
においてレスポンダの「this」を変えると動作するようにも思えるのですが、その他の具体的な指定方法がわかりません。

外部swfのFlashRemoting機能を正常に動作させる方法をご存知の方いらっしゃいませんでしょうか?

よろしくお願いします。
宇都宮正宗
Åê¹ÆNo.3910
投稿日時: 2004-2-16 12:49
新米
居住地:
投稿: 25
使用環境:
:Flash:5
6.0
2004
:Flash:8
:Flash:CS3
:Flash:CS4
:Flash:CS5
:Flash:CS6
:FlashCC
:FlashBuilder
:FlashDevelop
pro
:Win:Vista
:Win:7
:MacOS:X
Re: 外部swfのFlashRemoting接続について
こんにちわ。

LoadMovieされたswfは基本的にはムービークリップとして扱われるだけなので、FlashRemotingに限らず単体では動作しているのにLoadMovieされると動かなくなる場合、大抵の原因はMCやObjectの階層が間違っていることが多いです(経験者)。

そんなときは泥沼化する前に一度新規ファイルから開きなおして問題の起こる簡単なモデルを作り直してみるのが一番のオススメです

ついでにFlashRemotingなら自分の開発環境にインストールして、こんな感じの簡単なテストも用意しておくといいかもです

<%@ WebService Language="C#" Class="testClass.messageTest" %>

using System;
using System.Web;
using System.Web.Services;

namespace testClass{
	[WebService(Namespace="testClass")]
	public class messageTest{
		[WebMethod]
		public String showMessage(String str) {
			return "Flashから渡された値:"+str+"を返します。";
		}
	}
}

C#ベタ書きなので動かないかもしんない…

で、myungさんは
引用:
ことのきsc1.swfを単独で実行した場合は

とあるので多分LoadMovieされる側にNCオブジェクトやレスポンダを用意しているのだと思いますが、症状から見るに確かにレスポンダの指定が間違っているのでFlash側で結果処理が出来なくなってるようにも思えますね。

_level2?とかにloadMovieされてるのでなければ(MCにloadMovieしているのであれば)、例えばsc1.swf内で_root指定してある箇所が制作者の想定してたルート(sc1.swf)ではなく、FlashはloadMovieされたルート(main.swf)を呼びに行って失敗してる、なんてケースも考えられます(これも経験者)。

僕にも具体的な原因がわからないので具体的な解決方法は見つかりませんが、基本的にはgetServiceする際にレスポンダの指定をthisにしててもloadMovieされても問題なく動くはずなので、やはり先ずは簡単な新規ファイルでテストされてみることをお勧めします。
それで動かない場合はソースアップも出来るし、動いたならそこに既存ファイルにあった機能を一個ずつ追加してくと動かない原因もはっきりしますよ

また、どうしても読み込む側(sc1.swf)にNCオブジェクトを作らなくてはいけないのであれば別ですが、もし出来るのであれば読み込む側(main.swf)の_rootあたりにNCオブジェクトをまとめて作っておいてあらかじめgetServiceさせておくのも一つの手です(どのMCやswfからでも_root指定で一発接続、楽できます)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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