针对对象的AS3 CSS类类
我对AS3非常陌生。针对对象的AS3 CSS类类
我想给MC中的某些对象“类”(意思是类的CSS类)翻转。所以我可以自动创建一个rollOver,它可以淡化所有声明为rollOver对象的对象。
的jQuery〔实施例
$("#myObject .rollOverObject").animate(...);
什么是实现类似的东西在AS3的最佳方式?
在此先感谢您,并致以最诚挚的问候。
AS3中没有CSS类。然而,你可以做的是在MC上创建一个EventListener
并在那里做你的动画。它看起来像这样。
for (var i : int = 0; i < mcContainer.numChildren; i++)
{
// reference to a child of the container
var mcChild:MovieClip = mcContainer.getChildAt(i) as MovieClip;
// validate by name
if(mcChild.name == "something you want to check")
{
mcChild.addEventListener(MouseEvent.ROLL_OVER, onMcRollOver);
}
}
function onMcRollOver(event:MouseEvent) : void
{
// create a reference to the MovieClip that is rolled over
var mcTarget:MovieClip = event.currentTarget as MovieClip;
// do what you like with the mcTarget
mcTarget.alpha = 0.5;
}
如果您使用的MovieClips
,或者不需要ROLL_OVER
听众了,那么你可以在simular方式删除这些监听器来完成。
for (var i : int = 0; i < mcContainer.numChildren; i++)
{
// reference to a child of the container
var mcChild:MovieClip = mcContainer.getChildAt(i) as MovieClip;
// validate by name
if(mcChild.hasEventListener(MouseEvent.ROLL_OVER))
{
mcChild.removeEventListener(MouseEvent.ROLL_OVER, onMcRollOver);
}
}
快速Google search可以帮助您进一步学习。
感谢您的回答。不幸的是我需要动态访问几个对象,而不知道它有多少。有可能通过获取每个MC的列表并检查名称来做到这一点。这样我可以命名rollOver对象rO_ExampleName或类似的东西。有没有像myMovieClip.each()? – matteok 2011-12-29 13:37:17
我更新了我的答案。你可以使用'numChildren'循环播放孩子们。 – 2011-12-29 13:53:41
非常感谢。我最后一个问题有一点偏离主题。如果我用加载器类加载电影,我可以使用myLoader.content来访问它。不幸的是myLoader.content是一个DisplayObject,而不是一个MovieClip,所以如果我使用你建议的循环,我会得到一个错误。有没有解决办法,或者我做错了什么? – matteok 2011-12-29 14:08:54
我认为这可能是时候学习*新*范式... – 2011-12-29 13:56:58