Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как добраться до свойств элемента, если он находится на другом кадре? (http://www.flasher.ru/forum/showthread.php?t=128833)

Ваисилй 18.08.2009 17:24

как добраться до свойств элемента, если он находится на другом кадре?
 
как добраться до свойств элемента, если он находится на другом кадре?

cdc7600 18.08.2009 17:29

поставить его в первый и сделать невидимым

etc 18.08.2009 19:05

Перейти в нужный кадр и обратиться к нему.

Ваисилй 19.08.2009 11:55

Цитата:

Сообщение от etc (Сообщение 843697)
Перейти в нужный кадр и обратиться к нему.

если я перейду на нужный кадр то выполниться скрипт который в данный момент не должен выполняться. Ну понятно конечно что можно всяких условий понаставить.....

cdc7600 19.08.2009 11:59

не пишите скрипты в кадрах

Ваисилй 19.08.2009 12:00

Цитата:

Сообщение от cdc7600 (Сообщение 843660)
поставить его в первый и сделать невидимым

мне надо что-то типа постраничных фреймов сделать. Несколько корневых кадров, на которых кнопки и текстовые поля + обработчики кнопок. Так вот некоторые свойства обьектов, которых в данный момент не видим, зависимы от изменений на текущем кадре. Можно все таки как то добраться(может через root)?

Добавлено через 47 секунд
Цитата:

Сообщение от cdc7600 (Сообщение 843820)
не пишите скрипты в кадрах

а где писать?

Dezar 19.08.2009 12:15

Цитата:

а где писать?
на мувиках))))))))))))

cdc7600 19.08.2009 12:28

ххх)))

Создаёте класс документа, например, Script.as (Делаете в документе ссылку на этот класс, на главной сцене, внизу, ниже указания Background, есть поле Document class, пишите там Script.as)

Пример содержимого Script.as (записываете ваш код в документе), лучше всего все клипы кидать на первый кадр, а ещё лучше создавать их из этого документа

Код AS3:

package {
 
 
        import flash.display.Sprite;
 
 
        public class Script extends Sprite {
 
                public var i:Number = 0;
 
                public function Script():void {
 
                for (i = 0; i< 20; i++) {
                trace(i)               
                }
 
}
}

Так как вы делаете, нужно кинуть кнопки на первый кадр на нужных местах (естесственно, прописать им instance name) поставить им visible = 0 (в коде первого кадра), а в следующем кадре visible = 1

Dezar 19.08.2009 12:37

а есть выход проще))
называется через одно место
в функцию что в 2 кадре..вписать условие..if
и когда надо посмореть своиства..сгоняем до 2 кадра..берем своиства..и летим обратно где были..таки образом своиства забрали и функция не сработала))
правда будет мигать экран)
а вообще..то что выше указано(код) довольно верное решение

Ваисилй 19.08.2009 13:26

Цитата:

Сообщение от Dezar (Сообщение 843823)
на мувиках))))))))))))

как это?

Hidest 19.08.2009 13:44

Цитата:

Сообщение от Ваисилй (Сообщение 843864)
как это?

Это шутка!

Felicast 19.08.2009 13:52

Цитата:

Сообщение от Dezar (Сообщение 843835)
правда будет мигать экран)

с чего вы взяли?

Dezar 19.08.2009 13:55

Цитата:

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

Felicast 19.08.2009 14:14

поробуй
Код AS3:

movie.gotoAndStop(2);
movie.gotoAndStop(1);

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

CEBEP 19.08.2009 14:16

visible = false это ацтой! при интерактивных элементах надо ещё дописывать mouseChildren = false ... и постоянно следить где false а где нет...

Лучше всего накатать маленький скрипт эмулирующий "State"-ы

Dezar 19.08.2009 14:16

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

Ваисилй 19.08.2009 14:39

Цитата:

Сообщение от Dezar (Сообщение 843887)
честно говоря такого рода эксперименнтя не ставил..но если тебе надо все таки попасть в 2 кадр.и получить оттуда данные..то значит его надо отрисовать..нет?

Мне его подготовить нужно, к примеру передать туда текст из первого кадра.

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

Сообщение от Felicast (Сообщение 843885)
поробуй
Код AS3:

movie.gotoAndStop(2);
movie.gotoAndStop(1);

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

Так пока я буду на втором кадре мне доступны элементы с первого кадра так?

Добавлено через 8 минут
а если будет так все равно последний только отрисуется?
Код AS3:

movie.gotoAndStop(1);
somefunction1();
movie.gotoAndStop(2);
somefunction2();
 
movie.gotoAndStop(3);
somefunction3();
 
movie.gotoAndStop(4);
somefunction4();
 
movie.gotoAndStop(5);
somefunction5();
 
movie.gotoAndStop(6);
somefunction6();
 
movie.gotoAndStop(7);
somefunction7();

У меня десяток как бы страниц-фреймов получается

Dezar 19.08.2009 14:51

однако ...по моему это просто жесть

Felicast 19.08.2009 14:56

Цитата:

а если будет так все равно последний только отрисуется?
тутвсе подробно расписано (даже по-русски)
Цитата:

Переводит точку воспроизведения в заданный кадр фрагмента ролика и останавливает ее в этом кадре. Это происходит после того, как завершается выполнения всех оставшихся действий.
зы: хотя, может я где-то и ошибаюсь. никогда не пользуюсь MovieClip


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

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