ActionScript 3 Ошибка 1037: пакеты не могут быть вложенными - PullRequest
0 голосов
/ 13 февраля 2009

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

 "1037: Packages cannot be nested."

Что это значит?

Подскажите пожалуйста, как выполнить? или любая проблема в этом коде?

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.text.TextFieldType;

    public class TextField_alwaysShowSelection extends Sprite {
        public function TextField_alwaysShowSelection() {
            var label1:TextField = createTextField(0, 20, 200, 20);
            label1.text = "This text is selected.";
            label1.setSelection(0, 9);
            label1.alwaysShowSelection = true;

            var label2:TextField = createTextField(0, 50, 200, 20);
            label2.text = "Drag to select some of this text.";
        }

        private function createTextField(x:Number, y:Number, width:Number, height:Number):TextField {
            var result:TextField = new TextField();
            result.x = x; result.y = y;
            result.width = width; result.height = height;
            addChild(result);
            return result;
        }
    }
}

Ответы [ 5 ]

3 голосов
/ 18 ноября 2011

Вам нужно создать файл сценария действия, а затем добавить этот класс в класс документа в свойстве FLA-файла, чтобы он не выдал ошибку

2 голосов
/ 13 февраля 2009

Ваш код должен скомпилироваться при условии, что он находится в корневой папке с исходным кодом («src» во Flex Builder). Вы уверены, что это весь файл?

Ошибка означает, что вы вложили инструкцию package {} в другую инструкцию package {}.

1 голос
/ 22 марта 2014

Если вы хотите включить AS3 в саму шкалу времени, используйте это:

import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;


     function TextField_alwaysShowSelection() {
        var label1:TextField = createTextField(0, 20, 200, 20);
        label1.text = "This text is selected.";
        label1.setSelection(0, 9);
        label1.alwaysShowSelection = true;

        var label2:TextField = createTextField(0, 50, 200, 20);
        label2.text = "Drag to select some of this text.";
    }

     function createTextField(x:Number, y:Number, width:Number, height:Number):TextField {
        var result:TextField = new TextField();
        result.x = x; result.y = y;
        result.width = width; result.height = height;
        addChild(result);
        return result;
    }
0 голосов
/ 22 октября 2009

Если вы используете Flash, поместите этот код в файл с именем «TextField_alwaysShowSelection.as», поместите его рядом с вашим FLA и установите имя этого класса в качестве DocumentClass на панели «Свойства» вашего FLA ... там написано "Class:" напиши "TextField_alwaysShowSelection".

0 голосов
/ 13 февраля 2009

Как у вас работает этот файл? Это не полный файл. Если вы работаете с flex, то вам нужен поддерживаемый код MXML. Однако ошибка указывает, что вы работаете с папкой src. Было бы хорошо, если бы вы дали полную процедуру.

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