![]() |
Как подгружать скрипты в основной код из *.as файлов ?
вот понадобилось мне рости в познаниях флеша, кода стало больше.. решил, лучше разделить его на части и каждую "основную" часть засунуть в отдельный файл..
в самом fly файле у меня нет ни строчки кода (analiz.fla) рядом лежит файл analis.as, который подгружается "сам" внутри analis.as Код AS3:
вопросы, что должно быть в файле fun1.as ? только та функция ? или что то ещё ? как и где мне подгрузить файлик fun1.as ? функцию из этого файлика я вызывать планирую в коде в основном файле analis.as скажем содержимое fun1.as Код AS3:
Добавлено через 5 часов 44 минуты что, все считают, что вопрос нубский ? или что ? ну я реально не знаю.. и где прочесть, так что бы понять не перечитав сотни разных страниц не знаю.. да и везде расплывчато написано, нужно понимать половину уже :) |
Я как всегда не уверен в правильности вопроса, но если хотите создать глобальную функцию, что-бы вызвать её где угодно, как например trace(), то создайте *as файл с таким же именем как и функция, такого вида:
Код AS3:
И вызывайте её где хотите. |
а как же этот файл сам прикрепится к нужному fly ?
у меня есть код чужой прокрутки, там в основном кадре fly файла указан код Код AS3:
Код AS3:
|
каждому *.as файлу нужно указыать что импортировать. Кроме того что объявлено в одном с ним пакете.
Как крепится к fla? Если имеется ввиду класс документа, то он указывается относительно самого fla. Если лежит в одной с ним папке-то просто имя класса. если в другой папке-то пакет.имя_класса, если вложенность то пакет.пакет...пакет.имя_класса. |
Вложений: 1
я попытался это изобразить (кроме paint под рукой ничего не было). Черные "прямоугольники" это папки. В красной рамке-файлы.
|
package dc
package dc.pak package dc.pak.pak1 |
так а где его подгружать ?
есть у меня analiz.fla и analiz.as тут нужно указывать в analiz.as подгрузку tratata.as ? (tratata.as я положу туда же где analiz.fla и analiz.as) Код AS3:
Код AS3:
Добавлено через 9 минут или надо: Код AS3:
Код AS3:
|
Wolsh спасибо что поправили.
Верно. у Вас же все в одном безымянном пакете. Импортировать (или как вы говорите подгружать) друг друга вашим файлам не надо. Они уже логически объединены. Можете просто пользоваться функцией тартата. А вот если функции из файлов анализ и тратата используют другие пакеты, то в каждом файле нужен будет импорт этих пакетов. например если анализ и тратата оба используют спрайт, то этот импорт должен быть и в одном и в другом файле. Все что вам надо сделать-это указать классом докумена - analiz. |
1136: Неправильное количество аргументов. Ожидается 1.
жалуется на вызов функции tratata(); в основном коде файла tra.as файл tra.as Код AS3:
Код AS3:
|
ну так Вы тратата классом сделали и функцию не вызываете, пишите теперь new tratata(), вызовете конструктор, которые напишет таки тратата
Код AS3:
|
не особо понял...
моя цель, вынуть функцию tratata из файла tra.as в другой файл и вызвать её потом из файла tra.as Добавлено через 2 минуты засунул Код AS3:
а как вызвать ? tr(); не работает да да, вот такой я ламер :)) Добавлено через 9 минут как сделать tratata() не класом а просто функцией ? которую я бы вызвал потом ? |
что вызвать? у Вас больше нет функции тратата. теперь это конструктор класса. и вызывается он когда Вы создаете объект класса
Код AS3:
Если нужна просто функция, то воспользуйтесь советом Samana |
ага, так работает...
Код AS3:
вот попытался чуть усложнить код, и засада :) Код AS3:
Код AS3:
|
или так:
Код AS3:
например Код AS3:
Добавлено через 4 минуты переделайте tratata Код AS3:
Код AS3:
|
а если у меня 10 переменных ??
Добавлено через 2 минуты реально там 15 переменных, и 180 строк кода.. вот я и хочу вынести их в отдельный файл, что бы более читабельным был код.. в дальнейшем повыкинуть ещё несколько функций и будет аккуратный, красивый код :) |
Код AS3:
передавайте массивом все 15 в функцию, или просто через запятую. какая разница сколько их? |
Код AS3:
Код AS3:
|
Код AS3:
|
не, я не передаю переменные, точнее значения... я обращаюсь к переменным, которые объявлены в tra.as а использовать, к примеру изменить я хочу в tratata.as или просто трасертом вывести...
|
в одном as файле может быть описание только одного класса или одной функции и т.д.
И название файла должно соответсвовать имени описанному в нём объекте. |
класс tr переименовали в tr.as?
|
я делаю
Код AS3:
Добавлено через 1 минуту переименовал теперь, теперь старая ошибка :) 1120: Обращение несуществующего свойства tt. Добавлено через 3 минуты tra.as Код AS3:
Код AS3:
|
а откуда классу tr знать о свойстве tt класса tra?
|
если хотите из одного класса менять переменные другого класса, то в классе, переменные которого нужно менять, напишите методы, которые будут это делать, а вызывайте их из другого класса.
|
а как узнать ? :))
|
iillyyaa, объясните внятно чего Вы хотите, я запутался.
Добавлено через 31 секунду узнать- передать параметром, как раньше Добавлено через 1 минуту она объявлена в другом классе. эта переменная-член класса, чтобы взять книжку в биллиотеке, надо сначала зайти в библиотку. и то могут не дать |
мне не нужен класс, мне нужно вынести функцию с переменными...
у меня файл analiz.fla и analiz.as, вот содержимое analiz.as (урезанное) Код AS3:
to_cont_opisanie - текстовое поле помещённое в контейнер скажем вот такой код у меня есть, я хочу вынести в отдельный файл функцию adddd() как это сделать ? :) |
ваша функция-это метод класса анализ. Если очень нужно вынести ее функционал наружу, нужно создать функцию например ExternalAdd и передать ей экзепляр анализа, и пусть она делает там с ним что надо.
будет так Код AS3:
Добавлено через 2 минуты но вообще это противоречит концепцям ООП, весь функционал класса должен быть в нем спрятан, а не раскидан где попало. и поля класса открывать тоже не стоит. |
ну да, я хочу облегчить код... мне эта функция в 180 строк не нужна там... было бы читабельнее, если бы она лежала где то отдельно и всего лишь вызывалась...
как к примеру на пхп можно сделать... а какое содержимое будет у ExternalAdd ? могли бы вы разделить тот код, что я написал ? сделать 2 кода для каждого из файлов, что бы оно работало :) |
могу, хотя я бы ограничился сворачиванием фунции в плюсик. глаза бы не мозолила)
|
хе хе, реально проще свернуть в плюсик :))
спасибо за ценный совет :))) Добавлено через 1 час 10 минут кстати, нигде в настройках нельзя ли увеличить кол-во отображаемых символов в скрытом "в плюсик" ? по умолчанию показывает первые 6 символов кода и 3 точки хотелось бы чуть больше :) можно было бы нормально прятать большие массивы.. и выдно было бы имя массива |
| Часовой пояс GMT +4, время: 06:31. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.