Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Использование клипов из загруженой swf (http://www.flasher.ru/forum/showthread.php?t=115528)

Visual 02.09.2008 02:59

Использование клипов из загруженой swf
 
Я могу както использовать библиотеку клипов загруженой swf ?
Например у меня есть library.swf файл с несколькими клипами - m1, m2 и тд с поставлеными птичками export for ActionScript.
Я могу этот клип загрузить в основной клип при помощи класа Loader и использовать эти клипы?:

Код:

var loader:Loader = new Loader();
var request:URLRequest = new URLRequest('library.swf');
oader.load(request);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.playMovies);

playMovies(evt:Event):void{
var mc:MovieClip = evt.target.loader.content;
this.addChild(mc);
mc.play(); //тут понятно, чтоб проиграть основной таймлайн

var mc1:MovieClip = new m1(); // как мне достать эти ролики?
var mc2:MovieClip = new m2();
this.addChild(mc1);
this.addChild(mc2);
}


ramshteks 02.09.2008 03:00

а что вам мешает попробовать?

BlooDHounD 02.09.2008 11:01

ApplicationDomain.getDefinition

Visual 02.09.2008 13:55

Цитата:

Сообщение от BlooDHounD (Сообщение 761774)
ApplicationDomain.getDefinition

Спасибо! Показал куда двигатся =)

Вот если кто не понял, цитата из http://terbooter.blogspot.com/2008/01/blog-post.html:

Как добавить экземпляр класса подгружаемого мувика
Пусть есть флешка library.swf и в её библиотеке есть мувик связанный с классом MC
(Свойства, галочка Экспорт для ActionScript)
Есть другая флешка loader.swf которая подгружает флешку library.swf.

Код:

package {
 import flash.display.Loader;
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.events.EventDispatcher;
 import flash.net.URLRequest;
 import flash.system.ApplicationDomain;

 public class loader extends Sprite {
  var e:Event;
  var a:ApplicationDomain;
  public function loader() {
  var url:URLRequest = new URLRequest("library.swf");
  var l:Loader = new Loader();
  l.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
  l.load(url);
  }
 
  private function onLoadComplete(e:Event) {
  trace("loaded");
  var currentClass:Class = e.target.applicationDomain.getDefinition("MC") as Class;
  var s:Sprite = new currentClass();
  addChild(s);
 
  var s2:Sprite = new currentClass();
  addChild(s2);
 
  s2.x = 50;
  s2.y = 50;
  }
 }
}


Alex Lexcuk 02.09.2008 13:57

Код:

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);           
   
function onLoadComplete(param1:Event) : void
        {
            var Movi_class:Class; 
            var  my_mc ;
            Movi_class = loader.contentLoaderInfo.applicationDomain.getDefinition("m1") as Class;
            my_mc = new Movi_class ;
            addChild(my_mc);
        }

UPD: А у меня интернет медленно работает

Visual 02.09.2008 15:15

Еще 1 встречный ворос. Допустим в этих загруженых клипах есть кнопочка close. Как мне отследить событие в этих клипах ? Нарпимер мне нужно закрыть то загруженое окно с помощью кнопки внутри загруженого клипа.

Так не получается:
Код:

s.close.addEventListener(MouseEvent.MOUSE_DOWN, closeWindow);

mre 02.09.2008 16:16

А что именно не получается?
Должно работать.

Visual 02.09.2008 16:26

Вложений: 1
Код:

1119: Access of possibly undefined property close through a reference with static type flash.display:Sprite.
Мувик close находится внутри ролика который мы загрузили и подключили с библиотеки ("MC").

Вот создал простенький примерчик:

mre 02.09.2008 16:50

Код:

...
var s:MovieClip = new currentClass();
...


Visual 02.09.2008 17:00

Вот что значит вставил код и не подумал что он делает. Спасибо!


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

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