|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
можно так:
package { import flash.display.MovieClip; import flash.utils.setTimeout; public class Example extends MovieClip { private var _quantity:int = 5; public function Example() { var delay:Number = Math.ceil(1000 / stage.frameRate); for (var i:int = 1; i <= _quantity; i++) { var mc:Mc = new Mc(); mc.gotoAndStop(i); setTimeout(stopClip, delay, mc, i); mc.x = 100 * i; mc.y = 200; addChild(mc); } } private function stopClip(mc:MovieClip, index:int):void { var clip:MovieClip = mc.getChildByName('symbol' + index) as MovieClip; clip.stop(); } } } |
|
|||||
Регистрация: Mar 2007
Адрес: Ужгород (UA)
Сообщений: 62
|
Цитата:
Очень благодарю, получилось! П.С. Люблю такие ответы, может быть все готовенькое преподнесли, но с другой стороны можно увидеть и разобраться самому как и почему так работает... Ибо я только учусь и нашел для себя в этом ответе новое. И еще, можно узнать все-таки как реализовать мою задачу с помощью addFrameScript? Последний раз редактировалось N1ka; 25.11.2008 в 21:08. |
|
|||||
а вот когда ты дождался (после таймаута) добавления вложенного клипа в дисплейлист, можешь применить к этому клипу addFrameScript
package { import flash.display.MovieClip; import flash.utils.setTimeout; import flash.events.Event; public class Example extends MovieClip { private var _quantity:int = 5; public function Example() { var delay:Number = Math.ceil(1000 / stage.frameRate); for (var i:int = 1; i <= _quantity; i++) { var mc:Mc = new Mc(); mc.gotoAndStop(i); mc.visible = false; setTimeout(stopClip, delay, mc, i); mc.x = 100 * i; mc.y = 200; addChild(mc); } } private function stopClip(parentMC:MovieClip, index:int):void { var child:MovieClip = parentMC.getChildByName('symbol' + index) as MovieClip; var frame:uint = 1 + Math.floor(Math.random() * _quantity); child.addFrameScript(0, function(){ child.gotoAndStop(frame); child.rotation = Math.random()* 360; child.addEventListener(Event.ENTER_FRAME, enterFrameHandler); parentMC.visible = true; }); } private function enterFrameHandler(e:Event):void { var clip:MovieClip = e.target as MovieClip; var scale:Number = .3 + Math.random(); clip.scaleX = clip.scaleY = scale; } } } Последний раз редактировалось derhab; 27.11.2008 в 05:49. |
|
|||||
Регистрация: Mar 2007
Адрес: Ужгород (UA)
Сообщений: 62
|
|
Часовой пояс GMT +4, время: 02:46. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|