Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   ArgumentError: Error #2025 (http://www.flasher.ru/forum/showthread.php?t=181630)

mheha 28.06.2012 10:59

ArgumentError: Error #2025
 
при выполнении кода получаю ошибку:
ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.
at flash.display:: DisplayObjectContainer/removeChild()
at _000_fla::MainTimeline/fun1()
код работает правильно, но ошибка беспокоит, подскажите правильный синтаксис пожалуйста

Код AS3:

var item1:mc1=new mc1();
var item2:mc2=new mc2();
 
btn1.addEventListener(MouseEvent.CLICK, fun1);
btn2.addEventListener(MouseEvent.CLICK, fun2);
 
function fun1(e:MouseEvent):void
{
        addChild(item1);
        removeChild(item2);
}
function fun2(e:MouseEvent):void
{
        addChild(item2);
        removeChild(item1);
}


FlashRus 28.06.2012 11:13

1. Не пишите в кадре.
2. При первом нажатии, вы пытаетесь убрать со сцены объект, которого и так нет.

kukareku 28.06.2012 11:14

Вы пытаетесь удалить ребенка, который еще не был добавлен.
Код AS3:

removeChild(item2);

Код AS3:

removeChild(item1);

Добавьте перед удалением проверку
Код AS3:

if (contains(item1)){
                removeChild(item1);
        }

Код AS3:

if (contains(item2)){
                removeChild(item2);
        }


mheha 28.06.2012 11:41

Цитата:

Сообщение от FlashRus (Сообщение 1086373)
1. Не пишите в кадре.
2. При первом нажатии, вы пытаетесь убрать со сцены объект, которого и так нет.

хм... а если не в кадре, то где?

Добавлено через 2 минуты
Цитата:

Сообщение от kukareku (Сообщение 1086374)
Добавьте перед удалением проверку
Код AS3:

if (contains(item1)){
                removeChild(item1);
        }

Код AS3:

if (contains(item2)){
                removeChild(item2);
        }


попробовал, после нажатия на btn2 ошибка появляется снова и код перестает выполняться

TanaTiX 28.06.2012 12:34

Пишите в классах.

mheha 28.06.2012 17:53

вот такой код:
Код AS1/AS2:

var item1:mc1=new mc1();
var item2:mc2=new mc2();
 
btn1.addEventListener(MouseEvent.CLICK, fun1);
btn2.addEventListener(MouseEvent.CLICK, fun2);
 
function fun1(e:MouseEvent):void
{
if (contains(item2))
{
removeChild(item2);
}
addChild(item1);
}
function fun2(e:MouseEvent):void
{
if (contains(item1))
{
removeChild(item1);
}
addChild(item2);
}

работает правильно, но анимация не работает. Анимация в таймкоде внутри каждого символа,типа:
в нулевом кадре альфаканал=0 в 25-ом кадре альфаканал =100.
Если символы mc1 и mc2 разместить на сцене анимация работает.
Подскажите почему не работает анимация если мувики добавляются методом addChild?

dimarik 29.06.2012 00:29

contains(item1) укажет как на ребенка, так и на внука и правнука и т.д. Вам же нужен только первый ребенок, как я понимаю.


Часовой пояс GMT +4, время: 17:45.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.