[actionscript] XMLを使ってスライドショーを作成しましたが・・・
こんにちは。
FLASHアクションスクリプト初心者です。
XMLを使ってスライドショーを作成した外部SWFを
メインのSWFに読み込ませたいのですが、うまくいかなくて困っています。
構成としては、メインとなるSWFファイルがあり、
そこに外部にある各ページのSWFファイルを読み込んでいます。
現在、メインのSWFファイルに読み込ませるページAのSWFファイルを作成ました。
その外部SWFファイルには、こちらのサイト
(http://www.oman3d.com/tutorials/flash/slideshow/index.php)
を参考にして、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);
}
宜しくお願いいたします!
お礼
お返事ありがとうございます。 確かにおっしゃるとおりですね…。 もう少し全般を出せるようになってから もう一度質問させていただきたいと思います。 ありがとうございました。