2011-01-13 65 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); 
} 
相关问题