2012-02-16 12 views

答えて

2

実際にHTMLドキュメントDOMを使用して、すべてのimgタグについて尋ねることができます。これは、このように多くのクリーナーです。

DOMを取得したら、それはすべて標準ですので、何かがわからない場合はHTML DOM documentationを確認できます。

ここでは簡単な例を示します。 Taurayiの例で呼び出されるように、onComplete関数を書くだけです。

var _imagesSrc:Array= []; 
private function onComplete(e:Event):void 
{ 
    var htmlLoader:HTMLLoader = e.target as HTMLLoader; 
    var doc:* = htmlLoader.window.document; //use void (*) type for DOM objects 
    var imgTags:* = doc.getElementsByTagName("img"); 
    if(imgTags) 
    { 
     for(var i:int=0;i<imgTags.length;i++) 
     { 
      var src:* = imgTags[i].getAttribute("src"); //not sure about return type here, could also be a String 
      if(src) 
       _imagesSrc.push(src.toString()); 
     } 
    } 
} 
+0

+1私はそれを逃した方法を知らない – Taurayi

+0

私は仕事から家に帰るときこのメソッドを試してみます。ありがとう! – Afra

2

よく考えれば、HTMLLoaderを使ってhtmlページを読み込み、読み込んだときにソースを取得するという考えがあります。次に、パーサーまたは正規表現を使用して、<img />タグのsrc属性の値を抽出します。 src属性の値は、読み込んだページの画像へのURLになります。その後、Loaderと上記のURLを使用して、それらをあなたのフラッシュアプ​​リケーションにロードします。ここで

は例です:

Main.as(ドキュメントクラス)

package 
{ 
    import flash.display.Loader; 
    import flash.display.LoaderInfo; 
    import flash.display.Sprite; 
    import flash.events.Event; 
    import flash.html.HTMLLoader; 
    import flash.net.URLRequest; 

    public class Main extends Sprite 
    { 
     public function Main():void 
     { 
      var htmlLoader:HTMLLoader = new HTMLLoader(); 
      htmlLoader.addEventListener(Event.COMPLETE, onComplete); 
      htmlLoader.width = stage.stageWidth; 
      htmlLoader.height = stage.stageHeight; 
      htmlLoader.load(new URLRequest("http://www.wampserver.com/")); 

     }// end function 

     private function onComplete(e:Event):void 
     { 
      var htmlLoader:HTMLLoader = e.target as HTMLLoader; 
      var body:String = htmlLoader.window.document.body.outerHTML; 
      var imgTags:Array = getImgTags(body); 
      var src:String = getSrc(imgTags[1]); 

      trace(src); // output: http://www.wampserver.com/wp-content/themes/wampserver/img/home-title.png 


      var loader:Loader = new Loader(); 
      loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete); 
      loader.load(new URLRequest(src)); 

     }// end function 

     private function onLoaderComplete(e:Event):void 
     { 
      var loader:Loader = (e.target as LoaderInfo).loader; 
      addChild(loader); 

     }// end function 

     private function getImgTags(source:String):Array 
     { 
      return source.match(/(<img.*?>)/g); 

     }// end function 

     private function getSrc(imgTag:String):String 
     { 
      return imgTag.match(/src="(.*?)"/)[1]; 

     }// end function 

    }// end class 


}// end package 

これは単なるアイデアである点に注意してください、いくつかの明白な欠陥があります。

+0

いいね!ありがとう!最初にDOMオブジェクトメソッドを試してみましょう。 – Afra

関連する問題