Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Управление мовиклипом как целым (http://www.flasher.ru/forum/showthread.php?t=214614)

anda30 10.10.2017 12:20

спасибо
Буду пробовать

Добавлено через 40 минут
У меня в библиотеке есть Mклип "D1".
Пытаюсь сделать как Вы сказали.
Я его добавляю на сцену как контейнер .
Получаю ошибку.

Код AS3:

container1:Sprite = new Sprite();
container1.addChild(D1);

Заранее спасибо

undefined 10.10.2017 13:10

еще раз container - это твой мувиклип, надо положить его на сцену,дать ему имя(D1 либо любое другое) и навесить на него слушатели:
Код AS3:

D1.addEventListener(MouseEvent.MOUSE_DOWN, onMD);
D1.addEventListener(MouseEvent.MOUSE_UP, onMU);

и все.Не надо создавать никаких контейнеров.

anda30 10.10.2017 13:27

Не получилось
Сделал как Вы сказали
На сцене MC . Дал ему имя D2.
Все равно двигается по частям

undefined 10.10.2017 14:46

Выложи код целиком

anda30 10.10.2017 15:34

Код AS3:

import flash.display.MovieClip;
import flash.display.DisplayObject;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.Sprite;
 
//import flash.ui.Mouse;
//import fl.controls.DataGrid;
//import fl.controls.Button;
 
var i,k:int;
var Kol_Dachikov=1;
var Zvz:DisplayObject;
var arr:Array = new Array();
var DvMouse:int=0;
var NDatch:int=0;
var str1:String;
 
 
D2.addEventListener(MouseEvent.MOUSE_DOWN, DvigStart);
D2.addEventListener(MouseEvent.MOUSE_UP, DvigStop);
//stage.addEventListener(MouseEvent.MOUSE_DOWN, DvigStart);
//stage.addEventListener(MouseEvent.MOUSE_UP, DvigStop);
 
function DvigStart(e:MouseEvent):void{
        DvMouse=1;       
        if((e.target.name!=null))
                e.target.startDrag();       
}
 
function DvigStop (e:MouseEvent){
        DvMouse=0;       
                {(e.target as MovieClip).stopDrag();}
}


undefined 10.10.2017 15:45

у тебя:
Код AS3:

function DvigStart(e:MouseEvent):void{
        DvMouse=1;       
        if((e.target.name!=null))
                e.target.startDrag();       
}
 
function DvigStop (e:MouseEvent){
        DvMouse=0;       
                {(e.target as MovieClip).stopDrag();}
}

тогда как у меня:
Код AS3:

function onMD(e:MouseEvent):void {
        container.startDrag();
}
function onMU(e:MouseEvent):void {
        container.stopDrag();
}

что в твоем случае должно выглядить как:
Код AS3:

function onMD(e:MouseEvent):void {
        D2.startDrag();
}
function onMU(e:MouseEvent):void {
        D2.stopDrag();
}


anda30 10.10.2017 16:11

Спасибо
класс

Добавлено через 44 минуты
Еще вопрос
А можно ли сделать так, чтоб я из библиотеки добавлял на сцену несколько сложных Мклипов, который состоит из нескольких МС и чтоб я мог каждым управлять как одним целым ?
Просто передо мной такая задача поставлена.
С уважением

Добавлено через 17 часов 48 минут
Всем привет
Я понимаю, что немного поднадоел своей бестолковостью, но мне действительно нужна помощь.
У меня следующая задача:
в библиотеке создан сложный МС, который состоит из др МС и из компонентов.
Я должен из библиотеки добавить любое количество МС на сцену . Затем разместить их на сцене как удобно.
Затем в каждом МС на сцене через компоненты внутри каждого МС изменить свойства каждого МС.
У меня все вроде бы получается кроме движения каждым МС как целым.
Если кто знает как подскажите
С уважением

Добавлено через 41 час 37 минут
Всем спасибо

Добавлено через 67 часов 45 минут
Я начал разбираться со своим примером и понял в чем ошибался.
Я на сцене создаю экземпляры клипов:
Код AS3:

for(i=0;i<Kol_Dachikov;i++) 
        {
        var Zv:MovieClip = new Datchik;
        Zv.name="ss"+i;
        Zv.x=100+i*10;
        Zv.y=150+i*10;
        addChild(Zv);
        arr.push(Zv);       
                trace ("Name="+Zv.name);
        }
}

где их имена :ss0,ss1,...
Затем я на сцене слушаю событие:
Код AS3:

stage.addEventListener(MouseEvent.MOUSE_DOWN, DvigStart);

и по событию хочу обратиться к клипу по имени:
Код AS3:

function DvigStart(e:MouseEvent){
        DvMouse=1;
 if(e.target.name==ss0)
 {       
                e.target.startDrag();
 }
}

и получаю ошибку в строке: if(e.target.name==ss0).
Монтажный кадр 1, слой "Слой 1", кадр 1, строка 35 1120: Обращение несуществующего свойства ss0.
Вопрос: могу ли я обратиться к созданному клипу по имени ?
Спасибо .

dark256 14.10.2017 12:16

Жесть... Ообычно проблема как раз в том, чтобы управлять частями клипа... Тут - наоборот :)

anda30 17.10.2017 11:19

Когда сочувствуют это приятно, а решение где ?

ZackMercury 18.10.2017 13:42

Свойство name класса MovieClip - строка.


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

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