こんにちは。
FLASHアクションスクリプト初心者です。
XMLを使ってスライドショーを作成した外部SWFを
メインのSWFに読み込ませたいのですが、うまくいかなくて困っています。
構成としては、メインとなるSWFファイルがあり、
そこに外部にある各ページのSWFファイルを読み込んでいます。
現在、メインのSWFファイルに読み込ませるページAのSWFファイルを作成ました。
その外部SWFファイルには、こちらのサイト
(http://www.oman3d.com/tutorials/flash/slideshow/ …)
を参考にして、XMLを使って読み込んだ画像で
スライドショーを作成しました。
この外部SWFファイルをメインのSWFファイルに読み込ませたのですが、
メインSWFをパブリッシュして確認したところ、
画像スライドショーの部分が表示されませんでした。
(テキストやMCなどは表示されます。)
外部SWFのパブリッシュプレビューでは表示されています。
actionscriptは、外部SWFの一フレーム目に記述されています。
****actionscript****
import mx.transitions.Tween;
import mx.transitions.easing.*;
var myShowXML = new XML();
myShowXML.ignoreWhite = true;
myShowXML.load("slideshow.xml");
myShowXML.onLoad = function() {
_root.myWidth = myShowXML.firstChild.attributes.width;
_root.myHeight = myShowXML.firstChild.attributes.height;
_root.mySpeed = myShowXML.firstChild.attributes.speed;
_root.myImages = myShowXML.firstChild.childNodes;
_root.myImagesNo = myImages.length;
createContainer();
callImages();
};
function createContainer() {
_root.createEmptyMovieClip("myContainer_mc", 1);
myContainer_mc.lineStyle(5, 0x000000, 100);
myContainer_mc.lineTo(_root.myWidth, 0);
myContainer_mc.lineTo(_root.myWidth, _root.myHeight);
myContainer_mc.lineTo(0, _root.myHeight);
myContainer_mc.lineTo(0, 0);
myContainer_mc._x = (Stage.width - myContainer_mc._width) / 2;
myContainer_mc._y = (Stage.height - myContainer_mc._height) / 2;
}
function callImages() {
_root.myMCL = new MovieClipLoader();
_root.myPreloader = new Object();
_root.myMCL.addListener(_root.myPreloader);
_root.myClips_array = [];
_root.myPreloader.onLoadComplete = function(target) {
_root.myClips_array.push(target);
target._alpha = 0;
if (_root.myClips_array.length == _root.myImagesNo)
{
_root.target_mc = -1;
moveSlide();
myShowInt = setInterval(moveSlide, (_root.mySpeed * 1000) + 1000);
}
};
for (i = 0; i < _root.myImagesNo; i++)
{
temp_url = _root.myImages[i].attributes.url;
temp_mc = myContainer_mc.createEmptyMovieClip(i, myContainer_mc.getNextHighestDepth());
_root.myMCL.loadClip(temp_url, temp_mc);
}
}
function moveSlide() {
current_mc = _root.myClips_array[_root.target_mc];
new Tween(current_mc, "_alpha", Strong.easeOut, 100, 0, 1, true);
_root.target_mc++;
if (_root.target_mc >= _root.myImagesNo)
{
_root.target_mc = 0;
}
next_mc = _root.myClips_array[_root.target_mc];
new Tween(next_mc, "_alpha", Strong.easeOut, 0, 100, 1, true);
}
宜しくお願いいたします!
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
#1です。
最初のご質問,
> XMLを使ってスライドショーを作成した外部SWFを
> メインのSWFに読み込ませたいのですが、うまくいかなくて困っています。
と,
> このスライドショーを親SWFの中にあるムービークリップの中に入れる
> (作成する)必要がでてきてしまいました。
は同じ事のように思えますが...(同じ対処法でできる)。
某mixiなど("など" は悪い意味ではありません)と,
マルチポスト("マルチポスト" は悪い意味です)などしているのでだんだん混乱しているだけではありませんか?
聖徳太子ではないのですから。
No.1
- 回答日時:
****actionscript****
のすぐ後(すぐ下)に,
this._lockroot = true;
と書けばうまく行きませんか?
ロードさせると,親SWF の _root に 子SWFの _root がズレますよ。
なぜなら 親SWF の中では 子SWF は1ムービークリップですから。
あとファイルの構造も関係しますが,
それは書かれていないのでわかりません。
この回答への補足
BlurFiltanさん
アドバイスありがとうございます!
this.lockroot = true;
と書いてみましたが、やはり表示されませんでした。
子SWFファイルの構造としては、asレイヤーの一フレーム目に上記のasが書いてあり、asレイヤーの最後のフレーム(15フレーム目)にstop();が書かれています。
その他のレイヤーで文字や画像(スライドショーではない動かない画像)にTWEENでアルファをかけてあります。
親SWFファイルでは、ボタンAを押したときに空ムービークリップload_mcに子SWFを読み込ませるアクションスクリプトが書いてあります。
→ load_mc.loadMovie("xxx.swf");
環境を記述するのを忘れてしまいましたが、
WindowsXP/FlashMX/AS2.0
です。
宜しく御願い致します。
BlurFiltanさん
アドバイスありがとうございました!
子SWFの一番最後のフレームに上記のアクションスクリプトを書きなおしたら、親SWFで表示することが出来ました!
最後のフレームにきちんとかかないとダメなんですね・・・。
ちょっと考えれば分かることなのに、気付きませんでした。
すみません。
本当にありがとうございました!!!!
そして、ここにきてもう一つ問題が起きてしまいました。
このスライドショーを親SWFの中にあるムービークリップの中に入れる(作成する)必要がでてきてしまいました。
親SWFのasレイヤーに上のスクリプトを書き、
スクリプトの_rootのところを_root.mcの名前 に変更してみたのですが、
表示されませんでした。
たびたびの質問で申し訳ございませんが、知恵をかして下さい!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- その他(パソコン・スマホ・電化製品) pthonのframeに演算結果(数値)を表示したい 1 2023/06/05 22:08
- UNIX・Linux マスターブートレコード方式のbiosを使ったシステムでインストールされたlinuxで/dev/sda 1 2023/05/13 21:23
- Visual Basic(VBA) モードレスでユーザーフォームが開け(表示)ません。 4 2022/09/09 11:05
- UNIX・Linux メールアドレスにホスト名が入らないようにする設定 2 2022/06/23 21:06
- SSL・HTTPS ルート証明書の有効期限がだいぶ前なのに時計が進んでいますと表示され今日になってみれなくなったサイト 1 2022/10/26 20:35
- Android(アンドロイド) Androidスマホの時刻の自動同期の頻度を短くしたい 4 2022/12/02 17:29
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- UNIX・Linux Kali Linuxで起動できない - Minimal BASH Like Line Editing 1 2022/06/03 13:14
- UNIX・Linux ファイル・フォルダーの削除方法 2 2022/05/19 14:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AS2でカスタムカーサーを使って...
-
DirectXでの読み込みについて
-
アセンブリ言語のcasl2について...
-
テキストボックスの中身をリセ...
-
photoshopで書いた四角の枠の中...
-
【ExcelVBA】ファイル名をセル...
-
【VB.NET】別Formのボタンが押...
-
外国の幸福のシンボル
-
VB6.0 でメニューを作りたいん...
-
場面が移り変わるときかっこよ...
-
RPG(AS400)の本、サイトってあ...
-
vbs 割算のあまり
-
ウインドウハンドルとインスタ...
-
ボタンのカウント数でムービー...
-
ムービークリップの中のボタン...
-
accessの検索について質問です...
-
Flashで、ナビゲーションがマウ...
-
アクセスのフォームから検索を...
-
FLASHで文字入力て判定させる
-
FLASHで使用するマスクやイラス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
AS2でカスタムカーサーを使って...
-
function
-
360度パノラマ写真をループでき...
-
[actionscript] XMLを使ってス...
-
多分探索木の高さを測定する関...
-
MovieClip(root)について
-
ドラッグ&ドロップ
-
AS3でのNowLoading処理について
-
Flash AS2でMCをDragしたいです
-
Flash professional CS5を使っ...
-
ドラッグで、mcの大きさを等倍...
-
ドラッグをさせない方法は?
-
マウスアウトで非表示にする
-
AS2をAS3にしたい
-
startDragの範囲
-
FLASHフォトアルバムの画像を外...
-
ムービークリップがマウスカー...
-
1フレームにActionを設定した...
-
attachMovieについて(長文)
-
空のムービークリップを作成し...
おすすめ情報