То есть функция, которую вызывает слушатель, обязательно должна быть в Мейне (то есть в том же файле, что и сам слушатель). И нельзя из Мейна вызвать слушателем функцию из класса?
Добавлено через 43 минуты
Ну вот я переделал по вашему образцу

Код AS3:
package {
/**
* ...
* @author Scorpion
*/
import flash.events.*;
import flash.display.*;
import flash.text.*;
import myClasses.*;
public class Main extends Sprite
{
public function Main()
{
if (stage)
init();
else
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(): void {
addChild(Image.addImage(0, 0, "background"));
addChild(Image.addImage(0, 0, "head"));
addChild(Image.addImage(0, 200, "menuline"));
var text1: TextF = new TextF;
addChild(text1.addText("Text", 100, 200));
var button: Sprite = Button.addButton(200, 200);
addChild(button);
button.addEventListener(MouseEvent.CLICK, funButton);
}
private function funButton(e:MouseEvent): void
{
text1.text = "Hello";
}
}
}

Код AS3:
package myClasses
{
/**
* ...
* @author Scorpion
*/
import flash.display.*;
import flash.events.*;
public class Button
{
[Embed(source="Z:/home/test1.ru/www/img/but.png")] private static const Embed: Class;
public static function addButton(x: int, y: int): Sprite
{
var button: Bitmap;
button = new Embed();
button.x = x;
button.y = y;
button.addEventListener(MouseEvent.CLICK, funButton);
return (new Sprite()).addChild(button);
}
}
}
И у меня ошибки в строчках button.addEventListener(MouseEvent.CLICK, funButton); и return (new Sprite()).addChild(button);
и что вообще значит это написание через точку в ретурне?