• 締切済み

flashでPHPファイル(実際は該当するxmlを呼ぶ)を読み込む方法について

FLASH(AS2.0)でPHPファイル(実際は該当するxmlを呼ぶ)を読み込むようにするにはどのようにしたらいいのですか? 現状では、ローカルのxmlファイルを読み込むように、 下記のように書いてあります。 var objXML:XML = new XML(); objXML.ignoreWhite = true; objXML.onLoad = function(success:Boolean):Void { if(success) { loadXML(this); } } var menuArray:Array = new Array(); // function loadXML(objXML:XML):Void { var dataNode:XMLNode = objXML.firstChild; var menuNodes:Array = dataNode.childNodes; for(var i:Number = 1; i <= menuNodes.length; i++) { var menuNode:XMLNode = menuNodes[i-1].childNodes; var Name:String = menuNode[0].firstChild.nodeValue; menuArray[i] = { title:Name}; } myVars(menuArray); } objXML.load("sample.xml"); この状態から、外部<http://aaaa/sample.php>URLに アクセスして、PHPファイルを読み込むにはどのようにしたら よいのか全くわかりません。 objXML.load("sample.xml"); 上記の()の中に直接URLを挿入すると、 ローカルでは確認できるのですが、 ファイルをアップすると、まったく読み込めてはいません。 ActionScriptは全くわからないので、ご教授よろしくお願いいたします。

  • Flash
  • 回答数1
  • ありがとう数1

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

> objXML.load("sample.xml"); > > 上記の()の中に直接URLを挿入すると、 > ローカルでは確認できるのですが、 > ファイルをアップすると、まったく読み込めてはいません。 って, それを具体的に書けば,  何某かの XML データをはき出す PHP(sample.php) があって,  その PHP をロードするように    objXML.load("http://aaaa/sample.php");  と書いたけど  SWFをアップしたらSWF上に XML が取得できない。 ということでしょうか? それ, ひょっとして別サイト(別ドメイン)の XML を取ってこようとしていませんか? あえて悪い言い方をすれば, 「他人のデータを盗んで自分のFlash内に表示しようとしている」 ということになるのですが。。。 良い悪いは場合によって変わりますから何とも言えませんが, そういういわゆる「悪いこと」または「悪用に結びつく可能性がある行為」は, デフォルトではできないようになってますよ。 Flash Player の クロスドメインのセキュリティポリシー というものです。 もしそうであれば(もし違うドメインのXMLをロードしようとしている場合は) Googleなどで「クロスドメインポリシーファイル Flash」などと検索してみてください。 http://www.google.co.jp/search?hl=ja&source=hp&q=%E3%82%AF%E3%83%AD%E3%82%B9%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB+Flash

bb_frisk
質問者

補足

ご回答ありがとうございます。 えっと、すみません、うまく書くことが出来なくて・・・・。 同じドメインのPHPファイルを読み込みます。 ただXMLファイルは何枚も内容の違うものがあって、 それから、自分で選択したデータのXMLファイルをSWF上表示させるようにさせたいらしいのです。。 ですので、objXML.loadではダメなのでは? と調べていて思ったのですが、 じゃぁ、どうしたら、 URLを読み込みことが出来るのかがわからなくて・・・ お教え願えませんでしょうか? よろしくお願い致します。

