Если вы создали в функции Main основного класса объект, то чтобы изменить его значение в другой функции этого класса что надо сделать.
Почему-то такой код работает (то есть меняет значение text1 c "Text" на "Hello" после запуска программы:

Код 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);
}
public 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));
text1.changeText("Hello");
var button: Button = new Button;
addChild(button.addButton(200, 200)).addEventListener(MouseEvent.CLICK, funButton);
}
}
}
А такой (которые должен бы был менять значение после нажатия конпки) - нет:

Код 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);
}
public 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: Button = new Button;
addChild(button.addButton(200, 200)).addEventListener(MouseEvent.CLICK, funButton);
}
public function funButton(e:MouseEvent): void
{
text1.changeText("Hello");
}
}
}
Ну а вот собственно сам класс TextF:

Код AS3:
package myClasses
{
/**
* ...
* @author Scorpion
*/
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class TextF extends Sprite
{
public var text: TextField = new TextField;
public function addText(value: String, x: int, y: int): TextField
{
text.text = value;
text.x = x;
text.y = y;
text.autoSize = "left";
var format: TextFormat = new TextFormat;
format.size = 40;
format.font = "Monotype Corsiva";
text.setTextFormat(format);
return text;
}
public function changeText(newText: String): void
{
text.text = newText;
var format: TextFormat = new TextFormat;
format.size = 40;
format.font = "Monotype Corsiva";
text.setTextFormat(format);
}
}
}
Когда в функции funButton в Main ввожу text1 оно вообще не видит его как существующую переменную (то есть после funButton. не выводится список методов, которые можно вызвать).
Добавлено через 15 минут
Стоп, ко мне пришло озарение ... надо было public var text1: TextF = new TextF; прописать не в функции Main, а в классе. А без этого обеспечить доступ переменной из функции в функцию нельзя?
Добавлено через 20 минут
Видно нельзя ... но почему-то никто тут мне не говорил, что объявлять переменные, которые используются в нескольких функциях класса, надо в классе, а не в главной функции(((