![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Sep 2005
Сообщений: 50
|
Это...
Вот есть какой-то класс. Он не dynamic. Возможно ли как-то хранить данные в нём, которые не были описаны ? В общем нужно вот, что: static public class ImageLoader
{
static public load(param_url, param_some_container)
{
var imageLoader = new Loader();
// ошибка!!! так делать нельзя, а хочется )
imageLoader.some_container = param_some_container;
var imageURLReq:URLRequest = new URLRequest(param_url);
imageLoader.load(imageURLReq);
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded);
}
private function imgLoaded(param_event)
{
// неа, не получится )
var container = param_event.target.loader.some_container;
container.addChild(event.target.loader.content);
}
}
Этот класс будет использоваться примерно так: ImageLoader.load("test.jpg", stage.test_mc); ImageLoader.load("test1.jpg", stage.test1_mc); Как бы вот так сделать в AS3 ? |
|
|||||
|
Регистрация: Dec 2003
Адрес: Москва
Сообщений: 176
|
Можно так:
public class ImageLoader {
staic public function load(url : String, target : Container) {
var imgLoader : ImageLoader = new ImagerLoader(target);
imgLoader.load(url);
}
private var target : Container = null;
private var loader : Loader = null;
public function ImageLoader(target : Container) {
this.loader = new Loader();
this.target = target;
loader.addEventListener(Event.COMPLETE, loader_completeHandler);
}
public function load(url : String) : void {
loader.load(new URLRequest(url));
}
private function loader_completeHandler(event : Event) : void {
target.addChild(loader.content);
loader.removeEventListener(Event.COMPLETE, loader_completeHandler);
}
|
|
|||||
|
Цитата:
package {
import flash.display.*;
import flash.events.Event;
import flash.net.URLRequest;
public class ImageLoader {
static public function load(param_url:String, param_some_container:DisplayObjectContainer):void {
var imageLoader:TargetLoader = new TargetLoader(param_some_container);
imageLoader.load(new URLRequest(param_url));
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded);
}
private static function imgLoaded(evnt:Event):void{
var loader:TargetLoader=evnt.target.loader as TargetLoader;
loader.targetObj.addChild(loader.content);
}
}
}
import flash.display.*;
class TargetLoader extends Loader{
public var targetObj:DisplayObjectContainer;
public function TargetLoader(param_container:DisplayObjectContainer){
targetObj=param_container;
}
}
|
|
|||||
|
Регистрация: Sep 2005
Сообщений: 50
|
Спасибо. То, что нужно. Пока не принюхался к extends, а в AS3 на них многое держится
|
![]() |
![]() |
Часовой пояс GMT +4, время: 17:22. |
|
|
« Предыдущая тема | Следующая тема » |
|
|