PDA

Просмотр полной версии : 1037: Пакеты не могут быть вложенными


Thanx7
31.12.2008, 15:53
В поиске только адобовский сайт с перечислением номеров ошибок компилятора:

http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/compilerErrors.html

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

DarkLight
31.12.2008, 15:56
Это означает, что конструкция package{ package{ } } недопустима

Trumen
18.11.2010, 17:50
package { } у меня такого плана , та же ошибка
Подскажите проблему . спс

Lexxx_HU
22.11.2010, 16:50
код пакета в студию, тут телепатов на форуме нет

wvxvw
24.11.2010, 14:11
скорее всего вы пытаетесь код типа package { } использовать в теге <Script/>, естесственно это то же самое, что package { package { } }

Trumen
24.11.2010, 16:36
дело в том, что у меня один в слое package {

}
и все. не могу понять....

Lexxx_HU
24.11.2010, 17:50
так приведите хотя бы этот код, мы то может быть и рады помочь только мы не обладаем телепатическими способностями видеть код на расстоянии

Trumen
01.12.2010, 17:08
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFormatAlign;
import com.greensock.*;
import com.greensock.easing.*;

public class Calendar extends MovieClip
{

public static const CHANGEDATE:String = 'changedate';
public static const XGRID:Number = 12;
public static const YGRID:Number = 95;
public static const YDAYS:Number = 60;
public static const BETWEENCELLS:Number = 5;

private var _dateObject:Date;
private var _currentDate:Number;
private var _currentDay:Number;
private var _currentMonth:Number;
private var _currentYear:Number;
private var _days:Array;
private var _dates:Array;
private var _months:Array;
в;
private var _daysinMonth:Array;

private var _nextMonthButton:NextMonthButton;
private var _prevMonthButton:PrevMonthButton;
private var _nextYearButton:NextYearButton;
private var _prevYearButton:PrevYearButton;
private var _textCurrentMonth:TextField;
private var _textCurrentYear:TextField;
private var _formateTextMonthAndYear:TextFormat;
private var _formateTextDate:TextFormat;
private var _formateTextDays:TextFormat;

private var _startCell:Number;

public function Calendar()
{
init();
}

private function init():void
{

_dateObject = new Date();
_currentDate = _dateObject.getDate();
_currentDay = _dateObject.getDay();
_currentYear = _dateObject.getFullYear();
_currentMonth = _dateObject.getMonth();
_days = ['пн','вт','ср','чт','пт','сб','вс'];
_months = ["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"];
_daysinMonth = [31,28,31,30,31,30,31,31,30,31,30,31];

buildHeader();
buildGrid();
showCurrentDate();

addEventListener(MouseEvent.CLICK, onClick);
addEventListener(Calendar.CHANGEDATE, onChangeDate);
addEventListener(MouseEvent.ROLL_OVER, onROver, true);
addEventListener(MouseEvent.ROLL_OUT, onROut, true);
}

private function buildHeader():void
{

var textEmbed:TextEmbed = new TextEmbed();

_formateTextMonthAndYear = new TextFormat();
_formateTextMonthAndYear.color = 0x333333;
_formateTextMonthAndYear.font = 'Tahoma';
_formateTextMonthAndYear.size = '16';
_formateTextMonthAndYear.bold = true;
_formateTextMonthAndYear.align = TextFormatAlign.CENTER;

_formateTextDate = new TextFormat();
_formateTextDate.color = 0xffffff;
_formateTextDate.font = 'Tahoma';
_formateTextDate.size = '13';
_formateTextDate.bold = true;
_formateTextDate.align = TextFormatAlign.CENTER;

_formateTextDays = new TextFormat();
_formateTextDays.color = 0xffffff;
_formateTextDays.font = 'Tahoma';
_formateTextDays.size = '14';
_formateTextDays.bold = true;
_formateTextDays.align = TextFormatAlign.CENTER;

_textCurrentMonth = new TextField();
_textCurrentMonth.selectable = false;
_textCurrentMonth.defaultTextFormat = _formateTextMonthAndYear;
_textCurrentMonth.embedFonts = true;
_textCurrentMonth.x = 23;
_textCurrentMonth.y = 25;
_textCurrentMonth.width = 90;
_textCurrentMonth.height = 40;
_textCurrentMonth.text = _months[_currentMonth];
addChild(_textCurrentMonth);

_textCurrentYear = new TextField();
_textCurrentYear.embedFonts = true;
_textCurrentYear.selectable = false;
_textCurrentYear.defaultTextFormat = _formateTextMonthAndYear;
_textCurrentYear.x = 137;
_textCurrentYear.y = 25;
_textCurrentYear.width = 80;
_textCurrentYear.height = 40;
_textCurrentYear.text = _currentYear.toString();
addChild(_textCurrentYear);

for (var i:int = 0; i < _days.length; i++)
{
var bgDay:BgDay = new BgDay();
addChild(bgDay);
bgDay.x = i * (bgDay.width + BETWEENCELLS) + XGRID;
bgDay.y = YDAYS;

var textDay:TextField = new TextField();
textDay.mouseEnabled = false;
textDay.selectable = false;
textDay.text = _days[i];
textDay.width = 30;
textDay.height = 30;
textDay.embedFonts = true;
textDay.setTextFormat(_formateTextDays);
bgDay.addChild(textDay);
textDay.x = -3;
textDay.y = 1;

}



_nextMonthButton = new NextMonthButton();
_nextMonthButton.stop();
_nextMonthButton.x = 115;
_nextMonthButton.y = 33;
_nextMonthButton.buttonMode = true;
_nextMonthButton.useHandCursor = true;
addChild(_nextMonthButton);

_prevMonthButton = new PrevMonthButton();
_prevMonthButton.stop();
_prevMonthButton.x = 15;
_prevMonthButton.y = 33;
_prevMonthButton.buttonMode = true;
_prevMonthButton.useHandCursor = true;
addChild(_prevMonthButton);

_nextYearButton = new NextYearButton();
_nextYearButton.stop();
_nextYearButton.x = 209;
_nextYearButton.y = 33;
_nextYearButton.buttonMode = true;
_nextYearButton.useHandCursor = true;
addChild(_nextYearButton);

_prevYearButton = new PrevYearButton();
_prevYearButton.stop();
_prevYearButton.x = 137;
_prevYearButton.y = 33;
_prevYearButton.buttonMode = true;
_prevYearButton.useHandCursor = true;
addChild(_prevYearButton);
}

private function onChangeDate(e:Event):void
{
clearGrid();
buildGrid();
showCurrentDate();
}

private function clearGrid():void
{

_dates = null;
while (getChildAt(numChildren-1) is BgDate)
{
removeChild(getChildAt(numChildren-1));
}

_dateObject = new Date(_currentYear,_currentMonth,_currentDate);
_currentDate = _dateObject.getDate();
_currentDay = _dateObject.getDay();
_currentYear = _dateObject.getFullYear();
_currentMonth = _dateObject.getMonth();
}

private function showCurrentDate():void
{

_daysinMonth[1] = 28;

if ((_currentYear / 4 - Math.floor(_currentYear / 4) == 0))
{
_daysinMonth[1] = 29;
}

if (_currentYear / 100 - Math.floor(_currentYear / 100) == 0 &&
_currentYear / 400 - Math.floor(_currentYear / 400) != 0)
{
_daysinMonth[1] = 28;
}


for (var i:Number = _currentDate - 1; i < _dates.length - 1; i++)
{
if (_dates[i][1] == _currentDay)
{
_startCell = i;
_dates[i][2].gotoAndStop(2);
break;
}
}

var tempNumber:Number;
tempNumber = _startCell;


function attachTextField(it:Number):void
{
var textDate:TextField = new TextField();
textDate.mouseEnabled = false;
textDate.selectable = false;
textDate.text = it.toString();
textDate.width = 30;
textDate.height = 30;
textDate.embedFonts = true;
textDate.setTextFormat(_formateTextDate);
_dates[tempNumber][2].addChild(textDate);
textDate.x = -3;
textDate.y = 1;
}

for (var j:Number = _currentDate; j > 0; j--)
{
attachTextField(j);
tempNumber--;
}

tempNumber = _startCell;

for (var k:Number = _currentDate; k <= _daysinMonth[_currentMonth]; k++)
{
attachTextField(k);
tempNumber++;
}


for (var l:Number = 0; l < _dates.length; l++)
{
if (_dates[l][2].numChildren == 1)
{
removeChild(_dates[l][2]);
}
}


function tween():void
{
for (var i:Number = 0; i < _dates.length; i++)
{
if (_dates[i][2].stage)
{
var randomX:Number = Math.floor(Math.random() * 100);
var randomY:Number = Math.floor(Math.random() * 100);
_dates[i][2].x = _dates[i][2].x + randomX;
_dates[i][2].y = _dates[i][2].y + randomY;
var tw:TweenLite = new TweenLite(_dates[i][2],1,{x:_dates[i][2].x - randomX,y:_dates[i][2].y - randomY,ease:Bounce.easeOut});
}
}
}

tween();
}


private function buildGrid():void
{

_dates = new Array();

var it:Number = 0;

for (var i:Number = 0; i < 6; i++)
{

for (var j:Number = 0; j <= 7; j++)
{

if (j == 7)
{
break;
}
it++;
var dateOfMonth:Number;
dateOfMonth = it;

var dayOfWeek:Number;
dayOfWeek = j + 1;
if (dayOfWeek == 7)
{
dayOfWeek = 0;
}

var bgDate:BgDate = new BgDate();
addChild(bgDate);
bgDate.x = j * (bgDate.width + BETWEENCELLS) + XGRID;
bgDate.y = i * (bgDate.height + BETWEENCELLS) + YGRID;

_dates.push([dateOfMonth, dayOfWeek, bgDate]);
}
}
}


private function onROver(e:MouseEvent):void
{

if (e.target is BgDate)
{
if (e.target.currentFrameLabel == 'currentday')
{
}
else
{
e.target.gotoAndStop('rollover');
e.target.y = e.target.y - 2;
}
}
}


private function onROut(e:MouseEvent):void
{

if (e.target is BgDate)
{
if (e.target.currentFrameLabel == 'currentday')
{
}
else
{
e.target.gotoAndStop('default');
e.target.y = e.target.y + 2;
}
}
}

private function onClick(e:MouseEvent):void
{

if (e.target is NextMonthButton || e.target is PrevMonthButton
||e.target is NextYearButton || e.target is PrevYearButton)
{

if (e.target is NextMonthButton)
{
_currentMonth++;
if (_currentMonth == 12)
{
_currentMonth = 0;
_currentYear++;
_textCurrentYear.text = _currentYear.toString();
}
_textCurrentMonth.text = _months[_currentMonth];
}
else if (e.target is PrevMonthButton)
{
_currentMonth--;
if (_currentMonth == -1)
{
_currentMonth = 11;
_currentYear--;
_textCurrentYear.text = _currentYear.toString();
}
_textCurrentMonth.text = _months[_currentMonth];
}

if (e.target is NextYearButton)
{
_currentYear++;
_textCurrentYear.text = _currentYear.toString();
}
else if (e.target is PrevYearButton)
{
_currentYear--;
_textCurrentYear.text = _currentYear.toString();
}

dispatchEvent(new Event(CHANGEDATE));
}
}
}
}

