Цитата:
Сообщение от winbackgo
при инициализации флэш инициализирует mainApp и где-то ведь хранится ссылка на него.
|
А Вы создали ссылку на него? Нет ссылки - нет доступа.
Цитата:
|
про передачу this я думал но тогда привязка класса к mainApp и если потом его использовать в другом проекте то надо переделывать.
|
Интерфейсы спасают.
Цитата:
|
Мне вообще это нужно для создания функции дебаг и в классе проверить если она доступна то вызывать.
|
ApplicationDomain.hasDefinition(value:String):Boolean
Цитата:
|
А также для доступа к параметрам flashvars через loaderInfo. В mainApp доступно root.loaderInfo.parameters как до них добраться в exampleClass?
|
Конфигурируте ЕxampleClass необходимыми ему параметрами. Можно в конструктор передавать. а можно сеттить после создания его экземпляра.

Код AS3:
package {
import flash.display.Sprite;
public class MainApp extends Sprite implements ITestable {
public function MainApp() {
super();
var exampleClass:ExampleClass = new ExampleClass();
var param:uint = parseInt(super.loaderInfo.parameters['param']);
exampleClass.controller = this;
exampleClass.param = param;
}
public function test(value:uint):void {
trace('Tested: ' + value);
}
}
}

Код AS3:
package {
public class ExampleClass {
public function ExampleClass() {
super();
}
//-----------------------------
// controller
//-----------------------------
private var _controller: ITestable;
public function set controller(value:ITestable):void {
if (this._controller == value) return;
this._controller = value;
}
public function get controller():ITestable {
return this._controller;
}
//-----------------------------
// param
//-----------------------------
public function set param(value:uint):void {
if (this._controller) this._controller.test(value);
}
}
}

Код AS3:
package {
public interface ITestable {
function test():void;
}
}