Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.11.2011, 19:24
Zizilk вне форума Посмотреть профиль Отправить личное сообщение для Zizilk Найти все сообщения от Zizilk
  № 1  
Ответить с цитированием
Zizilk

Регистрация: Sep 2011
Сообщений: 28
По умолчанию Проблема с линковкой скриптового файла

Adobe Flash CS3
До линковки файл AS скрипта был отдельным, подключался import'ом во fla файл, и из fla в него передавался ссылка на текущий фрейм через который связывался с роликом кадрами и мувиклипами в кадре. Да коряво но работало. Для работы одной из либ понадобилось прилинковать файл скрипта к fla. Возникла проблема, Адоб флеш тупо перестал воспринимать и import и объявления функций. И кучу всего служебного. Вообщем всё что работало до линковки. И ладно бы сообщал, что не находит моих файлов или классов. Ругается на свои же.
Точноая ошибка
Код:
1046: Type was not found or was not a compile-time constant:xxxx.
Где хххх чередуется с Movieclip на TextField и обратно. При чём если ошибка на строчке TextField, то будет ошибка на эту же строчку и с Movieclip.

В графе источник указаны стандартные слова такие как import function и прочие.

Как линковал, в свойства проекта указал файл класса, который лежит в той же папке. Нажатие на редактирование подключённого класса меня приводит в него.

чтобы избежать неточностей сделал демо проект

на fla файле создал тупо один lable под названием testf

Вот такой скрипт класса test, который прилинкован к выше указанному fla файлу

Код AS3:
package{
	import flash.display.Sprite;
	import flash.errors.*;
	import flash.events.*;
	import flash.utils.Timer;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
	public class test extends Sprite 
	{
		public var type="Хрень";
		public function test() 
		{
			testf.text=type
		}
 
	}
}
По контрол энтер получаю ту же ошибку которая ругается на вторую строчку (то есть кавычка) и точная ошибка конкретно на неё 1046: Type was not found or was not a compile-time constant: TextField.

Код однозначно до линковки и изменений работал. Уверен, что после линковки должны бы были бы появится какие-то ошибки, но не такие что вдруг флеш перестал себя видеть.

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

В настройках проекта указан язык AS3 и компилирую для 9-ого флешплеера (новее в адобовском арсенале у меня нет).

Старый 02.11.2011, 19:54
BornTOFree вне форума Посмотреть профиль Отправить личное сообщение для BornTOFree Найти все сообщения от BornTOFree
  № 2  
Ответить с цитированием
BornTOFree

Регистрация: Oct 2010
Сообщений: 85
Цитата:
1046: Type was not found or was not a compile-time constant: TextField
Вы присваиваете экземпляру testf не созданного класса(TextField) текст. Поэтому у вас получается
Цитата:
type="Хрень";

Старый 02.11.2011, 19:57
Zizilk вне форума Посмотреть профиль Отправить личное сообщение для Zizilk Найти все сообщения от Zizilk
  № 3  
Ответить с цитированием
Zizilk

Регистрация: Sep 2011
Сообщений: 28
Почему, тогда ругается, на строчку с фигурной скобкой а не на неё. Удалил импорты кроме import flash.display.Sprite;, стала же эта же ошибка ссылаться на неё. До этого ссылалася на первую строчку. Как быть-то...

Добавлено через 5 минут
Всё попробовал импортнуть те библиотеки, и заработало Оо.
Вернее так остались те ошибки, которых ожидал с самого начала.

Странно как-то с механизмом отображения источника ошибки. Решения этой проблемы нашёл самые разные, от проверки путей ClassPath до компиляции для 10-ого плеера.

Старый 02.11.2011, 20:26
BornTOFree вне форума Посмотреть профиль Отправить личное сообщение для BornTOFree Найти все сообщения от BornTOFree
  № 4  
Ответить с цитированием
BornTOFree

Регистрация: Oct 2010
Сообщений: 85
По-моему вы что-то намудрили.
Так тоже с ошибками компилируется(?):
Код AS3:
package{
	import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
	public class test extends Sprite 
	{
		public var str:String="Text";
		public function test() 
		{
                        var txt:TextField = new TextField();
                        addChild(txt);
                        txt.autoSize = TextFieldAutoSize.LEFT;
			txt.text=str;
		}
 
	}
}

Старый 02.11.2011, 20:36
Zizilk вне форума Посмотреть профиль Отправить личное сообщение для Zizilk Найти все сообщения от Zizilk
  № 5  
Ответить с цитированием
Zizilk

Регистрация: Sep 2011
Сообщений: 28
Сейчас всё уже норм, надо только класс один мне вывести, который для работы с сетью.
В примере с импортом текст филда, тоже всё прошло удачно и грохнул его.

Сейчас вполне ожидаемые ошибки, и их всего несколько и уже их исправляю)

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:13.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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