• 締切済み

FlashPlayer6から8の仕様の変更について

Flash8,WinXpにてオーサリングしております。 質問です。 下記のスクリプトをFlashPlayer6でパブリッシュすると動作するのですが、FlashPlayer8でパブリッシュすると動作しません。どのソースが使用の変更対象となっているのでしょうか。Macromediaのサイトで調べましたが、見つけ出す事ができませんでした。どうぞ宜しくお願い致します。 System.useCodepage = true; myXML = new XML (); myXML.ignoreWhite = true; myXML.load ("photodata.xml"); v_titleArray = new Array (); v_xOffset = myBase._x; myXML.onLoad = function (loaded) { if (loaded) { v_rootNode = myXML.firstChild; v_num = v_rootNode.childNodes.length; v_currentPhoto = v_rootNode.firstChild; v_currentNumber = 0; for (i=0; i < v_num; i++) { v_loadURL = v_currentPhoto.childNodes[1].firstChild; v_titleArray.push (v_currentPhoto.childNodes[0].firstChild); v_currentPhoto = v_currentPhoto.nextSibling; f_makeAndLoad (i, v_loadURL); } } else { trace ("error occured"); } }; function f_makeAndLoad (num, path) { myBase.myLoad.duplicateMovieClip ("myLoad"+num, num+1); v_name = eval("myBase.myLoad"+num); v_name._x = 110 * num; v_name._y = 0; v_name.loadMovie (path); myBase.myLoad._visible = false; } myNext.onRelease = function () { if (v_currentNumber < v_num-1) { v_currentNumber+=1; } }; myPrev.onRelease = function () { if (v_currentNumber > 0) { v_currentNumber-= 1; } }; myBase.onEnterFrame = function () { this._x += ((-110*v_currentNumber + v_xOffset)-this._x) / 4; v_title = v_titleArray[v_currentNumber]; _global.media_title=v_title; };

みんなの回答

  • perse
  • ベストアンサー率74% (113/152)
回答No.1

Player7ではどうなのでしょうか。 デバッグで一行ずつ見ていけば、原因を絞り込むことが出来ると思います。

sato777
質問者

お礼

