Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Загрузка фото в альбом. (http://www.flasher.ru/forum/showthread.php?t=157829)

Ruzofmo 11.06.2011 12:15

Загрузка фото в альбом.
 
Что нужно поправить в коде?
Вылазит :
1 такая ошибка :C:\Users\Дима\Desktop\Main1.as, строка 39 1061: Обращение к возможно неопределенному методу hash через ссылку статического типа Class.
и 47 ошибок типа:C:\Users\Дима\Desktop\Main1.as, строка 39 1061: Обращение к возможно неопределенному методу hash через ссылку статического типа Class.


Код AS3:

package 
{
 
        import flash.display.MovieClip;
        import flash.events.Event;
        import flash.events.DataEvent;
        import flash.events.MouseEvent;
        import flash.net.FileFilter;
        import flash.net.URLLoader;
        import flash.net.URLRequest;
        import flash.display.Loader;
        import flash.net.URLRequestMethod;
        import flash.net.URLRequestHeader;
        import flash.display.Bitmap;
        import flash.system.LoaderContext;
        import flash.display.Sprite;
        import flash.utils.ByteArray;
        public class Main1 extends MovieClip
        {
 
 
                public function Main1()
                {
                        trace("ок");
                }
                public static var FILE_FILTER:Array = ["Images (*.jpg, *.jpeg, *.png)","*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG"];
 
                private function Setup():void
                {
                        addLb1.addEventListener(MouseEvent.CLICK, onBrowseClick);
                        addLb2.addEventListener(MouseEvent.CLICK, onBrowseClick);
                        upLb.addEventListener(MouseEvent.CLICK, onUploadClick);
                }
                private function onBrowseClick(e: MouseEvent):void
                {
                        file.browse([new FileFilter(FILE_FILTER[0], FILE_FILTER[1])]);
                        if (gi == 0)
                        {//получаю адрес только один раз
                                var sig = MD5.hash(viewer_id + 'aid=' + album + 'api_id=' + api_id + 'method=photos.getUploadServer' + 'v=2.0' + skey);
                                var request:URLRequest = new URLRequest(api_url + "?api_id=" + api_id + "&aid=" + album + "&v=2.0&method=photos.getUploadServer" + "&sig=" + sig);
                                var tloader:URLLoader = new URLLoader();
                                tloader.load(request);
                                tloader.addEventListener(Event.COMPLETE, function(e:Event) {
                                  var r:XML = new XML(e.target.data);
                                Img.test.appendText(r);
                                upUrl=r.upload_url[0];
                                gi++;
                                });
                        }
                }
 
                private function onFileSelected(e:Event):void
                {
                        if (file.size == 0)
                        {
                                test.appendText("File size is zero bytes");
                                return;
                        }
                        file.addEventListener(Event.COMPLETE, onFileLoaded);
                        file.load();
                }
                private function onFileLoaded(e: Event):void
                {
                        file.removeEventListener(Event.COMPLETE, onFileLoaded);
                        var data:ByteArray = ByteArray(e.target.data);
                        var imgLoader:Loader = new Loader();
                        imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded);
                        imgLoader.loadBytes(data, new LoaderContext(false));
                }
 
                public function onImageLoaded(e: Event):void
                {
                        var source:Bitmap = new Bitmap(e.target.content);
                        resizedImage = ImageHelper.resize(source,100,100);
                        source.bitmapData.dispose();
                        createM.upLb.visible = true;
                        imagePreview = new Sprite();
                        imagePreview.addChild(resizedImage);
                        imagePreview.x = 10;
                        imagePreview.y = 10;
                        addChildAt(imagePreview,1);//добавляю рисунок в флешку
                        logoAdded = true;
                        createM.addLb.visible = true;
                }
                private function onUploadClick(e:Event)
                {
                        var urlRequest: URLRequest = new URLRequest();
                        urlRequest.url = upUrl;
                        urlRequest.method = URLRequestMethod.POST;
                        urlRequest.requestHeaders.push(new URLRequestHeader('Cache-Control', 'no-cache'));
                        file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, onUploadComplete);
                        file.upload(urlRequest, 'file1');
                }//onUploadClick
                //сохранялка
                private function onUploadComplete(e: DataEvent):void
                {
                        file.removeEventListener(DataEvent.UPLOAD_COMPLETE_DATA, onUploadComplete1);
                        Img.test.appendText("Upload complete");
                        Img.test.appendText(' Data: ' + e.data);
                        var data:Object = JSON.decode(e.data);
                        var sig = MD5.hash(viewer_id + 'aid=' + album + 'api_id=' + api_id + 'hash=' + data.hash + 'method=photos.save' + 'photos_list=' + data.photos_list + 'server=' + data.server + 'v=2.0' + skey);
                        var request:URLRequest = new URLRequest(api_url + "?api_id=" + api_id + "&aid=" + album + "&hash=" + data.hash + "&photos_list=" + data.photos_list + "&server=" + data.server + "&v=2.0&method=photos.save" + "&sig=" + sig);
                        var tloader:URLLoader = new URLLoader();
                        tloader.load(request);
                        tloader.addEventListener(Event.COMPLETE, function(e:Event) {
                          response = new XML(e.target.data);
                        test.appendText(response);
                        });
                }
 
        }
 
}