Lexxx_HU
02.12.2010, 19:41
это код где у вас находится? в отдельном файле ? или в mxml

Trumen
07.12.2010, 14:19
в отдельном файле

Lexxx_HU
08.12.2010, 11:21
сейчас проделал файл-создать-Класс ActionScript - имя класса Calendar, скопировал в него ваш текст, никакой ошибки насчет пакеты могут быть вложенными нету (не считая буквы "в;" на строке 30). попробуйте удалить этот класс и заново создать. как вариант могу предложить если вам не сложно и там у вас нету ничего секретного выложить сюда весь проект. Файл-Экспорт проекта Flex

sikha
13.05.2011, 20:20
вот у меня такая же проблема!! как загрузить файл *.as в mxml не через <script> ???

etc
14.05.2011, 17:31
import.

sikha
15.05.2011, 00:59
нет нет нет! <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
</mx:Application>

прымо в строчке]<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >

можно что-то прописать и он сразу же будет грузить файл as как главный! и выполнять только сценарий оттуда!

wvxvw
15.05.2011, 01:39
Вы не можете его туда "загрузить". MXML - это язык шаблонов, из которых потом генерится (во время компиляции) ActionScript код.
Так же не правильно называть ActionScript код сценариями (так действительно было принято называть AS1 / AS2, до того как язык приобрел определенную независимость от конкретной виртуальной машины). На сегодняшний день AS - такой же язык программирования как Java или Python, или VB если хотите :)

