2010-07-18 2 views
1

Что я пытаюсь сделать, это загрузить 2 разных swf с помощью 2 разных кнопок.flash as3 loader вопрос

Что я хочу сделать, когда вы нажимаете на кнопку 1, она загружает первый swf, а кнопка 2 загружает второй swf, удаляя любой другой swf со сцены первым.

Проблема, с которой я, похоже, сталкиваюсь с загрузчиком. Я не могу загрузить изображения в загрузчик, не ставя их на сцену. И когда я пытаюсь загрузить изображения динамически он продолжает воссоздавать ГИФы, помещая еще один в загрузчике, даже если я использую:

stage.removeChild(loader); 
loader = new Loader();. 

Любая помощь или учебники по этой информации было бы здорово.

+0

вы можете показать некоторый код? – bhups

ответ

1

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

* edit: Это отрезает часть пакета, пожалуйста, простите меня за то, что вы не понимаете парсер кода stackoverflow. *

`упаковка
{ импорт flash.display.Loader; импорт flash.display.Sprite; импорт flash.events.Event; импорт flash.events.MouseEvent; импорт flash.net.URLRequest;

public class LoaderTest extends Sprite 
{ 
    //two loaders 
    private var _firstLoader:Loader = new Loader(); 
    private var _secondLoader:Loader = new Loader(); 

    //just assuming you already have the buttons you want setup, use these as theoretical buttons 
    private var _buttonOne:Sprite; 
    private var _buttonTwo:Sprite; 

    public function LoaderTest() 
    { 
     _firstLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded); 
     _secondLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded); 
     _firstLoader.load(new URLRequest("path/to/image.jpg")); 
     _secondLoader.load(new URLRequest("path/to/image.jpg")); 

     _buttonOne.addEventListener(MouseEvent.CLICK, showImage); 
     _buttonTwo.addEventListener(MouseEvent.CLICK, showImage); 
    } 

    private function imageLoaded(e:Event):void 
    { 
     //do something if you want 
    } 

    private function showImage(e:MouseEvent):void 
    { 
     switch(e.target) 
     { 
      case _buttonOne : 
       if (!contains(_firstLoader)) 
       { 
        if (contains(_secondLoader)) 
         removeChild(_secondLoader); 

         addChild(_firstLoader); 
       } 
      break; 
      case _buttonTwo : 
       if (!contains(_secondLoader)) 
       { 
        if (contains(_firstLoader)) 
         removeChild(_firstLoader); 

         addChild(_secondLoader); 
       } 
      break;    
     } 
    } 


} 

} `

 Смежные вопросы

  • Нет связанных вопросов^_^