![]() |
|
||||||||||
|
|||||
|
Я хочу написать класс хитрого прелодера,
load_to_clip - просто клип general_loader - loader load_to_clip.addChild(general_loader);//это естественно работает load_to_clip = general_loader.content as MovieClip;//нет, и не выводит ошибок load_to_clip.addChild(general_loader.content as MovieClip);//нет, выдает предупреждение* *Предупреждение:
__________________
Пора бы мне уже умнеть.. |
|
|||||
|
Banned
[+1 08.05.08]
[+4 14.04.08] [+1.3 02.05.08] Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
|
вроде так, если не ошибаюсь...
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
content уж точно не LoaderInfo. content может быть как Sprite, так и MovieClip, зависит от флешки.
|
|
|||||
|
спасибо, вроде получается
load_to_clip - это ссылка на клип а, переданная в класс. При успешной загрузке из базового класса вызывается функция f(). mc и a это один и тот же объект, почему же код не срабатывает?
__________________
Пора бы мне уже умнеть.. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
«a.getChildAt(0).t» — что это?
|
|
|||||
|
t это instance name клипа, который находится в подгружаемом swf файле
__________________
Пора бы мне уже умнеть.. Последний раз редактировалось Ноябрь; 28.03.2008 в 18:48. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Это за вас компилятор CS3 клепает подобные ссылки. В AS3 избегайте подобных обращений и используйте getChildByName. Иначе потом будет очень грустно.
А код вообще надо переписать начисто, на основе примеров в хелпе по Loader. |
|
|||||
|
Цитата:
но так тоже не работает. Цитата:
Document class: package main {
import flash.display.Sprite;
import main.loader.LoaderWithClip;
import flash.display.MovieClip;
public class Index extends Sprite{
public var a:MovieClip;
public function Index(){
a = new MovieClip();
addChild(a);
var prl = new LoaderWithClip();
prl.load_to(a);
prl.from('main/loader/testload.swf');
prl.load_go();
}
public function f(mc):void{
//mc.getChildAt(0).getChildByName("t").stop();//остановка срабатывает
//a.getChildAt(0).getChildByName("t").stop();//не срабатывает
trace(mc==a);//true
trace(mc===a);//true
}
}
}
package main.loader {
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.net.URLRequest;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
public class LoaderWithClip extends MovieClip{
public var load_to_clip:*;
public var url:URLRequest;
public var general_loader:Loader;
public function LoaderWithClip(){
general_loader = new Loader();
}
public function load_to(mc:*):void{
load_to_clip = mc;
}
public function from(url_str:String):void{
url = new URLRequest(url_str);
}
public function load_go():void{
general_loader.load(url);
general_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onload);
}
private function onload(e:Event){
load_to_clip.addChild(e.target.content as MovieClip);
load_to_clip.parent.f(load_to_clip);
}
}
}
__________________
Пора бы мне уже умнеть.. |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:22. |
|
|
« Предыдущая тема | Следующая тема » |
|
|