Чтобы понять, что вы можете сделать: корневой тег MXML шаблона привязан к какому-нибуд AS3 классу. Т.е. если вы написали в Foo.mxml <s:Application>, это практически то же самое, что и public class Foo extends Application. Application - это один из очень немногих классов для которого эти выражения не тождественны - компилятор флекса добавляет определенные метаданные и генерит кучу кода для того, чтобы экземпляр этого класса был создан во вторм кадре, проинициализирован и т.д. (весь первый кадр - генерированный код, ну только разве что если вы сами предзагрузчик написали).
Технически, вы можете унаследоваться от Application, и тогда вы можете написать ваш код на AS (но вам все-равно нужен будет mxml файл, чтобы компилятор сообразил, что нужно сгенерировать первый кадр). Но это не лучший подход, т.как информацию по этому вы вряд ли найдете, чтобы знать, как это сделать прийдется покопаться в исходниках фреймворка, да и не нужно это.
Проверенный, гарантировано работающий способ понять, что именно происходит - скомпилировать с настройкой -keep, и посмотреть что же компилятор сгенерировал в папке generated рядом с бинраниками.

sikha
15.05.2011, 12:26
Большое спасибо за разъяснения! Это весьма ценная для меня информация, НО...!!!!
Дело в том что еще не давно совсем буквально дня 2 назад я бораздил интернет различнейшей инфой про flex и тому подобное и наткнулся на пример кода который имел следующую конструкцию


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
</mx:Application>

и именно в первой строчке кода была прописано
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" ***="Main.as" >
и все!!!! Класс был описана в отдельном файле! И как только запускал компилятор выполнялись все действия из класса! В mxml коде больше не было ни сточки! И вот именно вместо этих *** было что-то что я не помню и то, что мне так необходимо!!!!

alatar
15.05.2011, 12:39
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
<mx:Script source="Main.as"/>
</mx:Application>
Но это тоже самое, что использовать include
и именно в первой строчке кода была прописано
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" ***="Main.as" >
Нет такого. Скорее всего там был указан preloader.