関連するQ&A

  • PHPからFlashにXMLをそのまま渡す方法

    こんにちは PHPでXMLファイルを読み込み、それをそのままFlashに渡しFlash側でXMLをパーサしようと、このように書きました ------------------------------------------------------- (PHP) <?php $url = 'test.xml'; $h = fopen($url, "r"); $result_xml= ''; while(!feof($h)) { $result_xml.= fread($h, 4096); } fclose($h); echo "&data=$result_xml&"; ?> ------------------------------------------------------- (Flash) var xml:XML = new XML(); xml.load("work.php"); xml.onLoad = function(success:Boolean):Void { if (success) { trace(this.data); } }; ------------------------------------------------------- するとtraceの結果はundefinedでした。 PHPの出力結果が文字列型だということが原因のような気がするのですが、PHP側から文字列で出力するのではなく、XMLで出力するにはどうしたらよいでしょうか? リファレンスを探してみたのですが、なかなかそういった関数が見つかりませんでした。 よろしくお願いします。

  • クイズ作成に関して xml形式の問題をランダムに読み込む方法

    現在、クイズを作っています。 外部のXMLファイルから問題を読み込み、それをランダムに5問出題させ、さらに重複させないようにしたいのですが、経験不足のため思うように出来ません。 flashファイル  //////////////////////////////////// var a_xml:XML = new XML(); a_xml.onLoad = function() { var top:XMLNode = a_xml.firstChild; for(i = 0; i<top.childNodes.length;i++){ var item:XMLNode = top.childNodes[i]; trace(item.attributes.name); } } a_xml.ignoreWhite = true; a_xml.load("xml/test.xml"); //////////////////////////////////// XMLファイル test.xml //////////////////////////////////// <?xml version="1.0" encoding="UTF-8"?> <items> <item name="test1" value="0" /> <item name="test2" value="1" /> <item name="test3" value="2" /> <item name="test4" value="3" /> <item name="test5" value="4" /> <item name="test6" value="5" /> </items> //////////////////////////////////// XMLファイルの読み込みは何とかできたのですが、ここからどうやってランダムに読み込むかが分かりません。 XML要素のnameをランダムで出題したい場合どうしたらいいのですか? ここから先は、多分Math.randomを使うのだろうというレベルでしか分からないため、なんとかご教授お願いできませんか? 環境はwin,FlashMX2004です。

    • ベストアンサー
    • Flash
  • 外部XMLからFlashに読み込んだ画像にリンクをつける方法

    初めまして。 この度初めて外部XMLをFlashに読み込むコンテンツを制作しており、最後の段階でハマっておりますため、皆様のお力をお借りできればと思い投稿させていただきました。 ちなみに制作環境はMac OS10.3、flashはCS3です。 よくあるパターンのflashによる横スクロールメニュー(画像がマウス操作で左右に流れるもの)を作成しておりますが、表示される10枚の画像をflash内ではなく、外部imagesフォルダに置いておき、XMLにてflash内に作成されたムービークリップに読み込み表示させるコンテンツで、表示されたそれぞれの画像に、やはりXML内に記述されたそれぞれ別のURLを指定して、クリックでジャンプさせようとしています。 横スクロールに関しては問題なく表示できましたが、問題はリンクです。traceでは10個のURLが戻ってくるのですが、実際に各画像をクリックしてみると、全ての画像が10番目のリンク先となってしまっています。 ネットでも色々調べてみたのですが、getURL(this.変数)ではなくgetURL(this._parent.変数)にする等試してみましたがうまくいきません。 下記にActionScriptとXMLファイルの内容を記載致しますので、ご参考の上、ご回答いただけましたらありがたく思います。 ~以下1フレーム目のフレームスクリプト~ var obj_array:Array = new Array(); var center:Number = Stage.width/2; var menu_num:Number = 10; var maxlength:Number = 120*menu_num; var friction:Number = -0.03; System.useCodepage = true; var obj_xml:XML = new XML(); obj_xml.onLoad = start_me; obj_xml.ignoreWhite = true; obj_xml.load("scrollslide.xml"); function start_me(success:Boolean):Void { if (success == true) { for (var i = 1; i<=menu_num; i++) { var menu_str:String = "menu"+i; _root.attachMovie("menu", menu_str, i); obj_array[i] = eval(menu_str); obj_array[i].num = i; obj_array[i]._x = 120*(i-1); obj_array[i]._y = 30; obj_array[i]._alpha = 70; var jpg_str:String = obj_xml.firstChild.childNodes[i-1].firstChild.firstChild; obj_array[i].jpg_mc.loadMovie(jpg_str); var jumpURL:String = obj_xml.firstChild.childNodes[i-1].lastChild.firstChild.nodeValue; jump = jumpURL; trace(jump); obj_array[i].onEnterFrame = scrollphoto_me; obj_array[i].onPress = press_me; obj_array[i].onRollOver = roll_me; obj_array[i].onRollOut = rollout_me; } } else { seltext = "xml read error"; } } function scrollphoto_me():Void { var speed:Number = (_root._xmouse-center)*friction; var vx:Number = this._x+speed; if (vx<=-120) { vx += maxlength; vx = Math.round(vx); } else if (vx>=Stage.width-5) { vx -= maxlength; } vx1 = Math.round(vx); this._x = vx1; updateAfterEvent(); } function press_me():Void { getURL(this.jump); } function roll_me():Void { this._alpha = 100; } function rollout_me():Void { this._alpha = 70; } stop(); ~以下XMLファイルの記述~ <?xml version="1.0" encoding="Shift_JIS"?> <jpeg> <jumpURL> <jpegURL>images/fla/image1.jpg</jpegURL> <URL>http://www.yahoo.co.jp</URL> </jumpURL> <jumpURL> <jpegURL>images/fla/image2.jpg</jpegURL> <URL>http://www.exnos.co.jp</URL> </jumpURL> <jumpURL> <jpegURL>images/fla/image3.jpg</jpegURL> <URL>http://www.sony.co.jp</URL> </jumpURL> <jumpURL> <jpegURL>images/fla/image4.jpg</jpegURL> <URL>http://www.toyota.co.jp</URL> </jumpURL> <jumpURL> <jpegURL>images/fla/image5.jpg</jpegURL> <URL>http://www.nissan.co.jp</URL> </jumpURL> <jumpURL> <jpegURL>images/fla/image6.jpg</jpegURL> <URL>http://www.honda.co.jp</URL> </jumpURL> <jumpURL> <jpegURL>images/fla/image7.jpg</jpegURL> <URL>http://www.mafdamino.com</URL> </jumpURL> <jumpURL> <jpegURL>images/fla/image8.jpg</jpegURL> <URL>http://www.nakata.net</URL> </jumpURL> <jumpURL> <jpegURL>images/fla/image9.jpg</jpegURL> <URL>http://www.nifty.com</URL> </jumpURL> <jumpURL> <jpegURL>images/fla/image10.jpg</jpegURL> <URL>http://www.adobe.com</URL> </jumpURL> </jpeg> 以上、よろしくお願致します。

    • ベストアンサー
    • Flash
  • [PHP+XML]PHPで動的に出力するXMLをどのようにして読み込めばいいでしょうか?

    こんにちは、どうしても解決ができなくて困っています。 お助け願います。 DBからデータを取得し成形するなどした結果をXMLで出力できるようにPHPを用意しました。 ブラウザから確認でき、XMLをソース表示しても問題ありません。 次にこれを読み込むPHPを書いています。 simplexml_load_fileなどでXMLファイルを開くことはこれまでにもやっていたので、直接XMLファイル名を記述するところに用意したPHPを指定しました。 結果はエラー。 いろいろ検証した結果、PHPがアクションする前にPHPファイルが開かれてしまっている感じ。 DOMDocumentのload()やloadXML()で読み込む方法もトライしましたが結果は同じ・・・。 根本的に間違ってますか? PHPから吐き出されるXMLを読み込むためにXMLファイルを記述するところにPHPスクリプトを指定すること自体が間違っているようにも思っています。 お手数をお掛けいたしますがお教え願います。

    • ベストアンサー
    • PHP
  • XMLで画像を読み込むと巨大化します・・・

    Flash8にて、外部XML画像とURLを読み込みしています。 初の試みでして、たどたどしくも双方ともに読み込むところまでは皆様のこれまで作られたデータを基に作成出来たのですが、画像を読み込んだときに巨大化されてしまって困っています。 ▼XML --------------------------------------------------- <?xml version="1.0" encoding="utf-8"?> <jpeg> <jpegURL>images/image1.jpg</jpegURL> <link>http://yahoo.co.jp/1</link> <jpegURL>images/image2.jpg</jpegURL> <link>http://yahoo.co.jp/2</link> <jpegURL>images/image3.jpg</jpegURL> <link>http://yahoo.co.jp/3</link> <jpegURL>images/image4.jpg</jpegURL> <link>http://yahoo.co.jp/4</link> </jpeg> --------------------------------------------------- 800×250で画像を読み込みたいのですが、 読み込むと、すさまじく巨大化してしまっています。。 作ろうとしているのは、横にスクロールするナビゲーションです。 XMLで画像とリンク先を指定、画像は同じ階層に「img」というフォルダを作って入れています。 下記が、1フレーム目に記載しているASです。 ▼AS --------------------------------------------------- var obj_array:Array = new Array(); var center:Number = Stage.width/2; var menu_num:Number = 4; var maxlength:Number = 800*menu_num; //サイズ指定箇所 var friction:Number = -0.03; var obj_xml:XML = new XML(); obj_xml.onLoad = start_me; obj_xml.ignoreWhite = true; obj_xml.load("scrollslide.xml"); function start_me(success:Boolean):Void { if (success == true) { for (var i = 1; i<=menu_num; i++) { var menu_str:String = "menu"+i; obj_array[i] = _root.attachMovie("menu", menu_str, i); obj_array[i].num = i; obj_array[i]._x = 800*(i-1); //X座標 obj_array[i]._y = 0; var jpg_str:String = obj_xml.firstChild.childNodes[(i-1)*2].firstChild; var link_str:String = obj_xml.firstChild.childNodes[i*2-1].firstChild; obj_array[i].jpg_mc.loadMovie(jpg_str); obj_array[i].onEnterFrame = scrollphoto_me; obj_array[i].onPress = press_me; obj_array[i].onRollOver = roll_me; obj_array[i].onRollOut = rollout_me; //関数呼び出し obj_array[i].onRelease = release_me; obj_array[i].link = link_str; } } else { seltext = "xml read error"; } } function release_me():Void { trace(this.link); getURL(this.link, "_parent"); } function scrollphoto_me():Void { var speed:Number = (_root._xmouse-center)*friction; var vx:Number = this._x+speed; if (vx<=-800) { //ステージ左に消えたら vx += maxlength; //サムネイルの最後列の後ろに移動 } else if (vx>=Stage.width+10) { //ステージ右に消えたら vx -= maxlength; //サムネイル最前列の前に移動 } this._x = vx; updateAfterEvent(); } function roll_me():Void { this._alpha = 80; } function rollout_me():Void { this._alpha = 100; } stop(); --------------------------------------------------- サイズを指定している箇所に問題があるのでしょうか。 初心者でして、全く見当がつかず困っております。 もしよろしければ、先人の方たちにご意見とご指摘を頂ければと思います。宜しくお願いいたします。

    • ベストアンサー
    • Flash
  • PHPでXMLファイルを読み込みたい

    PHPを使ってxmlファイルを読み込んで、タグの中のデータなどを読み込んだりしたいです。 ですが、自作のxmlファイルだと simplexml_load_file()で読み込めません。xmlファイルの文字コードを色々と変えて試してみましたが、できませんでした。 ちなみに以下のコードは正常に動きました。Yahoo!のxmlファイルです。 $url = "http://rss.weather.yahoo.co.jp/rss/days/5710.xml"; $rss = simplexml_load_file($url); 出力は「【 25日(金) 嶺北(福井) 】 晴れ - 23℃/8℃ - Yahoo!天気・災害」でした。 何度かやるうちにアルファベットは表示できても日本語が表示できないということもありました。 また、xmlファイルをphpのプログラムに作らせたいです。そのときに、simplexml_load_file()で読み込める日本語も含むxmlファイルをphpで作成するプログラムを教えていただけると嬉しいです。 お願いします。

    • ベストアンサー
    • PHP
  • FlashにXMLを読み込む

    Flashに外部XMLテキストを読み込みで行き詰まってしまい、質問させて頂きます。XMLテキスト読み込みまではできたのですが、そのテキストにリンクを貼ることができず、困っています。どなたか分かる方がおられましたら教えてください! 【以下XMLになります】 <?xml version="1.0" encoding="UTF-8"?> <topIndex topA="TOPICS" topDescription="テキストテキストテキスト" topB="テキストテキストテキスト" topC="テキストテキストテキスト" topD="テキストテキストテキスト" topE="テキストテキストテキスト"> </topIndex> FlashのASには _global.index_xml = "top.xml"; _global.xmlIndex = new Object(); XML.prototype.ignoreWhite = true; indexXML = new XML(); indexXML.onLoad = XMLLoaded; indexXML.load(index_xml); function XMLLoaded(success):Void { var rootNode:XMLNode = indexXML.firstChild; xmlIndex.topTitle = rootNode.attributes["topTitle"]; xmlIndex.topA = rootNode.attributes["topA"]; xmlIndex.topB = rootNode.attributes["topB"]; xmlIndex.topC = rootNode.attributes["topC"]; xmlIndex.topD = rootNode.attributes["topD"]; xmlIndex.topE = rootNode.attributes["topE"]; _root.topTitle.text = xmlIndex.topTitle; _root.topA.text = xmlIndex.A; _root.topB.text = xmlIndex.B; _root.topC.text = xmlIndex.C; _root.topD.text = xmlIndex.D; _root.topE.text = xmlIndex.E; } と記述しています。 環境はMacでFlash8を使っています。 よろしくお願いします。

  • FLASH,AS3.0 クリック後、xmlからファイルを取り出す方法

    as3.0初心者です。 恐れ入りますが、現在製作中のプログラミングに関することで教えていただきたいことがあります。 外部xmlより写真データを読み込み、ステージに並べるプログラムを作っています。参考書等のサンプルからステージに並べるまではわかったのですが、ボタン【インスタンス名:btn_a】をクリックした後に写真がステージに現れるようにアレンジしたいのですが…色々ためしてもエラーが出てしまいうまくいきません。どなたか教えていただけないでしょうか? 出来れば現在のプログラムをアレンジして使いたいと思っています。 初歩的な質問で申し訳ありませんがご教授いただけないでしょうか? ★xnlloader package { import flash.display.DisplayObjectContainer; import flash.system.System; import flash.net.URLLoader; import flash.net.URLRequest; import flash.events.Event; public class PhotoXMLLoader { private var container:DisplayObjectContainer; private var xmlLoader:URLLoader; private var urlReq:URLRequest; //コンストラクタ public function PhotoXMLLoader(container:DisplayObjectContainer) { this.container=container; //URLLoaderのインスタンスを作る xmlLoader=new URLLoader(); //リスナーを登録する xmlLoader.addEventListener(Event.COMPLETE,onLoaded); //URLRequest urlReq=new URLRequest(); } //XMLファイルの読み込み public function loadXML(xmlurl:String,isUnicode:Boolean=true):void { //XMLファイルのURL urlReq.url=xmlurl; //unicodeでなければtrueに設定する System.useCodePage=! isUnicode; //読み込み開始 xmlLoader.load(urlReq); } //読み込み完了〜写真を並べる protected function onLoaded(eventObj:Event):void { //受信したxmlから値を取り出す var xmlObj:XML=new XML(xmlLoader.data); var photos:XMLList=xmlObj.photolist.photo; var w:int=290+10; var h:int=40+10; var row:int=1; for (var i:int=0; i<photos.length(); i++) { var photo:XML=photos[i]; //写真のURLを調べる var url:String="img/"+photo.@fname; //写真を読み込んで並べる var photoLoader:GoodLoader=new GoodLoader(url); photoLoader.x=w*(i%row); photoLoader.y=h*int(i/row)+200; ; container.addChild(photoLoader); } } } } ★goodloader package { import flash.display.Loader; import flash.net.URLRequest; import flash.events.Event; import fl.transitions.Tween; import fl.transitions.easing.*; import flash.events.IOErrorEvent; public class GoodLoader extends Loader { var urlReq:URLRequest; var tw:Tween; public function GoodLoader(url:String) { //読み完了イベントのリスナーを登録する this.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded); //IOエラーイベントのリスナーを登録する this.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError); urlReq=new URLRequest(url); load(urlReq); } //読み込みエラーに対応する protected function onIOError(eventObj:IOErrorEvent):void { urlReq.url="image/io_error.jpg"; load(urlReq); } //フェードインで表示する protected function onLoaded(eventObj:Event):void { tw=new Tween(this,"alpha",Regular.easeInOut,0,1,1,true); } } }

    • ベストアンサー
    • 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 です。

  • マウスの基準点について

    www.i-tv.in/test/shop_menu.swf 上記のものスクリプトの参考書を見ながら作りました。マウスが摩擦をおく基準が上の方になっています。 これを中央にもっていきたいと思いましたが、このような単純なことは調べても出てきません。どなかた教えて頂ければ幸いです。宜しくお願いします。 function start_me(success:Boolean):Void { if (success == true) { for (var i = 1; i<=menu_num; i++) { var menu_str:String = "menu"+i; _root.attachMovie("menu",menu_str,i); obj_array[i] = eval(menu_str); obj_array[i].num = i; obj_array[i].mctext = i; obj_array[i]._y = 125*(i-1); obj_array[i]._x = 10; obj_array[i]._alpha = 40; var jpg_str:String = obj_xml.firstChild.childNodes[i-1].firstChild; obj_array[i].jpg_mc.loadMovie(jpg_str); obj_array[i].onEnterFrame = scrollphoto_me; obj_array[i].onPress = press_me; obj_array[i].onRollOver = roll_me; obj_array[i].onRollOut = rollout_me; } } else { seltext = "xml read error"; } }

    • ベストアンサー
    • Flash

専門家に質問してみよう