AS3 - обновление изображения flickr при вводе пользователем - PullRequest
1 голос
/ 07 июня 2011

Пожалуйста, держите меня в покое, когда я выхожу, чтобы выучить некоторый ActionScript.

Я пытаюсь интегрировать flickr в приложение погоды (yahoo weather api), которое я создал и решил начать с использования flickrGrabber (http://blog.organa.ca/?p=19) в качестве отправной точки. У меня есть приложение погоды и flickrGrabber Работать, однако, обновление flickrGrabber после начальной загрузки оказывается очень сложным для меня.

Исходное изображение извлекается с помощью поискового термина, заданного переменной flickrLocationName, и я могу успешно обновить значение переменной после ввода нового почтового индекса, однако я не могу заставить flickrGrabber выгружаться и перезагружаться с новое значение. Мой код flickrGrabber находится на уровне документа AS. Класс flickrGrabber находится в папке Src, а переменная flickrLocationName устанавливается из класса WeatherObject, который также находится в папке Src.

Вы можете понять, что я имею в виду, перейдя по этой ссылке: http://truimage.biz/WAS400/WeatherApp/Deploy/weatherApp.html

Конечно, мой источник можно скачать здесь: http://truimage.biz/WAS400/weatherApp.zip

Любая помощь будет принята с благодарностью. Вот пример кода:

import flickrGrabber;
var apiKey:String = "####"; //The working API key is in the zip file
var apiSecret:String = "####"; //The working API secret is in the zip file
var flickrLocationName:String;
var grabber:flickrGrabber;

function locationImage():void
{
    grabber = new flickrGrabber(1024,600,apiKey,apiSecret,flickrLocationName,false);

    grabber.addEventListener("imageReady", onLoadedImage);
    grabber.addEventListener("flickrGrabberError", onErrorImage);
    grabber.addEventListener("flickrConnectionReady", onFlickrReady);

    function onFlickrReady(evt:Event):void
    {
        grabber.loadNextImage();
    }
    function onLoadedImage(evt:Event):void
    {
        addChildAt(grabber.image,0);
    }
    function onErrorImage(evt:ErrorEvent):void
    {
        trace("Report error: " + evt.text);
    }
}

Я почти уверен, что смогу сменить картинку, чтобы удалить

addChildAt(grabber.image,0);

и перезапустите функцию

locationImage();

Но это моя лучшая догадка. Я занимаюсь этим уже 3 дня.

...