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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.12.2014, 19:18
Wormhole вне форума Посмотреть профиль Отправить личное сообщение для Wormhole Найти все сообщения от Wormhole
  № 1  
Ответить с цитированием
Wormhole
 
Аватар для Wormhole

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
The bomb! Работа с несколькими объектами

Здравствуйте. Мне необходимо создать несколько слушателей событий для объектов, которые вызывают схожие функции, работающие с данными объектами. Как это можно осуществить? Я пробовал через массив объектов, но для его элементов нельзя выполнять методы MovieClip

Старый 03.12.2014, 19:34
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 2  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Объясните то же самое, но обычными словами. Что Вы хотите сделать, какие у Вас объекты?

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

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
Цитата:
Сообщение от Gerbert Посмотреть сообщение
Объясните то же самое, но обычными словами. Что Вы хотите сделать, какие у Вас объекты?
У меня шесть квадратов. Когда на один из них кликаешь, x шарика присваивается значение x квадрата, на который кликнули

Старый 03.12.2014, 20:22
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
но для его элементов нельзя выполнять методы MovieClip
Код AS3:
(arr[i] as MovieClip).x = 10;
__________________
тут я

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

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
Цитата:
Сообщение от КорДум Посмотреть сообщение
Код AS3:
(arr[i] as MovieClip).x = 10;
Ого, спасибо, а я и не знал об операторе as

Старый 03.12.2014, 20:44
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 6  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Код AS3:
package {
 
import flash.display.Graphics;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.MouseEvent;
 
public class Main extends Sprite {
    private static  const NUM_RECT: int = 5;
 
    private var _allRects: Array;
    private var _circle: Shape;
 
    public function Main() {
       this._allRects = [];
 
        var rect: Sprite;
        const STAGE_WIDTH: int = super .stage.stageWidth;
        const STAGE_HEIGTH: int = super .stage.stageHeight;
 
        for( var i: int = 0; i < NUM_RECT; i++ ){
            rect = this.createRect( 50, 50, 0xcccccc );
            rect.x = STAGE_WIDTH * Math.random( );
            rect.y = STAGE_HEIGTH * Math.random( );
            super .addChild( rect );
 
            rect.addEventListener( MouseEvent.CLICK, rect_mouseClickHandler );
            this._allRects[i] = rect;
        }
 
        this._circle = this.createCircle( 10, 0x000000 );
        super .addChild( this._circle );
    }
 
    private  function rect_mouseClickHandler( event: MouseEvent ): void{
        var rect: Sprite = event.target as Sprite;
        this._circle.x = rect.x;
    }
 
    private  function createCircle( radius: int, color: uint ): Shape{
        var circle: Shape = new Shape( );
        var g: Graphics = circle.graphics;
        g.beginFill( color );
        g.drawCircle( 0, 0, radius );
        g.endFill( );
 
        return circle;
    }
 
    private function createRect( width: int, height: int, color: uint ): Sprite{
        var rect: Sprite = new Sprite( );
        var g: Graphics = rect.graphics;
        g.beginFill( color );
        g.drawRect( 0, 0, width, height );
        g.endFill( );
 
        return rect;
    }
}
}

Старый 03.12.2014, 21:09
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 7  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
Ого, спасибо, а я и не знал об операторе as
Может рестрикт мощный стоит, у меня и без as работает.
__________________
Марк Tween

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

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
Цитата:
Сообщение от КорДум Посмотреть сообщение
Код AS3:
(arr[i] as MovieClip).x = 10;
А как тогда узнать, с каким именно объектом произошло событие (например, клик)?

Старый 03.12.2014, 22:05
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 9  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
e.currentTarget
__________________
Марк Tween

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

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
Цитата:
Сообщение от in4core Посмотреть сообщение
e.currentTarget
Я пробовал, он пишет, что нет доступа к несуществующему объекту

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

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

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


 


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


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