Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Всплывающее картинка-окно (http://www.flasher.ru/forum/showthread.php?t=154074)

ZZZubec 12.04.2011 12:22

Всплывающее картинка-окно
 
Вложений: 1
Как такое можно сделать?

По нажатию на элемент, должно всплывать окно(картинка) рядом с выбранным элементом.
в этом окне есть ещё картинка (показывающая мини-превью), а также два текстовых поля и кнопка (при нажатии на которую окно закроется).
Задний слой окна должен быть полупрозрачным.

CrazyFlasher 12.04.2011 12:25

Цитата:

Как такое можно сделать?
Например запрограммировать на AS3.

P.S. какой вопрос - такой ответ

ZZZubec 12.04.2011 12:40

Издевки излишни, я лишь хотел пример кода или алгоритм.

я пробывал через Sprite, через Image (однако addChild, как описали, наследуется неправильно и в image его быть не должно, ну он и не работает.), через UIComponent пробывал - addChild( ui ) вылетает с ошибкой, мол тип не нужного формата,

Код AS1/AS2:

sprite.addChild(image);
this.addChilde( sprite );

работает, но ничегошеньки не показывает. this.addChild( image) показывает картинку (т.е. с картинками всё хорошо, они грузятся правильно).

bav 12.04.2011 12:42

Покажите весь код.

ZZZubec 12.04.2011 12:46

логично
Код AS1/AS2:

import flash.display.Bitmap;
                import flash.display.Loader;
                import flash.display.MovieClip;
                import flash.display.Sprite;
                import flash.events.Event;
                import flash.events.MouseEvent;
                import flash.geom.Point;
                import flash.net.URLLoader;
                import flash.net.URLRequest;
                import mx.controls.Image;
                import mx.core.UIComponent;
                import mx.managers.PopUpManager;
                import mx.rpc.events.ResultEvent;
                import mx.rpc.events.FaultEvent;
                import mx.controls.Alert;
                import mx.rpc.http.HTTPService;
                import AdressItem;
 
                private var alert:Alert;                       
                private var needInit:Boolean = true;
                private var items:Array = new Array();
                private var xmlLoader:URLLoader = new URLLoader();
                public var adresses:XML = new XML();
                public var ui:UIComponent = new UIComponent();
                public var showSprite:Sprite = new Sprite();
                public var backgroundSprite:Image;
                public var pictureSprite:Image;
                public var closeButton:Image;
                public var pm:PopUpManager = new PopUpManager();
 
                private function http_fault(event:FaultEvent):void
                {
                        var title:String = event.type + " (" + event.fault.faultCode + ")";
                        var text:String = "Fault load XML"; //event.fault.faultString
                        alert = Alert.show(text, title);
                }
 
                private function loadXML( event:Event ):void
                {
                        //OK
                        adresses = XML(event.target.data);
                        trace( "start reed XML:" );
                        trace( adresses );
                        for ( var i:int = 0; i < adresses.node.length(); i++ )
                        {
                                /*
                                var item:AdressItem = new AdressItem(        adresses.node[i].text[0],
                                                                                                                adresses.node[i].text[1],
                                                                                                                adresses.node[i].text[2],
                                                                                                                adresses.node[i].picture,
                                                                                                                adresses.node[i].coord.@x,
                                                                                                                adresses.node[i].coord.@y );
                                item.visible = true;
                                */

                                var item:Image = new Image();
                                item.id = i.toString();
 
                                item.x = adresses.node[i].coord.@x;
                                item.y = adresses.node[i].coord.@y;               
 
                                item.source = "point.png";
                                var pic:String = adresses.node[i].picture;
 
                                trace( item );
 
                                item.addEventListener(MouseEvent.CLICK, function(event:Event):void
                                {
                                        //mouse click, need show image
                                        trace( event );
                                        /*
                                        uic.x = item.x;
                                        uic.y = item.y+200;
                                        pictureSprite.source = adresses.node[this.id].picture;
                                        showSprite.addChild(pictureSprite);
                                        addChild( uic );
                                        trace( showSprite.x, showSprite.y, pictureSprite.source, this.id );
                                        */

                                });
                                this.addChild( item );
 
                        }
 
                        //Alert.show(XML(event.result));
                }
 
                public function start_prog(event:Event):void
                {
                        if ( needInit )
                        {
                                trace( "Need init" );
                                var background:Image = new Image();
                                background.source = "map.jpg";
                                backgroundSprite = new Image();
                                backgroundSprite.source = "rect.png";
                                closeButton = new Image();
                                closeButton.source = "close.png";
                                closeButton.addEventListener(MouseEvent.CLICK, function( event:Event ):void
                                {
                                        //
                                });
                                pictureSprite = new Image();
                                pictureSprite.source = "no_image.png";
 
                                ui.addChild( backgroundSprite );
                                ui.addChild( pictureSprite );
                                ui.addChild( closeButton );
                                ui.x = 200;
                                ui.y = 100;
 
                                this.addChild( background );
                                this.addChild( ui );
 
                                needInit = false;
                                //resultFormat="e4x" fault="http_fault(event);" result="http_result(event)"
                                xmlLoader.addEventListener( Event.COMPLETE, loadXML );
                                try
                                {
                                        xmlLoader.load( new URLRequest( "adress_map.xml" ) );
                                }
                                catch (error:ArgumentError)
                                {
                                        Alert.show("An ArgumentError has occurred.");
                                }
                                catch (error:SecurityError)
                                {
                                        Alert.show("A SecurityError has occurred.");
                                }
                        }
                }

Добавлено через 6 минут
не обязательно использовать данный код, просто покажите тривиальный пример включающий в себя основную картинку, картинку с превьюшкой ( к которую я смогу менять через код ), и закрывающую часть, этого будет вполне достаточно.

Добавлено через 2 часа 3 минуты
сделал самым смешным способом, тупо добавляю все картинки с позиционированием по клику и убираю (removeChild) после нажатия кнопки закрыть.

но всё таки, если кто знает другие варианты, буду рад...


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

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