Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как подгружать скрипты в основной код из *.as файлов ? (http://www.flasher.ru/forum/showthread.php?t=145113)

AlesNormales 30.09.2010 16:55

класс tr переименовали в tr.as?

iillyyaa 30.09.2010 16:55

я делаю
Код AS3:

trace(tt);

зачем мне её передавать, если она уже объявлена ??

Добавлено через 1 минуту
переименовал теперь, теперь старая ошибка :)

1120: Обращение несуществующего свойства tt.

Добавлено через 3 минуты
tra.as

Код AS3:

package {
        import flash.display.*;
        import flash.text.*;
        public class tra extends MovieClip {
                public var tt = 'хелоу';
                public function tra() {
                        trace('превед');
                        tr.tratata();
                }
        }
}

tr.as

Код AS3:

package {
        public class tr {
                public static function tratata() {
                        trace(tt);
                }
        }
}


bumb0x 30.09.2010 17:01

а откуда классу tr знать о свойстве tt класса tra?

AlesNormales 30.09.2010 17:03

если хотите из одного класса менять переменные другого класса, то в классе, переменные которого нужно менять, напишите методы, которые будут это делать, а вызывайте их из другого класса.

iillyyaa 30.09.2010 17:03

а как узнать ? :))

AlesNormales 30.09.2010 17:03

iillyyaa, объясните внятно чего Вы хотите, я запутался.

Добавлено через 31 секунду
узнать-
передать параметром, как раньше

Добавлено через 1 минуту
она объявлена в другом классе. эта переменная-член класса, чтобы взять книжку в биллиотеке, надо сначала зайти в библиотку. и то могут не дать

iillyyaa 30.09.2010 17:12

мне не нужен класс, мне нужно вынести функцию с переменными...

у меня файл analiz.fla и analiz.as, вот содержимое analiz.as (урезанное)

Код AS3:

package {
        import flash.display.*;
        import flash.events.*;
        import flash.text.*;
        import flash.filters.GlowFilter;
        import flash.utils.*;
        public class analiz extends MovieClip {
                public var cont_prim:Sprite = new Sprite();
                public var to_cont_opisanie = new TextField();
 
                public function analiz() {
                        adddd();
                        addChild(cont_prim);
                        to_cont_opisanie.text = 'тратата2';
                }
 
                private function adddd() {
                        cont_prim.opaqueBackground=0xEEEEEE;
 
                        to_cont_opisanie.textColor = 0xFF0000;
                        to_cont_opisanie.autoSize = TextFieldAutoSize.LEFT;
                        to_cont_opisanie.selectable = false;
                        to_cont_opisanie.text = 'тратата';
                        to_cont_opisanie.x = 0;
                        to_cont_opisanie.y = 0;
                        cont_prim.addChild(to_cont_opisanie);
                        cont_prim.x=0;
                        cont_prim.y=0;
                }
        }
}

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

to_cont_opisanie - текстовое поле помещённое в контейнер

скажем вот такой код у меня есть, я хочу вынести в отдельный файл функцию adddd()

как это сделать ? :)

AlesNormales 30.09.2010 17:20

ваша функция-это метод класса анализ. Если очень нужно вынести ее функционал наружу, нужно создать функцию например ExternalAdd и передать ей экзепляр анализа, и пусть она делает там с ним что надо.
будет так
Код AS3:

private function adddd(){
ExternalAdd (this);}

и я кажется начал понимать чего Вы хотите-просто взять файл класса и разбить его на куски произвольным образом. Могу ошибаться, но так делать нельзя.

Добавлено через 2 минуты
но вообще это противоречит концепцям ООП, весь функционал класса должен быть в нем спрятан, а не раскидан где попало. и поля класса открывать тоже не стоит.

iillyyaa 30.09.2010 17:24

ну да, я хочу облегчить код... мне эта функция в 180 строк не нужна там... было бы читабельнее, если бы она лежала где то отдельно и всего лишь вызывалась...

как к примеру на пхп можно сделать...

а какое содержимое будет у ExternalAdd ?

могли бы вы разделить тот код, что я написал ?

сделать 2 кода для каждого из файлов, что бы оно работало :)

AlesNormales 30.09.2010 17:29

могу, хотя я бы ограничился сворачиванием фунции в плюсик. глаза бы не мозолила)


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

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