Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   [mxmlc] Не могу скомпилировать два *.as файла (http://www.flasher.ru/forum/showthread.php?t=145281)

xintrea 03.10.2010 23:51

[mxmlc] Не могу скомпилировать два *.as файла
 
Здравствуйте!


Имеется у меня два файла - Main.as и PushButton.as.

Main.as:
Код AS3:

package 
{
 import flash.display.Sprite;
 import flash.text.TextField;
 
 include "PushButton.as";
 
 public class Main extends Sprite
 {
 
  public function Main()
  {
  var display_txt:TextField = new TextField();
  display_txt.text = "This is text";
  addChild(display_txt);
 
  var button:PushButton=new PushButton(10,10,50,20,"This is button");
  addChild(button);
  }
 }
}

PushButton.as:
Код AS3:

import flash.display.Sprite;
import flash.display.DisplayObject;
import flash.display.SimpleButton;
 
public class PushButton extends SimpleButton
{
 
 private var button_label:TextField;
 private var button_width:Number=0;
 private var button_height:Number=0;
 private var button_x:Number=0;
 private var button_y:Number=0;
 
 public function PushButton(buttonX:Number,
                            buttonY:Number,
                            buttonWidth:Number,
                            buttonHeight:Number,
                            buttonText:String)
 {
  button_label=new TextField();
  button_label.text=buttonText;
  button_label.selectable = false;
  button_label.x=buttonWidth/2;
  button_label.y=buttonHeight/2;
 
  button_x=buttonX;
  button_y=buttonY;
  button_width=buttonWidth;
  button_height=buttonHeight;
 
  super.upState(button_sprite(0x888888));
  super.overState(button_sprite(0x999999));
  super.downState(button_sprite(0xAAAAAA));
  super.hitTestState(button_sprite(0xBBBBBB));
 
  super.x=buttonX;
  super.y=buttonY;
 }
 
 
 function button_sprite(color:uint = 0x888888):Sprite
 {
  var b_sprite:Sprite=new Sprite();
 
  b_sprite.graphics.lineStyle(1);
  b_sprite.graphics.beginFill(color);
  b_sprite.graphics.drawRoundRect(0, 0, button_width,  button_height, 1);
  b_sprite.graphics.endFill();
 
  b_sprite.addChild(button_label);
 
  return b_sprite;
 }
}

Компилирование провожу командой:

Код:

mxmlc Main.as
В результате, во время компиляции появляется сообщение:

Цитата:

Main.as: Ошибка: Файл, найденный по исходному пути, не может иметь более одного определения, видимого вне программы. PushButton;Main
Что сие значит? Что неправильно в вышеприведенном коде?

VVall 03.10.2010 23:55

А где package во втором файле?

Edit: не заметил include. Насколько я помню, mxmlc не любит, когда объявляется больше одного класса в одном файле, и с точки зрения компилятора сейчас у вас один файл. Поэтому include убрать, добавить package во втором файле аналогично первому.

xintrea 04.10.2010 00:35

Цитата:

Сообщение от VVall (Сообщение 940575)
Насколько я помню, mxmlc не любит, когда объявляется больше одного класса в одном файле, и с точки зрения компилятора сейчас у вас один файл. Поэтому include убрать, добавить package во втором файле аналогично первому.

Угу, получилось скомпилить, спасибо.


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

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