Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как открыть папку с помошью Button (http://www.flasher.ru/forum/showthread.php?t=214018)

RedMilk 28.03.2017 01:03

Как открыть папку с помошью Button
 
Привет всем , я новенький в AS 3.0
И вот я столкнулся с проблемой , мне нужно при нажатие на кнопку (которую я вывожу на экран) что бы открывалась папка с картинками и я их мог подгружать от туда и работать дальше с ними.
Подскажите какой метод будет лучше и возможно ли это ?
Вот мой код:

Код AS3:

package 
{
        import flash.display.Shape;
        import flash.display.Sprite;
        import flash.display.*;
        import flash.net.URLRequest;
        import flash.display.DisplayObject;
        import flash.display.Bitmap;
        import flash.events.MouseEvent;
        import flash.system.ImageDecodingPolicy;
        import flash.filters.*;
        import flash.events.Event;
 
        /**
        * ...
        * @author q
        */

        public class M_Library extends Sprite
        {
 
                [Embed(source = "image/stop1.png")] private var Library:Class;
                public var mySprite:Sprite = new Sprite();
 
 
                public function M_Library()
                {
                        Mous();
                }
                private function Mous():void
                        {
                                //var w_Library:W_Library = new W_Library();
 
                                var myBitma:Bitmap = new Library();
                                mySprite.addChild(myBitma);
                                addChild(mySprite);
 
 
                                mySprite.addEventListener(MouseEvent.CLICK, r);
                                mySprite.addEventListener(MouseEvent.MOUSE_UP, qup);
                                mySprite.addEventListener(MouseEvent.MOUSE_DOWN, qdown);
 
                        }
                private function r(event:MouseEvent):void
                        {
                                removeEventListener(Event.ENTER_FRAME, r);
                                trace ("Кнопка нажата");
                        }
                        private function qup(e:MouseEvent):void
                        {
                                mySprite.filters = [];
                        }
                        private function qdown(e:MouseEvent):void
                        {
                                mySprite.filters = [new BevelFilter()];
                        }
 
        }
 
}


Wolsh 28.03.2017 02:18

Для оформления своего кода нужно пользоваться тегами AS3

caseyryan 28.03.2017 12:30

Тебе сюда http://help.adobe.com/ru_RU/as3/dev/...0204-7cf8.html

п.с. Посмотри на свой код. В конструкторе ты подписываешься на событие MouseEvent.CLICK и обработчиком ставишь метод r, а в нем зачем-то пытаешься отписаться от события ENTER_FRAME с тем же обработчиком. Это нерабочая конструкция, здесь нет никакого энтер фрейма. Эту строчку removeEventListener(Event.ENTER_FRAME, r); нужно удалить
И второе. Нет смысла в этом случае использовать CLICK, если у тебя там же MOUSE_DOWN и MOUSE_UP.

amesqit 28.03.2017 12:32

Смотрите класс FileReference с помощью него можно получить данные из локального файла через диалоговое окно.

RedMilk 28.03.2017 18:07

Всем спасибо за помощь , помогло очень сильно )
Но теперь я встретился с новой проблемой. Получается так я загружаю картинку 1 раз и при нужде загрузить ещё 1 картинку она заменяет ту которую я ранние загрузил
Вопрос: Как загружать картинку не заменяя старую?
А ещё так как я нуб в as 3.0 объясните почему при выводе на экран loader я не могу использовать его в функции mousdown иmousup ?




private function onFileLoaded(e:Event):void
{

loader.loadBytes(e.target.data);
addChild(loader);
loader.x = 300;
loader.y = 300;

}
/* перемешения обекта
private function mousdown(e:MouseEvent):void
{
removeEventListener(MouseEvent.MOUSE_DOWN, mousdown);
loader.stopDrag();
}
private function mousup(e:MouseEvent):void
{
removeEventListener(MouseEvent.MOUSE_UP, mousup);
loader.startDrag();
}
*/
}

}

amesqit 28.03.2017 18:36

У тебя все шансы получить плюсик за систематическое нарушение правил форума
Цитата:

Сообщение от RedMilk (Сообщение 1199888)
Получается так я загружаю картинку 1 раз и при нужде загрузить ещё 1 картинку она заменяет ту которую я ранние загрузил
Вопрос: Как загружать картинку не заменяя старую?

За загрузку отвечает loader, при смене картинки ты в тот же лоадер засовываешь данные от второй картинки. Чтобы сохранить картинку нужно ловить событие окончания загрузки лоадера, и вытаскивать из загруженного Bitmap объект bitmapData, распоряжаясь им по своему усмотрению. Прочитаешь про Loader, Bitmap и BitmapData станет понятно как в принципе загружать и работать с картинками.


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

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