我在Flex中有一個成功加載頁面的HTML控件。 有沒有辦法可以從HTML控件中提取或獲取所有圖像並顯示它們?如何從Flex中的HTML控件獲取所有圖像?
1
A
回答
2
您實際上可以使用HTML文檔DOM並詢問所有img標籤。這種方式更清潔。
一旦你得到了DOM,這是所有的標準,所以你可以檢查HTML DOM documentation如果你不確定的東西。
下面是快速示例。我只是寫onComplete函數,因爲它會在Taurayi的例子中調用
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());
}
}
}
2
那麼一個想法是,你加載的HTML頁面使用HTMLLoader
,然後當它已經加載你得到的來源。然後使用解析器或正則表達式,可以提取<img />
標記的src
屬性的值。 src
屬性的值將成爲您加載頁面上圖像的URL。然後使用Loader
和上述網址,您可以將它們加載到您的Flash應用程序中。
下面是一個例子:
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 2012-02-16 15:18:24
相關問題
- 1. 如果edittext有圖像如何從edittext獲取所有圖像?
- 2. 如何從ftp文件夾中獲取所有圖像到NSArray
- 3. 如何從qrc文件中獲取所有圖像?
- 4. 如何獲取HTML表格中的所有<asp:Label>控件?
- 5. 如何從UIImage對象中獲取所有圖像像素
- 6. 從URL中獲取所有圖像
- 7. 如何從特定文件夾(iPhone)獲取所有圖像?
- 8. 如何從Flex中的本地圖像獲取BitmapData?
- 9. 如何從任何網頁獲取所有圖像(在iPhone中)
- 10. 如何使用C++獲取文件夾中的所有圖像
- 11. 如何使用CakePHP獲取文件夾中的所有圖像
- 12. 如何從HTML文件夾中獲取未知圖像?
- 13. 如何使用Ko3從HTML的一部分獲取所有圖像標籤?
- 14. 在flex中,如何聲明一個控件以獲取所有可用寬度
- 15. 從HTML文件獲取jpg圖像
- 16. 如何從圖庫中獲取所選圖像的路徑
- 17. 從WebBrowser控件獲取所有文本
- 18. 從MasterPage獲取所有控件ChildPage
- 19. 從URL或從HTML獲取所有圖像命名並保存在文件夾
- 20. 從圖像控件獲取BitmapSource
- 21. Yii2:從控制器的html中獲取圖像ID
- 22. Flex:如何獲取圖像的圖像大小?
- 23. 從php中的任何url獲取所有圖像?
- 24. 獲取圖像中的所有顏色
- 25. 如何使用Android從.ppt文件中提取所有圖像?
- 26. 如何從目標C中的JSON中獲取HTML圖像?
- 27. 如何使用MATLAB獲取文件夾內的所有圖像?
- 28. 獲取圖像的所有像素[Wand]
- 29. 如何從手機上的所有圖像獲取圖像路徑
- 30. 如何從控制器內的部分視圖中獲取html
+1不知道我是如何錯過 – Taurayi 2012-02-16 14:02:08
當我下班回家時,我會嘗試這種方法。謝謝! – Afra 2012-02-16 15:17:42