2013-07-11 52 views
-2

我需要幫助!我想在Flash AS3中加載圖片網址,我在JavaScript中顯示圖片的代碼如下。不過,我要加載Flash中的相同的參考..在Flash中加載Javascript(圖片參考)

FB.api('/me?fields=username', function(response) { 
function detect(URL) { 
     var image = new Image(); 
     image.src = URL; 
     image.onload = function() { 
     var result = 'result'; // An example result 
    } 
document.body.appendChild(image) 
} 
detect("https://graph.facebook.com/" + response.username + "/picture?width=200&height=200"); 
+4

而且..這和Java有什麼關係? 'Java'是'JavaScript','Car'是'地毯'。 –

回答

0

你不能直接從AS3調用API,因爲Facebook的庫是用JavaScript編寫的。你必須使用JS作爲中介。但是,吉奧的回答是正確的。使用ExternalInterface API將消息從JS傳遞給AS。我正在粘貼你需要在下面的JS中進行的修改,這些修改建立在他寫的內容上。

他的回答是正確和完整的,你應該把它標記爲這樣。

FB.api('/me?fields=username', function(response) { 
function detect(URL) { 
     var image = new Image(); 
     image.src = URL; 
     image.onload = function() { 
     var result = 'result'; // An example result 
    } 

// Pasted from Gio's code above 
var swf = document.getElementById("myFlash"); // get a reference 
swf.loadImage(myURL); // call your AS3 function 
} 
detect("https://graph.facebook.com/" + response.username + "/picture?width=200&height=200"); 
+0

以及它無法正常工作,我需要使用javascript參考加載Flash AS3中的圖片.. .. –

+0

嗨,這是行不通的! –

1

您加載ActionScript 3的圖像使用Loader類:

import flash.display.Loader; 
import flash.net.URLRequest; 
import flash.events.Event; 
import flash.events.IOErrorEvent; 

function loadImage(url:String):void 
{ 
    var l:Loader = new Loader(); 
    var r:URLRequest = new URLRequest(url); 

    l.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete); 
    l.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onLoadError); 
    l.load(r); 

    function onLoadError(e:IOErrorEvent):void 
    { 
     trace("Couldn't load image."); 
     e.target.removeEventListener(Event.COMPLETE, onLoadComplete); 
     e.target.removeEventListener(IOErrorEvent.IO_ERROR, onLoadError); 
    } 

    function onLoadComplete(e:Event):void 
    { 
     trace("Load completed!"); 
     e.target.removeEventListener(Event.COMPLETE, onLoadComplete); 
     e.target.removeEventListener(IOErrorEvent.IO_ERROR, onLoadError); 

     stage.addChild(e.target.content); // e.target.content holds the loaded bitmap 
    } 
} 

UPDATE

您可以監聽與通話Javascipt使用回調和ExternalInterface

if(ExternalInterface.available) // check that SWF is running in a browser 
    ExternalInterface.addCallback("loadImage", loadImage); 

然後,您可以使用對SWF的引用從Javascript調用該函數。例如,如果您的Flash嵌入這樣的:

var swf = document.getElementById("myFlash"); // get a reference 
swf.loadImage(myURL); // call your AS3 function 

更新1

我做了這個簡單:

<embed src="flash.swf" id="myFlash" width="800" height="600" /> 

可以使用JavaScript中的document.getElementById()方法得到它的引用例如,您可以嘗試並瞭解我告訴您的內容:Download Example

請注意,這隻適用於Firefox,因爲我使用的嵌入標籤嵌入了Chrome,但如果嵌入正確,它可以跨瀏覽器使用。

+0

嗨,事情是我需要在JavaScript參考加載。在這種情況下,網址,因爲這只是一小部分的Java腳本。 javasript獲取隨機ID的形式朋友形式的臉譜。所以我需要使用該函數加載圖片 –

+0

您可以從Javascript調用Actionscript函數並將url作爲參數傳入。我會更新我的答案 – Gio

+0

我提供的例子確實如此。請仔細閱讀。 – Gio