![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jul 2009
Сообщений: 6
|
Есть такая прога
mainApp.as package { import flash.display.Sprite; import classes.exampleClass; public class mainApp extends Sprite { public function mainApp():void { new exampleClass(); } public function test():void { } } } В flex можно заюзать Application.application.test() а тут как быть? Последний раз редактировалось iNils; 09.07.2009 в 01:31. |
|
|||||
|
А у вас есть метод test в mainApp?
|
|
|||||
|
Регистрация: Jul 2009
Сообщений: 6
|
public function test():void
|
|
|||||
|
.
|
|
|
|||||
|
тьфу ты...))
Вам для каких целей? просто так в своем екземплклассе вы не сможете добраться до майн класса там либо передавать ссылку, либо вы можете создать статичное свойство вроде такого package { import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { private static var _instance:Main; public function Main():void { _instance=this; new exampleClass(); } public function test():void{} static public function get instance():Main { return _instance; } } } как то так... но по сути, как я понимаю это просто реализация флексового Application Последний раз редактировалось ramshteks; 09.07.2009 в 01:51. |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 6
|
при инициализации флэш инициализирует mainApp и где-то ведь хранится ссылка на него. про передачу this я думал но тогда привязка класса к mainApp и если потом его использовать в другом проекте то надо переделывать. Мне вообще это нужно для создания функции дебаг и в классе проверить если она доступна то вызывать. А также для доступа к параметрам flashvars через loaderInfo. В mainApp доступно root.loaderInfo.parameters как до них добраться в exampleClass?
|
|
|||||
|
.
|
Цитата:
Цитата:
Цитата:
Цитата:
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); } } } 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); } } } |
|
|||||
|
ну по идее для доступа к флешворсам вам достаточно создать экземпляр LoaderInfo в вашем экземпеле и получить доступ к флеш ворсам. Для этого по крайней мере не нужна ссылка на документ класс
|
|
|||||
|
Регистрация: Jul 2009
Сообщений: 6
|
что-то не сработало с instance. говорит что нулл. main = Main.inst(); а при вызове main.Log ругается что main null
|
|
|||||
|
код ваш выложите
|
![]() |
![]() |
Часовой пояс GMT +4, время: 00:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|