• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zmiena dynamicznego tekstu za pomocą jQuery

Object Storage Arubacloud
0 głosów
219 wizyt
pytanie zadane 26 czerwca 2019 w JavaScript przez Dunkej Początkujący (270 p.)

Witam w Adobe Animate stworzyłem animacje która jest w pliku HTML 5. Odpalam animacje z przycisku który wykonuje funkcje startujaca:

function start() {
		exportRoot.gotoAndPlay();
		'To jest tekst który chce uzyskac';     <-- Jak to tu zrobić ? Jak sie odwolać ?
}

Do tej funkcji chciałbym dodać zeby zmienial "Ten tekst chce zmienic" za pomoca jQuery na ten w funkcji wyżej. Jak się odwołać do tego tekstu wygenerowanym w Adobe:

this.name = new cjs.Text("Ten tekst chce zmienic", "38px 'Geometr415 Blk BT'", "#282828");
	this.name.name = "name";
	this.name.textAlign = "center";
	this.name.lineHeight = 53;
	this.name.lineWidth = 444;
	this.name.alpha = 0.00000000;
	this.name.parent = this;
	this.name.setTransform(348.4,779.75);

 

1 odpowiedź

0 głosów
odpowiedź 26 czerwca 2019 przez Chess Szeryf (76,710 p.)

Co masz przed this.name = new cjs.Text("...?

Wykonaj może console.log tego

console.log(new cjs.Text("Ten tekst chce zmienic", "38px 'Geometr415 Blk BT'", "#282828"));

i wrzuć tutaj rezultat tego log'a.

F12 - zakładka "Console" i tam będą log'i.

komentarz 28 czerwca 2019 przez Dunkej Początkujący (270 p.)
<canvas id="canvas" width="1920" height="1080" style="position: absolute; display: block; background-color: rgb(255, 255, 255); width: 1920px; height: 1080px;"></canvas>

 

komentarz 28 czerwca 2019 przez Chess Szeryf (76,710 p.)

Jeśli masz coś jak "zmienne globalne", które przechowywują wartości coś jak pobieranie elementów DOM, to musisz dobrać się do tych wartości najprawdopodobniej po kropce. Oczywiście, jeśli takie coś jest.

Widzę jednak, że jest to canvas i najwyraźniej tekst został wyrenderowany i nie pozwala na ingerencję użytkownika z zewnątrz, choć mogę się mylić. Musisz dokonać edycji kodu wygenerowanego inaczej nici z tego.

Jest jeszcze taka opcja, że możesz skorzystać z funkcji clearRect i czyścić pole na tekst i tworzyć nowy tekst w to miejsce. Opcja ze zmienieniem wygenerowanego kodu od Adobe Animate wydaje mi się najtrafniejsza lub opcja pierwsza, która pozwoli na dobranie się do np. obiektu i zmienienie wartości, ale nie wiem, czy dałoby się tak w przypadku canvas, ponieważ nie wiem jaki jest "korzeń" kodu, którego chyba nie podałeś.

https://forums.adobe.com/thread/2409499.

komentarz 29 czerwca 2019 przez Dunkej Początkujący (270 p.)

Naprawdę tego nie rozumiem.. a widze ze bardzo dobrze orientujesz sie w temacie. Mógłbyś jakoś jeszcze pomoć jak dokladniej to zrobic ?

HTML Adobe:

http://wklejto.pl/751637

JS Adobe:

http://wklejto.pl/751638

komentarz 29 czerwca 2019 przez Dunkej Początkujący (270 p.)

A takie coś by działało ? Próbowałem to zrobić, ale nie potrafie. Nie rozumiem. Jestem początkującym z takimi obiektami. jQuery natomiast to pikuś 

The way I do it, is first declare a var in the first frame, for example

var myDynamicText;

 

then I call the javascript function that will send me the updated text, for example

someFunction();

 

this function sends me the text using a var name, for example myText="this is dynamic text";

 

and then in Animate I assign the myText var at my previously defined var, that is myDynamicText = myText;

and finally I assign the text value of my dynamic text field with my var, that is

this.myTextField.text = myDynamicText;

 

hope that helps!

 

komentarz 29 czerwca 2019 przez Chess Szeryf (76,710 p.)
edycja 29 czerwca 2019 przez Chess

Musisz znaleźć funkcję odpowiedzialną za generowanie tekstu. Następnie uruchomić trigger (wyzwalacz), który przerenderuje tekst na inny. Ten trigger, to nic innego jak na przykład funkcja, która zacznie renderować daną część canvas od nowa po zmianie jakiejś wartości.

https://createjs.com/docs/easeljs/classes/Text.html

var text = new createjs.Text("Hello World", "20px Arial", "#ff7700");

text.color = 'lightgreen';
text.text = 'Your New Text';

To jest przykład. Musisz znaleźć zmienną, czy coś takiego do której przypisany jest obiekt utworzony przez "new createjs.Text..." i przypisać odpowiednią wartość jak w przykładzie linie 3 i 4.

Ten kod musisz umieścić w wyznaczonym miejscu, tam gdzie zaczyna się rendering (przed rendering'iem). Dlatego przed wyrenderowaniem tekstu musisz umieścić ten kod, ponieważ wtedy interpreter zobaczy zmianę i zmieni tekst, który nadpiszesz jakąś swoją zmienną.

Podepnij się pod "this" i po zajściu zdarzenia nadpisz lub zmień wartość obiektu.

Napisz tak, żeby interpreter zignorował wartość

var text = new createjs.Text("Hello World", "20px Arial", "#ff7700");

, ominął tę linię lub ją nadpisał inną wartością lub wczytał twoją linię także z inną wartością.

Powyższa linia to wpisanie wartości w konstuktor. Musisz za (pod spodem) zmienną "var text" umieścić

text.text = 'Your New Text';

i wtedy wartość "Hello World" zostanie zmieniona na "Your New Text'.

Musisz znaleźć ten obiekt i się pod niego podpiąć. Po podpięciu wystarczy mniej więcej taka linia kodu

this.your_variable_to_text.text = 'Your New Text';

Podobne pytania

0 głosów
0 odpowiedzi 176 wizyt
0 głosów
3 odpowiedzi 2,746 wizyt
pytanie zadane 14 grudnia 2015 w HTML i CSS przez artimal Gaduła (4,800 p.)
0 głosów
0 odpowiedzi 103 wizyt
pytanie zadane 7 lutego 2019 w JavaScript przez Andrzej Czarny Użytkownik (720 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...