Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.10.2013, 22:05
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 11  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
Цитата:
Сообщение от SuriTheAngel Посмотреть сообщение
Зачем эта семерка в конструктор? Таким образом, вы присваете arr[0] значение 7.
Хотя нет, даже этого не происходит.
Вот именно, что я ни в зуб ногой не могу понять, что к чему и как вообще=(

Старый 31.10.2013, 22:16
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 12  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Чтобы подгрузить из библиотеки элемент, нужно лишь создать его экземпляр при помощи new. Чтобы потом к нему обратиться, мы присваиваем ссылку на него переменной.
var item:NewMovie = new NewMovie();
То же самое делаем и в массиве.
Если сделать первое, что прийдет в голову, рассчитывая, что кнопок и мувиков не прибавится, создать два массива, поперечных. Один будет содержать ссылки на кнопки, а второй на мувики, и они должны идти в нужном порядке.

Код AS3:
var btns:Array = new Array(new Btn1, ... , new Btn7);
var mcs:Array = new Array(new MC1, ... , new MC7);
Потом добавляем слушатели к кнопкам и располагаем их в ряд.

Код AS3:
for(var i:int = 0; i<btns.length;i++)
{
   if(i>0)
   {
 
      btns[i].x = btns[i-1].x + btns[i-1].width + 5;
   }
   else
   { 
       btns[i].x = 5;
   }
   addChild(btns[i]);
   btns[i].addEventListener(MouseEvent.CLICK, loadMC);
}
function loadMC(e:MouseEvent):void
{ 
   var currentNumber:int;
   for(var i:int; i<bttns.length; i++)
   {
       if(e.target == btns[i]) currentNumber = i;
   }
   addChild(mcs[currentNumber]);
}
Конечно, я все усложнил, но это первое, что пришло в голову.
Да, эта семерка в самом деле задает длину для массива, но по моему, это бессмысленно, ничего не меняет.

Старый 31.10.2013, 22:19
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 13  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
нет, кнопки у меня в красивом порядке на сцене уже расположеныи поименованы в свойствах и подгружать их уже не надо. к ним надо обращаться.. хотя бы так банально, как перейти на 1-2-й кадр.

Старый 31.10.2013, 22:26
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 14  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
В таком случае в первый массив вы передаете их имена по порядку.
И убираем из первого цикла выравнивание кнопок.

Старый 31.10.2013, 22:30
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 15  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
кнопки вообще в массив добавлять не надо. к ним надо как-то обратиться .

ниже в комментариях проблемы, которые я не могу решить
Код AS3:
for (p=1; p<=7; p++){ 
arr[p]=0;
if (p==page){
var pg = new page_1();//здесь мне нужно реализовать подгрузку не только page_1, 
//но и других элементов. ['page_'+p] или как-то так,
//но не знаю, как это оформляется на AS 3.0
addChild(pg); 
pg.y=264.5;
pg.x=-150;
bt1.gotoAndStop(2);//не работает абсолютно. здесь нужно перейти на второй кадр мувиклипа bt1, расположенного на сцене
arr[p]=1;
}
}

Старый 31.10.2013, 22:43
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 16  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Код AS3:
var pg = new page_1();//здесь мне нужно реализовать подгрузку не только page_1, но и других элементов. ['page_'+p] или как-то так, но не знаю, как это оформляется на AS 3.0
К сожалению, я не уверен, что так вообще можно сделать.
Имя загружаемого обьекта нигде не видел, чтобы можно было написать при помощи String/Number/int...

Добавлено через 4 минуты
На вашем месте я обьявил бы массив в первом кадре и обращался бы к нему, а не к библиотеке.

Старый 31.10.2013, 22:54
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 17  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
ок, поняла.
Код AS3:
stop();
var arr:Array= new Array; 
var p:Number;
var pg:Array = new Array(0,new page_1/*, new page_2 , new page_3, new page_4, new page_5,new page_6,new page_7*/);
var bt:Array = new Array(0,bt1,bt2, bt3, bt4, bt5, bt6, bt7);
 
for (p=1; p<=7; p++){ 
arr[p]=0; 
if (p==page){
addChild(pg[p]); 
pg[p].y=264.5;
pg[p].x=-150;
bt[p].gotoAndStop(2);//сработало!!!! 
arr[p]=1;
}
}
 
for(var i:int = 1; i<bt.length;i++)
{
   addChild(bt[i]);
   bt[i].addEventListener(MouseEvent.CLICK, loadMC);//мувики остаются неактивными, то есть не являютсялистнерами
 
function loadMC(e:MouseEvent):void
{ 
   var currentNumber:int;
   for(var i:int; i<bt.length; i++)
   {
       if(e.target == bt[i]) currentNumber = i;
   }
   addChild(pg[currentNumber]);
}
}


Последний раз редактировалось Маруська; 31.10.2013 в 23:06.
Старый 31.10.2013, 22:58
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 18  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Могу только догадываться, что вы внутри символа хотите обратиться к свойствам/методам главной линии времени.
Для этого используется (root as MovieClip).
Но я обычно внутри каждого символа, где есть код, в самом начале обьявляю переменную
var mainTimeline:MovieClip = (root as MovieClip);

Старый 31.10.2013, 23:16
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 19  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
Код AS3:
var pg = new page_1();//здесь мне нужно реализовать подгрузку не только page_1,
Код AS3:
var Definition:Class  = getDefinition("page_" + String(i)) as Class; // получаем ссылку на класс
var pg:DisplayObject = new Definition();
__________________
Отряд Котовскага

Старый 31.10.2013, 23:21
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 20  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
Сообщение от Котяра Посмотреть сообщение
Код AS3:
var Definition:Class  = getDefinition("page_" + String(i)) as Class; // получаем ссылку на класс
var pg:DisplayObject = new Definition();
Котяра, это где подобному учат-то?))

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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