Bgg 11.06.2011 13:23

MD5 не тот. Посмотрите в исходник класса MD5 и узнайте как там называется метод хеширования.

Ruzofmo 11.06.2011 13:58

Цитата:

MD5 не тот.
исправил.
но остались ещё 47 ошибок типа:

C:\Users\Дима\Desktop\Main1.as, строка 102 1120: Обращение несуществующего свойства api_id.
C:\Users\Дима\Desktop\Main1.as, строка 102 1120: Обращение несуществующего свойства album.
C:\Users\Дима\Desktop\Main1.as, строка 106 1120: Обращение несуществующего свойства response.
C:\Users\Дима\Desktop\Main1.as, строка 107 1120: Обращение несуществующего свойства test.
C:\Users\Дима\Desktop\Main1.as, строка 107 1120: Обращение несуществующего свойства response.

Bgg 11.06.2011 14:02

Скорей всего в строке 102 происходит обращение к несуществующему свойству api_id.

Ruzofmo 11.06.2011 14:08

так откуда его взять?

Bgg 11.06.2011 14:10

Самому руками написать конечно же. Знаете что такое свойство?

Ruzofmo 11.06.2011 15:20

Получился такой вот код:
Код AS3:

package 
{
 
        import flash.display.MovieClip;
        import flash.events.Event;
        import flash.events.DataEvent;
        import flash.events.MouseEvent;
        import flash.net.FileFilter;
        import flash.net.URLLoader;
        import flash.net.URLRequest;
        import flash.display.Loader;
        import flash.net.URLRequestMethod;
        import flash.net.URLRequestHeader;
        import flash.display.Bitmap;
        import flash.system.LoaderContext;
        import flash.display.Sprite;
        import flash.utils.ByteArray;
        import flash.net.FileReferenceList;
        import flash.net.FileReference;
 
        public class Main1 extends MovieClip
        {
 
 
                public function Main1()
                {
                        trace("ок");
                }
                public static var FILE_FILTER:Array = ["Images (*.jpg, *.jpeg, *.png)","*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG"];
 
                private function Setup():void
                {
                        addLb1.addEventListener(MouseEvent.CLICK, onBrowseClick);
                        addLb2.addEventListener(MouseEvent.CLICK, onBrowseClick);
                        upLb.addEventListener(MouseEvent.CLICK, onUploadClick);
                }
                private function onBrowseClick(e: MouseEvent):void
                {
                        var file:FileReference = new FileReference();
                        file.browse([new FileFilter(FILE_FILTER[0], FILE_FILTER[1])]);
                        var gi:int = 0;
                        if (gi == 0)
                        {//получаю адрес только один раз
                                var sig = MD5.encrypt(viewer_id + 'aid=' + album + 'api_id=' + api_id + 'method=photos.getUploadServer' + 'v=2.0' + skey);
                                var request:URLRequest = new URLRequest(api_url + "?api_id=" + api_id + "&aid=" + album + "&v=2.0&method=photos.getUploadServer" + "&sig=" + sig);
                                var tloader:URLLoader = new URLLoader();
                                tloader.load(request);
                                tloader.addEventListener(Event.COMPLETE, function(e:Event) {
                                  var r:XML = new XML(e.target.data);
                                Img.test.appendText(r);
                                upUrl=r.upload_url[0];
                                gi++;
                                });
                        }
                }
 
                private function onFileSelected(e:Event):void
                {
                        if (file.size == 0)
                        {
                                test.appendText("File size is zero bytes");
                                return;
                        }
                        file.addEventListener(Event.COMPLETE, onFileLoaded);
                        file.load();
                }
                private function onFileLoaded(e: Event):void
                {
                        file.removeEventListener(Event.COMPLETE, onFileLoaded);
                        var data:ByteArray = ByteArray(e.target.data);
                        var imgLoader:Loader = new Loader();
                        imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded);
                        imgLoader.loadBytes(data, new LoaderContext(false));
                }
 
                public function onImageLoaded(e: Event):void
                {
                        var source:Bitmap = new Bitmap(e.target.content);
                        resizedImage = ImageHelper.resize(source,100,100);
                        source.bitmapData.dispose();
                        createM.upLb.visible = true;
                        imagePreview = new Sprite();
                        imagePreview.addChild(resizedImage);
                        imagePreview.x = 10;
                        imagePreview.y = 10;
                        addChildAt(imagePreview,1);//добавляю рисунок в флешку
                        logoAdded = true;
                        createM.addLb.visible = true;
                }
                private function onUploadClick(e:Event)
                {
                        var urlRequest: URLRequest = new URLRequest();
                        urlRequest.url = upUrl;
                        urlRequest.method = URLRequestMethod.POST;
                        urlRequest.requestHeaders.push(new URLRequestHeader('Cache-Control', 'no-cache'));
                        file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, onUploadComplete);
                        file.upload(urlRequest, 'file1');
                }//onUploadClick
                //сохранялка
                private function onUploadComplete(e: DataEvent):void
                {
                        file.removeEventListener(DataEvent.UPLOAD_COMPLETE_DATA, onUploadComplete1);
                        Img.test.appendText("Upload complete");
                        Img.test.appendText(' Data: ' + e.data);
                        var data:Object = JSON.decode(e.data);
                        var sig = MD5.hash(viewer_id + 'aid=' + album + 'api_id=' + api_id + 'hash=' + data.hash + 'method=photos.save' + 'photos_list=' + data.photos_list + 'server=' + data.server + 'v=2.0' + skey);
                        var request:URLRequest = new URLRequest(api_url + "?api_id=" + api_id + "&aid=" + album + "&hash=" + data.hash + "&photos_list=" + data.photos_list + "&server=" + data.server + "&v=2.0&method=photos.save" + "&sig=" + sig);
                        var tloader:URLLoader = new URLLoader();
                        tloader.load(request);
                        tloader.addEventListener(Event.COMPLETE, function(e:Event) {
                          response = new XML(e.target.data);
                        test.appendText(response);
                        });
                }
 
        }
 
}

