Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не удается вызвать свойство или метод со ссылкой на объект "n (http://www.flasher.ru/forum/showthread.php?t=205859)

Labibas 26.12.2013 09:55

Не удается вызвать свойство или метод со ссылкой на объект "n
 
Кто-нибудь встречался с такой ошибкой?

at vk.api: DataProvider/request()
at vk::APIConnection/api()
at Main/GO()

Код AS3:

package vk.api {
 
  import flash.net.*;
  import flash.errors.*;
  import flash.events.*;
 
  import vk.api.serialization.json.*;
 
  public class DataProvider {   
        private var _api_sid: String;
        private var _api_url: String = "http://api.vkontakte.ru/api.php";
    private var _api_id: Number;
    private var _api_secret: String;
    private var _viewer_id: Number;
    private var _request_params: Array;
 
    private var _global_options: Object;
 
 
 
    public function DataProvider(api_url: String, api_id: Number, api_sid: String, api_secret: String, viewer_id: Number) {
          _api_secret = api_secret;
          _api_sid          = api_sid;
          _api_url          = api_url;
          _api_id    = api_id;
      _viewer_id  = viewer_id;
    }
 
    public function setup(options: Object): void {
      _global_options = options;
    }
 
    public function request(method: String, options: Object = null):void {
      var onComplete: Function, onError: Function;
      if (options == null) {
        options = new Object();
      }
      options.onComplete = options.onComplete ? options.onComplete : (_global_options.onComplete ? _global_options.onComplete : null);
      options.onError = options.onError ? options.onError : (_global_options.onError ? _global_options.onError : null);
      _sendRequest(method, options);
    }
 
 
 
    /********************
    * Private methods
    ********************/

 
    private function _sendRequest(method:String, options:Object):void {
      var self:Object = this;
 
      var request_params: Object = {method: method};
      request_params.api_id = _api_id;
      request_params.format = "JSON";
          request_params.v = "3.0";
      if (options.params) {
        for (var i: String in options.params) {
          request_params[i] = options.params[i];
        }
      }
 
      var variables:URLVariables = new URLVariables();
      for (var j: String in request_params) {
        variables[j] = request_params[j];
      }
      variables['sig'] = _generate_signature(request_params);
      variables['sid'] = _api_sid;
      var request:URLRequest = new URLRequest();
      request.url = _api_url;
      request.method = URLRequestMethod.POST;
      request.data = variables;
 
      var loader:URLLoader = new URLLoader();
      loader.dataFormat = URLLoaderDataFormat.TEXT;
      if (options.onError) {
        loader.addEventListener(IOErrorEvent.IO_ERROR, function():void {
          options.onError("Connection error occured");
        });
        loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function():void {
          options.onError("Security error occured");
        });
      }
 
      loader.addEventListener(Event.COMPLETE, function(e:Event):void{
        var loader:URLLoader = URLLoader(e.target);
                trace(loader.data);
                var data: Object = JSON.decode(loader.data);
        if (data.error) {
          options.onError(data.error);
        } else if (options.onComplete && data.response) {
          options.onComplete(data.response);
        }
      });
      try {
        loader.load(request);
      }
      catch (error:Error) {
        options.onError(error);
      }
    }
 
    /**
    * Generates signature
    *
    */

    private function _generate_signature(request_params: Object): String {
      var signature: String = "";
      var sorted_array: Array = new Array();
      for (var key: String in request_params) {
        sorted_array.push(key + "=" + request_params[key]);
      }
      sorted_array.sort();
 
      // Note: make sure that the signature parameter is not already included in
      //      request_params array.
      for (key in sorted_array) {
        signature += sorted_array[key];
      }
          if (_viewer_id > 0) signature = _viewer_id.toString() + signature;
      signature += _api_secret;
      return MD5.encrypt(signature);
    }
  }
}


in4core 26.12.2013 14:46

Проблема в вашем коде, а не в коде АПИ который вы показали

Labibas 28.12.2013 05:31

в Main.as вроде ошибка при загрузке дальше не хочет подключать
Код AS3:

        private function GO(arg1:flash.events.Event):*
        {
            removeEventListener(flash.events.Event.ADDED_TO_STAGE, this.GO);
            stage.stageFocusRect = false;
            this.flashVars = stage.loaderInfo.parameters as Object;
            this.VK = new vk.APIConnection(this.flashVars);
            this.All = 100;
            this.counter = 0;
            this.loading = new Loading();
            addChild(this.loading);
            this.loading.x = 400;
            this.loading.y = 360;
            this.VK.api("storage.get", {"key":"1", "global":0}, this.getPoints);
            return;
        }

storage.get - это же подключение к api


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

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