Как создавать свои Flash-игры, подобные Angry Birds и World of Goo?
Box2D - это библиотека, которая моделирует физическое поведение твердых тел в двумерном пространстве. Программисты могут использовать ее в своих играх, чтобы сделать...
Создание простого эффекта “растворяющиеся окружности"
Окружности появились, но есть ошибка. Как можно избежать?
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller. at flash.display::DisplayObjectContainer/removeChild() at MethodInfo-4()
Тоже код не очень хорошо работал, пришлось немножко передалать. Вот, может кому пригодится:
[hide]
addEventListener(Event.ENTER_FRAME, drawBall);
function drawBall (event:Event):void { var currentBall:mcCircle = new mcCircle; currentBall.x = Math.random() * 550; currentBall.y = Math.random() * 400; addChild(currentBall); currentBall.addEventListener(Event.ENTER_FRAME, scale); }
function scale (event:Event):void { var buffer:MovieClip = MovieClip(event.target); buffer.scaleX = buffer.scaleX - 0.05; buffer.scaleY = buffer.scaleY - 0.05; buffer.alpha = buffer.alpha - 0.05; if (buffer.alpha < 0.2) { /*Обращание к функции scale используется для связи Child и елемента( buffer ), иначе флеш его не видит (короче, без этого функция removeChild () просто не видит кружочек, и ,соответственно не может его удалить, и при выполнении выдает ошибку № 2025)*/ buffer.removeEventListener(Event.ENTER_FRAME, scale); removeChild(buffer); } }
Комментарии
Очень интересный подход к преподнесению материала и красивая музыка!
Хорошее оформление урока, сделано всё чётко и аккуратно. Будем рады видеть новые творения автора))
1) Админ всегда прав
2) Если админ не прав, смотри пункт 1
Мы в контакте -
#2 Опубликовано 3 марта, 2010 - 19:14 пользователем ixtus89
#3 Опубликовано 4 марта, 2010 - 20:53 пользователем lolopolosko
#4 Опубликовано 11 июня, 2010 - 16:23 пользователем sasha120
#5 Опубликовано 10 августа, 2010 - 23:03 пользователем uberdog
#6 Опубликовано 12 августа, 2010 - 06:40 пользователем Seppo.Virtanen
#7 Опубликовано 12 августа, 2010 - 22:22 пользователем uberdog
#8 Опубликовано 15 ноября, 2010 - 15:49 пользователем danil999000999danil
#9 Опубликовано 8 декабря, 2010 - 11:05 пользователем LysoSutriN
#10 Опубликовано 20 января, 2011 - 00:36 пользователем Tribeat
#11 Опубликовано 2 августа, 2011 - 18:26 пользователем PilotMax
#12 Опубликовано 28 августа, 2011 - 21:58 пользователем Luviii
на самом деле урок простой и легкоусвояемый)))))) даже для такого "зеленого" как я...
Ехх...Этот Урок уже видел на одном сайте ...только написаный текстом...
Ну а вобще Молодец что не поленился и создал по нем видео
Окружности появились, но есть ошибка. Как можно избежать?
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/removeChild()
at MethodInfo-4()
Сделай как в уроке точно и будет без ошибок, видимо ты чего нетак делаешь.
Seppo.Virtanen,
А ты не можешь код скинуть в личку? Делал как в уроке вроде все и файл компелируется, но с ошибкой.
кто на as 2 сидит могу код дать эффект тот же
Пожалуйста киньте в лс код. Выводится такая же ошибка
"ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/removeChild()
at MethodInfo-4()
"
Уже не надо, нашёл ошибку :)
Человечество - обычный массив.
Правильный код?
addEventListener(Event.ENTER_FRAME,
function doIT (event:Event):void;
(
var currentBall:ball = new ball;
currentBall:ball.x = Math.random() * 550;
currentBall:ball.y = Math.random() * 400;
addChild(currentBall);
currentBall.addEventListener(Event.ENTER_FRAME,
function doIT (event:Event):void
(
var buffer:MovieClip = MovieClip(event.target);
buffer.scaleX = buffer.scaleX = 0.00;
buffer.scaleY = buffer.scaleY = 0.00;
buffer.alpha = buffer.alpha = 0.00;
if (buffer.alpha < 0.2)
(
buffer.removeEventListener(Event.ENTER_FRAME, doIT);
removeChild(buffer);
)
));
));
Помогите(((Врооде всё правильно(((А выскакивает 9 ошибок(((
Тоже код не очень хорошо работал, пришлось немножко передалать. Вот, может кому пригодится:
[hide]
addEventListener(Event.ENTER_FRAME, drawBall);
function drawBall (event:Event):void
{
var currentBall:mcCircle = new mcCircle;
currentBall.x = Math.random() * 550;
currentBall.y = Math.random() * 400;
addChild(currentBall);
currentBall.addEventListener(Event.ENTER_FRAME, scale);
}
function scale (event:Event):void
{
var buffer:MovieClip = MovieClip(event.target);
buffer.scaleX = buffer.scaleX - 0.05;
buffer.scaleY = buffer.scaleY - 0.05;
buffer.alpha = buffer.alpha - 0.05;
if (buffer.alpha < 0.2)
{
/*Обращание к функции scale используется для связи Child и елемента( buffer ), иначе флеш его не видит (короче, без этого функция removeChild () просто не видит кружочек, и ,соответственно не может его удалить, и при выполнении выдает ошибку № 2025)*/
buffer.removeEventListener(Event.ENTER_FRAME, scale);
removeChild(buffer);
}
}
[/hide]
PilotMax, спасибки , очень помогли