お返事ありがとうございます。 インスタンスをターゲットとできたFP6と インスタンス名をターゲットとするFP7以降の 違いでした。 昔はインスタンスでもターゲットできたんですよね。 どうも有難う御座いました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • FLASHでXMLを読み込んだときに読み込むまでにundefindがでてしまいます。

    flashで外部のxmlを読み込んでいるのですが、読み込むまでの間にテキストフィールド(v_title)にundefindがでてしまいます。原因がわかりません(><)どなたかぜひ教えてくださいませ。 myXML = new XML (); myXML.ignoreWhite = true; myXML.load ("blog/photodata.xml"); v_titleArray = new Array (); v_xOffset = myBase._x; myXML.onLoad = function (loaded) { if (loaded) { v_rootNode = myXML.firstChild; v_num = v_rootNode.childNodes.length; v_currentPhoto = v_rootNode.firstChild; v_currentNumber = 0; for (i=0; i < v_num; i++) { v_loadURL = v_currentPhoto.childNodes[1].firstChild; v_titleArray.push (v_currentPhoto.childNodes[0].firstChild); v_currentPhoto = v_currentPhoto.nextSibling; f_makeAndLoad (i, v_loadURL); } } else { trace ("error occured"); } }; function f_makeAndLoad (num, path) { myBase.myLoad.duplicateMovieClip ("myLoad"+num, num+1); v_name = eval("myBase.myLoad"+num); v_name._x = 156 * num; v_name._y = 0; v_name.loadMovie (path); myBase.myLoad._visible = false; } myNext.onRelease = function () { _parent._parent._parent.sound1.start(); if (v_currentNumber < v_num-1) { v_currentNumber+=1; }else{ _parent.nextFrame(); } }; myBase.onEnterFrame = function () { this._x += ((-156*v_currentNumber + v_xOffset)-this._x) ; v_title = (unescape(v_titleArray[v_currentNumber])); };

    • ベストアンサー
    • Flash
  • xmlから作ったサムネールを移動させる

    こんにちは。 flashを勉強中です。XMLからサムネールの一覧を作ろうとして、 なんとかステージに配置するのはできたのですが、サムネールの 数が多いので、マウスの位置によって垂直に移動させる様なことを したいのですが、どうして動かせばよいのかがわからずに困って おります。 アクションスクリプトは以下の様にしております。 このサムネールをMCに埋め込む方法だけでもお教え頂ければ 幸いです。よろしくお願いします。 ----------------------------------------------- myXML = new XML (); myXML.ignoreWhite = true; myXML.load ("data.xml"); myXML.onLoad = function (loaded) {    if (loaded) {      v_rootNode = myXML.firstChild;      v_num = v_rootNode.childNodes.length;      _root.total = v_num;      v_currentPhoto = v_rootNode.firstChild;      v_currentNumber = 0;       for (i=0; i < v_num; i++) {        duplicateMovieClip (icon , "mc_icon"+i, i+1);        path = v_currentPhoto.childNodes[1].firstChild;         _root["mc_icon"+i]._x = 30;         _root["mc_icon"+i]._y = 65 * i + 30;         _root["mc_icon"+i].picture.LoadMovie(path);         _root["mc_icon"+i].title = v_currentPhoto.childNodes[0].firstChild;        v_currentPhoto = v_currentPhoto.nextSibling;        }     } else {      trace ("error occured");   } };

    • ベストアンサー
    • Flash
  • XMLから読み込んだデータを数値に変換する方法

    こんにちは。 XMLからデータを読み取ってそのpositionの値を元に 画像を動かそうとしています。 ただ、読み込んだ数値が文字と判断されていて、 numberで変換しても、数値にならずに、動かすことが できません。 申し訳ありませんが、お教え頂ければ幸いです。 よろしくお願いします。 -----script------------------------------------------- myXML = new XML (); myXML.ignoreWhite = true; myXML.load ("data.xml"); v_positionxArray = new Array (); v_positionyArray = new Array (); myXML.onLoad = function (loaded) { if (loaded) { v_rootNode = myXML.firstChild; v_num = v_rootNode.childNodes.length; v_currentPhoto = v_rootNode.firstChild; v_currentNumber = 0; for (i=0; i < v_num; i++) { v_positionxArray.push (v_currentPhoto.childNodes[0].firstChild); v_positionyArray.push (v_currentPhoto.childNodes[1].firstChild); v_currentPhoto = v_currentPhoto.nextSibling; } } else { trace ("error occured"); } }; btn_test.onRelease = function () { if (v_currentNumber < v_num-1) { v_currentNumber+=1; picture_x = Number(v_positionxArray[v_currentNumber]); picture_y = Number(v_positionyArray[v_currentNumber]); } }; picture.onEnterFrame = function () { this._x += picture_x; this._y += picture_y; } -----xml data-------------------------------------- <data> <member> <positionx>-591</positionx> <positiony>-130.7</positiony> </member> </data>

    • ベストアンサー
    • Flash
  • XMLを使わずに同様の事をしたいのですが…

    某掲示板に同様の質問をしたのですが、本当に困っておりどうにもならない状態です。どうぞ、御教授お願い致しますm(__)m 速習WEbテクニックFlashMX実例サンプル60にある内容からです。 ムービーの再生が始まると同時に、外部のJPG画像ファイルのURLが書き込まれているXMLファイルをロードし、XMLのデータをもとにJPGファイルの数を割り出し、その分だけ読み込み用のムービークリップを複製、表示するというものです。 ソースは次の通りです。これをXMLファイルを使用せず、loadMovieを使用し同様の事をしたいと思っています。どなたかよろしくお願い致します。 myXML = new XML (); myXML.ignoreWhite = true; myXML.load ("photodata.xml"); v_titleArray = new Array (); v_xOffset = myBase._x; myXML.onLoad = function (loaded) { if (loaded) { v_rootNode = myXML.firstChild; v_num = v_rootNode.childNodes.length; v_currentPhoto = v_rootNode.firstChild; v_currentNumber = 0; for (i=0; i < v_num; i++) { v_loadURL = v_currentPhoto.childNodes[1].firstChild; v_titleArray.push (v_currentPhoto.childNodes[0].firstChild); v_currentPhoto = v_currentPhoto.nextSibling; f_makeAndLoad (i, v_loadURL); } } else { trace ("error occured"); } }; XMLファイルのソースは次の通りです。 - <photo> - <picture> <file>photo1.jpg</file> </picture> - <picture> <file>photo2.jpg</file> </picture> - <picture> <file>photo3.jpg</file> </picture> - <picture> <file>photo4.jpg</file> </picture> - <picture> <file>photo5.jpg</file> </picture> </photo>

  • 外部画像を読込んで個別にアクションを設定したい。

    XMLを読込み、XML内に書かれたURL先の画像(複数枚)を取込んでサムネイル表示させています。参考書を見本にしてここまでは出来ました。 更に、読込んだ画像をクリックするとその画像に対する記事を別ウィンドウで開きたいのですが可能でしょうか? 具体的に言いますと、次の■■■部分を画像毎に設定することは可能でしょうか? on (release) { getURL("JavaScript:newWin(\"■■■\",\"sub\");"); } ●XMLの内容が下記であった場合 1.jpgをクリックすると1.htmlが開き、2.jpgをクリックすると2.htmlが開くといった感じです。 <pho>  <pic>   <fle>1.jpg</fle>   <toU>1.html</toU>  </pic>  <pic>   <fle>2.jpg</fle>   <toU>2.html</toU>  </pic> </pho> ■ActionScriptの内容です。(全部書くと長くなってしまうので一部省略してます) myXML = new XML (); myXML.ignoreWhite = true; myXML.load ("cpnimgs.xml"); v_xset = myBase._y; myXML.onLoad = function (loaded) { if (loaded) { v_rNode = myXML.firstChild; v_num = v_rNode.childNodes.length; v_cPhoto = v_rNode.firstChild; for (i=0; i < v_num; i++) { v_loadURL = v_cPhoto.childNodes[0].firstChild; v_cPhoto = v_cPhoto.nextSibling; f_makeimg (i, v_loadURL); } } else { trace ("error occured"); } }; function f_makeimg (num, path) { myBase.myLoad.duplicateMovieClip ("myLoad"+num, num+1); v_name = eval("myBase.myLoad"+num); z_Num = Math.floor(num / 4) ; v_name._x = (num - (z_Num *4)) * 123; v_name._y = z_Num * 175; v_name.loadMovie (path); myBase.myLoad._visible = false; }

  • このソースで、仕組みについて教えてください。

    現在、スクリプトを勉強しているんですが、XMLから画像URLを呼び込むソースで調べ方が分からない箇所がありますので、どなたか解説して頂けないでしょうか? ●下記はどういった式になるのでしょうか? _root.total = this.childNodes[0].childNodes.length; ※totalの時 = このチルドノード[0]の子ノードを調べる? (自分の解釈です。この[0]はなんなのでしょうか?) ●例えばトータルの最後尾から逆再生させるにはどんな式が必要でしょうか? ※mainasu = cnt-1; (間違ってるとはおもいますが、内容をまだ反映できないので確認ができません) ●初期値 // ストップ stop(); // カウント用変数 cnt の初期値を設定 cnt = -1; // XMLインスタンスの作成 myXML = new XML(); // 余分な空白などを削除 myXML.ignoreWhite = true; // XMLデータロード時の動作定義 myXML.onLoad = function() { // 変数 total にノードのトータル数を取得 _root.total = this.childNodes[0].childNodes.length; // フレーム2でストップ _root.gotoAndStop(2); }; // 外部 XML ファイルのロード myXML.load("my_data.xml"); ●2フレーム // カウント用変数がノード数-1より小さいとき if (cnt<total-1) { // カウントを 1 加算 cnt++; } else { // それ以外は 0 に戻す cnt = 0; } // テキストフィールド 「number_txt」に 番号を表示 _root.number_txt.text = myXML.childNodes[0].childNodes[cnt].firstChild.nodeValue; // MovieClipLoaderクラスのインスタンスを作成 myMCL = new MovieClipLoader(); // ロード監視用のインスタンスを作成 myObj = new Object(); // JPEG ロード完了時 myObj.onLoadInit = function(target_mc) { // load_mc にリンクを設定 target_mc.onRelease = function() { getURL(myXML.childNodes[0].childNodes[cnt].attributes.linkURL, "_blank"); }; // 再生開始 _root.play(); }; // myMCL のリスナーとして myObj を登録 myMCL.addListener(myObj); // JPEG をロード myMCL.loadClip(myXML.childNodes[0].childNodes[cnt].attributes.jpegURL, load_mc);

    • ベストアンサー
    • Flash
  • attachMovie で動的にボタン生成する方法

    以下のXMLファイルをロードして、 ------------------------------------- <?xml version='1.0'?> <data> <groop name="グループ1"> <series name="シリーズ1"> <color>赤</color><type>LL</type> </series> </groop> <groop name="グループ2"> <series name="シリーズ2"> <color>青</color><type>LL</type> </series> <series name="シリーズ3"> <color>緑</color><type>LL</type> <color>緑</color><type>LL</type> </series> </groop> </data> ------------------------------------- グループの数だけムービークリップを配置して、 次にその配置したムービークリップのマウスオーバーの際に、 シリーズの数だけムービークリップを配置して、 次にその配置したムービークリップのマウスオーバー時に、 colorの数だけのボタンを表示する、という事を実現したいのですが、どなたかアドバイスお願いできませんでしょうか。 xmlファイルのロードは成功して、次にグループの数だけムービークリップを配置する所まで成功したのですが、そこからどうすれば良いのかわからず困っています。 状況としては、bt_groop_mc と bt_series_mc を作成して、シリーズの数だけボタンを生成したいのですが、どうも切り口がつかめずこまっています。 初心者ですが、どなたかアドバイスお願いできないでしょうか。 function prev() { rootNode = this.myXML.firstChild; for (var i = 0; i<rootNode.childNodes.length; i++) { var itemNode = rootNode.childNodes[i]; //gradeノードのMC配置 var attach_mc01 = this.attachMovie("bt_groop_mc", "bt_groop_mc"+i, i); attach_mc01._x = 0; attach_mc01._y = attach_mc01._height*i; this["bt_groop_mc"+i]["bt_txt"] = itemNode.attributes.gradeName; //seriesノードのMC配置(※ここから分かりません) for (var z = 0; z<itemNode.childNodes.length; z++) { var propNode = itemNode.childNodes[z]; var attach_mc02 = this.attachMovie("bt_series_mc", "bt_series_mc"+z, 1000+z); attach_mc02._x = 100; attach_mc02._y = attach_mc02._height*i; } } gotoAndPlay("success"); }

  • XML読み込みのテキストが表示されません

    FLASHで簡単な写真のスライドショーを作っています。 いろいろな例を参考に下記の段階まで作業を進めましたが、イメージは表示されたものの、どうしてもXMLからのテキストが読み込めず困っています。いろいろと調べてはみましたが、初心者ゆえ一人では解決できそうにありません。どなたか目を通して間違いを指摘していただけませんでしょうか?よろしくお願いします。 XMLファイルの記述: <?xml version="1.0" encoding="UTF-8"?> <Slides> <slideNode jpegURL="photos/photo1.jpg">#1 ABCDE</slideNode> <slideNode jpegURL="photos/photo2.jpg">#2 ABCDE</slideNode> <slideNode jpegURL="photos/photo3.jpg">#3 ABCDE</slideNode> </Slides> </xml> ActionScriptの記述: myXML.load("path_to_xml/data.xml"); var slides_xml = new XML(); slides_xml.load("slides.xml"); slides_xml.ignoreWhite = true; slides_xml.onLoad = startSlideShow; function startSlideShow(success) { if (success == true) { rootNode = slides_xml.firstChild; totalSlides = rootNode.childNodes.length; firstSlideNode = rootNode.firstChild; currentSlideNode = firstSlideNode; currentIndex = 1; updateSlide(firstSlideNode); } } function updateSlide(newSlideNode) { imagePath = newSlideNode.attributes.jpegURL; slideText = newSlideNode.firstChild.nodeValue; loadMovie(imagePath, targetClip); }

  • FlashとXMLとの連動

    初心者ですがよろしくお願いします。 FlashとXMLとを連動させたフォトギャラリーを作成していますが うまく読み込みできずnullになります。 Flash内の機能としては、 ・自動スライド機能 ・画像をクリックするとXML内のURLへジャンプ を入れたいと思ってます。 下記内容を御覧頂きご指摘お願いします。 XML内 <Slides>  <slide>  <jpegURL>images/image1.jpg</jpegURL>   <product_name>名前</product_name>   <product_url>URL</product_url>  </slide>  <slide>  <jpegURL>images/image2.jpg</jpegURL>   <product_name>名前2</product_name>   <product_url>URL2</product_url>  </slide> </Slides> Flash内ActipnScript slides_xml = new XML(); slides_xml.onLoad = startSlideShow; slides_xml.load("slides.xml"); slides_xml.ignoreWhite = true; //自動スライドを定義 function nextSlideload(){ nextSlideNode = currentSlideNode.nextSibling; if (nextSlideNode == null) { break; } else { currentIndex++; updateSlide(nextSlideNode); currentSlideNode = nextSlideNode; } } // Show the first slide and intialize variables function startSlideShow(success) { if (success == true) { rootNode = slides_xml.firstChild; totalSlides = rootNode.childNodes.length; firstSlideNode = rootNode.firstChild; currentSlideNode = firstSlideNode; currentIndex = 1; updateSlide(firstSlideNode); setInterval(nextSlideload,3500) } } function nextSlideload(){ nextSlideNode = currentSlideNode.nextSibling; if (nextSlideNode == null) { break; } else { currentIndex++; updateSlide(nextSlideNode); currentSlideNode = nextSlideNode; } }; // Updates the current slide with new image and text function updateSlide(newSlideNode) { imagePath = newSlideNode.attributes.jpegURL; slideText = newSlideNode.firstChild.nodeValue; loadMovie(imagePath, targetClip); } // Event handler for 'Next slide' button next_btn.onRelease = function() { nextSlideNode = currentSlideNode.nextSibling; if (nextSlideNode == null) { break; } else { currentIndex++; updateSlide(nextSlideNode); currentSlideNode = nextSlideNode; } }; // Event handler for 'Previous slide' button back_btn.onRelease = function() { previousSlideNode = currentSlideNode.previousSibling; if (previousSlideNode == null) { break; } else { currentIndex--; currentSlideNode = previousSlideNode; updateSlide(previousSlideNode); } };

  • XMLを利用したFLASH画像ギャラリーでローディングさせたい

    環境:FLASH8 XMLを利用したFLASH画像ギャラリー(スライドショー)を 制作しています。 スクリプトはあるFLASHの勉強サイトを参考にさせていただきました。 機能としては、スライドショーが自動再生から始まり アルファのフェードが入りながら画像の数だけループして、 自動再生の一時停止、次ボタンと戻るボタンでスライド内を 移動できるようになっています。 ここまではいいのですが、回線が遅い環境でみると 6枚目くらいから、画像の読み込みがついてこれなくなって 枚数カウントだけが進み、画像が黒のまま表示されなく なってしまいます。 改善したいポイントとしては、 最初の段階でローディング画面(前処理)を設けて、ある程度 読み込みが完了した時点で自動スライド開始としたいと 思っています。 もしくは、全て画像を読み込み終えてからスライド開始。 これでメモリ不足や回線スピード不足が解消されれば 今回の問題はクリアでるのではないかと考えています。 画像は50枚前後の少し大きめの画像を使用しています。 どうか、お知恵を貸していだだければと思います。 ★使用スクリプト photos_xml = new XML(); photos_xml.load("photo.xml"); photos_xml.ignoreWhite = true; photos_xml.onLoad = SlideShow; function SlideShow(success) { if (success) { rootNode = photos_xml.firstChild; Slides_num = rootNode.childNodes.length; first_Slide = rootNode.firstChild; last_Slide = rootNode.lastChild; currentSlide = first_Slide; currentNo = 1; passSlide(first_Slide); ID = setInterval(autoExchange, 5000); } } function passSlide(newSlide) { image = newSlide.attributes.image; imageWidth = newSlide.attributes.p_width; imageHeight = newSlide.attributes.p_height; slideTitle = newSlide.firstChild.nodeValue; screen._alpha = 0; delay = getTimer(); _root.onEnterFrame = function() { if (getTimer()>delay+200) { screen._alpha += (100-screen._alpha)/30; screen._width = imageWidth; screen._height = imageHeight; screen._x = 305-imageWidth/2; screen._y = 220-imageHeight/2; } frame._x += (305-imageWidth/2-frame._x)/3; frame._y += (220-imageHeight/2-frame._y)/3; frame._width += 2+(imageWidth-frame._width)/3; frame._height += 2+(imageHeight-frame._height)/3; }; loadMovie(image, screen); } function autoExchange(nextSlide) { nextSlide = currentSlide.nextSibling; if (nextSlide == null) { passSlide(first_Slide); currentSlide = first_Slide; currentNo = 1; } else { currentNo++; passSlide(nextSlide); currentSlide = nextSlide; } } auto_on.onRelease = function() { ID = setInterval(autoExchange, 4000); mx.behaviors.DepthControl.sendBackward(this); }; auto_off.onRelease = function() { clearInterval(ID); mx.behaviors.DepthControl.sendBackward(this); }; next_btn.onRelease = function() { nextSlide = currentSlide.nextSibling; if (nextSlide == null) { passSlide(first_Slide); currentSlide = first_Slide; currentNo = 1; } else { currentNo++; passSlide(nextSlide); currentSlide = nextSlide; } }; back_btn.onRelease = function() { previousSlide = currentSlide.previousSibling; if (previousSlide == null) { passSlide(last_Slide); currentSlide = last_Slide; currentNo = Slides_num; } else { currentNo--; passSlide(previousSlide); currentSlide = previousSlide; } };

    • ベストアンサー
    • Flash