- ベストアンサー
XMLから画像URLを呼び込むソースの仕組みと解説
- このソースではXMLから画像URLを呼び込む仕組みについて解説します。
- まず、XMLデータをロードし、ノードのトータル数を取得します。
- カウント用変数を使って、画像を順番に表示し、クリックするとリンク先に移動します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- 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
- onload時の変数の有効範囲について
こんばんは。よろしくお願いいたします。 AS2,以下のスクリプトについて import mx.xpath.XPathAPI; abc=new Array(); myXML= new XML(); myXML.ignoreWhite = true; myXML.onLoad =function (){ var XPathString:String = "/data/abc/*"; //条件を満たすノードを配列に格納 abc = XPathAPI.selectNodeList(this.firstChild, XPathString); textarea1.text=abc[0]; //(1) } myXML.load("data.xml"); textarea2.text=abc[0]; //(2) 条件を満たすノードを配列abcに格納したいのですが、(1)のabcには対象の ノードが格納されるのに対して、(2)のabcには何も格納されていません。 (2)のabcでも対象のノードを格納するにはどのようにしたらよいのでしょうか?
- ベストアンサー
- Flash
- 配列での管理について
外部JPGファイル名が記述してあるXMLファイルを読み込んで,サムネイルインスタンスを生成したいと思います。 構想としては 1、読み込んだXMLファイルのノードの数(変数名:menu_num)を参照。 2、ノード数の分attachMovieメソッドでシンボル(識別子:thum-menu)の生成を繰り返す 3、生成したシンボルに含まれるムービークリップインスタンス(インスタンス名:jpg_mc)にloadMovieメソッドで外部JPGをロードする 途中まで作ったフレームアクションが下記の通りです。 // 1 System.useCodepage = true; var obj_xml:XML = new XML(); obj_xml.ignoreWhite = true; obj_xml.load("sample.xml"); obj_xml.onLoad = start_me; function start_me(success:Boolean):Void { if (success == true) { var nodeList:Array = obj_xml.firstChild.childNodes; var menu_num:Number = nodeList.length; // 2. インスタンスの生成と設定 for (var i:Number = 1; i<=menu_num; i++) { var menu_str:String = "thum-menu0"+i; _root.attachMovie("thum-menu", menu_str, i); trace(i); これ以降(行程2)で生成した複数のシンボルを配列で管理したいのですが、なかなかうまくいきません。どなたかおしえていただければ幸いです。 ちなみにXMLファイルのノード数の取得はちゃんとできてるようです。 使用ソフトは Flash 8 で ActionScript2.0 です。
- 締切済み
- Flash
- ニュースティッカーを作る
初めて質問させていただきます。 外部xmlを読み込んでニュースティッカーを作りたいのです。 ・タイトルが右から流れてある時点でストップ、そして左へ消えていく。 ・タイトルにその記事へのリンクを貼る。 タイトルを表示させることは出来たのですが、動きとリンクを貼ることができません。 WinXP,FlashMX で作業をしております。 どなたか教えていただけないでしょうか? よろしくお願い致します。 ・外部xmlファイル test.xml <?xml version="1.0" encoding="Shift_JIS" ?> - <story> - <item> <title>NEWSその1</title> <description>記事の内容</description> <link>http://www.news01.com</link> </item> - <item> <title>NEWSその2</title> <description>記事の内容</description> <link>http://www.news02.com</link> </item> - <item> <title>NEWSその3</title> <description>記事の内容</description> <link>http://www.news03.com</link> </item> - <item> <title>NEWSその4</title> <description>記事の内容</description> <link>http://www.news04.com</link> </item> </story> ステージにダイナミックテキストを配置(インスタンス名:news_txt) ・rootの第一フレーム System.useCodepage = true; news_txt.html = true; my_xml = new XML(); my_xml.ignoreWhite = true; // 外部 XML ロード完了時の処理 my_xml.onLoad = function(success) { // ロードに成功すれば if (success) { // rootNode に my_xml.firstChild を設定 rootNode = my_xml.firstChild; // ニュースのエレメント数を取得 nodeLen = rootNode.childNodes.length; news_txt.htmlText = rootNode.childNodes[0].firstChild; myID = setInterval(changeTopic,5000); } else { trace("Error loading XML."); } }; // インスタンス my_xml に外部XML をロード my_xml.load("test.xml"); var cnt = 0; function changeTopic() { if(cnt<nodeLen-1){ cnt++; }else { cnt=0; } // news_txt.htmlText = rootNode.childNodes[cnt].firstChild; }
- ベストアンサー
- Flash
- Flash ActionScript 2.0でアドバイスをお願いいたし
Flash ActionScript 2.0でアドバイスをお願いいたします。 下記のような記述で、外部フォルダ内の画像(連番のファイル名)を読み込み表示させています。画像枚数は変動しますのでこのような形にしました。 そこで問題なのが、リンク先の指定です。 XMLを読み込んでファイル名「1」の画像にはID「1」のURLがクリックしたら開くようにしたいのですが、どのように設定すればいいのかわかりません; 素人なもので、どのように記述すれば良いかご教授いただければ幸いです。 どうぞよろしくお願いいたします。 ----------------------------- var n = 0; var s = 0; _forcusrect = false; load_mc = createEmptyMovieClip("load_mc", -1); var mcLoader:MovieClipLoader = new MovieClipLoader(); var oListener = new Object(); function searchTotal() { s++; $jpg = "img_top/p"+s+".jpg"; mcLoader.loadClip($jpg, load_mc); load_mc._alpha = 0; oListener.onLoadError = function() { total = s; clearInterval(sID); n = 0; autoExchange(); }; mcLoader.addListener(oListener); } function p_load(n) { $jpg = "img_top/p"+n+".jpg"; mcLoader.loadClip($jpg, load_mc); p_direction(n); load_mc._x = 0; load_mc._y = 0; load_mc._alpha = 0; _root.onEnterFrame = function() { load_mc._alpha += (180-load_mc._alpha)/30; current_num.text = n; total_num.text = total-1; } } function autoExchange() { if (n>=total-1) { n = 1; p_load(n); } else { n++; p_load(n); } } sID = setInterval(searchTotal, 70); pID = setInterval(autoExchange, 4000); myComboBoxListener = new Object(); myComboBoxListener.change = function() { clearInterval(pID); if (flag!==1) { pID = setInterval(autoExchange, myCombo.value*1000); } }; myCombo.addEventListener("change", myComboBoxListener); ----------------------------------------- XML ----------------------------------------- <?xml version="1.0" encoding="Shift_JIS"?> <urllist> <anchor id="1" url="http://www.yahoo.co.jp" target="_self" /> <anchor id="2" url="http://www.google.co.jp/" target="_self" /> <anchor id="3" url="http://www.goo.ne.jp/" target="_self" /> </urllist>
- ベストアンサー
- Flash
- XMLファイルの読み込みとデータの引き出し
すみません。 徹夜しても答えがわからないのですが、 XMLからSWFの読み込みなのですが 下記スクリプトの間違いは何でしょうか? FLASH8.0 AS2 で作成してます。 //XMLファイルのXMLオブジェクトへの格納 myobjXML = new XML(); myobjXML.ignoreWhite = true; //XMLファイルの読み込み myobjXML.load("article.xml"); //XMLの情報格納 var imgNum = _root.myobjXML.childNodes[0].childNodes[0].nodeValue; if (imgNum == 1) { _root.nextbtn_mc._visible = false; _root.nextbtnlarge_mc._visible = false; } //写真数表示 this.imgnumtxt.text = imgNum; this.imgnumtxt2.text = imgNum;
- 締切済み
- Flash
- 変数の戻り値を作りたい
戻り値を作ってみてるのですが、うまくいきません。 画像6枚入れたとして、ボタンに on (release) { cnt = cnt-2; } を作りましたが、1枚目のマイナスの値がないため、バグります。 ※多分小数点になりSTOP そこで、ボタンを足し算で合計にしてみたら、totalを超えると0に戻される為、1枚目にしか戻りません。 ifで制御しようと、ひとまず if (cnt>total-1) { cnt=total-1; } を追加したら、最初から常に6枚目が表示されてしまいます。 なぜ cnt>total-1 の方が勝ってしまうのでしょうか? ======================================================== cnt = -1; _root.total = this.childNodes[0].childNodes.length; if (cnt<total-1) { cnt++; } else { cnt = 0; } ========================================================
- ベストアンサー
- 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
- [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); } 宜しくお願いいたします!
- 締切済み
- Flash
- Loadingの作成
早速ですが、ローディングバーを作成中です。 MovieClipLoaderを使用 12フレーム □□ 1フレームアクション myList = new Object(); myList.onLoadProgress = function( target_mc, lopadedBytes, totalBytes ) { trace("Now Loading."+":"+loadedBytes+"/"+totalBytes); } myList.onLoadError = function(){ trace("Loadエラー"); } myList.onLoadStart = function() { trace( "load開始" ); } myList.onLoadComplete = function() { trace( "load完了" ); nextFrame(); }; var my_mcl:MovieClipLoader = new MovieClipLoader(); my_mcl.addListener( myList ); my_mcl.loadClip( "image.jpg", this.loader_mc ); stop(); 2フレームに loader_mcを配置。 問題。 一向に動作しません。。。ファイルエラーも出なければプレビューしても動作せず。あとloader_mcのサイズが0x,0yなんですが、画像サイズに自動で取得してくれるんでしょうか?この辺り、クラスがどう動いていのか不明なので良く分かりません。 環境は、XP・FLASH8です。
- 締切済み
- Flash