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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     外部swfの読み込みについて
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yuki8
Åê¹ÆNo.45374
投稿日時: 2010-7-28 15:24
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
外部swfの読み込みについて
読み込む側のMain.fla内に配置したムービークリップ(my_mc)上に外部swfファイル(test.swf)を表示させようと考えています。



test.swf側では更に,外部XMLファイルから文字列を取得してステージに表示させています。
こちらは正常に表示されることは確認済みです。





実際にMain.flaに2つのパターンのコードを書いて試しましたが,どちらもダメでした。

まずひとつ目がこちらです。
Main.fla
import flash.net.URLRequest; 
import flash.display.Loader; 
var urlReq:URLRequest = new URLRequest("test3-1.swf"); 
var loader:Loader = new Loader(); 
loader.load(urlReq); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onCompleteListener); 
function onCompleteListener(evt:Event):void { 
   my_mc.addChild(loader); 
}


ムービークリップ上に表示されるのですが,
「null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」
というエラーが延々と出てしまいました。
ヘルプ等を読んだのですが解決しませんでした。。。

また,読み込んだtest.swfですが,XMLを読み込む前のテキストが表示されて,XML読み込みがされない状態でした。




二つ目がこちらです。
Main.fla
var loader:Loader=new Loader(); 
loader.load(new URLRequest("test3-1.swf")); 
loader.addEventListener(Event.COMPLETE,onCompleteListener); 
function onCompleteListener(evt:Event):void { 
   //var sub:my_mc=evt.target.content; 
   my_mc.addChild(loader);
   //loader.removeEventListener(Event.COMPLETE,onCompleteListener); 
}



こちらに至ってはエラーは出ないものの何も表示されませんでした。





どのようにして正しくムービークリップ上にswfファイルを読み込むのか,
また,どのようにしたらtest.swfがXMLを読み込んでから表示されるのか,
教えていただきたいです。




よろしくお願いいたします。
ひろゆき
Åê¹ÆNo.45375
投稿日時: 2010-7-28 15:31
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 外部swfの読み込みについて
test.swf内で、stage参照しているとか?

少なくとも、main.swf側だけに問題があると断定はできないので、
test.swf側のスクリプトも掲載してみては?


----------------
質問する際は、回答者に具体的な情報を与えてください。

yuki8
Åê¹ÆNo.45376
投稿日時: 2010-7-28 15:41
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
Re: 外部swfの読み込みについて
素早い回答ありがとうございます。


test.flaはこのようなコードになっています。

import flash.events.Event;

stop();


//▼テキスト関連
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onLoaded);
var urlReq:URLRequest = new URLRequest("sample.xml");
loader.load(urlReq);

function onLoaded(eventObj:Event):void{
	
	var item:XML;
	var xmlObj:XML = new XML(loader.data);
	var wordList1:XMLList = xmlObj.word.en;

	
	for(var i:int=1; i < wordList1.length(); i++){
		item = wordList1[i];
		this["en" + i + "_txt"].text = item.text();
		this["en" + i + "_txt"].visible = true;
	}
	
}




sample.xmlから英単語と日本語を読み込んで作ったテキストに入れて表示していく感じです。
ちなみにフレームはこの1フレームだけです。

ひろゆき
Åê¹ÆNo.45379
投稿日時: 2010-7-28 20:41
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 外部swfの読み込みについて
sample.xmlがどのようなものかも不明ですし、
"en1_txt"というテキストフィールドらしきものがありますが、
これについての説明もありません。

第三者がスクリプトだけで判断できるとは限りません。
情報は、第三者が再現できるだけの情報を提供すべきでしょう。


----------------
質問する際は、回答者に具体的な情報を与えてください。

yuki8
Åê¹ÆNo.45395
投稿日時: 2010-7-29 13:41
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
Re: 外部swfの読み込みについて
失礼しました。


XMLファイルについてですが,
wordというタグの中にさらにenというタグがあり,en内には英単語が記述されています。


それらを読み込み,英単語をen1_txt?en10_txtという,ステージに配置したテキストに表示させていきます。




XML読み込みの無い簡単なswfを作ってMainの方で読み込んだところ特に問題なく表示されてので,
やはりtest.flaの方がおかしいのかもしれません;



よろしくお願いします。
yuki8
Åê¹ÆNo.45399
投稿日時: 2010-7-29 16:40
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
Re: 外部swfの読み込みについて
簡単なものを作って試してみたのですが,


	this["en" + i + "_txt"].visible = true;



のような記述(.visible)が読み込まれる側のtest.flaに入っているとエラーが起きてしまうようです。。。


なぜなんでしょうか;
ひろゆき
Åê¹ÆNo.45400
投稿日時: 2010-7-29 16:50
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 外部swfの読み込みについて
簡単なものは本当に簡単なものなのでしょうか?

index.fla (index.swf)
ステージ上にムービークリップ(インスタンス名: container) を配置。
メインタイムラインの第1フレームに
import flash.display.Loader;
import flash.net.URLRequest;

var loader:Loader = new Loader();
loader.load(new URLRequest("test.swf"));

loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onCompleteListener); 
function onCompleteListener(evt:Event):void { 
	container.addChild(loader); 
}
と記述。

test.fla (test.swf)
ステージ上にムービークリップ(インスタンス名: mc0, mc1) を配置。
メインタイムラインの第1フレームに
for (var n:uint = 0; n < 2; n++) {
	this["mc"+n].alpha = 0.5;
}
と記述。

これで問題なく、表示されます。
説明されていない部分が問題なのではないでしょうか?



----------------
質問する際は、回答者に具体的な情報を与えてください。

yuki8
Åê¹ÆNo.45764
投稿日時: 2010-9-14 13:28
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
Re: 外部swfの読み込みについて
返信が遅れてしまい申し訳ありませんでした。



呼び出される側のtest.fla (test.swf)では
第1フレームではなく,第2フレームからスクリプトを記述したいと考えていました。

するとどうしてもstop();を記述していなくても第1フレームで止まってしまうので,呼び出さずに一つのtest.fla (test.swf)にまとめてしまうことにしました。


ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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