最近我试图用 JSFL 做一些实验性的事情,我想知道当一个组件(我制作的)或影片剪辑从舞台上的库中被拖动时是否可以监听一个事件。
我想创建一些东西,我将获得一个组件并将其放在 mc 上。当组件放在 mc 上时,组件会将 mc 作为引用保存在某个 var 中。
也许与事件不是要走的路,但我不知道这是否可能或如何以另一种方式做到这一点。我希望有人可以帮助我开始
提前谢谢
最近我试图用 JSFL 做一些实验性的事情,我想知道当一个组件(我制作的)或影片剪辑从舞台上的库中被拖动时是否可以监听一个事件。
我想创建一些东西,我将获得一个组件并将其放在 mc 上。当组件放在 mc 上时,组件会将 mc 作为引用保存在某个 var 中。
也许与事件不是要走的路,但我不知道这是否可能或如何以另一种方式做到这一点。我希望有人可以帮助我开始
提前谢谢
尽管您可以侦听文档事件,但我认为您不能将组件放到影片剪辑上并获取影片剪辑的引用。
您可以做的是编写一个命令,该命令首先存储所选影片剪辑的引用,然后使用 mc 参数设置将组件添加到舞台。
这是一个使用 Button 组件的快速示例。命令获取所选 mc 的名称,然后添加一个按钮并将 mc 的名称设置为按钮名称。
var doc = fl.getDocumentDOM();
var mc = doc.selection[0];//get the mc
doc.selectNone();
//add the component
fl.componentsPanel.addItemToDocument({x:mc.x, y:mc.y}, "User Interface", "Button");
//setup parameter
//use this if you don't know the paramater's index in the list
setComponentValueByParamName(doc.selection[0],'label',mc.name);
//otherhise you can get away with
//doc.selection[0].parameters[2].value = mc.name;
//returns true if the param was found and value was set, otherwise returns false
function setComponentValueByParamName(component,param,value){
for(var i = 0 ; i < component.parameters.length; i++){
if(component.parameters[i].name == param){
component.parameters[i].value = value;
return true;
}
}
return false;
}
查看fl.componentPanel、ComponentInstance和Parameter以获得更好的图片。
高温高压