![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Можно ли как нибудь получить доступ к переменным которые находятся в кадрах?
И что такое addFrameScript?
__________________
Работю в DigitalHouse |
|
|||||
|
В кадрах, в смысле сидя на 1 кадре получить переменную со второго?
Нет, нельзя. Это так же, что и да и вообще, в ас3 писать на кадрах? х_Х
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
нет, находяся в первом кадре и получить переменную нужно с первого.
в кадре хочу получить доступ т.к. есть пару параметров которые относятся к определенной fla. у меня класс один, а fla которые его юзают 20. не хочу эти два параметра выносить в xml.
__________________
Работю в DigitalHouse |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Не пишут AS3-код в кадрах. Не пишут. А если пишут — это означает незнание AS3 в принципе.
|
|
|||||
|
Да согласен, я не пишу код в кадре!!!
Но проблема в том, что класс один, а дизайн постоянно разный, и в каждом fla разное количество элементов надо выводить. Я хотел вставить одну переменную в которую записать одно число! Есть ли способ получить доступ к коду в кадре?
__________________
Работю в DigitalHouse |
|
|||||
|
знаешь.. можешь решить так:
кидаешь на стейдж динамик текстфилд и в нем пишеь свое число. ну и дальше сам знаешь. Я думаю такой способ тоже не ахти, но альтернатива писанине в кадре. |
|
|||||
|
strange mood
|
Код, который пишется на кадре, преобразуется флэшом в метод класса мувиклипа и вешается на этот кадр (при помощи того самого addFrameScript).
Поэтому можно объявить поле класса, в кадре задать ему значение (обращаясь через this, хотя и без него покатит, но я предпочитаю всегда явно это писать) и дальше делать всё что угодно. А ещё можно объявить не просто поле, а метод, который будет принимать нужное значение и при его получении уже что-то делать. __etc, я раньше тоже ни под каким предлогом не писал код в кадрах. Но когда разобрался как это работает, понял, что в некоторых случаях это вполне уместный шаг, который позволяет сэкономить кучу времени без ущерба структуре. Код в кадрах - это не абсолютное зло, просто нужно всегда чётко осознавать, когда он уместен, а когда - нет. Например, когда объём кода настолько мал, что он полностью держится в голове, и поэтому не требуется городить десятки классов и сотни строк только ради создания некой формальной структуры, с которой можно работать, изучив только интерфейс нужных кусков. Сейчас, как я понимаю, именно такой случай, когда он уместен: один общий класс и 20 флэшек которые его используют, и все они различаются только одним параметром. Так что же, городить ещё 20 файлов-конфигов? ramshteks, ну тогда уж лучше сразу компонент сделать ![]()
__________________
тонкий тролль, осеянный благодатью Последний раз редактировалось Gaen; 20.08.2008 в 14:29. |
|
|||||
|
ramshteks я сейчас так и начал делать, но этот способ мне очень не нравится....
GAIKER, абсолютно с вами согласен, только ни как не могу разобраться с addFrameScript, в хелпе ничего нет по нему, можете показать какой нить простой пример. :-)
__________________
Работю в DigitalHouse |
|
|||||
|
strange mood
|
При написании кода в кадре этот код неявным образом преобразуется в метод класса и неявным вызовом addFrameScript вешается на кадр.
Когда это раскопали, то стало ясно, что ничто не мешает сделать то же самое явно: вместо того, чтобы писать код в кадре, можно явно определить свой метод и явным вызовом addFrameScript повесить его на кадр. package{
import flash.display.MovieClip;
public class MyClass extends MovieClip{
//constructor
public function MyClass(){
super();
this.addFrameScript(5, this.doSomething);
}//constructor
private function doSomething():void{
trace("Hello, world!");
}//doSomething
}//class
}//package
http://gorbatov.blogspot.com/2007/09...amescript.html
__________________
тонкий тролль, осеянный благодатью |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|