Просмотр полной версии : Попытка реализации динамики через state, посоветуйте
Добрый день.
Пытаюсь решить следующую задачу при помощи mx:states.
Есть 2 состояния формы регистрации:
В первом добавляются елементы: 2,3,4,5,6
Во втором 1,2,3,4,5,6,7.
<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 как то не логично, а как сделать общую часть у стейтов при том что начальное состояние currentState = " " уже занято((
у State есть свойство basedOn
Свойство "basedOn" не пригодилось, хотя ларчик просто открывался.
Если у кого то будет схожая проблема, то вот:
<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 свойства, ну и логичнее конечно.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.