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

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

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

Регистрация: May 2011
Сообщений: 7
Attention класс SWFAddressEvent и ошибка 5007

Возникла такая проблема:
есть SWFAddressEvent.as,SWFAddress.as и main.fla файлом. При компиляции флеш выдает ошибку 5007:An ActionScript file must have at least one externally visible definition. И при этом указывает на класс SWFAddressEvent, который в наглую скачан с безграничных просторов интернета. Код класса выглядит следующим образом:
Код AS3:
import SWFAddress;
 
class SWFAddressEvent {
 
    public static var INIT:String = 'init';
    public static var CHANGE:String = 'change';
 
    private var _type:String;
    private var _value:String;
    private var _path:String;
    private var _pathNames:Array;
    private var _parameters:Object;
    private var _parametersNames:Array;
 
    public function SWFAddressEvent(type:String) {
        _type = type;
        _value = SWFAddress.getValue();
        _path = SWFAddress.getPath();
        _pathNames = SWFAddress.getPathNames();
        _parameters = new Array();
        _parametersNames = SWFAddress.getParameterNames();
        for (var i:Number = 0; i < _parametersNames.length; i++) {
            _parameters[_parametersNames[i]] = SWFAddress.getParameter(_parametersNames[i]);
        }        
    }
 
    public function get type():String {
        return _type;
    }
 
    public function get target():Object {
        return SWFAddress;
    }
 
    public function get value():String {
        return _value;
    }
 
    public function get path():String {
        return _path;
    }
 
    public function get pathNames():Array {
        return _pathNames;
    }
 
    public function get parameters():Object {
        return _parameters;
    }
 
    public function get parametersNames():Array {
        return _parametersNames;
    }    
}
Так как я только с недавних пор пытаюсь пересесть с Action Script2.0 на 3.0, то даже не особо могу определить в чем кроется ошибка: то ли в расположении файлов, то ли чего то не хватает в самом коде?

Старый 31.05.2011, 18:30
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 2  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Цитата:
class SWFAddressEvent {
Заменить на
Код AS3:
public class SWFAddressEvent {
__________________
Нормально делай — нормально будет!

Старый 31.05.2011, 18:38
Di_al вне форума Посмотреть профиль Отправить личное сообщение для Di_al Найти все сообщения от Di_al
  № 3  
Ответить с цитированием
Di_al

Регистрация: May 2011
Сообщений: 7
Цитата:
Сообщение от tsarapkabel Посмотреть сообщение
Заменить на
Код AS3:
public class SWFAddressEvent {
Хмммм..... а теперь он выдал новую ошибку, что атрибуты класса могут использоваться только внутри %(
Звучит вот так:
Код AS3:
C:\Users\Xmel\Desktop\Anls\5\SWFAddressEvent.as, Line 11	1114: The public attribute can only be used inside a package.

Старый 31.05.2011, 21:49
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 4  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
В самом начале добавить

Код AS3:
package {
и закрыть в конце.
__________________
Нормально делай — нормально будет!

Старый 31.05.2011, 22:13
Di_al вне форума Посмотреть профиль Отправить личное сообщение для Di_al Найти все сообщения от Di_al
  № 5  
Ответить с цитированием
Di_al

Регистрация: May 2011
Сообщений: 7
Пробовала. Увы ошибка 5007 сохраняется

Старый 31.05.2011, 22:37
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 6  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Вот так всё работает, при условии, что класс SWFAddress импортируется.
Код AS3:
package {
 
	import SWFAddress;
 
	public class SWFAddressEvent {
 
		public static var INIT:String = 'init';
		public static var CHANGE:String = 'change';
 
		private var _type:String;
		private var _value:String;
		private var _path:String;
		private var _pathNames:Array;
		private var _parameters:Object;
		private var _parametersNames:Array;
 
		public function SWFAddressEvent(type:String) {
			_type = type;
			_value = SWFAddress.getValue();
			_path = SWFAddress.getPath();
			_pathNames = SWFAddress.getPathNames();
			_parameters = new Array();
			_parametersNames = SWFAddress.getParameterNames();
			for (var i:Number = 0; i < _parametersNames.length; i++) {
				_parameters[_parametersNames[i]] = SWFAddress.getParameter(_parametersNames[i]);
			}        
		}
 
		public function get type():String {
			return _type;
		}
 
		public function get target():Object {
			return SWFAddress;
		}
 
		public function get value():String {
			return _value;
		}
 
		public function get path():String {
			return _path;
		}
 
		public function get pathNames():Array {
			return _pathNames;
		}
 
		public function get parameters():Object {
			return _parameters;
		}
 
		public function get parametersNames():Array {
			return _parametersNames;
		}
	}
}
__________________
Нормально делай — нормально будет!

Старый 31.05.2011, 22:55
Di_al вне форума Посмотреть профиль Отправить личное сообщение для Di_al Найти все сообщения от Di_al
  № 7  
Ответить с цитированием
Di_al

Регистрация: May 2011
Сообщений: 7
Кхм.... И как же тогда вывернуться из сложившейся ситуации??? Попробовала поперемещать класс он либо говорит, что класс не в той папке, либо, если удалить, что класс не найден. Когда класс с ним рядом, ошибок импортирования нет. А 5007 все равно осталась

Старый 31.05.2011, 23:12
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 8  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Выложи SWFAddress.as (можно только код) и main.fla.
__________________
Нормально делай — нормально будет!

Старый 31.05.2011, 23:34
Di_al вне форума Посмотреть профиль Отправить личное сообщение для Di_al Найти все сообщения от Di_al
  № 9  
Ответить с цитированием
Di_al

Регистрация: May 2011
Сообщений: 7
боюсь, что этим обойтись не выйдет-проект довольно масштабный. Выложила его вот сюда
сюда

Старый 01.06.2011, 00:19
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 10  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Всё работает. Ещё раз по порядку: 1) package 2) две фигурные скобки 3) public 4) сохраняемся 5) profit

Далее он выдаёт кучу ошибок "1046", однако если применить Автоформат (наверху 4-я иконка слева в редакторе кода Flash IDE), останутся только косяки с

Код AS3:
ExternalInterface.addCallback('getSWFAddressValue', SWFAddress, ;
				function():String {return this._value});
Полагаю, что уход от анонимных функций решит эту проблему.
__________________
Нормально делай — нормально будет!


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

Теги
Acton Script 3.0 , SWFAddressEvent , новичок , ошибка 5007

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

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


 


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


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