Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Обратиться к .mxml из класса (http://www.flasher.ru/forum/showthread.php?t=170615)

Welcometo 28.10.2011 20:04

Обратиться к .mxml из класса
 
В проекте несколько главных приложений .mxml. Т.е. у каждого из этих файлов корневым тегом является <Application>.
Есть пользовательский класс. Как из класса обратиться к Паблик переменной mxml? Как я вижу, файл.mxml по сути является классом, но почему то поля (паблик) недоступны.
Application.application ссылается на главный, запускаемый mxml файл, а мне надо ссылку на другой.

Dimitry_II 28.10.2011 20:41

Смысл <Application> как раз в том, чтобы оно было одно.
Если посмотреть на иерархию класса Application, то видно, что он наследуется из UIComponent, SkinnableComponent и т.д. - как другие, в том числе и базовые контейнеры, то есть для "других" правильнее было бы использовать удобные контейнеры (к примеру, BorderContainer).

Astraport 28.10.2011 21:24

Меня alatar в очередной раз толкнет, но юзай FlexGlobals:)

Welcometo 31.10.2011 23:51

Astraport, рад бы, но проект на Flex 3

Dimitry_II,
Цитата:

то есть для "других" правильнее было бы использовать
Проект не мой, приходится работать с тем что есть

Astraport 01.11.2011 00:13

http://livedocs.adobe.com/flex/3/htm...modular_7.html
Может здесь что накопаете.
Код AS3:

Module 1:
 
<?xml version="1.0"?>
<!-- modules/InterModule1.mxml -->
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
    <mx:Script><![CDATA[   
        // Defines the method that the other module calls.
        public function getNewTitle():String {
            return "New Module Title";
        }   
    ]]></mx:Script>
</mx:Module>
 
Module 2:
 
<?xml version="1.0"?>
<!-- modules/InterModule2.mxml -->
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
    <mx:Script><![CDATA[   
        [Bindable]
        private var title:String;
 
        // Call method of another module.
        private function changeTitle():void {
            title = parentApplication.m1.child.getNewTitle();
        }
 
    ]]></mx:Script>
    <mx:HBox>
        <mx:Label id="l1" text="Title: "/>
        <mx:Label id="myTitle" text="{title}"/>
    </mx:HBox>   
    <mx:Button id="b1" label="Change Title" click="changeTitle()"/>   
</mx:Module>


Welcometo 01.11.2011 00:28

Astraport, спасибо за старания помочь, но модули тут вообще не причем(

Котяра 01.11.2011 00:38

Цитата:

В проекте несколько главных приложений .mxml
так не бывает

Welcometo 02.11.2011 19:44

Котяра, бывает.
New Project ->

- new MXML Application
- new MXML Application
- new MXML Application

alatar 02.11.2011 19:59

В проекте может быть несколько приложений. На выходе вы получите несколько swf файлов (по количеству приложений) и взаимодействовать они должны как отдельные приложения. Так что, никаких "мне надо ссылку на другой", приложения просто друг о друге ничего не знают. Либо используйте ваш класс в нужном вам приложении, либо налаживайте между ними связь (через сервер, p2p, LocalConnection и т.д.).


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

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