2011-01-13 28 views
0

我是新來的Flash,但我已經爲我的動畫片段拖放代碼,因此可以用這種方式操縱它們。但我希望能夠根據用戶點擊電影場景的位置來顯示圖像。代碼是什麼將加載一個圖像,onClick,在鼠標X和Y?由於使圖像動態出現在FLASH中

+0

或者,用我的拖放算法,保持在其位原始影片剪輯,而不把它「下降」的影片剪輯的圖像會同樣有用.. – 2011-01-13 18:45:19

回答

0

我主要是Flex開發者,但AS3的這個代碼段應在Flash正常工作對你來說也是:

addEventListener(MouseEvent.CLICK,myMouseHandler); 

private function myMouseHandler(event:MouseEvent):void 
{ 
    var swfLoader:SWFLoader=new SWFLoader(); 
    swfLoader.source="http://www.google.com/images/logos/ps_logo2.png"; 
    swfLoader.x=mouseX; 
    swfLoader.y=mouseY; 
    addChild(swfLoader); //note in flex 4 adding to container need to use addElement otherwise this code executes in there fine as well. 
} 

爲AS3的文檔是很透徹,可以在這裏找到:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/index.html 他們在這個版本的文檔中做了很好的工作,在頁面頂部爲你提供過濾器,只查看Flash中可用的項目,或者使用Flex框架或使用AIR。快速分析所有這些與之相關的內容:AS3是用於編寫代碼的腳本語言,它被編譯成所謂的AS3字節碼(通常全部位於具有swf或swc擴展名的文件中),然後由Flash插件在瀏覽器。 MXML是一種「聲明性標記語言」,其外觀與使用標記和嵌套來表示HTML/HTML(它們都是鬆散的XML)之間的關係非常相似,MXML被編譯爲AS3,然後編譯爲AS3字節碼,並再次由Flash插件。關於Flex的好處在於提供了大量預構建組件,並且該框架爲您如何創建具有定義良好的生命週期的可擴展組件創建了一套強大的規則(您知道它只創建一次,只知道更新需要更新的部分,例如createChildren,commitProperties,measure等)。 AIR是adobe集成的運行時,它基本上是桌面的Flash播放器,它可以在瀏覽器之外生存,因此不限於瀏覽器允許的功能(由於安全問題,許多操作被瀏覽器阻止),基本上AIR是Flex + Desktop相關的好東西。我知道這不僅僅是你要求的,但我希望你找到這個信息有用。

祝你好運,

肖恩

+0

相信的SWFLoader僅適用在Flex中。在非Flex ActionScript中,通常使用Loader,就像Matt McDonald的例子。 – 2011-01-13 20:55:35

2

你正在尋找的代碼不同於其他答案一點點。

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

var loader:Loader; 
var toLoad:URLRequest; 

stage.addEventListener(MouseEvent.CLICK, clicked, false, 0, true); 

function clicked(evt:MouseEvent):void 
{ 
    //if loader already exists, remove it from stage 
    if(loader) 
    { 
     removeChild(loader); 
    } 
    loader = new Loader(); 
    toLoad = new URLRequest("image.png"); 
    loader.load(toLoad); 
    addChild(loader); 
    //listen for when load completes 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleted, false, 0, true); 
} 

function loadCompleted(evt:Event):void 
{ 
    //center to mouse position 
    loader.x = (mouseX - (loader.contentLoaderInfo.width)/2); 
    loader.y = (mouseY - (loader.contentLoaderInfo.height)/2); 
} 
相關問題