Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Можно ли менять name у загружаемого swf (http://www.flasher.ru/forum/showthread.php?t=106818)

wvxvw 16.01.2010 17:05

Вспомнился анекдот в тему:
- Доктор, мне больно, когда я так делаю!
- Пациент, перестаньте так делать...

Нельзя присвоить имя объекту помещенному на таймлайн, нельзя это делать потому что компилятор создает переменную с именем, которую вы дали вашему клипу, и если вы поменяете имя клипу, то имя переменной перестанет ему соответствовать. Так что ответ - никак, и просто не делайте этого.

IONIX 17.01.2010 01:50

это я уже понял. как тогда правильно?

wvxvw 17.01.2010 02:51

Правильно - хранить в классе ссылку на объект, или получать эту ссылку динамически типа getChildAt() / getChildByName().

IONIX 17.01.2010 13:24

и всё же можно пример?

Добавлено через 19 минут
Код AS3:

компилятор создает переменную с именем, которую вы дали вашему клипу

а где я могу задать имя swf файлу чтобы было вместо инстансе другое?

etc 17.01.2010 14:03

Пример чего, вызова метода getChildByName?

IONIX 17.01.2010 14:12

etc
с getChildByName я понял.

я про то что заргуженный файл свф получает имя инстансеN.

я могу когда редактирую загружаемый файл во флеше задать ему имя? чтобы избавится от инстансе
this.name = "myname";
выдаёт
Error: Error #2078: Невозможно изменить свойство "имя" для объекта, размещенного во временной шкале.

etc 17.01.2010 14:16

На загруженный swf у вас уже есть ссылка на content с Loader-а, о каком имени вообще речь идёт? Зачем вам имя? Тем более, у кого вы getChildByName будете вызывать, если контент в лоадере лежит, а лоадер в свою очередь вообще не поддерживает getChildByName.

IONIX 17.01.2010 14:31

Код AS3:

package main {
        import main.*;
        import flash.display.*;
        import flash.events.*;
        import flash.net.*;
        import flash.system.*;
        import flash.text.*;
        flash.system.Security.allowDomain("*");       
 
        internal class SWFLoader extends Sprite 
        {
                public var urlLoader:Loader;
                var preloader_mc:preloader = new preloader();
                public function SWFLoader(url:String,w:int,h:int)
                {
                        var urlRequest:URLRequest = new URLRequest(url);
                        urlLoader = new Loader();
                        urlLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.Clistener);
                        urlLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,Plistener);
                        urlLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,Elistener);       
                        urlLoader.load(urlRequest);
                        addChild(preloader_mc);                       
                        preloader_mc.x=(w/2);
                        preloader_mc.y=(h/2);
                }
                public function Elistener(e:Event):void
                {
                trace('Elistener');
                }                       
                public function Clistener(e:Event):void
                {
                addChild(urlLoader.content);
                removeChild(preloader_mc);
                trace('Clistener');
                }       
                public function Plistener(e:ProgressEvent):void
                {
                preloader_mc.loadtext.htmlText ='<b>'+Math.floor(e.bytesLoaded*100/e.bytesTotal)+"%</b>";
                preloader_mc.loadbytes.htmlText ='<b>'+e.bytesLoaded+'/'+e.bytesTotal+'</b>';
                //trace('Plistener');
                }
                public function Ilistener(e:Event):void
                {
                trace('Ilistener');
                }       
        }
 
}


dimarik 18.01.2010 01:56

Можно. Переберите ту swf и loadBytes её.

Добавлено через 7 минут
Цитата:

Сообщение от IONIX (Сообщение 879582)
всё равно не понял как это сделать 8(

можно пример? как загрузить мувик присвоив ему удобное имя
обращаться к объектам на сцене

От гадость эти форумы. Фиг победишь timestamp.
Стер про Блула.


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

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