Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.09.2009, 10:01
lighto вне форума Посмотреть профиль Отправить личное сообщение для lighto Найти все сообщения от lighto
  № 1  
Ответить с цитированием
lighto
[+1 17.02.10]
 
Аватар для lighto

Регистрация: Aug 2009
Адрес: Казахстан Усть-Каменогорск
Сообщений: 249
По умолчанию Есть или нет глобальные переменные во FLEX?

Как мне перекинуть значение переменной из 1 Mxml файла в другой ???? есть ли вообще такое во флексе???Заранее спасибо. Да и если есть напишите как иль ссыль кинте. спасибо.

Старый 23.09.2009, 11:10
Night_rainbow вне форума Посмотреть профиль Отправить личное сообщение для Night_rainbow Найти все сообщения от Night_rainbow
  № 2  
Ответить с цитированием
Night_rainbow

Регистрация: Sep 2009
Сообщений: 18
Например, вот так:
MyCombobox.mxml:
Код AS3:
<?xml version="1.0" ?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script><![CDATA[
    public static final var value:Number=1;
        ]]></mx:Script>
    <mx:ComboBox>
        <mx:ArrayCollection>
            <mx:String>Dog</mx:String>
            <mx:String>Cat</mx:String>
        </mx:ArrayCollection>
    </mx:ComboBox>
</mx:VBox>

Потом в любом месте приложения:
Код AS3:
<mx:Script><![CDATA[
private function doSmth():void{
...
var n:Number = MyCombobox.value;
}
]]></mx:Script>

Старый 23.09.2009, 11:16
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Во-первых, как правило, глобальные переменные не нужны. Бывают нужны глобальные константы. Это значит, что если вам нужно получить значение свойства какого-то объекта, так и обратитесь к этому объекту.
Во-вторых, нет, в AS3 вообще нет глобальных переменных.
__________________
Hell is the possibility of sanity

Старый 23.09.2009, 11:43
lighto вне форума Посмотреть профиль Отправить личное сообщение для lighto Найти все сообщения от lighto
  № 4  
Ответить с цитированием
lighto
[+1 17.02.10]
 
Аватар для lighto

Регистрация: Aug 2009
Адрес: Казахстан Усть-Каменогорск
Сообщений: 249
Цитата:
Сообщение от Night_rainbow Посмотреть сообщение
Например, вот так:
MyCombobox.mxml:
Код AS3:
<?xml version="1.0" ?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script><![CDATA[
    public static final var value:Number=1;
        ]]></mx:Script>
    <mx:ComboBox>
        <mx:ArrayCollection>
            <mx:String>Dog</mx:String>
            <mx:String>Cat</mx:String>
        </mx:ArrayCollection>
    </mx:ComboBox>
</mx:VBox>

Потом в любом месте приложения:
Код AS3:
<mx:Script><![CDATA[
private function doSmth():void{
...
var n:Number = MyCombobox.value;
}
]]></mx:Script>
Не получается так пишет ошибку такого содержания Только атрибут "final" может использоваться в методе, который определен в классе.

Старый 23.09.2009, 12:25
Night_rainbow вне форума Посмотреть профиль Отправить личное сообщение для Night_rainbow Найти все сообщения от Night_rainbow
  № 5  
Ответить с цитированием
Night_rainbow

Регистрация: Sep 2009
Сообщений: 18
Да, точно, прощу прощения. С явой перепутал. Там и поля класса могут быть final. Просто уберите final и все....

P.S. Кстати говоря, а почему в actionScript убрали возможность выставления атрибута final на поле класса? Очень удобно ведь - помечать те переменные, которые нельзя изменять...

Старый 23.09.2009, 14:48
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А как это у вас сочитается переменная и конечная / постоянная? Переменная - значит, можно изменять, конечная - значит изменять нельзя. Переменная, которую нельзя изменять - это и будет константа Ну и поэтому переопределять родительские переменные нельзя. А в яве просто другая структура... там поле может в классе-наследнике превратится в сеттер / геттер и наоборот, поэтому там такой функционал нужен, а в АС - вы заранее задаете, что именно создаете, функцию или переменную.

lighto:
Глобальные константы тоже неьзя создать. Под глобальными константами понимается true, false, "", null, undefined и тому подобные. Максимально похожее, что вы можете сделать, это создать переменную уровня верхнего пакета. Но делать это не рекомендуется. И, как правило, если у вас возникла необходимость сделать что-то похожее, это значит, что вы плохо спланировали приложение.
__________________
Hell is the possibility of sanity

Старый 23.09.2009, 15:49
Night_rainbow вне форума Посмотреть профиль Отправить личное сообщение для Night_rainbow Найти все сообщения от Night_rainbow
  № 7  
Ответить с цитированием
Night_rainbow

Регистрация: Sep 2009
Сообщений: 18
Цитата:
Сообщение от wvxvw Посмотреть сообщение
А в яве просто другая структура... там поле может в классе-наследнике превратится в сеттер / геттер и наоборот, поэтому там такой функционал нужен, а в АС - вы заранее задаете, что именно создаете, функцию или переменную.
Извините, не совсем понял. Поле в яве никак не может превратиться в сеттер/гетер.
У final в яве есть некоторые свойства const в си, например, но это не совсем const
Вот в википедии:
статья


Скажите, пожалуйста, как ActionScript обознаить НЕИЗМЕНЯЕМЫЕ поля класса? Ну чтобы эти поля не мог изменить ни потомок, ни родитель после инициализации этого поля?

То есть аналог явы:
Код AS3:
public final String someParam="Hello";


Последний раз редактировалось Night_rainbow; 23.09.2009 в 17:05.
Старый 23.09.2009, 17:53
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 8  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код AS3:
public const someParam = "Hello";

А таких конечных переменных в АС нету, но можно имитировать если нужно:
Код AS3:
public final function set foo(value:Object):void
{
    if (_foo) return;
    _foo = value;
}
И это, а разве нельзя в суперклассе:
Код:
public Foo bar;
и в наследнике:
Код:
public Foo bar() { ... }
Я может ошибаюсь, но, помоему можно...
__________________
Hell is the possibility of sanity

Старый 23.09.2009, 18:29
Night_rainbow вне форума Посмотреть профиль Отправить личное сообщение для Night_rainbow Найти все сообщения от Night_rainbow
  № 9  
Ответить с цитированием
Night_rainbow

Регистрация: Sep 2009
Сообщений: 18
Можно, но это ведь не геттер. По спецификации гетером называются методы вида:

Код AS3:
private String parameter;
 
public String getParameter(){
return parameter;
}

В яве нельзя вызвать гетер без ():
Вот смотрите:


Код AS3:
public class Parent {
    public final Integer integer=1;
}
Код AS3:
public class Child extends Parent{
    public Child(){
        integer = 0;      //ошибка компиляции
    }
    public Integer integer(){
        return 0;
    }
 
    public static void main(String[] args){
        Parent p = new Parent();
        System.out.println(p.integer+"");    //1
        Child ch = new Child();
        System.out.println(ch.integer);      //1
        System.out.println(ch.integer());   //0
        p = ch;
        System.out.println(p.integer());   //ошибка компиляции
        System.out.println(p.integer);   //1
    }
}

Старый 23.09.2009, 18:52
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 10  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Прошу прощения, оговорился.
__________________
Hell is the possibility of sanity

Создать новую тему Ответ Часовой пояс GMT +4, время: 06:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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