Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Попытка реализации динамики через state, посоветуйте (http://www.flasher.ru/forum/showthread.php?t=132452)

Deidara 12.11.2009 09:51

Попытка реализации динамики через state, посоветуйте
 
Добрый день.
Пытаюсь решить следующую задачу при помощи mx:states.
Есть 2 состояния формы регистрации:
В первом добавляются елементы: 2,3,4,5,6
Во втором 1,2,3,4,5,6,7.
Код AS3:

<mx:states>
                <mx:State name="{firstStage}">
                        <mx:AddChild>
                                <mx:Canvas>
                                2,3,4,5,6
                                </mx:Canvas>
                        </mx:AddChild>
                </mx:State>
                <mx:State name="{secondStage}">
                        <mx:AddChild>
                                <mx:Canvas>
                                ????????????
                                </mx:Canvas>
                        </mx:AddChild>
                </mx:State>
</mx:states>

А вот что писать во втором стейте никак не соображу, объявлять те же елементы но с другими id как то не логично, а как сделать общую часть у стейтов при том что начальное состояние
Код AS3:

currentState = " "

уже занято((

alatar 12.11.2009 15:21

у State есть свойство basedOn

Deidara 12.11.2009 16:36

Свойство "basedOn" не пригодилось, хотя ларчик просто открывался.
Если у кого то будет схожая проблема, то вот:
Код AS3:

<mx:states>
        <!--Первая стадия регистрации-->
        <mx:State name="{firstStage}">
                        <mx:AddChild>
                                <mx:Canvas>
                                        <mx:RadioButtonGroup id="registerType"/>
                                        <mx:RadioButton x="10" y="168" label="Юридическое лицо" groupName="registerType" name="{secondStageLeg}"/>
                                        <mx:RadioButton x="10" y="194" label="Физическое лицо" groupName="registerType" name="{secondStageInd}"/>                       
                                        <mx:Button label="Дальше" click="nextBtnHendler(event)" x="164" y="179" width="160"/>
                                        <mx:Label x="10" y="10" text="Имя пользователя"/>
                                        <mx:Label x="10" y="40" text="E-mail"/>
                                        <mx:Label x="10" y="70" text="Подтверждение Email"/>
                                        <mx:Label x="15" y="100" text="Пароль"/>
                                        <mx:Label x="10" y="130" text="Подтверждение пароля"/>
                                        <mx:TextInput id="login" x="164" y="8"/>
                                        <mx:TextInput id="mail" x="164" y="38"/>
                                        <mx:TextInput id="reMail" x="164" y="68"/>
                                        <mx:TextInput id="password" x="164" y="98"/>
                                        <mx:TextInput id="rePassword" x="164" y="128"/>                                       
                                </mx:Canvas>
                        </mx:AddChild>
                </mx:State>
                <!--Вторая стадия регистрации-->
                <mx:State name="{secondStageInd}">
                        <mx:SetProperty target = "{secondStage}" name="visible" value="true"/>
                </mx:State>
                <!--ТретьяСтадия регистрации-->
                <mx:State name="{secondStageLeg}">
                        <mx:SetProperty target = "{secondStage}" name="visible" value="true"/>
                        <mx:SetProperty target="{head}" name="text" value="Форма регистрации юридических лиц"/>
                        <mx:SetProperty target="{backBtn}" name="y" value="500"/>
                        <mx:SetProperty target="{registerBtn}" name="y" value="500"/>
                        <mx:SetProperty target="{labelSooName}" name="y" value="380"/>
                        <mx:SetProperty target="{labelName}" name="y" value="350"/>
                        <mx:SetProperty target="{labelSecondName}" name="y" value="320"/>
                        <mx:SetProperty target="{secondName}" name="y" value="320"/>
                        <mx:SetProperty target="{firstName}" name="y" value="350"/>
                        <mx:SetProperty target="{sooName}" name="y" value="380"/>
                        <mx:SetProperty target="{labelCity}" name="y" value="140"/>
                        <mx:SetProperty target="{city}" name="y" value="140"/>
                        <mx:SetProperty target="{labelRegion}" name="y" value="110"/>
                        <mx:SetProperty target="{region}" name="y" value="110"/>
                        <mx:SetProperty target="{labelContry}" name="y" value="80"/>
                        <mx:SetProperty target="{contry}" name="y" value="80"/>
                        <mx:SetProperty target="{labelPhone}" name="y" value="230"/>
                        <mx:SetProperty target="{labelPhoneCode}" name="y" value="210"/>
                        <mx:SetProperty target="{labelPhoneNumber}" name="y" value="210"/>
                        <mx:SetProperty target="{phoneCode}" name="y" value="230"/>
                        <mx:SetProperty target="{phoneNumber}" name="y" value="230"/>
                        <mx:SetProperty target="{labelPhone7}" name="y" value="230"/>
                        <mx:SetProperty target="{mobilePhone}" name="y" value="260"/>
                        <mx:SetProperty target="{phoneMobile}" name="y" value="260"/>
                        <mx:AddChild relativeTo="{secondStage}" position="lastChild">
                                <mx:TextInput x="220" y="410" width="200"/>
                        </mx:AddChild>
                        <mx:AddChild relativeTo="{secondStage}" position="lastChild">
                                <mx:TextInput x="220" y="440" width="200"/>
                        </mx:AddChild>
                        <mx:AddChild relativeTo="{secondStage}" position="lastChild">
                                <mx:Label x="10" y="440" text="Web сайт"/>
                        </mx:AddChild>
                        <mx:AddChild relativeTo="{secondStage}" position="lastChild">
                                <mx:Label x="10" y="410" text="Контактный E-mail"/>
                        </mx:AddChild>
                        <mx:AddChild relativeTo="{secondStage}" position="lastChild">
                                <mx:Label x="10" y="50" text="Организация"/>
                        </mx:AddChild>
                        <mx:AddChild relativeTo="{secondStage}" position="lastChild">
                                <mx:ComboBox x="220" y="50" width="70"></mx:ComboBox>
                        </mx:AddChild>
                        <mx:AddChild relativeTo="{secondStage}" position="lastChild">
                                <mx:TextInput x="300" y="50" width="120"/>
                        </mx:AddChild>
                        <mx:AddChild relativeTo="{secondStage}" position="lastChild">
                                <mx:Label x="10" y="170" text="Юридический адресс"/>
                        </mx:AddChild>
                        <mx:AddChild relativeTo="{secondStage}" position="lastChild">
                                <mx:TextInput x="220" y="168" width="200"/>
                        </mx:AddChild>
                </mx:State>
        </mx:states>
        <!--Основа для состояний компонента-->
        <mx:Canvas id="secondStage" visible="false">
                <mx:Label id="head" x="10" y="10" text="Форма регистрации физических лиц"/>
                <mx:Label id="labelContry" x="10" y="50" text="Страна"/>
                <mx:Label id="labelRegion" x="10" y="80" text="Регион"/>
                <mx:Label id="labelCity" x="10" y="110" text="Город"/>
                <mx:Label id="labelSecondName" x="13" y="150" text="Фамилия"/>
                <mx:Label id="labelName" x="13" y="180" text="Имя"/>
                <mx:Label id="labelSooName" x="13" y="210" text="Отчество"/>
                <mx:Label id="labelPhone" x="13" y="260" text="Телефон"/>
                <mx:Label id="labelPhoneCode" x="230" y="240" text="код"/>
                <mx:Label id="labelPhoneNumber" x="330" y="240" text="номер"/>
                <mx:Label id="labelPhone7" x="195" y="262" text="+7"/>
                <mx:Label id="mobilePhone" x="13" y="290" text="Мобильный телефон"/>
                <mx:ComboBox id="contry" x="220" y="50" width="200"/>
                <mx:ComboBox id="region" x="220" y="80" width="200"/>
                <mx:ComboBox id="city" x="220" y="110" width="200"/>
                <mx:TextInput id="secondName" x="220" y="150" width="200"/>
                <mx:TextInput id="firstName" x="220" y="180" width="200"/>
                <mx:TextInput id="sooName" x="220" y="210" width="200"/>
                <mx:TextInput id="phoneCode" x="220" y="260" width="50"/>
                <mx:TextInput id="phoneNumber" x="280" y="260" width="140"/>
                <mx:TextInput id="phoneMobile" x="220" y="290" width="200" height="22"/>
                <mx:Button id="backBtn" x="10" y="320" label="Назад" width="160" height="22" click="currentState = firstStage"/>
                <mx:Button id="registerBtn" x="250" y="320" label="Регистрация" width="160" height="22" click="registerBtnhendler()"/>
        </mx:Canvas>

Хотя с "basedOn" было бы короче на 1 строчку и 2 свойства, ну и логичнее конечно.


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

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