Форум 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=183639)

Probity 28.08.2012 02:29

Картинки не подгружаются
 
Создал приложение Вконтакте для загрузки картинок с диска и из сети. Картинки из сети грузились нормально, но с обновлением перестали по каким-то политическим соображениям. Как это можно обойти?

tsarapkabel 28.08.2012 02:58

Интересно, сколько ещё подобных тем после обновления fp будет? :)

Probity 28.08.2012 17:40

Напомнило день, когда отменили переход по ссылкам не в _blank в AS 2.0 и все менюшки сломались...
Ещё убрали возможность вызывать новый Fullscreen одновременно с выходом из него. :D

AlexCooper 29.08.2012 13:39

Вот Вам класс.
Код AS3:

package src {
 
        import flash.display.Loader;
        import flash.display.LoaderInfo;
        import flash.events.Event;
        import flash.utils.ByteArray;
        import flash.display.Bitmap;
        import flash.display.BitmapData;
        import flash.net.URLRequest;
        import flash.display.Sprite;
 
        public class loadPictures extends Sprite {
 
                public var bitmap:Bitmap;
 
                public function loadPictures($url):void {
 
                        bitmap = new Bitmap();
 
                        var req:URLRequest = new URLRequest($url);
                        var _picLoader:Loader = new Loader();
                                _picLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,loader2ByteArray);
 
                        _picLoader.load(req);
                }
 
                private function loader2ByteArray(evt:Event):void {
 
                        var lInfo:LoaderInfo = LoaderInfo(evt.target);
                        var ba:ByteArray = lInfo.bytes;
 
                        reloadByteArray(ba);
                }
 
                private function reloadByteArray(ba:ByteArray):void {
 
                        var reloader:Loader = new Loader();
                                reloader.loadBytes(ba);
 
                                reloader.contentLoaderInfo.addEventListener(Event.COMPLETE, reloaderComplete);
                }
 
                private function reloaderComplete(evt:Event):void {
 
                        var imageInfo:LoaderInfo = LoaderInfo(evt.target);
 
                        var bmd:BitmapData = new BitmapData(imageInfo.width,imageInfo.height);
 
                                bmd.draw(imageInfo.loader);
 
                        bitmap = new Bitmap(bmd);
                        bitmap.smoothing = true;
                        addChild(bitmap);
 
                        dispatchEvent(new Event("LOAD_COMPLETE"));
                }
        }
}

пример
Код AS3:

import src.loadPictures;
var maxsize:uint = 300;
var image:loadPictures = new loadPictures("http://www.images.com/image.jpg");
image.addEventListener("LOAD_COMPLETE", resize);
 
addChild(image);
 
private function resize(e:Event):void{
        var k = maxsize/Math.max(e.target.width,e.target.height);
        e.target.width *= k;
        e.target.height *= k;
}

Добавлено через 2 минуты
Недостаток: Отсутствие альфа канала у png

Aquahawk 29.08.2012 13:42

Сходите по ссылочке выше и почитайте пожалуйста. Не работает ваш класс на 11.4 плеере и на 11.3.31 в хроме который тоде не работает. Обращение bytes кинет SecurityError если нет разрешения. Пофиксили этот баг, в своих проектах тоже смотрите и переписывайте, т.к. в хроме точно всё автоматом обновилось и картинки попропадали у всех.

AlexCooper 29.08.2012 14:01

Хм... сейчас проверим, насколько я понимаю информация крайне актуальна. Только вот не понял какой выход из сложившейся ситуации.

i.o. 29.08.2012 14:56

Можно, например, пустить весь трафик через свой сайт (или любой с бесплатным хостингом и доменным именем. с поддержкой серверных скриптов), где лежит "правильный" кросдоменник. На этом сайте есть php скрипт, к примеру, отдающий байты картинок уже и с вконтактов и с гугла и откуда угодно в общем то...

Probity 29.08.2012 17:27

Может нужно попросить (кто по англ. нормально пишет) у Adobe сделать две разные функции подгрузки картинок и флэшек? Безопасность же с флэшками связана, картинки вряд ли могут кому-то навредить.

Ну и второе - в AS2.0 тоже есть подобные ограничения? Может сделать загрузчик на нем и загружать его в основную флэшку на AS3.0?

AlexCooper 29.08.2012 18:43

Я немогу понять как вообще теперь грузить изображения...?? Потому что у меня не ифрейм приложения и доступа так же нет.

ChuwY 29.08.2012 20:02

Цитата:

Сообщение от Probity (Сообщение 1094234)
картинки вряд ли могут кому-то навредить.

Это сделано для того, чтобы вы картинкам не навредили :)


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

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