Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   addChild у Loader (http://www.flasher.ru/forum/showthread.php?t=140047)

Zebestov 20.05.2010 00:29

а по существу — диво дивное!
если не затруднит, сделай отдельную флэшку, в которой только код, допустим, из первого примера, и выложи (только не забудь или URL вместо локального пути, или картинку тоже в архив сложить в ту же папочку в идеале... ну для чистоты эксперимента).
бо я уже говорил выше — твой код работает.

i.o. 20.05.2010 00:32

Цитата:

Код AS3:

z=int(String(e.target.url).substr(34,1))-1;


Да уж, кривовато.. Можно просто в цикле for in пройтись по ldr и найти по e.target нужное свойство объекта. Кстати да, а почему не Array, а Object? Вы вроде как индекс хотите узнать.. Так у Array есть замечательный метод indexOf():int, который и вернет вам непосредственно индекс лоадера. Тогда и for in окажется ненужным )

Follower 20.05.2010 01:08

Там пониже почитайте. Отображение на экране худо-бедно работает, мне сейчас нужна обработка нажатий мышью по детям.

Жень Шень 20.05.2010 12:26

У вас помещаются изображения на сцену, а они не интерактивны.
Может это поможет:
Код AS3:

import flash.display.Loader;
var i,j:int;
var Url:URLRequest;
var ldr:Sprite;
Compl();
j=0;
function Compl():void {
        for (i=0; i<7; i++) {
                //Url = new URLRequest(String(i+1)+".jpg");
                Url = new URLRequest("file:///F:/SITE/images/galery/3_3_"+String(i+1)+".jpg");
                var l=new Loader();
                l.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded);
                l.load(Url);
        }
}
function imgLoaded(e:Event):void {
        e.target.removeEventListener(Event.COMPLETE, imgLoaded);
        e.target.content.height=240;
        e.target.content.width=180;
        e.target.content.x=j*180;
        ldr = new Sprite();
        ldr.addChild(e.target.content)
        ldr.addEventListener(MouseEvent.CLICK, chang);
        addChild(ldr);
        j++;
}
function chang(e:MouseEvent):void {
        trace(e.target.parent.getChildIndex(e.target))
        // здесь описать свой обмен
}


Follower 21.05.2010 14:01

Вот этот вот index, насколько я понимаю, можно задавать addChildAt? Тогда бы можно было в нем хранить номер картинки.

Добавлено через 34 минуты
А может, проще обработать нажатие по координатам? Есть такая возможность?

dimarik 21.05.2010 16:21

Цитата:

Сообщение от Жень Шень (Сообщение 909529)
У вас помещаются изображения на сцену, а они не интерактивны.

Жень Шень, а зачем Вы перемещаете loader.content (as Bitmap) из InteractiveObject (Loader), в InteractiveObject (Sprite)? Может, все-таки оставим им родного папу?

Код AS3:

var loader:Loader = LoaderInfo(event.target).loader;
var interactiveObject:        DisplayObject = super.addChild(loader);
 
//trace("before: ", loader.numChildren);
//interactiveObject = super.addChild(loader.content);
 
trace("after: ", loader.numChildren);
 
interactiveObject.addEventListener(
        MouseEvent.CLICK,
        function(event:Event):void {
                trace("clicked");
        }
);


Follower 21.05.2010 18:02

Объясните мне, пожалуйста, что СИЕ значит:

TypeError: Error #1034: Type Coercion failed: cannot convert "file:///f:/SITE/IMAGES/galery/3_3_7.jpg" to flash.net.URLRequest.
at Gallery_fla::MainTimeline/chang()

и какого он не считает эту строку годной?

dimarik 21.05.2010 18:12

Это значит, что [object String] невозможно сконвертировать в [object flash.net.URLRequest].
Наверно, грузите как loader.load('file:///...');

Follower 21.05.2010 18:15

Код AS3:

var temp1,temp2:String;
temp1=l[0].contentLoaderInfo.url;
temp2=l[t].contentLoaderInfo.url;
l[0].load(URLRequest(temp2));
l[t].load(URLRequest(temp1));

вот так не работает

КорДум 21.05.2010 18:16

Код AS3:

loader.load(new URLRequest(url));



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

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