- 締切済み
AS2.0 XML 画像を全部読み込むまでローディング表示にしたい
はじめまして、アクションスクリプト2.0を勉強中の身であります。 今回どうしてもわからないものが出てきてしまったため、ご質問をさせていただきました。 xmlをつかってflash8のスライドショーのメニューを作っているのですが、 このスクリプトだと、一回一回画像を取りにいくようになります。 これを最初にすべて読み込むまで次の動作を待ちたいのですが、どのように修正すればいいでしょうか? よろしくお願いいたします。 // ON MENU BUTTON PRESS FUNCTION // Identifies target image to load once menu item is pressed _global.clickAction = function(obj) { clearInterval(timeInterval); menu_mc["bttn_mc"+ID].select_mc.gotoAndPlay('off'); ID = obj.ID; imageLoad(); }; // AUTOMATED BANNER FUNCTION bannerTimer = function () { clearInterval(timeInterval); menu_mc["bttn_mc"+ID].select_mc.gotoAndPlay('off'); ID += 1; if (ID == total) { ID = 0; } imageLoad(); }; // CSS STYLESHEET var styles = new TextField.StyleSheet(); // Set hyperlink colour and decoration here styles.setStyle("a:link", {color:'#00FFFF', textDecoration:'none'}); styles.setStyle("a:hover", {color:'#00FFFF', textDecoration:'underline'}); txt_mc.txt.html = true; txt_mc.txt.styleSheet = styles; // BUILD BANNER DISPLAY construct = function () { for (i=0; i<total; i++) { //Vars from XML Image[i] = xmlNode.childNodes[i].attributes.Image; Delay[i] = xmlNode.childNodes[i].attributes.Delay; Link[i] = xmlNode.childNodes[i].attributes.Link; Headline[i] = xmlNode.childNodes[i].attributes.Headline; Blurb[i] = xmlNode.childNodes[i].attributes.Blurb; Copy[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue; //Build menu メニューオブジェクトの生成 menu_mc.bttn_mc.duplicateMovieClip("bttn_mc"+i, i); menu_mc["bttn_mc"+i]._y = menu_mc.bttn_mc._height*i; menu_mc["bttn_mc"+i].ID = i; menu_mc["bttn_mc"+i].headline_txt.text = Headline[i]; menu_mc["bttn_mc"+i].blurb_txt.text = Blurb[i]; //Build image holder イメージオブジェクトの生成 holder_mc.holder.duplicateMovieClip("holder"+i, i); holder_mc["holder"+i]._y = imageHeight*i; holder_mc["holder"+i].isLoaded = false; } }; //CALL FUNCTION TO LOAD IMAGE imageLoad = function () { clearInterval(timeInterval); txt_mc.txt.htmlText = Copy[ID]; txt_mc.headline_txt.text = Headline[ID]; if (holder_mc["holder"+ID].isLoaded == false) { loadMovie(Image[ID], holder_mc["holder"+ID]); } else { holder_mc["holder"+ID].gotoAndPlay(1); timeInterval = setInterval(bannerTimer, Delay[ID]); menu_mc["bttn_mc"+ID].select_mc.gotoAndPlay('on'); } }; //CALL FUNCTION ONCE IMAGE HAS LOADED imageLoaded = function (obj) { obj.isLoaded = true; if (obj._name == "holder"+ID) { clearInterval(timeInterval); timeInterval = setInterval(bannerTimer, Delay[ID]); menu_mc["bttn_mc"+ID].select_mc.gotoAndPlay('on'); txt_mc.txt.htmlText = Copy[ID]; } }; this.onEnterFrame = function() { //Apply tweening to menu and banners destX = -ID*imageHeight; holder_mc._y += (destX-holder_mc._y)/scrollTween; txt_mc._alpha += (destAlpha-txt_mc._alpha)/alphaTween; /* if (menu_mc._height>boundryHeight) { menu_mc._y += (destY-menu_mc._y)/scrollTween; if (menu_mc._y>0) { menu_mc._y = 0; } else if (menu_mc._y<(boundryHeight-menu_mc._height)) { menu_mc._y = boundryHeight-menu_mc._height; } } */ // Info text display if (holder_mc["holder"+ID].isLoaded == true) { if (_xmouse>0 && _xmouse<imageWidth && _ymouse>0 && _ymouse<imageHeight) { destAlpha = 100; } else { destAlpha = 0; } } else { destAlpha = 0; } txt_mc.txt._height = txt_mc.txt.textHeight+5; txt_mc.bg._height = txt_mc.txt._height+20+txt_mc.headline_txt.textHeight+5; txt_mc._y = imageHeight-txt_mc._height; };
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- tkmkok
- ベストアンサー率66% (2/3)