Flash Action Script 3 кнопка поворота - PullRequest
0 голосов
/ 03 ноября 2011

Может кто-нибудь сказать мне, что не так с этим кодом?Я пытаюсь повернуть кнопку в скрипте действия 3 и получаю сообщение об ошибке:

ArgumentError: Ошибка # 2025: предоставленный объект DisplayObject должен быть дочерним по отношению к вызывающей стороне.в flash.display :: DisplayObjectContainer / removeChild () в distributor_app_fla :: MainTimeline / NewChartOptionsReturn () [distributor_app_fla.MainTimeline :: frame1: 218] в distributor_app_fla :: MainTimeline / ClickNewChartOptions () [distributor_Time_fla_fla].1004 *

Я уже погуглил ошибку, и все, что я прочитал, велело мне удалить ребенка, затем снова добавить его в кадр, но он продолжает ломаться в том же месте.

код:

//defined

var btnNewChartOptions:NewChartOptions = new NewChartOptions();

btnNewChartOptions.y = 279;

btnNewChartOptions.x = 439;

//created

function NewChartDown():String

{

btnNewChartOptions.addEventListener(MouseEvent.CLICK, ClickNewChartOptions);

    btnNewChartOptions.alpha = 0;

addChild(btnNewChartOptions);

var NewChartOptionsTween:Tween = new Tween(btnNewChartOptions, "alpha", Strong.easeOut, 0, 1, 1, true);

return "NewChartSelected";

}

//actual code on button

function NewChartOptionsDown():String

{
rightGrayOut.alpha = 0;

addChild(rightGrayOut);

var grayOutTween:Tween = new Tween(rightGrayOut, "alpha", Strong.easeOut, 0, 1, 1, true);

var rotateTween:Tween = new Tween(btnNewChartOptions, "rotation", Strong.easeOut, 0, 180, 1, true);



return "NewChartOptions";

}

любая помощь приветствуется!

Ответы [ 2 ]

0 голосов
/ 03 ноября 2011

Если мне кажется, что объект еще не добавлен в список отображения.

// replace the following lines
removeChild(btnNewChartOptions);
addChild(btnNewChartOptions);

// with 
if( !this.contains( btnNewChartOptions ) ){
  return "";
}

[EDIT]Ваш код.

//var created
  var btnNewChartOptions:NewChartOptions = new NewChartOptions();
  btnNewChartOptions.y = 279;
  btnNewChartOptions.x = 439;
//button code clicked that creates button
  function NewChartDown():String {
    btnNewChartOptions.addEventListener(MouseEvent.CLICK, ClickNewChartOptions);
    btnNewChartOptions.alpha = 0;
    addChild(btnNewChartOptions);
    var NewChartOptionsTween:Tween = new Tween(btnNewChartOptions, "alpha", Strong.easeOut, 0, 1, 1, true);
    return "NewChartSelected";
  }




//function for button
  function NewChartOptionsDown():String {
    rightGrayOut.alpha = 0;
    addChild(rightGrayOut);
    var grayOutTween:Tween = new Tween(rightGrayOut, "alpha", Strong.easeOut, 0, 1, 1, true);
    var rotateTween:Tween = new Tween(btnNewChartOptions, "rotation", Strong.easeOut, 0, 180, 1, true);
    return "NewChartOptions";
  }

В предоставленном вами коде вы выполняете addChild(btnNewChartOptions); только в функции NewChartDown.Так что это говорит мне, что NewChartOptionsDown не может быть вызван, пока NewChartDown не будет вызван первым.Потому что btnNewChartOptions никогда не был добавлен.Что вы можете сделать, это переместить addChild(btnNewChartOptions); за пределы функции.

//var created
  var btnNewChartOptions:NewChartOptions = new NewChartOptions();
  btnNewChartOptions.y = 279;
  btnNewChartOptions.x = 439;
  addChild(btnNewChartOptions);
0 голосов
/ 03 ноября 2011

Не будет необходимости удалять и повторно добавлять объект, потому что он либо присутствует и доступен для метода, либо нет, то есть если бы он был доступен для метода удаления, то он также был бы доступен для адресации и манипулирования. Это очень похоже на проблему с областью видимости.

Этот код находится во фрейме 1 на временной шкале, что означает, что он должен иметь возможность обращаться ко всему, что находится непосредственно на сцене или присваивается переменной, которая находится в той же области во время выполнения функции. (В области _root, если это был AS2, как методы в кадре 1)

Является ли btnNewChartOptions внутри другого DisplayObject, как спрайт, который вы используете для удержания всех своих кнопок или чего-то еще, в отличие от того, чтобы сидеть прямо на сцене? Возможно, вы можете описать иерархию объектов, к которой вы пытаетесь обратиться, а также то, как кнопка прикрепляется к сцене (например, создается и прикрепляется во время выполнения или помещается на сцену в ключевом кадре).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...