ReferenceError: Ошибка № 1056 - ошибка имени экземпляра - PullRequest
1 голос
/ 10 февраля 2010

У меня проблема с видеоклипом, который я добавляю в рабочую область во Flash CS4 / AS3.

Файл Flash состоит из двух фрагментов ролика: «Внутри» и «Снаружи». Клип "Inside" содержится снаружи и имеет имя экземпляра "insideClip" . Клипы прикрепляются к файлам классов ActionScript с одинаковыми именами (снаружи и внутри), которые «пусты» - они ничего не делают, как те, которые автоматически создает flash.

При добавлении «Снаружи» на сцену я получаю следующую ошибку:

ReferenceError: Error #1056: property insideClip in Outside can not be created.
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at gui::Outside()
at MyDocumentClass()

Мне всегда трудно узнать, что на самом деле делает Flash и Actionscript за кулисами - есть ли хороший общий ресурс, который рекомендуется?

PS .: Код был переведен с версии на немецкий язык - на случай, если я пропустил имя переменной в переводе.

Код:

КЛАСС ДОКУМЕНТА:

package
{        
import flash.display.Sprite;
import flash.display.MovieClip;
import gui.Outside;


public class MyDocumentClass extends MovieClip
{   
    public var aussen:MovieClip;
    public function SelfDeclaredClips()
    {   outside = new Outside();
        outside.y = 100;
        outside.x = 100;
        addChild(outside);}}}

ВНЕШНИЙ КЛАСС:

package gui
{

import flash.display.MovieClip;

public class Outside extends MovieClip
{public function Outside(){}}
}

ВНУТРЕННИЙ КЛАСС:

package gui
{

import flash.display.MovieClip;

public class Inside extends MovieClip
{public function Inside(){}}
}

Ответы [ 2 ]

3 голосов
/ 10 февраля 2010

Эта ошибка возникает, когда вы снимаете флажок «Объявить экземпляры этапа автоматически» в диалоговом окне «Параметры ActionScript 3.0» и продолжаете объявлять экземпляры этапа как частные переменные в классе, связанном с содержащим MovieClip.

Вы не можете просто автоматически объявлять экземпляры сцены, не подделывая использование наследования в классах, связанных с символами MovieClip. Если у вас есть класс APrime, производный от класса A, и APrime связан с символом MovieClip, все экземпляры рабочей области, используемые в базовом классе A, должны быть вручную объявлены в классе A.

OR

AS3 ошибка 1056 появляется, когда вы неправильно указали свойство объекта. Это произойдет, когда вы что-то неправильно написали или когда вы ссылаетесь на переменные в стиле AS2 с начальным подчеркиванием (_). С ошибкой AS3 1056 на самом деле довольно приятно работать, потому что она говорит вам, какая именно переменная не работает, и сообщает, с каким объектом она не работает.

Вы также можете получить эту ошибку, если попытаетесь динамически назначить переменную объекту, который естественно не принимает переменную типа textField.

0 голосов
/ 10 февраля 2010

Попробуйте объявить public var, соответствующий названию вашего внутреннего клипа, внутри внешнего клипа:

package gui
{
 import flash.display.MovieClip;

 public class Outside extends MovieClip
 {
  public var insideClip:MovieClip; // here your declaration so the compiler can find it

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