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

Oli Short 11.01.2010 21:03

Загрузка изображения
 
Здравствуйте.

Вывожу кнопки, при кликании на кнопку подгружаю аватар пользователя. не суть :)

код загрузки изображения
Код AS3:

 
  var userPhotoLoader:Loader = new Loader();
  userPhotoLoader.load(new URLRequest(vk_photo));
 
  userPhotoLoader.x = 10.6;
  userPhotoLoader.y = 80;
 
  addChild(userPhotoLoader);

кликаю на 1го пользователя , потом на второго, фото 1го остается.
в затруднении.

cleptoman 11.01.2010 22:17

в контексте куска вашего кода ничо не понятно (

dmitriev 11.01.2010 22:53

Я считаю, addChild нужно делать по событию COMPLETE.

По теме: удаляйте старый ДисплейОбжект прежде чем добавить новый.

Oli Short 12.01.2010 01:24

Цитата:

Сообщение от cleptoman (Сообщение 878304)
в контексте куска вашего кода ничо не понятно (

Код AS3:

function viewPhoto(e:Event):void
{
  var xmlUsers = XML(sender_getPhoto.response);
 
  //var vk_id:Number = xmlUsers.children()[i].children()[0];
  var vk_name:String = xmlUsers.children()[0].children()[1];
  var vk_lastname:String = xmlUsers.children()[0].children()[2];
  var vk_photo:String = xmlUsers.children()[0].children()[3];
 
  userName.text = vk_name+' '+vk_lastname;
 
 
  var userPhotoLoader:Loader = new Loader();
  userPhotoLoader.load(new URLRequest(vk_photo));
 
  userPhotoLoader.x = 10.6;
  userPhotoLoader.y = 80;
 
  addChild(userPhotoLoader);
 
}


Код AS3:

По теме: удаляйте старый ДисплейОбжект прежде чем добавить новый.

применял removeChild(userPhotoLoader);
не помогает

dj_Kayot 12.01.2010 02:23

(в теории): помоему removeChild только убирает с экрана, но не очищает. да и событие Complete не помешало бы...

Oli Short 12.01.2010 17:51

у меня отдельно написано класс. возможно можно как то создать "public переменную" и помещать туда объект потом вызывать? только не знаю как реализовать

dmitriev 12.01.2010 19:27

попробуйте так

Код AS3:

public var currentPhoto:DisplayObject;
private var userPhotoLoader:Loader;
 
public function viewPhoto():void {
    if(currentPhoto)
        removeChild(currentPhoto);
 
    userPhotoLoader = new Loader();
    userPhotoLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeLoadListener);
    userPhotoLoader.load(new URLRequest(vk_photo));
}
 
private function currentPhoto(event:Event):void {
    currentPhoto = userPhotoLoader.content
    addChild(userPhotoLoader.content);
}


Oli Short 12.01.2010 19:46

Код AS3:

private function currentPhoto(event:Event):void {
    currentPhoto = userPhotoLoader.content
    addChild(userPhotoLoader.content);
}

возможно Вы здесь ошиблись указав имя функции currentPhoto, а не completeLoadListener ?

Большое спасибо! Разобрался!

dmitriev 12.01.2010 21:36

Ага, недосмотрел =)

Oli Short 13.01.2010 01:12

Прошу прощения за глупый вопрос. Данный метод загрузки изображения от dmitriev работает, загрузил в соц. сеть контакт - отказывается. специально оставил только загрузку фото. не хочет что то) crossdomain.xml учел

Добавлено через 12 часов 19 минут
класс VkomandeClass.as

Код AS3:

package util
{
 
        import flash.display.*;
        import flash.events.*;
          import flash.net.*;
 
 
        public class VkomandeClass extends EventDispatcher
    {               
            public function VkomandeClass()
        {
        //var user: VKUser = new VKUser(this.loaderInfo.parameters);
        }
 
 
        public var currentPhoto:DisplayObject;
        public var userPhotoLoader:Loader;
        }
 
}

код на главной
Код AS3:

import util.*;
 
var vkm:VkomandeClass = new VkomandeClass();
 
  if(vkm.currentPhoto)
  removeChild(vkm.currentPhoto);
 
 
    vkm.userPhotoLoader = new Loader();
    vkm.userPhotoLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeLoadMyPhoto);
    vkm.userPhotoLoader.load(new URLRequest("http://cs10120.vkontakte.ru/u3894455/a_c20d845a.jpg"));
 
 
 function completeLoadMyPhoto(e:Event):void {
    vkm.currentPhoto = vkm.userPhotoLoader.content
        vkm.currentPhoto.x = 10.6;
        vkm.currentPhoto.y = 80;
    addChild(vkm.userPhotoLoader.content);
}

подгружал обычным методом. все отлично. не знаю что такое


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

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