eXplozive
24.10.2006, 20:08
Вот написал я сегодня такой компонент
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" initialize="initApp()">
<mx:states>
<mx:State name="open">
<mx:RemoveChild target="{icn}"/>
<mx:AddChild position="lastChild">
<mx:TitleWindow width="420" height="250" layout="absolute" id="win" title="Feedback" showCloseButton="true">
<mx:Label text="Кому:" x="10" y="10"/>
<mx:Label text="Тема:" x="10" y="36"/>
<mx:TextInput y="8" text="Кто-то там" enabled="false" textAlign="left" left="55" right="10"/>
<mx:TextInput left="55" right="10" height="22" y="34" textAlign="left" id="subject"/>
<mx:TextArea bottom="40" left="55" right="10" top="64" textAlign="left" id="content"/>
<mx:LinkButton label="Отправить" click="send_status()" right="10" bottom="10" themeColor="#c0c0c0"/>
</mx:TitleWindow>
</mx:AddChild>
</mx:State>
</mx:states>
<mx:Script>
<![CDATA[
import flash.events.*;
import mx.controls.Alert;
private function alrt(txt:String):void{
Alert.show(txt);
}
public function initApp():void {
this.doubleClickEnabled = true;
this.icn.addEventListener(MouseEvent.MOUSE_DOWN, start_drag);
this.icn.addEventListener(MouseEvent.MOUSE_UP, stop_drag);
this.icn.addEventListener(MouseEvent.DOUBLE_CLICK, double);
}
public function start_drag(e:Event):void {
this.icn.startDrag();
}
public function stop_drag(e:Event):void {
this.icn.stopDrag();
}
public function win_start_drag(e:Event):void {
this.win.startDrag();
}
public function win_stop_drag(e:Event):void {
this.win.stopDrag();
}
public function double(e:Event):void {
zoomIn.play([icn], false);
}
public function double_win(e:Event):void {
zoomIn_win.play([win], false);
}
public function perehod():void{
currentState = "open";
this.win.x = this.mouseX-win.width/2;
this.win.y = this.mouseY-win.height/2;
zoomOut.play([win], false);
this.win.addEventListener(MouseEvent.MOUSE_DOWN, win_start_drag);
this.win.addEventListener(MouseEvent.MOUSE_UP, win_stop_drag);
this.win.addEventListener(MouseEvent.DOUBLE_CLICK, double_win);
}
public function perehod2():void{
currentState = "";
this.icn.x = this.mouseX-icn.width/2;
this.icn.y = this.mouseY-icn.height/2;
zoomOut.play([icn], false);
}
private function send_status():void {
if(subject.text == ""){
alrt('Введите тему сообщения');
}else{
if(content.text == ""){
alrt("Сообщение не должно быть пустым");
}else{
if(subject.text != "" && content.text != ""){
send_feedback.send();
subject.text = "";
content.text = "";
}
}
}
}
]]>
</mx:Script>
<mx:HTTPService result="alrt('Письмо отправлено');" id="send_feedback" url="http://www.fla.aa/adm_actions/send_feedback.php" useProxy="false" method="POST">
<mx:request xmlns="">
<subject>{subject.text}</subject>
<content>{content.text}</content>
</mx:request>
</mx:HTTPService>
<mx:Zoom zoomHeightTo=".0" zoomWidthTo=".0" zoomHeightFrom="1" zoomWidthFrom="1" id="zoomIn" effectEnd="perehod()" duration="200" />
<mx:Zoom zoomHeightTo="1" zoomWidthTo="1" zoomHeightFrom=".0" zoomWidthFrom=".0" id="zoomOut" duration="300" />
<mx:Zoom zoomHeightTo=".0" zoomWidthTo=".0" zoomHeightFrom="1" zoomWidthFrom="1" id="zoomIn_win" effectEnd="perehod2()" duration="200" />
<mx:Image x="151" y="117" source="images/icn_feedback.png" id="icn"/>
</mx:Canvas>
просто делайте даблклик по иконке и окну для перехода между ними... но после второго разворачивания окна все слова в компоненте уменьшаются до первой буквы и "..." после нее... вобщем попробуйте скомпилировать у себя и сами увидите ... теперь собственно вопрос... в чем причина ?
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" initialize="initApp()">
<mx:states>
<mx:State name="open">
<mx:RemoveChild target="{icn}"/>
<mx:AddChild position="lastChild">
<mx:TitleWindow width="420" height="250" layout="absolute" id="win" title="Feedback" showCloseButton="true">
<mx:Label text="Кому:" x="10" y="10"/>
<mx:Label text="Тема:" x="10" y="36"/>
<mx:TextInput y="8" text="Кто-то там" enabled="false" textAlign="left" left="55" right="10"/>
<mx:TextInput left="55" right="10" height="22" y="34" textAlign="left" id="subject"/>
<mx:TextArea bottom="40" left="55" right="10" top="64" textAlign="left" id="content"/>
<mx:LinkButton label="Отправить" click="send_status()" right="10" bottom="10" themeColor="#c0c0c0"/>
</mx:TitleWindow>
</mx:AddChild>
</mx:State>
</mx:states>
<mx:Script>
<![CDATA[
import flash.events.*;
import mx.controls.Alert;
private function alrt(txt:String):void{
Alert.show(txt);
}
public function initApp():void {
this.doubleClickEnabled = true;
this.icn.addEventListener(MouseEvent.MOUSE_DOWN, start_drag);
this.icn.addEventListener(MouseEvent.MOUSE_UP, stop_drag);
this.icn.addEventListener(MouseEvent.DOUBLE_CLICK, double);
}
public function start_drag(e:Event):void {
this.icn.startDrag();
}
public function stop_drag(e:Event):void {
this.icn.stopDrag();
}
public function win_start_drag(e:Event):void {
this.win.startDrag();
}
public function win_stop_drag(e:Event):void {
this.win.stopDrag();
}
public function double(e:Event):void {
zoomIn.play([icn], false);
}
public function double_win(e:Event):void {
zoomIn_win.play([win], false);
}
public function perehod():void{
currentState = "open";
this.win.x = this.mouseX-win.width/2;
this.win.y = this.mouseY-win.height/2;
zoomOut.play([win], false);
this.win.addEventListener(MouseEvent.MOUSE_DOWN, win_start_drag);
this.win.addEventListener(MouseEvent.MOUSE_UP, win_stop_drag);
this.win.addEventListener(MouseEvent.DOUBLE_CLICK, double_win);
}
public function perehod2():void{
currentState = "";
this.icn.x = this.mouseX-icn.width/2;
this.icn.y = this.mouseY-icn.height/2;
zoomOut.play([icn], false);
}
private function send_status():void {
if(subject.text == ""){
alrt('Введите тему сообщения');
}else{
if(content.text == ""){
alrt("Сообщение не должно быть пустым");
}else{
if(subject.text != "" && content.text != ""){
send_feedback.send();
subject.text = "";
content.text = "";
}
}
}
}
]]>
</mx:Script>
<mx:HTTPService result="alrt('Письмо отправлено');" id="send_feedback" url="http://www.fla.aa/adm_actions/send_feedback.php" useProxy="false" method="POST">
<mx:request xmlns="">
<subject>{subject.text}</subject>
<content>{content.text}</content>
</mx:request>
</mx:HTTPService>
<mx:Zoom zoomHeightTo=".0" zoomWidthTo=".0" zoomHeightFrom="1" zoomWidthFrom="1" id="zoomIn" effectEnd="perehod()" duration="200" />
<mx:Zoom zoomHeightTo="1" zoomWidthTo="1" zoomHeightFrom=".0" zoomWidthFrom=".0" id="zoomOut" duration="300" />
<mx:Zoom zoomHeightTo=".0" zoomWidthTo=".0" zoomHeightFrom="1" zoomWidthFrom="1" id="zoomIn_win" effectEnd="perehod2()" duration="200" />
<mx:Image x="151" y="117" source="images/icn_feedback.png" id="icn"/>
</mx:Canvas>
просто делайте даблклик по иконке и окну для перехода между ними... но после второго разворачивания окна все слова в компоненте уменьшаются до первой буквы и "..." после нее... вобщем попробуйте скомпилировать у себя и сами увидите ... теперь собственно вопрос... в чем причина ?