И вот столько ошибок:

C:\Users\Дима\Desktop\Main1.as, строка 44 1120: Обращение несуществующего свойства viewer_id.
C:\Users\Дима\Desktop\Main1.as, строка 44 1120: Обращение несуществующего свойства album.
C:\Users\Дима\Desktop\Main1.as, строка 44 1120: Обращение несуществующего свойства api_id.
C:\Users\Дима\Desktop\Main1.as, строка 44 1120: Обращение несуществующего свойства skey.
C:\Users\Дима\Desktop\Main1.as, строка 45 1120: Обращение несуществующего свойства api_url.
C:\Users\Дима\Desktop\Main1.as, строка 45 1120: Обращение несуществующего свойства api_id.
C:\Users\Дима\Desktop\Main1.as, строка 45 1120: Обращение несуществующего свойства album.
C:\Users\Дима\Desktop\Main1.as, строка 50 1120: Обращение несуществующего свойства Img.
C:\Users\Дима\Desktop\Main1.as, строка 51 1120: Обращение несуществующего свойства upUrl.
C:\Users\Дима\Desktop\Main1.as, строка 59 1120: Обращение несуществующего свойства file.
C:\Users\Дима\Desktop\Main1.as, строка 61 1120: Обращение несуществующего свойства test.
C:\Users\Дима\Desktop\Main1.as, строка 64 1120: Обращение несуществующего свойства file.
C:\Users\Дима\Desktop\Main1.as, строка 65 1120: Обращение несуществующего свойства file.
C:\Users\Дима\Desktop\Main1.as, строка 69 1120: Обращение несуществующего свойства file.
C:\Users\Дима\Desktop\Main1.as, строка 79 1120: Обращение несуществующего свойства resizedImage.
C:\Users\Дима\Desktop\Main1.as, строка 79 1120: Обращение несуществующего свойства ImageHelper.
C:\Users\Дима\Desktop\Main1.as, строка 81 1120: Обращение несуществующего свойства createM.
C:\Users\Дима\Desktop\Main1.as, строка 82 1120: Обращение несуществующего свойства imagePreview.
C:\Users\Дима\Desktop\Main1.as, строка 83 1120: Обращение несуществующего свойства imagePreview.
C:\Users\Дима\Desktop\Main1.as, строка 83 1120: Обращение несуществующего свойства resizedImage.
C:\Users\Дима\Desktop\Main1.as, строка 84 1120: Обращение несуществующего свойства imagePreview.
C:\Users\Дима\Desktop\Main1.as, строка 85 1120: Обращение несуществующего свойства imagePreview.
C:\Users\Дима\Desktop\Main1.as, строка 86 1120: Обращение несуществующего свойства imagePreview.
C:\Users\Дима\Desktop\Main1.as, строка 87 1120: Обращение несуществующего свойства logoAdded.
C:\Users\Дима\Desktop\Main1.as, строка 88 1120: Обращение несуществующего свойства createM.
C:\Users\Дима\Desktop\Main1.as, строка 93 1120: Обращение несуществующего свойства upUrl.
C:\Users\Дима\Desktop\Main1.as, строка 96 1120: Обращение несуществующего свойства file.
C:\Users\Дима\Desktop\Main1.as, строка 97 1120: Обращение несуществующего свойства file.
C:\Users\Дима\Desktop\Main1.as, строка 102 1120: Обращение несуществующего свойства file.
C:\Users\Дима\Desktop\Main1.as, строка 102 1120: Обращение несуществующего свойства onUploadComplete1.
C:\Users\Дима\Desktop\Main1.as, строка 103 1120: Обращение несуществующего свойства Img.
C:\Users\Дима\Desktop\Main1.as, строка 104 1120: Обращение несуществующего свойства Img.
C:\Users\Дима\Desktop\Main1.as, строка 105 1120: Обращение несуществующего свойства JSON.
C:\Users\Дима\Desktop\Main1.as, строка 106 1061: Обращение к возможно неопределенному методу hash через ссылку статического типа Class.
C:\Users\Дима\Desktop\Main1.as, строка 106 1120: Обращение несуществующего свойства viewer_id.
C:\Users\Дима\Desktop\Main1.as, строка 106 1120: Обращение несуществующего свойства album.
C:\Users\Дима\Desktop\Main1.as, строка 106 1120: Обращение несуществующего свойства api_id.
C:\Users\Дима\Desktop\Main1.as, строка 106 1120: Обращение несуществующего свойства skey.
C:\Users\Дима\Desktop\Main1.as, строка 107 1120: Обращение несуществующего свойства api_url.
C:\Users\Дима\Desktop\Main1.as, строка 107 1120: Обращение несуществующего свойства api_id.
C:\Users\Дима\Desktop\Main1.as, строка 107 1120: Обращение несуществующего свойства album.
C:\Users\Дима\Desktop\Main1.as, строка 111 1120: Обращение несуществующего свойства response.
C:\Users\Дима\Desktop\Main1.as, строка 112 1120: Обращение несуществующего свойства test.
C:\Users\Дима\Desktop\Main1.as, строка 112 1120: Обращение несуществующего свойства response.


Что делать?.......

Добавлено через 47 минут
Что делать с
Код AS3:

var sig = MD5.encrypt(viewer_id + 'aid=' + album + 'api_id=' + api_id + 'method=photos.getUploadServer' + 'v=2.0' + skey);
                                var request:URLRequest = new URLRequest(api_url + "&api_id=" + api_id + "&aid=" + album + "&v=2.0&method=photos.getUploadServer" + "&sig=" + sig);
                                var tloader:URLLoader = new URLLoader();
                                tloader.load(request);
                                tloader.addEventListener(Event.COMPLETE, function(e:Event) {
                                  var r:XML = new XML(e.target.data);
                                Img.test.appendText(r);
                                upUrl=r.upload_url[0];
                                gi++;
                                });

C:\Users\Дима\Desktop\Main1.as, строка 49 1120: Обращение несуществующего свойства Img.

2Sun 11.06.2011 19:10

Вы обьяляете все переменные внутри функций - поэтому, за их пределами возникают ошибки - обьявите их в начале в public class Main1 extends MovieClip
{
private var ****** все Ваши переменные ********

и будет Вам счастье, ну как минимум таких ошибок больше не будет выбрасывать


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

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