在JSFL中拖放movieclip事件? (Flash IDE)

时间:2010-06-09 22:59:07

标签: flash actionscript cs3 cs4 jsfl

最近我试图用JSFL做一些实验性的事情,我想知道当一个组件(我制造的)或movieclip从舞台上的库中拖出时是否有可能监听一个事件。

我想创建一些东西,我将获得一个组件并将其放在mc上。当组件被放置在mc上时,组件将mc保存为某些var。

中的引用

也许事件不是要走的路,但我不知道这是否可能或如何以另一种方式做到这一点。我希望有人可以帮助我开始

事先提前

1 个答案:

答案 0 :(得分:0)

虽然您可以listen for document events,但我认为您不能将组件放到动画片段上并获取动画片段的参考。

您可以做的是编写一个命令,首先存储所选影片剪辑的引用,然后使用mc参数设置将该组件添加到舞台。

这是使用Button组件的快速示例。命令get是所选mc的名称,然后添加一个按钮并将mc的名称设置为Button名称。

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.componentPanelComponentInstanceParameter以获得更好的图片。

HTH