在Flash中以编程方式交换对象的最佳方法是什么?

时间:2011-08-16 18:36:55

标签: flash

我基本上有这个

enter image description here

以及我需要做的是,当用户点击右侧的其中一个框时,它会显示在左侧的黄色框中。

每个右侧框都是唯一的,具有不同的图形。它基本上是在T恤上展示的不同图形,将由大黑色方块表示。

现在我知道每个图形都应该是带有鼠标点击事件的按钮符号,但我不确定如何处理事件。

我应该只创建该项目的克隆并将其移动到目标区域吗?或者是否可以创建某种空白占位符,我可以显示它?

4 个答案:

答案 0 :(得分:1)

最简单的解决方案是按照您的建议显示。 以下是实现这一目标的步骤:

  1. 将位图对象放在黄色
  2. 创建一个黄色区域大小的BitmapData对象,并将其提供给位图的BitmapData属性。
  3. 使用BitmapData对象的BitmapData.draw()函数生成蓝色和绿色区域的可视快照。像myBitmapData.draw(blueAreaDisplayObject);
  4. 利润。

答案 1 :(得分:1)

浏览这个小游戏here。我确实在Actionscript中交换对象。

答案 2 :(得分:0)

只需在你的库中给它一个类名,然后使用循环从库中附加/删除剪辑并给它一个id。您的鼠标事件将允许您访问event.currentTarget,然后您可以调用id setter / getter来了解已单击的tile的id。然后,您可以从库中附加/删除切片。

如果您不知道该怎么做,我建议您访问www.kirupa.com开始学习正确的AS3.0,这样可以让您走上正确的道路。

答案 3 :(得分:0)

创建存储动画片段原始位置的类,并制作两个功能,一个允许您移回原始位置,另一个允许您移动到衬衫上。

var currentShirtMC:MC; //current item on shirt   

//this event listener should added to every MC
function md(e:MouseEvent){
  currenShirtMC.moveBack();

 MC(e.target).moveTo();
 currentShirtMC=e.target; //e.target is the movieclip being clicked
}

如果您没有在currentShirtMC中定义对象,则此代码将中断...