Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   не удалось найти flash.xml (http://www.flasher.ru/forum/showthread.php?t=210459)

vpnils 18.03.2015 14:23

не удалось найти flash.xml
 
Приветствую знатоков!!
Не знаю куда запостить....
Читаю Мука - тема XML
Собс-но сабж: во время компиляции выдаётся мессага: не удалось найти определение flash.xml
хотя в ассистенте даёт выбрать из списка(значит видит?)
пишу на AS3.0
Может это быть причиной того, что у меня flash cs5 portable, а не проф?
ЗЫ. Обидно что всё изучение остановилось :(

ZackMercury 18.03.2015 14:27

Скорее всего ошибка в коде.
Выложите код.

vpnils 18.03.2015 21:27

Цитата:

Сообщение от ZackMercury (Сообщение 1180194)
Скорее всего ошибка в коде.
Выложите код.

Проверил код ещё раз, а потом случайно закомментировал оператор импорта - import flash.xml - и всё заработало. Но ведь это вопреки логике ....
//================
Код AS3:

 package  {
        import flash.display.Sprite;
        public class Runner extends Sprite  {
        //Из этого класса я запускаю все уроки Мука
                public function Runner() {
                trace("Runner is here..")
                var myxml:MyXML=new MyXML();
                }
 
        }
 
}
 
 
//=================
package  {
        import flash.display.Sprite;
        //import flash.xml; //строка закоментирована, компиляция проходит
 
        public class MyXML extends Sprite {
 
                public function MyXML() {
                        trace("Myxml is here..");
                        trace(1-й Простой способ создания объекта XML ");
 
                        var inst:XML= <BOOK ISBN="0141182806">
 
                        <TITLE>Ulysses</TITLE>
                        <AUTHOR>Joyce, James</AUTHOR>
                        <PUBLISHER>Penguin Books Ltd</PUBLISHER>
                        </BOOK>;
                        trace("Экземпляр inst в себе содержит ");
                        trace(inst.toXMLString());
//============================
 
                }//endconstr
 
        }//endclass
 
}//endpack


ZackMercury 18.03.2015 22:01

flash.xml - это пакет, причём в нём находятся классы, которые обычно никак не используются во флеше. А XML во флеше находится в верхнем уровне, его не надо импортировать.
Если бы вы хотели импортировать содержимое пакета, то вам нужно было бы написать
Код AS3:

import flash.xml.*;


vpnils 18.03.2015 22:26

Цитата:

Сообщение от ZackMercury (Сообщение 1180225)
flash.xml - его не надо импортировать.

То есть это справедливо для всех классов находящихся в самой папке flash?
Все эти классы не будут требовать явного импортирования?

ZackMercury 18.03.2015 22:54

flash.xml не имеет никакого отношения к классу XML, кроме похожего названия.
Классы в AS3 за исключением двух классов из всей флешевой библиотеки принято называть с большой буквы.
flash.xml - это пакет, который не содержит ничего полезного для вас.
А сам класс XML находится в верхнем уровне, так, что его не нужно импортировать.

vpnils 19.03.2015 21:22

Цитата:

flash.xml не имеет никакого отношения к классу XML,
Большое спасибо за разъяснения!! :)

dimarik 19.03.2015 21:45

Ошибка в том, что под flash.xml компилятор вынужден искать класс (по правде говоря, это может быть не только класс, см. ниже про definitions) "xml" из пакета "flash", которого в пакете flash никогда не было. Отсюда и ошибка компиляции. Т.е. "flash.xml" есть сам пакет.
Если бы вам нужен был какой-нибудь класс из этого пакета, то правильный импорт мог бы выглядеть так:

Код AS3:

import flash.xml.*;

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

Сообщение от vpnils (Сообщение 1180226)
То есть это справедливо для всех классов находящихся в самой папке flash?
Все эти классы не будут требовать явного импортирования?

Все классы из пакетов, кроме top level (корневого, там могут быть и ваши классы, методы, переменные и константы, т.н. definitions) требуют импортирования, если сам импортирующий класс находится в другом пакете =)

Например, ваш класс в пакете ru.mail.game, то он должен импортировать явно все классы, кроме top level и классов из пакета ru.mail.game.

vpnils 20.03.2015 03:38

Цитата:

Ошибка в том, что под flash.xml компилятор вынужден искать класс "xml" из пакета "flash", которого в пакете flash никогда не было
Выходит, что я сам запутал компилятор, когда подсунул ему левый импорт :), не будь которого, и он нашёл был без проблем искомый класс XML in toplevel .....

ZackMercury 20.03.2015 21:28

Нет, вы просто неправильно написали импорт.
Директива import состоит из части имени пакета и части имени класса.
Вы написали import flash.xml(пакет)
Соответственно, компилятор думает, что xml - это класс, находящийся в пакете flash, но там его нет.
В итоге он выбрасывает ошибку, что не может найти определение.

Далее, даже если бы такой класс был, он бы никак не конфликтовал с классом XML в верхнем уровне просто потому, что XML и xml - разные вещи. В AS3 регистр символов имеет значение. Здесь имеет значение, написано ли имя с большой или с маленькой буквы - это уже 2 разных имени.

dimarik 21.03.2015 14:45

Зак, спасибо. Кажется мы все разжевали.


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

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